<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Azarama S</title><generator>teletype.in</generator><description><![CDATA[Azarama S]]></description><image><url>https://img3.teletype.in/files/64/cd/64cd2bf2-fbce-4f44-8610-5874ec2a4596.png</url><title>Azarama S</title><link>https://teletype.in/@solanamb</link></image><link>https://teletype.in/@solanamb?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/solanamb?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/solanamb?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 05 Apr 2026 15:20:58 GMT</pubDate><lastBuildDate>Sun, 05 Apr 2026 15:20:58 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@solanamb/how-to-withdraw-funds-from-hyperliquid</guid><link>https://teletype.in/@solanamb/how-to-withdraw-funds-from-hyperliquid?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><comments>https://teletype.in/@solanamb/how-to-withdraw-funds-from-hyperliquid?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb#comments</comments><dc:creator>solanamb</dc:creator><title>How to Withdraw Funds if Your Address is Flagged by Hyperliquid</title><pubDate>Tue, 18 Feb 2025 20:49:23 GMT</pubDate><description><![CDATA[<img src="https://img4.teletype.in/files/7f/b6/7fb66317-6528-40ea-b3c6-180a1ae3eb60.png"></img>If you've encountered the message:]]></description><content:encoded><![CDATA[
  <figure id="nAIY" class="m_retina">
    <img src="https://img1.teletype.in/files/ca/96/ca96897c-85f9-490e-9fe5-880a2ec21141.png" width="1376" />
  </figure>
  <p id="jXAn">If you&#x27;ve encountered the message:</p>
  <blockquote id="5Wm0"><strong>&quot;Your address has been flagged as high risk by a third-party screening tool. This frontend interface does not support connection to the Hyperliquid blockchain by high-risk addresses. If you think this is an error, you can open a support ticket.&quot;</strong></blockquote>
  <p id="qChr">and need to withdraw your funds, follow these steps.</p>
  <h3 id="Q3RK">Option 1: Using a Trading Bot (Telegram)</h3>
  <p id="vb6z">You can use a <strong>Telegram trading bot</strong> to withdraw your funds. You simply need to import your private key. This method is fast and easy, but if you&#x27;re concerned about security and privacy, you can opt for the second method (manual).</p>
  <p id="1j9F"><a href="https://t.me/HypurrFunBot?start=ref_8706f7c8" target="_blank">HypurrFunBot Telegram Trading Bot</a></p>
  <h3 id="VRBg">Option 2: Manual Withdrawal Using Ubuntu Server</h3>
  <p id="pS68">If you want a more secure and customizable approach, follow these steps using an <strong>Ubuntu server</strong>. You can rent a server from <strong>Hetzner</strong> or any other service provider that supports Ubuntu.</p>
  <h4 id="Sf4v">Step 1: Rent a VPS (Optional)</h4>
  <p id="skBx">Rent a <strong>VPS</strong> (Virtual Private Server) from a provider like Hetzner.</p>
  <ul id="jyxu">
    <li id="Prp5"><strong>Visit Hetzner</strong>: <a href="true">Hetzner Cloud</a></li>
    <li id="3TrA">Choose the <strong>Standard VPS</strong> plan (or any other according to your needs).</li>
    <li id="u9bB">Once you&#x27;ve rented the server, log in using SSH.</li>
  </ul>
  <h4 id="9I8w">Step 2: Install Python and Necessary Libraries</h4>
  <p id="x6Ki">Update your system:</p>
  <pre id="yvDa">sudo apt update
sudo apt upgrade -y
</pre>
  <p id="OuNB">Install <strong>Python 3</strong>:</p>
  <pre id="gAgn">sudo apt install python3 python3-pip -y
</pre>
  <p id="MXRq">Install <strong>virtualenv</strong> to create a virtual environment:</p>
  <pre id="Sv0O">sudo apt install python3-venv -y
</pre>
  <p id="ZhmY">Create a virtual environment:</p>
  <pre id="kIJZ">python3 -m venv hyperliquid-env
source hyperliquid-env/bin/activate
</pre>
  <p id="8Dfw">Install necessary libraries:</p>
  <pre id="CWre">pip install hyperliquid-python-sdk requests python-dotenv
</pre>
  <h4 id="oHns">Step 3: Prepare the Environment</h4>
  <p id="O7gf"><strong>Create a <code>.env</code> file</strong> to store your private key and API wallet address securely. Use the <strong>nano</strong> editor:</p>
  <pre id="COfV">nano ~/.hyperliquid.env
</pre>
  <p id="eWlE"><strong>Add your API Wallet Address and Private Key</strong>:</p>
  <p id="RbGg">Open the <code>.env</code> file and add the following (replace <code>YOUR_API_WALLET</code> and <code>YOUR_PRIVATE_KEY</code> with actual values):</p>
  <pre id="KcmC">API_WALLET=YOUR_API_WALLET
PRIVATE_KEY=YOUR_PRIVATE_KEY
</pre>
  <p id="MkDp"><strong>Save the file</strong> by pressing <strong>Ctrl + X</strong>, then <strong>Y</strong>, and then <strong>Enter</strong>.</p>
  <p id="fBU3"></p>
  <h4 id="6Ct2">Step 4: Set Up the Script</h4>
  <p id="bcuI">Create a <strong>Python script</strong> to interact with the Hyperliquid API.</p>
  <pre id="Kmq4">nano transfer_to_spot.py
</pre>
  <p id="WSxp">Paste the following code into the file (this example will help you transfer USDC to a spot wallet):</p>
  <pre id="FbdM">from hyperliquid.exchange import Exchange
from hyperliquid.utils import constants
from eth_account import Account
import os
from dotenv import load_dotenv

load_dotenv()

# Load API wallet and private key from environment variables
api_wallet = os.getenv(&quot;API_WALLET&quot;)
private_key = os.getenv(&quot;PRIVATE_KEY&quot;)

# Create account object from private key
wallet = Account.from_key(private_key)

# Initialize Exchange object
exchange = Exchange(base_url=constants.MAINNET_API_URL, wallet=wallet)

# Amount to transfer
amount = 100.0  # 100 USDC

# Perform spot transfer
response = exchange.spot_transfer(amount, api_wallet)
print(response)
</pre>
  <p id="LcDF"><strong>Save and close the file</strong> (press <strong>Ctrl + X</strong>, then <strong>Y</strong>, then <strong>Enter</strong>).</p>
  <p id="JE5v"></p>
  <h4 id="MEfI">Step 5: Run the Script</h4>
  <p id="XmS2"><strong>Run the script</strong> to transfer the funds:</p>
  <pre id="lXbe">python transfer_to_spot.py
</pre>
  <h4 id="YMI9">Step 6: Withdraw Funds Through the Bridge</h4>
  <p id="f4Iw">Once your funds are in the spot wallet, you can withdraw them through the <strong>bridge</strong> to another wallet.</p>
  <p id="z97n"><strong>Create another script</strong> for the withdrawal process:</p>
  <pre id="lEou">nano withdraw_to_arbitrum.py
</pre>
  <p id="aoxB">Paste the following code into the file:</p>
  <pre id="xiPn">from hyperliquid.exchange import Exchange
from hyperliquid.utils import constants
from eth_account import Account
import os
from dotenv import load_dotenv

load_dotenv()

# Load API wallet and private key from environment variables
api_wallet = os.getenv(&quot;API_WALLET&quot;)
private_key = os.getenv(&quot;PRIVATE_KEY&quot;)

# Create account object from private key
wallet = Account.from_key(private_key)

# Initialize Exchange object
exchange = Exchange(base_url=constants.MAINNET_API_URL, wallet=wallet)

# Amount to transfer
amount = 50.0  # 50 USDC
destination_address = &quot;0x1234567890abcdef1234567890abcdef12345678&quot;  # Your withdrawal address

# Send the transfer through the bridge
response = exchange.withdraw_from_bridge(amount, destination_address)
print(response)
</pre>
  <p id="RUWM"><strong>Save and close</strong> the file.</p>
  <h4 id="rdKp">Step 7: Run the Withdrawal Script</h4>
  <p id="RCyA"><strong>Execute the script</strong> to withdraw the funds:</p>
  <pre id="YF3t">python withdraw_to_arbitrum.py
</pre>
  <p id="gzFY">Check if the withdrawal was successful. If everything is set up correctly, your funds will be sent to the provided address.</p>
  <hr />
  <p id="2XKS">By following these steps, you can manually withdraw your funds from <strong>Hyperliquid</strong> if your account is flagged by the third-party screening tool. If you&#x27;re concerned about security, you can use the Telegram bot method.</p>
  <p id="YDG5">Good luck!</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@solanamb/withdraw-funds-address-is-flagged-hyperliquid</guid><link>https://teletype.in/@solanamb/withdraw-funds-address-is-flagged-hyperliquid?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><comments>https://teletype.in/@solanamb/withdraw-funds-address-is-flagged-hyperliquid?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb#comments</comments><dc:creator>solanamb</dc:creator><title>Hyperliquid &quot;Your address has been flagged as high risk by a third-party screening tool&quot;</title><pubDate>Tue, 18 Feb 2025 20:39:03 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/c9/0f/c90fc567-5d23-4b0a-bb7d-e44c7924ffd0.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/6d/72/6d72bc85-1982-49aa-93c0-76c7b24e3cf5.png"></img>Если вы столкнулись с проблемой блокировки доступа к интерфейсу Hyperliquid с сообщением: &quot;Your address has been flagged as high risk by a third-party screening tool&quot;, не переживайте, вы все равно можете вывести свои средства с платформы. В этом гайде мы подробно расскажем, как вывести средства даже при блокировке адреса через фронтенд интерфейс.]]></description><content:encoded><![CDATA[
  <figure id="Co1l" class="m_retina">
    <img src="https://img3.teletype.in/files/6d/72/6d72bc85-1982-49aa-93c0-76c7b24e3cf5.png" width="1395" />
  </figure>
  <h3 id="wrUk">Как вывести средства, если ваш адрес заблокирован в Hyperliquid (сообщение &quot;Your address has been flagged as high risk by a third-party screening tool&quot;)</h3>
  <p id="eJQI">Если вы столкнулись с проблемой блокировки доступа к интерфейсу Hyperliquid с сообщением: <strong>&quot;Your address has been flagged as high risk by a third-party screening tool&quot;</strong>, не переживайте, вы все равно можете вывести свои средства с платформы. В этом гайде мы подробно расскажем, как вывести средства даже при блокировке адреса через фронтенд интерфейс.</p>
  <hr />
  <h4 id="J3Gs">Важное замечание</h4>
  <p id="DZSt">Если вы хотите просто вывести средства, и вам не важна безопасность при вводе приватного ключа, вы можете использовать <strong>торгового бота в Telegram</strong>. Для этого достаточно просто импортировать свой приватный ключ в бота. Но если вы переживаете о безопасности своего приватного ключа, то используйте <strong>API способ</strong>, который мы рассмотрим ниже.</p>
  <p id="biP6"><strong>Ссылка на торгового бота в Telegram</strong>: <a href="https://t.me/HypurrFunBot?start=ref_8706f7c8" target="_blank">HypurrFunBot</a></p>
  <hr />
  <h3 id="7r4F">Шаг 1: Подготовка сервера на Ubuntu</h3>
  <p id="yqda">Для выполнения всех операций по выводу средств вам понадобится сервер с ОС <strong>Ubuntu</strong>. Если у вас нет собственного сервера, вы можете арендовать его у любого провайдера, например, на <strong>Hetzner</strong>. Это недорого и удобно для настройки.</p>
  <ul id="2cOT">
    <li id="Kf0o">Перейдите на сайт Hetzner (или другой провайдер, если предпочитаете).</li>
    <li id="SloW">Арендуйте сервер с минимальными характеристиками (например, <strong>2 ГБ оперативной памяти</strong> и <strong>50 ГБ SSD</strong> достаточно для таких задач).</li>
    <li id="1il1">Получите доступ по SSH к серверу (через терминал или программу для работы с SSH, например, <strong>PuTTY</strong>).</li>
  </ul>
  <hr />
  <h3 id="fVOK">Шаг 2: Установка Python и необходимых зависимостей</h3>
  <p id="psFJ">На сервере Ubuntu нужно установить Python и необходимые пакеты для работы с API Hyperliquid.</p>
  <pre id="KALD">
sudo apt update
sudo apt install python3 python3-pip python3-venv
</pre>
  <hr />
  <h3 id="buzO">Шаг 3: Создание виртуального окружения</h3>
  <p id="wXcp">Для удобства работы и изоляции зависимостей создайте виртуальное окружение Python:</p>
  <pre id="U98U">python3 -m venv hyperliquid-env
source hyperliquid-env/bin/activate
</pre>
  <hr />
  <h3 id="7Vwd">Шаг 4: Установка необходимых библиотек</h3>
  <p id="MudC">Теперь установите необходимые библиотеки для работы с API Hyperliquid:</p>
  <pre id="MJ7A">pip install hyperliquid-python-sdk requests python-dotenv
</pre>
  <hr />
  <h3 id="ic3D">Шаг 5: Создание <code>.env</code> файла для хранения ключей</h3>
  <p id="6sod">Создайте файл <code>.env</code> для хранения вашего <strong>API-ключа</strong> и <strong>приватного ключа</strong>:</p>
  <pre id="8Oxj">nano .env
</pre>
  <p id="9Qkz">Добавьте в этот файл ваши данные (не забывайте заменить на свои настоящие ключи):</p>
  <pre id="3XWm">API_KEY=ваш_api_ключ
PRIVATE_KEY=ваш_приватный_ключ
</pre>
  <p id="OJsV">Сохраните и выйдите, нажав <code>CTRL + X</code>, затем <code>Y</code> и <code>Enter</code>.</p>
  <hr />
  <h3 id="dRqm">Шаг 6: Создание скрипта для вывода средств</h3>
  <p id="LXtO">Создайте Python-скрипт для взаимодействия с Hyperliquid API, который будет выводить средства:</p>
  <pre id="a1Uf">nano withdraw.py
</pre>
  <p id="EIio">Вставьте следующий код в файл <code>withdraw.py</code>:</p>
  <pre id="zOpk">
from dotenv import load_dotenv
from eth_account import Account
from hyperliquid.exchange import Exchange
from hyperliquid.utils import constants

# Загружаем переменные из .env
load_dotenv()

# Чтение API ключа и приватного ключа из переменных окружения
API_KEY = os.getenv(&quot;API_KEY&quot;)
PRIVATE_KEY = os.getenv(&quot;PRIVATE_KEY&quot;)

# Инициализация кошелька с приватным ключом
wallet = Account.from_key(PRIVATE_KEY)

# Создаем объект Exchange для взаимодействия с Hyperliquid
exchange = Exchange(base_url=constants.MAINNET_API_URL, wallet=wallet)

# Адрес для вывода
destination_address = &quot;0x1234567890abcdef1234567890abcdef12345678&quot;  # Замените на свой адрес

# Сумма для вывода
AMOUNT = 100.0  # Например, выводим 100 USDC

# Вывод через мост
print(f&quot;✅ Готовимся вывести {AMOUNT} USDC через мост на адрес {destination_address}.&quot;)
response = exchange.withdraw_from_bridge(AMOUNT, destination_address)

if response.get(&#x27;status&#x27;) == &#x27;ok&#x27;:
    print(f&quot;✅ Вывод через мост успешно отправлен! {response}&quot;)
else:
    print(f&quot;❌ Ошибка при выводе: {response}&quot;)
</pre>
  <hr />
  <h3 id="lmuU">Шаг 7: Запуск скрипта</h3>
  <p id="7dhP">Теперь, когда скрипт готов, запустите его для вывода средств:</p>
  <pre id="TsPI">python withdraw.py
</pre>
  <p id="U1Ra">Если все прошло успешно, вы увидите сообщение:</p>
  <pre id="7mK4">✅ Готовимся вывести 100.0 USDC через мост на адрес 0x1234567890abcdef1234567890abcdef12345678.
✅ Вывод через мост успешно отправлен! {&#x27;status&#x27;: &#x27;ok&#x27;, &#x27;response&#x27;: {&#x27;type&#x27;: &#x27;default&#x27;}}
</pre>
  <hr />
  <h3 id="KL4i">Шаг 8: Проверка статуса вывода</h3>
  <p id="Nl5Z">После того как вы отправили средства через мост, вы можете проверить статус вывода. Например, для проверки статуса выполните команду, которая отслеживает статус транзакции. Это может быть отдельный скрипт или функция внутри уже существующего кода.</p>
  <hr />
  <h3 id="MKLM">Важные замечания:</h3>
  <ol id="z6gA">
    <li id="mOht"><strong>Запросы на вывод через мост</strong>: Когда вы переводите средства через мост с перпетуального счета, сумма перевода будет в 2 раза больше, чем вы укажете. То есть, если вы отправите 50 USDC, в итоге вы получите 99 USDC (49+49 USDC через мост и 1+1 USDC будет удержан за комиссию).</li>
    <li id="EyRf"><strong>Безопасность ключей</strong>: Никогда не публикуйте свои приватные ключи или API-ключи. Сохраняйте их в безопасном месте.</li>
    <li id="pdYE"><strong>Использование торгового бота в Telegram</strong>: Если вы не хотите работать с кодом и хотите просто вывести средства, вы можете воспользоваться торговым ботом в Telegram. Просто импортируйте свой приватный ключ в бота и следуйте инструкциям. Если же вы переживаете за безопасность, используйте метод через API, описанный выше.</li>
  </ol>
  <p id="L9W3"><strong>Ссылка на торгового бота в Telegram</strong>: <a href="https://t.me/HypurrFunBot?start=ref_8706f7c8" target="_blank">HypurrFunBot</a></p>
  <hr />
  <p id="tQ56">Теперь вы знаете, как вывести средства с платформы Hyperliquid, даже если ваш адрес был заблокирован в интерфейсе.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@solanamb/sonic_deploy</guid><link>https://teletype.in/@solanamb/sonic_deploy?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><comments>https://teletype.in/@solanamb/sonic_deploy?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb#comments</comments><dc:creator>solanamb</dc:creator><title>Как автоматизировать развертывание смарт-контракта на Sonic с использованием Hardhat</title><pubDate>Sat, 07 Sep 2024 14:24:33 GMT</pubDate><description><![CDATA[В этом гайде я покажу, как с помощью Hardhat и простого Bash-скрипта можно автоматизировать процесс развертывания смарт-контракта на тестовой сети Sonic. Мы также обеспечим безопасное хранение приватного ключа в файле .env.]]></description><content:encoded><![CDATA[
  <p id="4DTv">В этом гайде я покажу, как с помощью Hardhat и простого Bash-скрипта можно автоматизировать процесс развертывания смарт-контракта на тестовой сети Sonic. Мы также обеспечим безопасное хранение приватного ключа в файле <code>.env</code>.</p>
  <p id="m0pF"></p>
  <h2 id="uSKn">Шаг 1: Подготовка окружения</h2>
  <p id="MLTH">Для работы нам понадобятся Node.js и npm. Если они не установлены на вашей системе, их можно легко установить:</p>
  <h3 id="JRBH">Установка Node.js и npm</h3>
  <p id="5w6Y">Для Ubuntu:</p>
  <pre id="bgPn">sudo apt update
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs</pre>
  <p id="kMdL"></p>
  <h2 id="pFxB">Шаг 2: Создание Bash-скрипта для автоматизации</h2>
  <p id="DZoF">Создадим Bash-скрипт, который будет инициализировать проект Hardhat, устанавливать зависимости, создавать контракт и выполнять его развертывание.</p>
  <h3 id="a8em">Создание скрипта <code>deploy.sh</code></h3>
  <p id="xNV4">Создайте файл <code>deploy.sh</code>:</p>
  <pre id="KtZD">nano deploy.sh
</pre>
  <p id="Mojl">Вставьте следующий код в файл:</p>
  <pre id="KPpB">#!/bin/bash

# Проверка наличия .env файла с приватным ключом
if [ ! -f .env ]; then
  echo &quot;Не найден файл .env. Создайте его и добавьте приватный ключ:&quot;
  echo &quot;SONIC_PRIVATE_KEY=your_private_key_here&quot; &gt; .env
  echo &quot;Пример файла .env создан. Добавьте ваш приватный ключ и повторите запуск.&quot;
  exit 1
fi

# Чтение приватного ключа из .env
export $(grep -v &#x27;^#&#x27; .env | xargs)

# Проверка наличия приватного ключа
if [ -z &quot;$SONIC_PRIVATE_KEY&quot; ]; then
  echo &quot;Приватный ключ не задан в файле .env. Добавьте его и повторите запуск.&quot;
  exit 1
fi

# Если в директории уже существует Hardhat проект, пропускаем инициализацию
if [ ! -f &quot;hardhat.config.js&quot; ]; then
  echo &quot;Инициализация проекта Hardhat...&quot;
  npx hardhat init sonic-deployment --force
  cd sonic-deployment
else
  echo &quot;Проект Hardhat уже инициализирован.&quot;
fi

# Установка необходимых зависимостей
echo &quot;Установка зависимостей...&quot;
npm install --save-dev @nomicfoundation/hardhat-toolbox @nomicfoundation/hardhat-ethers ethers dotenv

# Создание файла hardhat.config.js
echo &quot;Создание файла конфигурации hardhat.config.js...&quot;
cat &lt;&lt;EOL &gt; hardhat.config.js
require(&quot;@nomicfoundation/hardhat-toolbox&quot;);
require(&quot;dotenv&quot;).config();

const SONIC_PRIVATE_KEY = process.env.SONIC_PRIVATE_KEY;

module.exports = {
  solidity: &quot;0.8.24&quot;,
  networks: {
    sonic: {
      url: &quot;https://rpc.testnet.soniclabs.com&quot;,
      accounts: [SONIC_PRIVATE_KEY]
    }
  }
};
EOL

# Создание контракта HelloWorld.sol
echo &quot;Создание контракта HelloWorld.sol...&quot;
mkdir -p contracts
cat &lt;&lt;EOL &gt; contracts/HelloWorld.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract HelloWorld {
    string public greeting = &quot;Hello, Sonic!&quot;;

    function setGreeting(string memory _greeting) public {
        greeting = _greeting;
    }
}
EOL

# Создание скрипта для развертывания deploy.js
echo &quot;Создание скрипта для развертывания deploy.js...&quot;
mkdir -p scripts
cat &lt;&lt;EOL &gt; scripts/deploy.js
async function main() {
  const HelloWorld = await ethers.getContractFactory(&quot;HelloWorld&quot;);
  console.log(&quot;Deploying HelloWorld contract...&quot;);
  const helloWorld = await HelloWorld.deploy();
  await helloWorld.waitForDeployment();
  console.log(&quot;HelloWorld deployed to:&quot;, helloWorld.target);
}

main().catch((error) =&gt; {
  console.error(&quot;Error during deployment:&quot;, error);
  process.exitCode = 1;
});
EOL

# Компиляция и развертывание контракта
echo &quot;Развёртывание контракта в сети Sonic...&quot;
npx hardhat run scripts/deploy.js --network sonic
</pre>
  <p id="tzfL">Скрипт автоматизирует все шаги, включая инициализацию проекта, установку зависимостей и развертывание контракта.</p>
  <h2 id="RNld">Шаг 3: Настройка приватного ключа</h2>
  <p id="i2ex">Для безопасности приватный ключ хранится в файле <code>.env</code>. Скрипт создаст пример этого файла, если его нет. Вам нужно добавить ваш реальный приватный ключ в этот файл:</p>
  <pre id="sdRY">nano .env
</pre>
  <p id="ZkL6">Пример содержимого <code>.env</code>:</p>
  <pre id="itcx">SONIC_PRIVATE_KEY=your_private_key_here
</pre>
  <p id="w5tp">Сохраните файл.</p>
  <h2 id="wyXQ">Шаг 4: Запуск скрипта</h2>
  <p id="Ll32">После того как приватный ключ добавлен, сделайте скрипт исполняемым и запустите его:</p>
  <pre id="xnjm">chmod +x deploy.sh
./deploy.sh
</pre>
  <h3 id="2hFx">Что делает этот скрипт:</h3>
  <ol id="Zr9I">
    <li id="wKYF">Проверяет, существует ли файл <code>.env</code>, и предлагает создать его, если нет.</li>
    <li id="IiyY">Инициализирует проект Hardhat (если это ещё не было сделано).</li>
    <li id="UaoY">Устанавливает зависимости.</li>
    <li id="dauH">Создает контракт и развертывает его на тестовой сети Sonic.</li>
  </ol>
  <h2 id="T8SM">Шаг 5: Изменение приватного ключа</h2>
  <p id="zWdD">Чтобы изменить приватный ключ, просто отредактируйте файл <code>.env</code>:</p>
  <pre id="v00i">nano .env
</pre>
  <p id="Vd4M">Замените строку с ключом:</p>
  <pre id="7OjX">SONIC_PRIVATE_KEY=your_new_private_key_here
</pre>
  <p id="3lDa">После изменения приватного ключа запустите скрипт снова:</p>
  <pre id="61ur">./deploy.sh
</pre>
  <h2 id="RQvn">Заключение</h2>
  <p id="Slln">Этот простой Bash-скрипт автоматизирует процесс развертывания смарт-контрактов в сети Sonic с использованием Hardhat. Приватный ключ хранится безопасно в файле <code>.env</code>, и процесс можно легко повторить, изменив ключ или сам контракт.</p>
  <hr />
  <h3 id="YzWr">Преимущества:</h3>
  <ul id="aBBS">
    <li id="d3Fi">Простота в использовании и настройке.</li>
    <li id="u3xr">Безопасность хранения приватных ключей.</li>
    <li id="L8HF">Полная автоматизация процесса развертывания.</li>
  </ul>
  <p id="cHuI">Попробуйте этот скрипт и наслаждайтесь автоматическим развертыванием смарт-контрактов!</p>
  <hr />

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@solanamb/SolanaHotMigration</guid><link>https://teletype.in/@solanamb/SolanaHotMigration?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><comments>https://teletype.in/@solanamb/SolanaHotMigration?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb#comments</comments><dc:creator>solanamb</dc:creator><title>Горячий переезд  SOLANA с одного сервера на другой без потери аптайма</title><pubDate>Sun, 25 Aug 2024 16:37:34 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/fb/72/fb7244cf-d602-4046-86b5-a631269fc070.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/c5/75/c575a707-1344-425e-8436-83cde81952d5.png"></img>Подкидываем на резерв свои ключи.]]></description><content:encoded><![CDATA[
  <figure id="ypsl" class="m_column">
    <img src="https://img1.teletype.in/files/c5/75/c575a707-1344-425e-8436-83cde81952d5.png" width="3002" />
  </figure>
  <p id="gsV4"><strong>Подкидываем на резерв свои ключи. <br /></strong></p>
  <p id="M2oP">mainnet-validator-keypair.json <br />vote-account-keypair.json</p>
  <p id="1FLF"></p>
  <p id="h9Cf">Ставим ноду по <a href="https://teletype.in/@solanamb/projectx" target="_blank">ГАЙДУ</a>, но используем сервисник такой на двух нодах, он обязателен или Вы можете использовать свой сервисник, но нужно изменить в нем ключ <strong>--identity $HOME/mainnet-validator-keypair.json на --identity $HOME/identity.json</strong>, а также добавить ключ <strong>--authorized-voter $HOME/mainnet-validator-keypair, </strong>а то нода не будет голосовать.</p>
  <p id="5Ozo"></p>
  <p id="Sewz"><strong>Подкидываем на резерв свои ключи. </strong><br /></p>
  <p id="mgLb"></p>
  <p id="rp3I"><strong>Я использую данный сервисник.</strong></p>
  <p id="WlXb"></p>
  <blockquote id="oZcG">cat &gt; /etc/systemd/system/solana.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password&quot;<br />ExecStart=$HOME/.local/share/solana/install/active_release/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/identity.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--incremental-snapshots \\<br />--full-snapshot-interval-slots 0 \\<br />--incremental-snapshot-interval-slots 0 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 1 \\<br />--maximum-local-snapshot-age 6500 \\<br />--no-snapshot-fetch \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \\<br />--tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \\<br />--merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \\<br />--commission-bps 10000 \\<br />--relayer-url http://127.0.0.1:11226 \\<br />--block-engine-url https://frankfurt.mainnet.block-engine.jito.wtf \\<br />--shred-receiver-address 145.40.93.84:1002 \\<br />--authorized-voter $HOME/mainnet-validator-keypair.json \\<br />--accounts-hash-cache-path /mnt/ramdisk/accounts_hash_cache \\<br />--accounts-index-path /mnt/ramdisk/accounts-index-path \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF<br /></blockquote>
  <p id="gl5B"></p>
  <p id="TzZj"></p>
  <p id="3dGX"><strong>На обоих нодах создаем второстепенные ключ на которые нода будет переходить.</strong></p>
  <p id="dI3w"></p>
  <blockquote id="jBvy">solana-keygen new -s --no-bip39-passphrase -o unstaked-identity.json</blockquote>
  <p id="0Vn6"></p>
  <p id="Giqy"><strong>Создаем символические ссылки. Они нужны, чтобы мы в процессе могли подменять ключ ноды с основного на второстепенный.</strong></p>
  <p id="2Rs0">На основе:</p>
  <blockquote id="fGSA">ln -sf /root/mainnet-validator-keypair.json /root/identity.json</blockquote>
  <p id="jS4L"></p>
  <p id="Zk2l">На резерве:</p>
  <blockquote id="xI4V">ln -sf /root/unstaked-identity.json /root/identity.json</blockquote>
  <p id="1dX5"></p>
  <p id="3WVP">Убедитесь, что символические ссылки созданы правильно:</p>
  <blockquote id="mY0T">ls -l /root/identity.json</blockquote>
  <p id="X942"></p>
  <p id="tQI4"><strong>Создаем в нано скрипты для перехода. Подставляем IP резерва в скрипт. <u>У меня доступ к нему по ключу SSH. </u></strong></p>
  <p id="wpt0"></p>
  <p id="9Lm8">Этот скрипт делаем на основе.</p>
  <p id="jADF"></p>
  <blockquote id="gmxD">nano primary-transition.sh</blockquote>
  <p id="UwDd"></p>
  <blockquote id="2qOk">#!/bin/bash</blockquote>
  <blockquote id="rN2n"># Ожидание окна перезапуска<br />solana-validator -l /root/ledger wait-for-restart-window --min-idle-time 2 --skip-new-snapshot-check</blockquote>
  <blockquote id="vrwi"># Установка временного идентификатора<br />solana-validator -l /root/ledger set-identity /root/unstaked-identity.json</blockquote>
  <blockquote id="AU9g"># Обновление символической ссылки<br />ln -sf /root/unstaked-identity.json /root/identity.json</blockquote>
  <blockquote id="dZ5k"># Копирование файла башни на резервный валидатор (измените IP на правильный)<br />scp -i /root/.ssh/id_rsa /root/ledger/tower-1_9-$(solana-keygen pubkey /root/mainnet-validator-keypair.json).bin root@АЙПИШНИК_РЕЗЕРВА:/root/ledger</blockquote>
  <blockquote id="amZy"># Убедитесь, что основной идентификатор больше не голосует<br />echo &quot;Primary identity is no longer voting&quot;<br />solana catchup --our-localhost 8899</blockquote>
  <p id="iMfD"></p>
  <p id="214Q">Сделайте скрипт исполняемым:</p>
  <blockquote id="yxN9">chmod +x primary-transition.sh</blockquote>
  <p id="lkJU"></p>
  <p id="q5t1">Этот скрипт создаем на резерве</p>
  <p id="8VHk"></p>
  <blockquote id="S3rl">nano secondary-transition.sh</blockquote>
  <p id="pVIo"></p>
  <blockquote id="0n7N">#!/bin/bash</blockquote>
  <blockquote id="ctjm"># Установка основного идентификатора с требованием башни<br />solana-validator -l /root/ledger set-identity --require-tower /root/mainnet-validator-keypair.json</blockquote>
  <blockquote id="FRy9"># Обновление символической ссылки<br />ln -sf /root/mainnet-validator-keypair.json /root/identity.json</blockquote>
  <blockquote id="rXzl"># Убедитесь в успешности перехода<br />solana catchup --our-localhost 8899</blockquote>
  <p id="EmFP"></p>
  <p id="jH5w"></p>
  <p id="7jmi">Сделайте скрипт исполняемым:</p>
  <blockquote id="SISY">chmod +x secondary-transition.sh</blockquote>
  <p id="CiOp"></p>
  <p id="lbUZ"></p>
  <p id="AFoy">Теперь запускаем скрипт на основе</p>
  <blockquote id="97Xs">./primary-transition.sh</blockquote>
  <p id="uXYk"></p>
  <p id="2NIP">После запускаем скрипт на резерве</p>
  <blockquote id="3wfO">./secondary-transition.sh</blockquote>
  <p id="Zyp9"></p>
  <p id="pOko"></p>
  <h3 id="M4aQ">По всем вопросам, можете не стесняться и мне писать <a href="https://t.me/toha_crypto" target="_blank">https://t.me/toha_crypto</a> буду рад помочь, помогу поставить или объясню.</h3>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@solanamb/projectx</guid><link>https://teletype.in/@solanamb/projectx?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><comments>https://teletype.in/@solanamb/projectx?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb#comments</comments><dc:creator>solanamb</dc:creator><title>Установка ноды Solana Jito + ProjectX Relayer</title><pubDate>Fri, 16 Aug 2024 15:20:10 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/7e/ee/7eeeb729-e760-4cdc-9e67-4a85f8294bbe.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/92/44/9244dfea-dfb1-483f-a762-7c53ae31e01c.png"></img>Я решил создать руководство по установке ноды Solana на Jito клиенте с реле от ProjectX. По состоянию на 16 августа 2024 года, проект показал хорошую доходность, выполнив 17 эпох. Самая низкая доходность составила 5.19 SOL, а самая высокая — 10.77 SOL. Выплаты распределяются в соотношении 75% на 25%. Платежи поступают своевременно, в начале следующей эпохи, что мне особенно нравится, в отличие от некоторых других проектов, в которых я участвовал ранее.]]></description><content:encoded><![CDATA[
  <figure id="J9py" class="m_column">
    <img src="https://img2.teletype.in/files/92/44/9244dfea-dfb1-483f-a762-7c53ae31e01c.png" width="2732" />
  </figure>
  <p id="tqct">Я решил создать руководство по установке ноды Solana на Jito клиенте с реле от ProjectX. По состоянию на 16 августа 2024 года, проект показал хорошую доходность, выполнив 17 эпох. Самая низкая доходность составила 5.19 SOL, а самая высокая — 10.77 SOL. Выплаты распределяются в соотношении 75% на 25%. Платежи поступают своевременно, в начале следующей эпохи, что мне особенно нравится, в отличие от некоторых других проектов, в которых я участвовал ранее.</p>
  <p id="Zj9f"></p>
  <p id="4AEl">Приступим к установки. </p>
  <p id="C32A"></p>
  <p id="9dIe">1) Необходимо зарегестрироваться в <a href="https://projectx.run/register/ClxJqNuoj3hBJ2Z4" target="_blank">личном кабинете</a>. (В ссылке добавлена моя рефка, если не хотите использовать ее, можете <a href="https://www.projectx.run" target="_blank">регистрироваться без нее</a>).  Во вкладке Profile указываем свой телеграм и адрес кошелька на который планируете получать награды. Далее во вкладке Validators прописываем </p>
  <p id="yAoL">Name - имя ноды</p>
  <p id="PsWS">Identity - паблик кей валидатора</p>
  <p id="FeQt">Payout - адрес кошелька куда будут приходить награды. </p>
  <p id="f6xO">Не забываем нажать кнопку сохранить. </p>
  <p id="noGm"></p>
  <p id="IoEm">2) Приступаем к установки Jito клиента. Если клиент Jito стоит, то можно пропустить этот пункт. Вам нужно будет только заменить relayer-url на локальный командой ~/.local/share/solana/install/active_release/bin/solana-validator --ledger /root/ledger/ set-relayer-config --relayer-url <a href="http://127.0.0.1:11226" target="_blank">http://127.0.0.1:11226</a> и приступать к установки самого реле (Пункт 5)</p>
  <p id="r75y">Выполняем ряд команд:</p>
  <blockquote id="DgWs">sudo apt-get update</blockquote>
  <blockquote id="TdcK">sudo apt-get upgrade</blockquote>
  <blockquote id="PIIj">sh -c &quot;$(curl -sSfL <a href="https://release.jito.wtf/v1.17.33-jito/install" target="_blank">https://release.jito.wtf/v1.18.22-jito/install</a>)&quot;</blockquote>
  <blockquote id="zxOI">export PATH=&quot;$HOME/.local/share/solana/install/active_release/bin:$PATH&quot;</blockquote>
  <blockquote id="yAxr">solana config set --url <a href="https://api.mainnet-beta.solana.com" target="_blank">https://api.mainnet-beta.solana.com</a></blockquote>
  <blockquote id="p4JW">solana config set --keypair $HOME/mainnet-validator-keypair.json</blockquote>
  <blockquote id="DF08">bash &lt;(curl -s <a href="https://raw.githubusercontent.com/DOUBLE-TOP/guides/main/solana/tune.sh" target="_blank">https://raw.githubusercontent.com/DOUBLE-TOP/guides/main/solana/tune.sh</a>)</blockquote>
  <blockquote id="jX3i">Проверяем командой баланс, должен отобразиться если все хорошо<br /><br />solana balance</blockquote>
  <p id="UOJa"></p>
  <p id="OUqN">После создаем сервисник одной командой </p>
  <p id="g1Pz"></p>
  <blockquote id="ajzD">cat &gt; /etc/systemd/system/solana.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=<a href="https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password" target="_blank">https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password</a>&quot;<br />ExecStart=$HOME/.local/share/solana/install/active_release/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/mainnet-validator-keypair.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--full-snapshot-interval-slots 25000 \\<br />--incremental-snapshot-interval-slots 500 \\<br />--accounts-hash-interval-slots 500 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 2 \\<br />--maximum-local-snapshot-age 2500 \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--no-snapshot-fetch \\<br />--tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \\<br />--tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \\<br />--merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \\<br />--commission-bps 1000 \\<br />--relayer-url http://127.0.0.1:11226 \\<br />--block-engine-url <a href="https://frankfurt.mainnet.block-engine.jito.wtf" target="_blank">https://frankfurt.mainnet.block-engine.jito.wtf</a> \\<br />--shred-receiver-address 145.40.93.84:1002 \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF</blockquote>
  <p id="b9ZZ"></p>
  <p id="hdcn">Далее выполняем:</p>
  <p id="FFQB"></p>
  <blockquote id="4ZT6">sudo systemctl daemon-reload</blockquote>
  <blockquote id="TQq7">sudo systemctl enable solana</blockquote>
  <p id="MEnR"></p>
  <p id="bDgl">3) Скачиваем спэп через Snapshot Finder</p>
  <blockquote id="KGjq">sudo apt-get update \<br />&amp;&amp; sudo apt-get install python3-venv git -y \<br />&amp;&amp; git clone <a href="https://github.com/c29r3/solana-snapshot-finder.git" target="_blank">https://github.com/c29r3/solana-snapshot-finder.git</a> \<br />&amp;&amp; cd solana-snapshot-finder \<br />&amp;&amp; python3 -m venv venv \<br />&amp;&amp; source ./venv/bin/activate \<br />&amp;&amp; pip3 install -r requirements.txt &amp;&amp; cd $HOME</blockquote>
  <p id="YIr5"></p>
  <blockquote id="jzRe">source $HOME/solana-snapshot-finder/venv/bin/activate</blockquote>
  <blockquote id="5rDP">python3 $HOME/solana-snapshot-finder/snapshot-finder.py --snapshot_path $HOME/ledger</blockquote>
  <p id="fpFC">ждем окончания загрузки снэпа и его распаковки примерно 10+- минут и стартуем ноду</p>
  <blockquote id="aVP0">sudo systemctl solana forge</blockquote>
  <p id="UWpd"></p>
  <p id="Kuyk">4) Настраиваем ротацию логов для forge</p>
  <blockquote id="dzkZ">cat &gt; logrotate.sol &lt;&lt;EOF<br />$HOME/solana.log {<br />rotate 3<br />daily<br />missingok<br />compress<br />compresscmd /usr/bin/bzip2<br />compressext .bz2<br />postrotate<br />systemctl kill -s USR1 solana.service<br />endscript<br />}<br />EOF</blockquote>
  <p id="C86i"></p>
  <blockquote id="fqPo">sudo cp logrotate.sol /etc/logrotate.d/sol</blockquote>
  <p id="KMLk"></p>
  <p id="fXri">Проверяем все ли нормально командой</p>
  <blockquote id="wbVo">solana-validator monitor</blockquote>
  <p id="2yuH">должно быть так как на скрине </p>
  <figure id="lrEO" class="m_retina">
    <img src="https://img2.teletype.in/files/92/45/92456b62-4ffe-409b-b7df-eacba9550ff1.png" width="631" />
  </figure>
  <blockquote id="rteo">Это означает, что леджер начал загружаться и ждем теперь когда нода начнет догонять высоту. Проверить это можно командой:<br /><br />solana catchup --our-localhost --follow --log</blockquote>
  <p id="KRJP">Будет так как на скрине. </p>
  <figure id="Rloe" class="m_retina">
    <img src="https://img3.teletype.in/files/ae/3e/ae3e3b4a-e302-4db4-b0d1-e3cb525cd0f4.png" width="694" />
  </figure>
  <p id="AHmD">Ждем когда нода догонит и после этого приступаем к установки реле. </p>
  <p id="kl6J"></p>
  <p id="Wb1B">5) Установка ProjectX Relayer. Выполняем рад команд:</p>
  <p id="BLAY"></p>
  <blockquote id="Tx2q">sudo apt update &amp;&amp; sudo apt upgrade -y</blockquote>
  <blockquote id="Dl4b">sudo apt install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler -y</blockquote>
  <blockquote id="ZrRT">curl --proto &#x27;=https&#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y</blockquote>
  <blockquote id="gdCr">source $HOME/.cargo/env</blockquote>
  <p id="45fF"></p>
  <blockquote id="4Ffs">cd $HOME</blockquote>
  <blockquote id="nWLt">git clone https://github.com/projectxsol/lite-relayer.git</blockquote>
  <blockquote id="gKtq">cd lite-relayer</blockquote>
  <blockquote id="096C">git fetch</blockquote>
  <blockquote id="yXV2">git submodule update --init --recursive</blockquote>
  <blockquote id="9CHU">cargo build --release --bin transaction-relayer</blockquote>
  <p id="Z2nK"></p>
  <p id="o2vB">Генерируем ключи для реле, их в джито регистрировать не нужно. Не забываем записать их.</p>
  <blockquote id="rkUR">mkdir -p $HOME/.relayer-config</blockquote>
  <blockquote id="4R5V">solana-keygen new -o $HOME/.relayer-config/relayer.json</blockquote>
  <blockquote id="aVF6">openssl genrsa -out $HOME/.relayer-config/auth 1024</blockquote>
  <blockquote id="IDsn">openssl rsa -in $HOME/.relayer-config/auth -pubout -out $HOME/.relayer-config/auth.pub</blockquote>
  <p id="GFsS"></p>
  <p id="iYrR"></p>
  <p id="iFjw">Далее создаем сервисник для реле. Там где $X_BLOCK_ENGINE нужно заменить на нужный.<br /><br />New york - http://ny.block-engine.com:11227<br />Falkenstein - http://de.block-engine.com:11227<br />Tokyo - http://jp.block-engine.com:11227</p>
  <p id="Ultr"></p>
  <blockquote id="9Fbb">tee $HOME/relayer.service &gt; /dev/null &lt;&lt;EOF<br />[Unit]<br />Description=X Transaction Relayer<br />Requires=network-online.target<br />After=network-online.target<br />[Service]<br />User=$USER<br />Type=simple<br />ExecStart=$HOME/lite-relayer/target/release/transaction-relayer \<br />--keypair-path $HOME/.relayer-config/relayer.json \<br />--signing-key-pem-path $HOME/.relayer-config/auth \<br />--verifying-key-pem-path $HOME/.relayer-config/auth.pub \<br />--webserver-bind-addr 127.0.0.1:5050 \<br />--grpc-bind-ip 127.0.0.1 \<br />--x-block-engine-url $X_BLOCK_ENGINE<br />RestartSec=10<br />Restart=on-failure<br />[Install]<br />WantedBy=multi-user.target<br />EOF</blockquote>
  <p id="etcR"></p>
  <blockquote id="85VS">sudo mv $HOME/relayer.service /etc/systemd/system/</blockquote>
  <p id="lqVp"></p>
  <blockquote id="nahf">sudo systemctl daemon-reload<br />sudo systemctl enable relayer.service<br />sudo systemctl restart relayer</blockquote>
  <p id="njAk">проверяем логи реле, должно быть без ошибок.</p>
  <blockquote id="b3jb">sudo journalctl -u relayer.service -f</blockquote>
  <p id="GZCV"></p>
  <p id="u60j">Через 5 минут проверяем конект на сайте. И ждем награды. </p>
  <figure id="QmKU" class="m_retina">
    <img src="https://img2.teletype.in/files/1d/67/1d67acd3-06ef-4511-83a4-3b2845090d79.png" width="375" />
  </figure>
  <p id="xoVa"></p>
  <p id="QyWV"></p>
  <p id="sha3"><strong>По всем вопросам, можете не стесняться и мне писать <a href="https://t.me/toha_crypto" target="_blank">https://t.me/toha_crypto</a> буду рад помочь, помогу поставить или объясню.</strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@solanamb/ForgeRelayer</guid><link>https://teletype.in/@solanamb/ForgeRelayer?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><comments>https://teletype.in/@solanamb/ForgeRelayer?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb#comments</comments><dc:creator>solanamb</dc:creator><title>Установка ноды Solana Jito + Forge Relayer  </title><pubDate>Wed, 15 May 2024 11:33:30 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/8b/ff/8bffd973-ff92-4fd7-a941-ac094d0afe4f.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/1e/0e/1e0e3980-d24f-4ce8-822c-883fd958735a.png"></img>Регистрируемся в ЛИЧНОМ КАБИНЕТЕ]]></description><content:encoded><![CDATA[
  <figure id="guYx" class="m_column">
    <img src="https://img2.teletype.in/files/1e/0e/1e0e3980-d24f-4ce8-822c-883fd958735a.png" width="1264" />
  </figure>
  <h3 id="ax5g"><strong><u>Гайд НЕ АКТУАЛЬНЫЙ Я УШЕЛ В НОВЫЙ ПУЛ</u></strong></h3>
  <p id="ufo8"></p>
  <p id="4OjR"><a href="https://teletype.in/@solanamb/projectx" target="_blank">https://teletype.in/@solanamb/projectx</a></p>
  <p id="ojXB"></p>
  <p id="jW4L"><strong><s>Регистрируемся в <a href="http://app.solanaforge.xyz/register/yStHB1TQREIsB99o" target="_blank">ЛИЧНОМ КАБИНЕТЕ </a></s></strong></p>
  <p id="9y21"><s>в ссылке зашита моя рефка, я получу за нее 5%.</s></p>
  <p id="aIit"><s>Добавляем свой Identity, кошелёк для выплат.</s></p>
  <p id="Xbs4"></p>
  <p id="w1ep"><s>1) Подкладываем ключи на сервер. </s></p>
  <p id="hTH6"><s>mainnet-validator-keypair.json <br />vote-account-keypair.json</s></p>
  <p id="Mqw4"></p>
  <p id="nVX9"><s>2) Выполняем ряд команд</s></p>
  <blockquote id="DgWs"><s>sudo apt-get update</s></blockquote>
  <blockquote id="TdcK"><s>sudo apt-get upgrade</s></blockquote>
  <p id="erie"></p>
  <blockquote id="PIIj"><s>sh -c &quot;$(curl -sSfL <a href="https://release.jito.wtf/v1.17.33-jito/install" target="_blank">https://release.jito.wtf/v1.17.34-jito/install</a>)&quot;</s></blockquote>
  <p id="A9G7"></p>
  <blockquote id="zxOI"><s>export PATH=&quot;$HOME/.local/share/solana/install/active_release/bin:$PATH&quot;</s></blockquote>
  <blockquote id="yAxr"><s>solana config set --url <a href="https://api.mainnet-beta.solana.com" target="_blank">https://api.mainnet-beta.solana.com</a></s></blockquote>
  <blockquote id="p4JW"><s>solana config set --keypair $HOME/mainnet-validator-keypair.json</s></blockquote>
  <p id="bjpP"></p>
  <p id="Wkdg"><s>3) Запускаем систюнер</s></p>
  <p id="MTGD"></p>
  <blockquote id="8Wbw"><s>bash &lt;(curl -s <a href="https://raw.githubusercontent.com/DOUBLE-TOP/guides/main/solana/tune.sh" target="_blank">https://raw.githubusercontent.com/DOUBLE-TOP/guides/main/solana/tune.sh</a>)</s></blockquote>
  <p id="itBo"></p>
  <p id="aJrG"><s>4) Проверяем, должен отобразиться ваш баланс</s></p>
  <p id="Drei"></p>
  <blockquote id="TKpn"><s>solana balance</s></blockquote>
  <p id="ckPp"></p>
  <p id="qBzb"><s>5) Создаем сервис для запуска ноды</s></p>
  <p id="5QRg"></p>
  <blockquote id="4ZT6"><s>cat &gt; /etc/systemd/system/forge.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=<a href="https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password" target="_blank">https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password</a>&quot;<br />ExecStart=$HOME/.local/share/solana/install/active_release/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/mainnet-validator-keypair.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--full-snapshot-interval-slots 25000 \\<br />--incremental-snapshot-interval-slots 500 \\<br />--accounts-hash-interval-slots 500 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 2 \\<br />--maximum-local-snapshot-age 2500 \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--no-snapshot-fetch \\<br />--tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \\<br />--tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \\<br />--merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \\<br />--commission-bps 10000 \\<br />--relayer-url <a href="http://frankfurt.mainnet.relayer.jito.wtf:8100" target="_blank">http://frankfurt.mainnet.relayer.jito.wtf:8100</a> \\<br />--block-engine-url <a href="https://frankfurt.mainnet.block-engine.jito.wtf" target="_blank">https://frankfurt.mainnet.block-engine.jito.wtf</a> \\<br />--shred-receiver-address 145.40.93.84:1002 \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF</s></blockquote>
  <p id="BNBl"></p>
  <blockquote id="tc2t"><s>sudo systemctl daemon-reload</s></blockquote>
  <blockquote id="TQq7"><s>sudo systemctl enable forge</s></blockquote>
  <p id="KS63"></p>
  <p id="QRkN"><s>6) Скачиваем спэп через Snapshot Finder</s></p>
  <p id="N9gI"></p>
  <blockquote id="jg8q"><s>sudo apt-get update \<br />&amp;&amp; sudo apt-get install python3-venv git -y \<br />&amp;&amp; git clone <a href="https://github.com/c29r3/solana-snapshot-finder.git" target="_blank">https://github.com/c29r3/solana-snapshot-finder.git</a> \<br />&amp;&amp; cd solana-snapshot-finder \<br />&amp;&amp; python3 -m venv venv \<br />&amp;&amp; source ./venv/bin/activate \<br />&amp;&amp; pip3 install -r requirements.txt &amp;&amp; cd $HOME</s></blockquote>
  <p id="T47X"></p>
  <blockquote id="jzRe"><s>source $HOME/solana-snapshot-finder/venv/bin/activate</s></blockquote>
  <blockquote id="5rDP"><s>python3 $HOME/solana-snapshot-finder/snapshot-finder.py --snapshot_path $HOME/ledger</s></blockquote>
  <p id="m3qn"></p>
  <p id="fpFC"><s>ждем окончания загрузки снэпа и его распаковки примерно 10+- минут и стартуем ноду</s></p>
  <p id="RvNk"></p>
  <blockquote id="aVP0"><s>sudo systemctl restart forge</s></blockquote>
  <p id="uQ69"></p>
  <p id="Kuyk"><s>7) Настраиваем ротацию логов для forge</s></p>
  <p id="jnZL"></p>
  <blockquote id="dzkZ"><s>cat &gt; logrotate.sol &lt;&lt;EOF<br />$HOME/solana.log {<br />rotate 3<br />daily<br />missingok<br />compress<br />compresscmd /usr/bin/bzip2<br />compressext .bz2<br />postrotate<br />systemctl kill -s USR1 forge.service<br />endscript<br />}<br />EOF</s></blockquote>
  <p id="R3Yg"></p>
  <blockquote id="fqPo"><s>sudo cp logrotate.sol /etc/logrotate.d/sol</s></blockquote>
  <p id="Mwz1"></p>
  <blockquote id="UiJW"><s>sudo logrotate -f /etc/logrotate.d/sol</s></blockquote>
  <p id="HJBe"></p>
  <p id="fXri"><s>Проверяем все ли нормально командой</s></p>
  <p id="cR1i"></p>
  <blockquote id="wbVo"><s>solana-validator monitor</s></blockquote>
  <p id="E7X0"></p>
  <p id="2yuH"><s>должно быть так </s></p>
  <figure id="3RzM" class="m_column">
    <img src="https://img1.teletype.in/files/8a/7a/8a7a16c1-de0b-4869-86b6-ba0696f6428d.png" width="832" />
  </figure>
  <p id="Ph0T"><s>Ждем когда нода начнет догонять. </s></p>
  <p id="eWTE"></p>
  <blockquote id="nWdv"><s>solana catchup --our-localhost --follow --log</s></blockquote>
  <figure id="7PAH" class="m_column">
    <img src="https://img1.teletype.in/files/cd/ca/cdca2e7f-0180-4c1a-a4c6-6de31d1f7107.png" width="2810" />
  </figure>
  <p id="ULDr"></p>
  <p id="uO5Z"><s>Посмотреть логи можно командой:</s></p>
  <p id="DPIC"></p>
  <blockquote id="ZDJl"><s>tail -f solana.log</s></blockquote>
  <p id="qMNt"></p>
  <p id="6maj"><s>8) Устанавливаем Relayer</s></p>
  <p id="FWHB"></p>
  <pre id="SGLA">curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup component add rustfmt
rustup update
sudo apt-get update
sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler</pre>
  <p id="WyAa"></p>
  <p id="EC85"><s>Склонировать репозиторий</s></p>
  <p id="4hUT"></p>
  <blockquote id="ykDh"><s>git clone https://github.com/solana-forge/forge-relayer.git</s></blockquote>
  <blockquote id="uCxw"><s>cd forge-relayer</s></blockquote>
  <blockquote id="irSD"><s>git submodule update -i -r</s></blockquote>
  <blockquote id="jBkv"><s>cargo build -r --bin transaction-relayer</s></blockquote>
  <blockquote id="Ewag"><s>git fetch</s></blockquote>
  <blockquote id="jKLS"><s>git checkout dd132e98a513c1fce568e0322a6d62021fb87d1f</s></blockquote>
  <blockquote id="nDcr"><s>git submodule update -i -r</s></blockquote>
  <blockquote id="ltTU"><s>cargo build -r --bin transaction-relayer</s></blockquote>
  <blockquote id="xU5W"><s>~/forge-relayer/target/release/transaction-relayer -V</s></blockquote>
  <p id="hIeo"></p>
  <p id="z8mm"><s>версия должна быть 0.1.14</s></p>
  <p id="Skff"></p>
  <p id="uyFJ"><s>Сгенерировать ключи (сохраните мнемоники и адрес кошелька relayer.json - это будет ваш адрес релеера).</s></p>
  <p id="xAtu"></p>
  <blockquote id="RD6p"><s>cd</s></blockquote>
  <blockquote id="Dr7L"><s>mkdir relayer-config</s></blockquote>
  <blockquote id="efQe"><s>solana-keygen new -o relayer-config/relayer.json</s></blockquote>
  <blockquote id="mif7"><s>openssl genrsa -out relayer-config/auth 1024</s></blockquote>
  <blockquote id="OVX6"><s>openssl rsa -in relayer-config/auth -pubout -out relayer-config/auth.pub</s></blockquote>
  <p id="8vs5"></p>
  <p id="E74R"><s>Ключ нужно будет прописать в кабинете и поставить галочку или снять ее если Вы хотите работать без сэндвичей.  (смотри скрин)</s></p>
  <figure id="6VIC" class="m_column">
    <img src="https://img4.teletype.in/files/38/5c/385c75cc-d3b0-4e81-b10e-086f2b286748.png" width="2772" />
  </figure>
  <p id="ngPM"></p>
  <p id="oMp2"><s>Теперь нужно создать сервис-файл</s></p>
  <p id="lWR6"><strong><s>(! Предварительно поставьте адреса блок-энжинов из списка !)</s></strong></p>
  <p id="oh2V"><s>Список релееров блок-энжинов для сервис-файла</s></p>
  <p id="Dss1"><s>http://tokyo.solanaforge.xyz</s></p>
  <p id="53xG"><s>http://la.solanaforge.xyz</s></p>
  <p id="qgJ0"><s>http://miami.solanaforge.xyz</s></p>
  <p id="XdAW"><s>http://ams.solanaforge.xyz</s></p>
  <p id="KOwP"><s>http://de.solanaforge.xyz</s></p>
  <p id="og2Q"><a href="http://ru.solanaforge.xyz" target="_blank"><s>http://ru.solanaforge.xyz</s></a></p>
  <p id="kKdw"></p>
  <p id="hZk8"><s>Данный сервис-файл подразумевает, что у Вас висит gossip на порту 8000. Если Вы его меняли специально, поставьте порт gossip+9 (8000 + 9 = 8009) в строке tpu-quic-port</s></p>
  <p id="sQcx"><s>(скопируйте команду себе в текстовый редактор, поставьте свои значения и целиком запустите её в терминале)</s></p>
  <p id="K2Bv"></p>
  <p id="X7Ij"><s>смотрим на каком порту gossip</s></p>
  <blockquote id="LyBy"><s>solana gossip | grep &lt;identity&gt;</s></blockquote>
  <p id="A6sY"></p>
  <blockquote id="KwcT"><s>ss -tunlp</s></blockquote>
  <p id="vEUI"></p>
  <blockquote id="pGC1"><s>tee $HOME/relayer.service &gt; /dev/null &lt;&lt;EOF<br />[Unit]<br />Description=Forge Relayer<br />After=network.target<br />[Service]<br />User=$USER<br />Type=simple<br />ExecStart=$HOME/forge-relayer/target/release/transaction-relayer --keypair-path $HOME/relayer-config/relayer.json \<br />--signing-key-pem-path $HOME/relayer-config/auth \<br />--verifying-key-pem-path $HOME/relayer-config/auth.pub \<br />--webserver-bind-addr 127.0.0.1:5050 \<br />--tpu-port 11803 \<br />--tpu-quic-port 11809 \<br />--forge-block-engine-url <a href="http://de.solanaforge.xyz:11227" target="_blank">http://de.solanaforge.xyz:11227</a> \<br />--grpc-bind-ip 127.0.0.1 \<br />--forge-block-engine-auth-service-url <a href="http://de.solanaforge.xyz:11227" target="_blank">http://de.solanaforge.xyz:11227</a><br />RestartSec=10<br />Restart=on-failure<br />LimitNOFILE=1000000<br />[Install]<br />WantedBy=multi-user.target<br />EOF</s></blockquote>
  <p id="AuWx"></p>
  <p id="ofI1"><s>Далее переносим сервис-файл в systemd директорию</s></p>
  <p id="psLg"></p>
  <blockquote id="EWhQ"><s>sudo mv $HOME/relayer.service /etc/systemd/system/</s></blockquote>
  <p id="mwjC"></p>
  <p id="cZ4t"><s>Теперь меняем основной сервис валидатора forge.service</s></p>
  <p id="gt76"><s>Нужно добавить 2 строки :</s></p>
  <p id="00mm"></p>
  <pre id="Dba7">--account-index program-id \</pre>
  <pre id="lOKu">--account-index-include-key AddressLookupTab1e1111111111111111111111111</pre>
  <p id="3OOp"></p>
  <p id="70wS"></p>
  <p id="o6A8"><s>И изменить строку релеера на локалхост</s></p>
  <pre id="4EBF">--relayer-url http://127.0.0.1:11226 \</pre>
  <p id="nIRb"></p>
  <blockquote id="76SA"><s>У меня выглядит это вот так:<br /><br />cat &gt; /etc/systemd/system/forge.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=<a href="https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password" target="_blank">https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password</a>&quot;<br />ExecStart=$HOME/.local/share/solana/install/active_release/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/mainnet-validator-keypair.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--full-snapshot-interval-slots 25000 \\<br />--incremental-snapshot-interval-slots 5000 \\<br />--accounts-hash-interval-slots 5000 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 2 \\<br />--maximum-local-snapshot-age 6500 \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--no-snapshot-fetch \\<br />--tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \\<br />--tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \\<br />--merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \\<br />--commission-bps 10000 \\<br />--relayer-url <a href="http://127.0.0.1:11226" target="_blank">http://127.0.0.1:11226</a> \\<br />--block-engine-url <a href="https://frankfurt.mainnet.block-engine.jito.wtf" target="_blank">https://frankfurt.mainnet.block-engine.jito.wtf</a> \\<br />--shred-receiver-address 145.40.93.84:1002 \\<br />--account-index program-id \\<br />--account-index-include-key AddressLookupTab1e1111111111111111111111111 \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF</s></blockquote>
  <p id="Ekao"></p>
  <blockquote id="yDIb"><s>sudo systemctl daemon-reload</s></blockquote>
  <p id="sm0V"></p>
  <blockquote id="bj9r"><s>sudo systemctl enable relayer.service</s></blockquote>
  <p id="dIrz"></p>
  <blockquote id="vK6H"><s>solana-validator wait-for-restart-window &amp;&amp; sudo systemctl restart forge &amp;&amp; solana-validator monitor</s></blockquote>
  <p id="GXjn"></p>
  <p id="nwEr"><s>После синка стартуем релеер</s></p>
  <p id="oIST"></p>
  <blockquote id="HAxJ"><s>sudo systemctl start relayer.service</s></blockquote>
  <p id="KT2Y"></p>
  <p id="wh9Y"></p>
  <p id="vGLn"><s>Логи реле</s></p>
  <blockquote id="8ef8"><s>journalctl -fu relayer.service</s></blockquote>
  <p id="yOUS"></p>
  <p id="cWIJ"><s>посмотреть тпу</s></p>
  <blockquote id="gWvo"><s>solana-validator contact-info</s></blockquote>
  <p id="p6wC"></p>
  <p id="0Gi8"></p>
  <h2 id="VTtY"><strong><s>По всем вопросам, можете не стесняться и мне писать <a href="https://t.me/toha_crypto" target="_blank">https://t.me/toha_crypto</a> буду рад помочь, помогу поставить или объясню как поставить. </s></strong></h2>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@solanamb/forge-jito</guid><link>https://teletype.in/@solanamb/forge-jito?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><comments>https://teletype.in/@solanamb/forge-jito?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb#comments</comments><dc:creator>solanamb</dc:creator><title>Установка JITO + Forge                </title><pubDate>Tue, 23 Apr 2024 11:44:04 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/84/60/84603e21-64ad-4849-b97d-2c017f7ccd6a.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/6f/6e/6f6ef0de-357b-4c7d-8e35-c712149dbc58.png"></img>1) Регистрируемся в ЛИЧНОМ КАБИНЕТЕ]]></description><content:encoded><![CDATA[
  <figure id="qq8W" class="m_retina">
    <img src="https://img3.teletype.in/files/6f/6e/6f6ef0de-357b-4c7d-8e35-c712149dbc58.png" width="693" />
  </figure>
  <h3 id="ax5g"><strong>Гайд НЕ АКТУАЛЬНЫЙ Я УШЕЛ В НОВЫЙ ПУЛ</strong></h3>
  <h3 id="4OjR"><a href="https://teletype.in/@solanamb/projectx" target="_blank">https://teletype.in/@solanamb/projectx</a></h3>
  <p id="ZHgI"></p>
  <p id="kC7D"></p>
  <p id="FbwD"></p>
  <p id="yvPr"><s>Советую перед установкой на свой мейн, протестировать на другом валидаторе, для этого вы можете арендовать на час сервер создав на нем ключи валидатора, пополнить на 0.1 солану и запустить клиент на котором вы сейчас едите и пробовать переходить по гайду.</s></p>
  <p id="QZxE"></p>
  <p id="ax5g"><strong><s>1) Регистрируемся в <a href="http://app.solanaforge.xyz/register/yStHB1TQREIsB99o" target="_blank">ЛИЧНОМ КАБИНЕТЕ  </a></s></strong></p>
  <p id="9y21"><s>в ссылке зашита моя рефка, я получу за нее 5%. </s></p>
  <p id="aIit"><s>Добавляем свой Identity, кошелёк для выплат.</s></p>
  <p id="eOXp"></p>
  <p id="vzlO"><s>2) Начинаем установку</s></p>
  <pre id="X8zN" data-lang="bash">curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup component add rustfmt
rustup update
sudo apt-get update
sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler</pre>
  <p id="yvDl"></p>
  <p id="0tlk"><s>Далее билдим клиент - вводим команды по одной </s></p>
  <p id="BYf1"></p>
  <blockquote id="d1rE"><s>TAG=&quot;v1.17.31-jito&quot;<br /><br />cd ~/ &amp;&amp; rm -rf ~/solana-forge &amp;&amp; mkdir ~/solana-forge<br /><br />cd ~/solana-forge/<br /><br />git clone https://github.com/solana-forge/jito-solana/ solana<br /><br />cd solana<br /><br />git fetch<br /><br />git checkout tags/${TAG}<br /><br />git submodule update --init --recursive<br /><br />CI_COMMIT=$(git rev-parse HEAD) scripts/cargo-install-all.sh --validator-only ~/.local/share/solana/install/releases/&quot;${TAG}&quot;<br /><br />ln -sfn ~/.local/share/solana/install/releases/&quot;${TAG}&quot; ~/.local/share/solana/install/releases/forge<br /><br />~/.local/share/solana/install/releases/forge/bin/solana-validator --version</s></blockquote>
  <p id="4VWj"></p>
  <p id="wPAO"></p>
  <p id="iEwG"><s>3) Делаем с ноды пинг ближайших серверов Forge relayer:</s></p>
  <p id="CNi8"></p>
  <pre id="pefV" data-lang="bash">ping ДОМЕН</pre>
  <p id="VjRk"></p>
  <p id="1iTK"><s>Выбираем самый лучший из этого списка:</s></p>
  <p id="aAGY"><s>http://tokyo.solanaforge.xyz<br />http://la.solanaforge.xyz<br />http://miami.solanaforge.xyz<br />http://ams.solanaforge.xyz</s></p>
  <p id="hQCu"></p>
  <p id="6J6b"><s>Теперь нужно будет подготовить сервисник (у меня в гайде Frankfurt и http://ams.solanaforge.xyz) ниже инструкция по добавлению в сервис-файл:</s></p>
  <p id="g6ui"></p>
  <pre id="CMkP">--relayer-url RELAYER_URL_из_списка_ниже \
--block-engine-url BLOCK_ENGINE_URL_из_списка_ниже \
--shred-receiver-address SHRED_RECEIVER_ADDR_из_списка_ниже \
--tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
--tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
--merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \
--commission-bps 10000 \</pre>
  <p id="FYDa"></p>
  <p id="OQdz"><s>Параметры для сервиса нужно выбрать из списка локаций вашего валидатора</s></p>
  <p id="ASOM"></p>
  <p id="6HKi"><s>Amsterdam</s></p>
  <pre id="KRS0">RELAYER_URL=http://ams.solanaforge.xyz:11226
BLOCK_ENGINE_URL=https://amsterdam.mainnet.block-engine.jito.wtf
SHRED_RECEIVER_ADDR=74.118.140.240:1002</pre>
  <p id="Tz7P"></p>
  <p id="16gC"><s>Frankfurt</s></p>
  <pre id="hLRJ">RELAYER_URL=http://ams.solanaforge.xyz:11226
BLOCK_ENGINE_URL=https://frankfurt.mainnet.block-engine.jito.wtf
SHRED_RECEIVER_ADDR=145.40.93.84:1002</pre>
  <p id="Tg2Y"></p>
  <p id="JoFI"><s>New York and East USA</s></p>
  <pre id="93RO">RELAYER_URL=http://miami.solanaforge.xyz:11226
BLOCK_ENGINE_URL=https://ny.mainnet.block-engine.jito.wtf
SHRED_RECEIVER_ADDR=141.98.216.96:1002</pre>
  <p id="83ux"></p>
  <p id="ECJN"><s>LA and West USA</s></p>
  <pre id="DPUW">RELAYER_URL=http://la.solanaforge.xyz:11226
BLOCK_ENGINE_URL=https://ny.mainnet.block-engine.jito.wtf
SHRED_RECEIVER_ADDR=141.98.216.96:1002</pre>
  <p id="6sxj"></p>
  <p id="3nUU"><s>Tokyo</s></p>
  <pre id="83wG">RELAYER_URL=http://tokyo.solanaforge.xyz:11226
BLOCK_ENGINE_URL=https://tokyo.mainnet.block-engine.jito.wtf
SHRED_RECEIVER_ADDR=202.8.9.160:1002</pre>
  <p id="XZ6A"></p>
  <p id="PE0H"><strong><u><s>Обратите внимание, что в сервиснике есть ключ --commission-bps 10000 , это комиссия джито, для большего профита я поставить 100%. Если хотите уменьшить измените его.</s></u></strong></p>
  <p id="i22o"></p>
  <p id="3wlH"><s>4) Создаем сервисник (одной командой) в нем меняем параметры, которые вы определили выше. У меня в нем Frankfurt, а вы меняете на свои и не забываете прописать порт! Так же обратите внимание, что в сервиснике мы добавили Environment и изменили путь ExecStart. Еще обратите внимание на пути к леджеру, ключам (у меня все в руте у вас может быть в папке солана).</s></p>
  <p id="8THM"></p>
  <p id="Aloz"></p>
  <blockquote id="zDBD"><s>cat &gt; /etc/systemd/system/forge.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=<a href="https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password" target="_blank">https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password</a>&quot;<br />Environment=&quot;PATH=/bin:/usr/bin:/root/.local/share/solana/install/releases/forge/bin&quot;<br />ExecStart=/root/.local/share/solana/install/releases/forge/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/mainnet-validator-keypair.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--full-snapshot-interval-slots 25000 \\<br />--incremental-snapshot-interval-slots 5000 \\<br />--accounts-hash-interval-slots 5000 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 2 \\<br />--maximum-local-snapshot-age 6500 \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--no-snapshot-fetch \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \\<br />--tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \\<br />--merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \\<br />--commission-bps 10000 \\<br />--relayer-url <a href="http://ams.solanaforge.xyz:11226" target="_blank">http://ams.solanaforge.xyz:11226</a> \\<br />--block-engine-url <a href="https://frankfurt.mainnet.block-engine.jito.wtf" target="_blank">https://frankfurt.mainnet.block-engine.jito.wtf</a> \\<br />--shred-receiver-address 145.40.93.84:1002 \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF</s></blockquote>
  <p id="Jpkk"></p>
  <blockquote id="GIap"><s>sudo systemctl daemon-reload</s></blockquote>
  <p id="5X6g"></p>
  <p id="z86X"><s>И проверяем правильно ли лег сервисник</s></p>
  <p id="7tag"></p>
  <blockquote id="Yk4C"><s>cat /etc/systemd/system/forge.service</s></blockquote>
  <p id="sthB"></p>
  <p id="ewT7"><s>У нас теперь будет 2 сервисника SOLANA и FORGE</s></p>
  <p id="hpzr"></p>
  <p id="Tn6h"><s>5) Выбираем окно между блоками и запускаемся. </s></p>
  <p id="4Cli"></p>
  <blockquote id="d43F"><s>sudo systemctl enable forge.service</s></blockquote>
  <p id="qfVk"></p>
  <blockquote id="Orpj"><s>solana-validator wait-for-restart-window &amp;&amp; sudo systemctl stop solana &amp;&amp; systemctl disable solana &amp;&amp; systemctl start forge &amp;&amp; solana-validator monitor</s></blockquote>
  <p id="pbeB"></p>
  <p id="9xGU"><s>6) Настраиваем ротацию логов для forge</s></p>
  <blockquote id="GlRp"><s>cat &gt; logrotate.sol &lt;&lt;EOF<br />$HOME/solana.log {<br />rotate 3<br />daily<br />missingok<br />compress<br />compresscmd /usr/bin/bzip2<br />compressext .bz2<br />postrotate<br />systemctl kill -s USR1 forge.service<br />endscript<br />}<br />EOF</s></blockquote>
  <p id="fajw"></p>
  <blockquote id="fqPo"><s>sudo cp logrotate.sol /etc/logrotate.d/sol</s></blockquote>
  <p id="lWr3"></p>
  <blockquote id="1hSV"><s>sudo logrotate -f /etc/logrotate.d/sol</s></blockquote>
  <p id="2vKU"></p>
  <p id="Nogs"><s> И проверяем идут ли логи</s></p>
  <p id="QmgR"></p>
  <blockquote id="4k2B"><s>tail -f solana.log</s></blockquote>
  <p id="eeqJ"></p>
  <p id="E0Eu"><strong><s>Поздравляю вы теперь в команде FORGE!</s></strong></p>
  <p id="HZN2"></p>
  <h2 id="E2qq"><s>Если у вас остались вопросы или вам нужна моя помощь по установке, можете мне писать в телегу <a href="https://t.me/toha_crypto" target="_blank">https://t.me/toha_crypto</a></s></h2>
  <p id="cfq5"></p>
  <p id="HOgm"></p>
  <h2 id="gHXn"><s>Обновление JITO 1.17.33</s></h2>
  <p id="U14K"></p>
  <p id="uDNk"><s>Ставим актуальную версию</s></p>
  <p id="3IMq"></p>
  <blockquote id="KFB4"><s>sh -c &quot;$(curl -sSfL <a href="https://release.jito.wtf/v1.17.33-jito/install" target="_blank">https://release.jito.wtf/v1.17.33-jito/install</a>)&quot;</s></blockquote>
  <p id="dU2B"></p>
  <blockquote id="BngS"><s>Правим сервисник <br /><br />cat &gt; /etc/systemd/system/forge.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=<a href="https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password" target="_blank">https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password</a>&quot;<br />ExecStart=$HOME/.local/share/solana/install/active_release/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/mainnet-validator-keypair.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--full-snapshot-interval-slots 25000 \\<br />--incremental-snapshot-interval-slots 5000 \\<br />--accounts-hash-interval-slots 5000 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 2 \\<br />--maximum-local-snapshot-age 6500 \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--no-snapshot-fetch \\<br />--tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \\<br />--tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \\<br />--merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \\<br />--commission-bps 10000 \\<br />--relayer-url <a href="http://frankfurt.mainnet.relayer.jito.wtf:8100" target="_blank">http://frankfurt.mainnet.relayer.jito.wtf:8100</a> \\<br />--block-engine-url <a href="https://frankfurt.mainnet.block-engine.jito.wtf" target="_blank">https://frankfurt.mainnet.block-engine.jito.wtf</a> \\<br />--shred-receiver-address 145.40.93.84:1002 \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF</s></blockquote>
  <p id="658h"></p>
  <p id="np87"></p>
  <blockquote id="95BK"><s>sudo systemctl daemon-reload</s></blockquote>
  <p id="jXk9"></p>
  <p id="A6Cj"><s>Рестартим</s></p>
  <p id="BRnL"></p>
  <blockquote id="iCSx"><s><br />solana-validator wait-for-restart-window &amp;&amp; systemctl restart forge &amp;&amp; solana-validator monitor</s></blockquote>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@solanamb/SolanaForge</guid><link>https://teletype.in/@solanamb/SolanaForge?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb</link><comments>https://teletype.in/@solanamb/SolanaForge?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solanamb#comments</comments><dc:creator>solanamb</dc:creator><title>Установка ноды Solana Mainnet + SolanaForge</title><pubDate>Sat, 16 Mar 2024 17:24:36 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/28/fe/28fec09d-e3e4-426f-a238-367ad5da6fd2.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/fb/62/fb62d47f-8955-47eb-8316-b4ce983d9bad.png"></img>1) Подкладываем ключи на сервер. 

mainnet-validator-keypair.json 
vote-account-keypair.json]]></description><content:encoded><![CDATA[
  <h3 id="ax5g"><strong><u>Гайд НЕ АКТУАЛЬНЫЙ Я УШЕЛ В НОВЫЙ ПУЛ</u></strong></h3>
  <p id="4OjR"><a href="https://teletype.in/@solanamb/projectx" target="_blank">https://teletype.in/@solanamb/projectx</a></p>
  <p id="AGZH"></p>
  <p id="0pRd"></p>
  <p id="t4gO"><s>1) Подкладываем ключи на сервер. <br /><br />mainnet-validator-keypair.json <br />vote-account-keypair.json</s></p>
  <p id="yEGv"></p>
  <p id="nVX9"><s>2) Выполняем ряд команд </s></p>
  <p id="4wdQ"></p>
  <blockquote id="DgWs"><s>sudo apt-get update</s></blockquote>
  <blockquote id="TdcK"><s>sudo apt-get upgrade</s></blockquote>
  <p id="efbw"></p>
  <blockquote id="Hqfc"><s>sh -c &quot;$(curl -sSfL https://release.solana.com/v1.17.27/install)&quot;</s></blockquote>
  <blockquote id="JQu7"><s>export PATH=&quot;$HOME/.local/share/solana/install/active_release/bin:$PATH&quot;</s></blockquote>
  <blockquote id="kMLK"><s>solana config set --url <a href="https://api.mainnet-beta.solana.com" target="_blank">https://api.mainnet-beta.solana.com</a></s></blockquote>
  <blockquote id="Kx1c"><s>solana config set --keypair $HOME/mainnet-validator-keypair.json</s></blockquote>
  <p id="GnEs"></p>
  <p id="em2m"><s>3) Запускаем систюнер</s></p>
  <p id="16Gd"></p>
  <blockquote id="qGqH"><s>bash &lt;(curl -s <a href="https://raw.githubusercontent.com/DOUBLE-TOP/guides/main/solana/tune.sh" target="_blank">https://raw.githubusercontent.com/DOUBLE-TOP/guides/main/solana/tune.sh</a>)</s></blockquote>
  <p id="TsUi"></p>
  <p id="0iiC"><s>4) Проверяем, должен отобразиться ваш баланс</s></p>
  <p id="2uos"></p>
  <blockquote id="JUWV"><s>solana balance</s></blockquote>
  <p id="rPjY"></p>
  <p id="BS5L"><s>5) Создаем сервис для запуска ноды</s></p>
  <p id="HihG"></p>
  <blockquote id="WUdw"><s>cat &gt; /etc/systemd/system/solana.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password&quot;<br />ExecStart=$HOME/.local/share/solana/install/active_release/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/mainnet-validator-keypair.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--full-snapshot-interval-slots 2500 \\<br />--incremental-snapshot-interval-slots 500 \\<br />--accounts-hash-interval-slots 500 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 2 \\<br />--maximum-local-snapshot-age 2500 \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--no-snapshot-fetch \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF</s></blockquote>
  <p id="OGag"></p>
  <blockquote id="w5JC"><s>sudo systemctl daemon-reload</s></blockquote>
  <blockquote id="7Sf2"><s>sudo systemctl enable solana</s></blockquote>
  <p id="XF26"></p>
  <p id="CWVQ"><s>6) Скачиваем спеп через Snapshot Finder</s></p>
  <blockquote id="tyQx"><s>sudo apt-get update \<br />&amp;&amp; sudo apt-get install python3-venv git -y \<br />&amp;&amp; git clone <a href="https://github.com/c29r3/solana-snapshot-finder.git" target="_blank">https://github.com/c29r3/solana-snapshot-finder.git</a> \<br />&amp;&amp; cd solana-snapshot-finder \<br />&amp;&amp; python3 -m venv venv \<br />&amp;&amp; source ./venv/bin/activate \<br />&amp;&amp; pip3 install -r requirements.txt &amp;&amp; cd $HOME</s></blockquote>
  <p id="KTDK"></p>
  <blockquote id="9Nx5"><s>source $HOME/solana-snapshot-finder/venv/bin/activate</s></blockquote>
  <blockquote id="tSXX"><s>python3 $HOME/solana-snapshot-finder/snapshot-finder.py --snapshot_path $HOME/ledger</s></blockquote>
  <p id="Wqm5"></p>
  <p id="RvP2"><s>ждем окончания загрузки снепа и его распаковки примерно 10+- минут </s></p>
  <p id="uQ1J"></p>
  <blockquote id="6Qu5"><s>sudo systemctl restart solana</s></blockquote>
  <p id="x2Go"></p>
  <p id="sKKu"><s>7) Настраиваем ротацию логов:</s></p>
  <blockquote id="uZ88"><s>cat &gt; logrotate.sol &lt;&lt;EOF<br />$HOME/solana.log {<br />rotate 3<br />daily<br />missingok<br />compress<br />compresscmd /usr/bin/bzip2<br />compressext .bz2<br />postrotate<br />systemctl kill -s USR1 solana.service<br />endscript<br />}<br />EOF</s></blockquote>
  <p id="s3Fb"></p>
  <blockquote id="RbBN"><s>sudo cp logrotate.sol /etc/logrotate.d/sol</s></blockquote>
  <p id="HT6u"></p>
  <p id="Q1Sa"><s>Проверяем  ноду командами и ждем пока она догонит. </s></p>
  <blockquote id="szMc"><s>solana-validator monitor</s></blockquote>
  <blockquote id="LcF6"><s>solana catchup --our-localhost --follow --log</s></blockquote>
  <p id="6RoK"></p>
  <p id="kI9S"><s>Ставим графану</s></p>
  <p id="hyqW"></p>
  <blockquote id="p3Ip"><s>curl -s <a href="https://gist.githubusercontent.com/razumv/1500a0497c03936db4ca36e36794e5ab/raw/abc3986cb5fb720a9c54312e5adbc0a2ff404e22/monitoring_solana.sh" target="_blank">https://gist.githubusercontent.com/razumv/1500a0497c03936db4ca36e36794e5ab/raw/abc3986cb5fb720a9c54312e5adbc0a2ff404e22/monitoring_solana.sh</a> &gt; monitoring_solana.sh &amp;&amp; chmod +x monitoring_solana.sh &amp;&amp; ./monitoring_solana.sh</s></blockquote>
  <p id="CdwK"></p>
  <p id="Yj9U"><s>Когда нода догонит можно приступать к установки SolanaForge</s></p>
  <p id="H4uO"></p>
  <p id="AiCb"></p>
  <h2 id="PjmD"><s>SolanaForge</s></h2>
  <figure id="wDsE" class="m_column">
    <img src="https://img4.teletype.in/files/fb/62/fb62d47f-8955-47eb-8316-b4ce983d9bad.png" width="1246" />
  </figure>
  <h2 id="bbeU"><s>SolanaForge</s></h2>
  <p id="EDZA"><s>ВАЖНО!!! Нужно выбрать окно между блоками и приступать. </s></p>
  <p id="95T7"><s>1) Выполняем команды. </s></p>
  <p id="NRDT"><s>Создаем скрипт. </s></p>
  <p id="cSmS"></p>
  <blockquote id="sxCf"><s>nano start.sh</s></blockquote>
  <p id="n5RP"></p>
  <p id="4rIX"><s>Это откроет редактор <code>nano</code> с новым файлом <code>start.sh</code>. Скопируйте и вставьте в этот файл следующий скрипт. Не забудьте заменить <code>FORGE_TAG</code> и <code>FORGE_BRANCH</code> на актуальные значения для вашего случая:</s></p>
  <p id="wajF"></p>
  <pre id="CRrv">#!/bin/bash

FORGE_TAG=&quot;v1.17.28-forge&quot;
FORGE_BRANCH=&quot;v1.17.28-forge&quot;

# check ver
FORGE_VER=$(~/.local/share/solana/install/releases/${FORGE_TAG}/bin/solana --version)
echo $FORGE_VER

if [ -z &quot;$FORGE_VER&quot; ]; then

curl --proto &#x27;=https&#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env

rustup component add rustfmt
rustup update

sudo apt-get update -y
sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler -y

# clone repo
cd ~/ &amp;&amp; rm -rf ~/solana-forge &amp;&amp; mkdir ~/solana-forge
cd ~/solana-forge/
#git clone https://github.com/solana-forge/solana.git --branch ${FORGE_TAG} --single-branch
git clone https://github.com/solana-forge/forge-solana.git solana
cd ~/solana-forge/solana
git reset --hard
git pull origin ${FORGE_BRANCH}
git switch -c ${FORGE_BRANCH}
git fetch
git checkout tags/${FORGE_TAG}
git submodule update --init --recursive
CI_COMMIT=$(git rev-parse HEAD) scripts/cargo-install-all.sh --validator-only ~/.local/share/solana/install/releases/&quot;${FORGE_TAG}&quot;
ln -sfn ~/.local/share/solana/install/releases/&quot;${FORGE_TAG}&quot; ~/.local/share/solana/install/releases/forge
~/.local/share/solana/install/releases/forge/bin/solana-validator --version

else
        echo &quot;$FORGE_TAG already installed&quot;
fi</pre>
  <p id="g3by"></p>
  <p id="SwnA"><s>После вставки и изменения скрипта сохраните файл и выйдите из редактора <code>nano</code> (Ctrl+O, Enter, Ctrl+X).</s></p>
  <p id="5SJB"></p>
  <p id="jHmC"><s>2) Делаем скрипт исполняемым и запускаем его</s></p>
  <p id="rZ1g"></p>
  <blockquote id="PjeR"><s>chmod +x start.sh</s></blockquote>
  <blockquote id="eI1x"><s>./start.sh</s></blockquote>
  <p id="O4G2"></p>
  <p id="rdsS"><s>Во время компиляции Возможны WARN - это нормально!</s></p>
  <p id="sRdZ"></p>
  <p id="ps6M"><s>3) <strong>Делаем</strong> с ноды пинг ближайших серверов Forge</s></p>
  <p id="CsFt"></p>
  <pre id="zSZN">ping ДОМЕН</pre>
  <p id="RygR"></p>
  <p id="Bn5W"><s>Обновлённый список серверов pbs-url <strong>(не забываем использовать порт :6775)</strong></s></p>
  <p id="r2z9"><s>jp.solanaforge.xyz [66.42.35.12]<br />au.solanaforge.xyz [45.77.232.79]<br />sw.solanaforge.xyz [70.34.220.34]<br />usa.solanaforge.xyz [45.32.139.172]<br />ny.solanaforge.xyz [45.77.220.225]<br />amsterdam.solanaforge.xyz [95.179.137.96]<br />eu.solanaforge.xyz [95.179.248.85]<br />ru.solanaforge.xyz [158.160.17.129]<br />singapore.solanaforge.xyz [149.28.131.30]</s></p>
  <p id="NSlu"><s>(меньше - лучше)</s></p>
  <p id="a3JK"><s><strong>до 25 мс норм</strong>, на грани 40мс</s></p>
  <p id="Cx1E"></p>
  <p id="CPYI"><s>4) <strong>Регистрируемся в ЛК  <a href="http://app.solanaforge.xyz/register/yStHB1TQREIsB99o" target="_blank">http://app.solanaforge.xyz/register/yStHB1TQREIsB99o</a></strong></s></p>
  <p id="aIit"><s>Добавляем свой Identity, кошелёк для выплат.</s></p>
  <p id="OE7E"><s>Копируем uuid  (его нужно будет вставить в новый сервисник)</s></p>
  <p id="2N4N"></p>
  <p id="Sb0k"><s>4) Создаем фордж сервисник. ВАЖНО!!! Прописать в нем </s></p>
  <p id="LcXc"><s>--pbs-uuid <strong>НАШ UUID из пункта 4</strong> </s></p>
  <p id="Izw7"><s>--pbs-url <a href="http://IP_" target="_blank">http://</a>ИЗ_ПУНКТА_3:6775  (пример на скрине)</s></p>
  <figure id="cJ2L" class="m_retina">
    <img src="https://img1.teletype.in/files/4f/3e/4f3e62b1-2625-4044-86e3-d86907a5e828.png" width="717" />
  </figure>
  <p id="hgna"></p>
  <p id="PTik"></p>
  <blockquote id="263l"><s>cat &gt; /etc/systemd/system/forge.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password&quot;<br />Environment=&quot;PATH=/bin:/usr/bin:/root/.local/share/solana/install/releases/forge/bin&quot;<br />ExecStart=/root/.local/share/solana/install/releases/forge/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/mainnet-validator-keypair.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--full-snapshot-interval-slots 25000 \\<br />--incremental-snapshot-interval-slots 5000 \\<br />--accounts-hash-interval-slots 5000 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 2 \\<br />--maximum-local-snapshot-age 6500 \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--no-snapshot-fetch \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--pbs-uuid <u>***********************************</u> \\<br />--pbs-url http://eu.solanaforge.xyz:6775 \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF</s></blockquote>
  <blockquote id="2Qoh"><s>sudo systemctl daemon-reload</s></blockquote>
  <p id="xU67"></p>
  <p id="WSvN"></p>
  <p id="EXgt"><s>Проверяем правильно ли лягли сервисники</s></p>
  <p id="IPYT"></p>
  <blockquote id="lZtc"><s>cat /etc/systemd/system/solana.service</s></blockquote>
  <blockquote id="wwiC"><s>cat /etc/systemd/system/forge.service</s></blockquote>
  <blockquote id="3znU"><s>sudo systemctl enable forge.service</s></blockquote>
  <p id="b5Xn"></p>
  <p id="m1ak"><s>5) Выбираем момент между блоками и стартуем через окно рестарта</s></p>
  <p id="8oJJ"></p>
  <blockquote id="N9pm"><s>solana-validator wait-for-restart-window &amp;&amp; sudo systemctl stop solana &amp;&amp; systemctl disable solana &amp;&amp; systemctl start forge &amp;&amp; solana-validator monitor</s></blockquote>
  <p id="6xKN"></p>
  <p id="WN02"></p>
  <p id="AhFo"><s>6) Проверяем версию</s></p>
  <p id="npkC"></p>
  <blockquote id="KHuo"><s>curl -s <a href="http://localhost:8899" target="_blank">http://localhost:8899</a> -X POST -H &quot;Content-Type: application/json&quot; -d &#x27;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;id&quot;:1, &quot;method&quot;:&quot;getVersion&quot;}&#x27;</s></blockquote>
  <p id="JZm8"></p>
  <p id="Tnl3"><s>7)  Теперь нужно закомментировать install в скрипте, что-бы в случае обновления пакетов- сервис forge не рестартовался</s></p>
  <p id="runE"></p>
  <blockquote id="G1e7"><s>nano start.sh</s></blockquote>
  <p id="8Dtc"></p>
  <p id="dwET"><s>ставим <strong>#</strong> перед <strong>sudo </strong>как на скрине</s></p>
  <figure id="RqrL" class="m_retina">
    <img src="https://img4.teletype.in/files/f1/15/f1155fe6-c2e3-452e-ba7b-7a2de9dd7f26.png" width="690" />
  </figure>
  <p id="lusf"><s><br />После вставки и изменения скрипта сохраните файл и выйдите из редактора <code>nano</code> (Ctrl+O, Enter, Ctrl+X).</s></p>
  <p id="dl50"><s>8) Чекаем статус на сайте </s></p>
  <p id="bgRu"></p>
  <figure id="v6o8" class="m_column">
    <img src="https://img4.teletype.in/files/b9/32/b9321e71-f4d1-4999-ba3a-39ee75d28b31.png" width="2646" />
  </figure>
  <h2 id="efcA"><s>Переключение между solana и forge</s></h2>
  <p id="a0fw"></p>
  <h2 id="v3wS"><s>1) C Forge - Solana</s></h2>
  <p id="oZgs"></p>
  <blockquote id="Me5m"><s>solana-validator wait-for-restart-window &amp;&amp; sudo systemctl stop forge &amp;&amp; systemctl disable forge &amp;&amp; sudo systemctl enable solana &amp;&amp; systemctl start solana &amp;&amp; solana-validator monitor</s></blockquote>
  <p id="0T2Z"></p>
  <h2 id="F6iS"><s>2) С Solana - Forge</s></h2>
  <p id="GSRB"></p>
  <blockquote id="BEUj"><s>solana-validator wait-for-restart-window &amp;&amp; sudo systemctl stop solana &amp;&amp; systemctl disable solana &amp;&amp; sudo systemctl enable forge &amp;&amp; systemctl start forge &amp;&amp; solana-validator monitor</s></blockquote>
  <p id="rgbh"></p>
  <p id="fk2Y"><s>Кетчап</s></p>
  <blockquote id="7J7O"><s>solana catchup --our-localhost --follow --log</s></blockquote>
  <p id="hBVd"></p>
  <h2 id="DnlS"><strong><s>Если лежит solana.service в корне, то перезапускать так:</s></strong></h2>
  <p id="VBIx"></p>
  <blockquote id="CY5X"><s>solana-validator wait-for-restart-window &amp;&amp; sudo systemctl stop forge &amp;&amp; systemctl disable forge &amp;&amp; sudo ln -sf $HOME/solana.service /etc/systemd/system &amp;&amp; sudo systemctl enable solana &amp;&amp; systemctl start solana &amp;&amp; solana-validator monitor</s></blockquote>
  <p id="wod5"></p>
  <p id="zijf"></p>
  <p id="TN0M"></p>
  <h2 id="dwPm"><s>Обнова Forge</s></h2>
  <p id="MmLH"></p>
  <blockquote id="wLCx"><s>nano start.sh</s></blockquote>
  <p id="6vxe"></p>
  <p id="muUN"><s>1) Меняем в скрипте актуальный релиз версии Forge</s></p>
  <p id="zvf0"></p>
  <figure id="HzhT" class="m_retina">
    <img src="https://img1.teletype.in/files/c6/73/c6735a56-e9b5-4b32-8221-f6d538bb6ac8.png" width="889" />
  </figure>
  <p id="rHYl"><s>2) запускаем скрипт </s></p>
  <p id="qB7b"></p>
  <blockquote id="s7mz"><s>./start.sh</s></blockquote>
  <p id="kJ7i"></p>
  <p id="qNId"></p>
  <p id="6knT"><s>3) Рестартим ждем</s></p>
  <p id="Yq2B"></p>
  <blockquote id="AK5m"><s>solana-validator wait-for-restart-window &amp;&amp; sudo systemctl restart forge &amp;&amp; solana-validator monitor</s></blockquote>
  <p id="lRru"></p>
  <p id="GKli"><s>Проверяем </s></p>
  <blockquote id="U46X"><s>curl -s <a href="http://localhost:8899" target="_blank">http://localhost:8899</a> -X POST -H &quot;Content-Type: application/json&quot; -d &#x27;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;id&quot;:1, &quot;method&quot;:&quot;getVersion&quot;}&#x27;</s></blockquote>
  <p id="dt5f"></p>
  <p id="uODV"></p>
  <p id="qnum"><s>Логи:<br /><br />Меняем </s></p>
  <p id="8KMG"><s>Настраиваем ротацию логов:</s></p>
  <blockquote id="63ac"><s>cat &gt; logrotate.sol &lt;&lt;EOF<br />$HOME/solana.log {<br />rotate 3<br />daily<br />missingok<br />compress<br />compresscmd /usr/bin/bzip2<br />compressext .bz2<br />postrotate<br />systemctl kill -s USR1 forge.service<br />endscript<br />}<br />EOF</s></blockquote>
  <p id="g1Eg"></p>
  <blockquote id="OpXW"><s>sudo cp logrotate.sol /etc/logrotate.d/sol</s></blockquote>
  <blockquote id="w2Po"><s>sudo logrotate -f /etc/logrotate.d/sol</s></blockquote>
  <p id="nh0D"></p>
  <p id="gAHO"><s>Чекаем логи</s></p>
  <p id="gF25"></p>
  <blockquote id="eD5j"><s>tail -f solana.log</s></blockquote>
  <p id="P0TC"></p>
  <p id="RLuM"></p>
  <p id="XLuM"></p>
  <h2 id="o4GP"><s>Установка JITO + Forge</s></h2>
  <p id="ZiQV"></p>
  <p id="CPYI"><strong><s>Регистрируемся в ЛК <a href="http://app.solanaforge.xyz/register/yStHB1TQREIsB99o" target="_blank">http://app.solanaforge.xyz/register/yStHB1TQREIsB99o</a></s></strong></p>
  <p id="aIit"><s>Добавляем свой Identity, кошелёк для выплат.</s></p>
  <p id="Duvr"></p>
  <p id="G2Eq"><s>1) Запускаем скрипт установки JITO клиента</s></p>
  <p id="IfZ7"></p>
  <blockquote id="Fyk8"><s>curl <a href="https://sh.rustup.rs" target="_blank">https://sh.rustup.rs</a> -sSf | sh<br />source $HOME/.cargo/env<br />rustup component add rustfmt<br />rustup update<br />sudo apt-get update<br />sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler</s></blockquote>
  <p id="5DD1"></p>
  <p id="PSFy"><s>Руками вводим по одной!</s></p>
  <p id="7biN"></p>
  <pre id="955V">TAG=&quot;v1.17.31-jito&quot;

cd ~/ &amp;&amp; rm -rf ~/solana-forge &amp;&amp; mkdir ~/solana-forge

cd ~/solana-forge/

git clone https://github.com/solana-forge/jito-solana/ solana

cd solana

git fetch

git checkout tags/${TAG}

git submodule update --init --recursive

CI_COMMIT=$(git rev-parse HEAD) scripts/cargo-install-all.sh --validator-only ~/.local/share/solana/install/releases/&quot;${TAG}&quot;

ln -sfn ~/.local/share/solana/install/releases/&quot;${TAG}&quot; ~/.local/share/solana/install/releases/forge

~/.local/share/solana/install/releases/forge/bin/solana-validator --version</pre>
  <p id="qR1O"></p>
  <p id="kby5"></p>
  <p id="dlMo"></p>
  <p id="aqkr"><s>2) Создаем сервисник</s></p>
  <blockquote id="Arw1"><s>cat &gt; /etc/systemd/system/forge.service&lt;&lt;EOF<br />[Unit]<br />Description=Solana MB node<br />After=network.target syslog.target<br />StartLimitIntervalSec=0<br />[Service]<br />User=$USER<br />Type=simple<br />Restart=always<br />RestartSec=1<br />LimitNOFILE=1024000<br />Environment=&quot;SOLANA_METRICS_CONFIG=host=<a href="https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password" target="_blank">https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password</a>&quot;<br />Environment=&quot;PATH=/bin:/usr/bin:/root/.local/share/solana/install/releases/forge/bin&quot;<br />ExecStart=/root/.local/share/solana/install/releases/forge/bin/solana-validator \\<br />--entrypoint entrypoint.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\<br />--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\<br />--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\<br />--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\<br />--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\<br />--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\<br />--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\<br />--only-known-rpc \\<br />--wal-recovery-mode skip_any_corrupted_record \\<br />--identity $HOME/mainnet-validator-keypair.json \\<br />--vote-account $HOME/vote-account-keypair.json \\<br />--ledger $HOME/ledger \\<br />--limit-ledger-size 50000000 \\<br />--dynamic-port-range 8000-8020 \\<br />--log $HOME/solana.log \\<br />--full-snapshot-interval-slots 25000 \\<br />--incremental-snapshot-interval-slots 5000 \\<br />--accounts-hash-interval-slots 5000 \\<br />--maximum-full-snapshots-to-retain 1 \\<br />--maximum-incremental-snapshots-to-retain 2 \\<br />--maximum-local-snapshot-age 6500 \\<br />--full-rpc-api \\<br />--private-rpc \\<br />--no-snapshot-fetch \\<br />--use-snapshot-archives-at-startup when-newest \\<br />--tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \\<br />--tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \\<br />--merkle-root-upload-authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib \\<br />--commission-bps 10000 \\<br />--relayer-url <a href="http://ams.solanaforge.xyz:11226" target="_blank">http://ams.solanaforge.xyz:11226</a> \\<br />--block-engine-url <a href="https://frankfurt.mainnet.block-engine.jito.wtf" target="_blank">https://frankfurt.mainnet.block-engine.jito.wtf</a> \\<br />--shred-receiver-address 145.40.93.84:1002 \\<br />--rpc-port 8899<br />ExecReload=/bin/kill -s HUP $MAINPID<br />ExecStop=/bin/kill -s QUIT $MAINPID<br />[Install]<br />WantedBy=multi-user.target<br />EOF</s></blockquote>
  <p id="WXH0"></p>
  <blockquote id="GIap"><s>sudo systemctl daemon-reload</s></blockquote>
  <p id="HUSZ"></p>
  <p id="BBn4"><s>Проверяем правильно ли лег сервисник</s></p>
  <p id="r2U9"></p>
  <blockquote id="XcOT"><s>cat /etc/systemd/system/forge.service</s></blockquote>
  <p id="cStc"></p>
  <p id="0eor"><s>3) Запускаемся </s></p>
  <p id="AJ9U"></p>
  <blockquote id="1qWQ"><s>solana-validator wait-for-restart-window &amp;&amp; sudo systemctl restart forge &amp;&amp; solana-validator monitor</s></blockquote>

]]></content:encoded></item></channel></rss>