<?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>@solananewbie</title><generator>teletype.in</generator><description><![CDATA[Блог для новичков соланы]]></description><link>https://solananewbie.net/?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/solananewbie?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/solananewbie?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Mon, 27 Apr 2026 13:23:39 GMT</pubDate><lastBuildDate>Mon, 27 Apr 2026 13:23:39 GMT</lastBuildDate><item><guid isPermaLink="true">https://solananewbie.net/marinade-finance-validator-guide</guid><link>https://solananewbie.net/marinade-finance-validator-guide?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie</link><comments>https://solananewbie.net/marinade-finance-validator-guide?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie#comments</comments><dc:creator>solananewbie</dc:creator><title>Стратегия делегирования стейкингового пула Marinade.Finance: путеводитель для валидаторов</title><pubDate>Tue, 29 Mar 2022 17:50:57 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/56/03/5603dca1-d933-42a5-a2fd-9888e6144bcc.png"></media:content><description><![CDATA[<img src="https://miro.medium.com/max/1400/1*zljPvMUG_JGvB3MwaawNzQ.png"></img>Друзья, хочу представить вам мой перевод статьи для стекингового пула Marinade.Finance. Оригинал статья вы можете найти у них в Medium, а также сам перевод. Эта статья станет первой в цикле статей об источниках дополнительного заработка для валидаторов Solana. Не уверен, что новая будет написана очень скоро, но, начало положено, как будут новые источники заработка, так будут новые статьи.]]></description><content:encoded><![CDATA[
  <p id="munM">Друзья, хочу представить вам мой перевод статьи для стекингового пула Marinade.Finance. Оригинал статья вы можете найти у них в <a href="https://medium.com/marinade-finance/marinade-a-validators-guide-1a3a4922b093" target="_blank">Medium</a>, а также <a href="https://medium.com/marinade-finance/%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D1%8F-%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B5%D0%B9%D0%BA%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D0%BF%D1%83%D0%BB%D0%B0-marinade-finance-%D0%BF%D1%83%D1%82%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%B4%D0%BB%D1%8F-%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%82%D0%BE%D1%80%D0%BE%D0%B2-ac0c43188393" target="_blank">сам перевод</a>. Эта статья станет первой в цикле статей об источниках дополнительного заработка для валидаторов Solana. Не уверен, что новая будет написана очень скоро, но, начало положено, как будут новые источники заработка, так будут новые статьи.</p>
  <figure id="3VBr" class="m_custom">
    <img src="https://miro.medium.com/max/1400/1*zljPvMUG_JGvB3MwaawNzQ.png" width="700" />
  </figure>
  <p id="csdp">Содержание:</p>
  <nav>
    <ul>
      <li class="m_level_1"><a href="#44cc"></a></li>
      <li class="m_level_2"><a href="#Nle9">Каким образом рассчитываются баллы делегирования валидаторов?</a></li>
      <li class="m_level_2"><a href="#426e">Стейкинг на основе баллов</a></li>
      <li class="m_level_1"><a href="#037e"></a></li>
      <li class="m_level_2"><a href="#jIBu">Как валидаторы могут оптимизировать свою работу для Marinade.Finance</a></li>
      <li class="m_level_3"><a href="#3ac1"></a></li>
      <li class="m_level_2"><a href="#pD2k">О Marinade.Finance</a></li>
    </ul>
  </nav>
  <p id="Coxw"></p>
  <p id="tbBB">Пул ликвидного стейкинга <a href="https://marinade.finance/" target="_blank">Marinade.Finance </a>(далее Marinade) имеет важные взаимовыгодные отношения с сообществом валидаторов. Marinade нуждается в сильных и географически распределенных валидаторах для обеспечения децентрализации Solana, с другой стороны валидаторы могут получить дополнительный доход за счет привлечения стейка от Marinade. В данный момент Marinade распределяет стейк более чем на 450 валидаторов и стремится стимулировать рост количества валидаторов, которым будет распределен постоянно растущий пул SOL.</p>
  <p id="bbe7">Прозрачность является основным принципом для Marinade, поэтому очень важно убедиться, что сообщество валидаторов точно понимает, как работает распределение стейка. . По этой причине стратегия распределения стейка является открытой и находится на <a href="https://github.com/marinade-finance/delegation-strategy" target="_blank">GitHub</a>.</p>
  <p id="f526">Общая стратегия делегирования кратко изложена в <a href="https://docs.marinade.finance/marinade-protocol/validators" target="_blank">Документации Marinade</a>:</p>
  <blockquote id="tgyx">Marinade.Finance следует стратегии распределения стейка Solana Foundation, в основе которой лежат следующие параметры валидатора: высокая производительность (основана на кредитах — прим. переводчика), низкая комиссия и низкая концентрация (в дата центре — прим. переводчика). Все это необходимо для повышения децентрализации и устойчивости к цензурированию сети.</blockquote>
  <p id="UDtc">Marinade.Finance следует стратегии распределения стейка Solana Foundation, в основе которой лежат следующие параметры валидатора: высокая производительность (основана на кредитах — прим. переводчика), низкая комиссия и низкая концентрация (в дата центре — прим. переводчика). Все это необходимо для повышения децентрализации и устойчивости к цензурированию сети.</p>
  <p id="2xvQ"><em>*“Пользователи Marinade” — люди, которые внесли в стейкинг свои SOL через некастодиальный протокол ликвидного стейкинга Marinade.Finance</em>.</p>
  <figure id="dhsl" class="m_custom" data-caption-align="center">
    <img src="https://miro.medium.com/max/1400/0*VkOIS8OiqNHbG7NR.png" width="700" />
    <figcaption>Стратегия делегирования Marinade основана на распределнии стейка за пределом &quot;группы безопасности&quot; для обеспечения лучшей устойчивости к цензуре сети Solana.</figcaption>
  </figure>
  <h1 id="44cc"></h1>
  <h2 id="Nle9">Каким образом рассчитываются баллы делегирования валидаторов?</h2>
  <p id="jQz4"></p>
  <p id="TOHH">Для распределения стейка на лучших валидаторов вне «группы безопасности**» Marinade использует следующие параметры для расчета «баллов»:</p>
  <p id="Npyp"></p>
  <ul id="RD6x">
    <li id="a2ab">Производительность (APY)***</li>
    <li id="1f18">Размер комиссии</li>
    <li id="6f22">Состояние «delinquent»</li>
    <li id="186b">Локация / Децентрализация</li>
    <li id="a6f4">Версия ноды</li>
  </ul>
  <p id="6cmf"></p>
  <p id="aMmT">Для расчета баллов используется открытый код, который является форком (копией с доработками — прим. переводчика) бота stake-o-matic. Бот stake-o-matic занимается распределением стейка Solana Foundation. Код бота Marinade опубликован на гитхабе Marinade, там же можно посмотреть и исторические данные по эпохам и увидеть, как были распределены стейки Marinade. Эти данные хранятся в базе данных на основе SQLite. <a href="https://github.com/marinade-finance/delegation-strategy" target="_blank">Посмотреть на GitHub</a>.</p>
  <p id="Q567">Целью оценки валидаторов и присвоение баллов является поддержание распределения пула Marinade в рамках целей, о которых было сказано выше: повышение децентрализации и обеспечение доходности для держателей mSOL. Бальная система оценки валидаторов используется в сочетании с некоторой дополнительной обработкой для автоматического распределения стейка валидаторам, пропорционально их баллам в конце каждой эпохи. По мере того, как пользователи Marinade вносят SOL в стейк и снимают их, система Marinade автоматически распределяет новые нераспределенные SOL на валидаторов, а также, при необходимости, снимает стейк в автоматическом режиме, если пользователи забирают свои стейки. Все это сделано для обеспечения надлежащего распределения стейков между валидаторами.</p>
  <p id="2Gop">Процесс оценки валидаторов в конце каждой эпохи выглядит следующим образом:</p>
  <p id="njH3"></p>
  <ul id="s6E8">
    <li id="d476">Баллы подсчитываются для <strong>всех валидаторов</strong> в течение последних 5 эпох.</li>
    <li id="6a3e">Система выбирает <strong>300 лучших</strong> валидаторов на основе количества баллов, всем остальным валидаторам присваивается 0 баллов. Топ 300 валидаторов меняется каждую эпоху из-за колебаний параметров, на основе которых начисляются баллы.</li>
    <li id="c212">Производительность (APY) <strong>текущей эпохи</strong> анализируется для 300 лучших валидаторов и используется для корректировки их баллов перед операциями стейка и анстейка.</li>
  </ul>
  <p id="AGC8"></p>
  <p id="QIHE">Производительность валидатора основывается на следующих показателях:</p>
  <p id="Ic6X"></p>
  <ul id="DeU0">
    <li id="d4bb">Количество <strong>кредитов</strong>, заработанных за эпоху (по отношению ко <strong>всем</strong> валидаторам в кластере)</li>
  </ul>
  <p id="40de">— Если валидатор заработал за эпоху меньше 80% от среднего количества заработанных кредитов по кластеру, система забирает весь стейк, который был делегирован валидатору.</p>
  <p id="08d4">— Если валидатор заработал за эпоху меньше 90% от среднего количества заработанных кредитов по кластеру, то все его заработанные баллы делятся на 2.</p>
  <ul id="P6Ie">
    <li id="a386">Состояние «<strong>delinquent</strong>», которое означает, что валидатор в данный момента находится в офф-лайне. Валидаторы, не синхронизированные с сетью, всегда теряют свой стейк вне зависимости от баллов, набранных за предыдущие эпохи. (проверка на «delinquent» проводится за 24 и 7 часов до предполагаемого конца каждой эпохи)</li>
    <li id="1540"><strong>APY</strong> с сайта <a href="https://stakeview.app/" target="_blank">https://stakeview.app/</a> также используется для анализа доходности валидатора, но только для информационных целей, чтобы дополнительно проверить, верно ли отрабатывает система.</li>
  </ul>
  <p id="8a43"></p>
  <p id="Bg1j">Эти метрики используются для того, чтобы убедиться, что Marinade делегирует стейк высокопроизводительным валидаторам, а все «нарушители» стейка лишаются. Marinade обязан гарантировать, что его пользователи поддерживают хороших валидаторов, которые успешно голосуют за созданные блоки в сети и имеют приемлемую доходность. Вычисления, о которых было сказано выше (количество кредитов и состояние «delinquent»), проводятся дважды за каждую эпоху, за 24 и 7 часов до предполагаемого конца эпохи, полученные результаты загружаются в сеть.</p>
  <p id="ee9f"><em>**Валидаторы «группы безопасности» — это валидаторы, которые обладают самым большим стейком в сети Solana, и их отключение может остановить работу сети. Ознакомиться со стретегией Solana по отношениею к валидаторам “группы безопасности” <a href="https://medium.com/solana-labs/announcing-the-solana-foundation-delegation-strategy-5bcccf9104ab" target="_blank">можно </a></em>в публикации <a href="https://medium.com/solana-labs/announcing-the-solana-foundation-delegation-strategy-5bcccf9104ab" target="_blank">Announcing the Solana Foundation Delegation Strategy</a><em>. Так как эта группа динамическая, этих валидаторов можно увидеть <a href="https://solanabeach.io/validators" target="_blank">тут</a>.</em></p>
  <p id="ad9f"><em>***В системе Marinade доходность рассчитывается на основе кредитов, которые были заработаны валидатором в течение эпохи. Комиссия валидатора при этом не оказывает влияние на доходность.</em></p>
  <p id="Jjfs"></p>
  <h2 id="426e">Стейкинг на основе баллов</h2>
  <p id="ik5k"></p>
  <p id="5a5a">После того, как баллы были рассчитаны и скорректированы, бот, отвечающий за стейкинг и анстейкинг, выполняет финальные корректировки баллов для поддержания баланса между операциями стейкинга и анстейкинга, в зависимости от доступных средств в пуле. Даже если у Marinade в пуле на данный момент положительный остаток средств пользователей (<em>положительная дельта — прим. переводчика</em>), а недавно привлеченные средства готовы к стейкингу, все равно могут быть необходимы операции анстейкинга для гарантии максимально эффективного распределения стейка между лучшими валидаторами.</p>
  <p id="e442">Сначала, любой валидатор, который был замечен в попытках «обмануть систему», или валидатор, который изменяет комиссию непосредственно перед окончанием эпохи, заносится в черный список и полностью лишается всего стейка от пула.</p>
  <p id="3e49">Далее идет сравнение баллов с текущим стейком от Marinade. Если валидатор в новой эпохе получил оценку в 0 баллов, при этом у него по результатам оценки предыдущей эпохи имеется стейк от пула в размере более 0,45% от общего пула Marinade, то он будет лишен стейка.</p>
  <p id="b899">Помимо этого, если размер стейка валидатора более 250% от того, что положено ему от пула на основе его баллов в текущей эпохе, то он также будет лишен всего стейка.</p>
  <p id="53f6">Но есть одно исключение из последних двух пунктов. Marinade не будет снимать стейк с тех валидаторов, у которых стейк от пула составляет более 20% от общей доли стейка. Это сделано для того, чтобы гарантировать валидатору положительную доходность и не лишить его экономической целесообразности из-за внезапного анстейка большей части SOL. Marinade хочет поддерживать валидаторов, а не усложнять им жизнь!</p>
  <p id="cb32">Также существуют определенные ограничения на стейк одному валидатору, он не может превышать 1,5% от пула Marinade. Еще Marinade использует специальный механизм, который помогает избежать больших изменений стейка у валидаторв в течение нескольких эпох. Сумма стейка, полученного валидатором за 1 эпоху, редко превышает 0,1% от общего пула, который делегирован в настоящее время всем валидаторам Marinade. Единственным исключением из этого правила является случай, когда валидатор оценивается таким количеством баллов, которые обеспечивают ему стейк от пула в два раза больше от текущего стейка Marinade. В этом случае его баллы корректируются на 80% от предыдущих и дают ему увеличение стейка от пула за 1 эпоху более чем на 0,1% от общего пула.</p>
  <p id="34fe">Важно заметить, что получение валидатором 0 баллов за эпоху не означает полную потерю стейка от Marinade, в тоже время это означает, что он не получит дополнительный стейк в следующую эпоху. Такой валидатор может потерять стейк от пула в случае, если большое количество пользователей Marinade запросят свои средства назад посредством анстейка.</p>
  <h1 id="037e"></h1>
  <h2 id="jIBu">Как валидаторы могут оптимизировать свою работу для Marinade.Finance</h2>
  <p id="pz2S"></p>
  <p id="7ec6">Есть ряд шагов, которые валидатор может предпринять, чтобы увеличивать свои баллы и получить стейк от пула. <strong>Внимание стоит уделить каждому фактору, который вносит свой вклад в итоговый балл</strong>, также следует уделить внимание оптимизации аппаратного и программного обеспечения валидатора.</p>
  <p id="1e0e">Чтобы стать высокопроизводительным <em>(высокодоходным — прим. переводчика)</em> валидатором необходимо зарабатывать достаточное количество кредитов и иметь хороший итоговый APY. При этом валидаторам стоит соблюдать осторожность при установке ставок комиссии, поскольку высокая комиссия может полностью нивелировать большое количество зарабатываемых валидатором кредитов и снизить APY настолько, что это сильно повлияет на итоговую оценку валидатора. Кредиты, которые валидатор получает за голосование, являются ключевым показателем в системе Solana и определяют, какую часть общей инфляции (ежемесячного увеличения количества SOL — прим. переводчика) получит каждый валидатор. Стейки от независимых источников (речь идет о селф-стейке — прим. переводчика), в конечном итоге, повысят собственную доходность валидаторов, но Marinade измеряет доходность с помощью APY, поэтому маленькие стейки у новых валидаторов не являются показателем их качества при условии хороших показателей APY.</p>
  <p id="0f7e">Обеспечение актуальности программного обеспечения валидаторов и стабильного онлайна является одним из важнейших требований для получения хорошей оценки от Marinade. Но есть еще одна метрика, на которую стоит обратить внимание — это децентрализация, которую потенциально можно улучшить, изучив дата-центры на сайте validator.app, и попытаться использовать те, которые имеют меньшую концентрацию. При этом этот дата-центр должен также обеспечивать достаточную производительность оборудования, чтобы не пострадали остальные параметры, которые оценивает Marinade.</p>
  <p id="59f0"><strong>Следует отметить, что попытки обмануть систему подсчета баллов, изменяя комиссию на минимальную в те моменты, когда это видит бот, и увеличивая ее за несколько минут до конца эпохи, всегда приводят к занесению такого валидатора в черный список и полностью исключают возможность получения стейка от Marinade. Поэтому выгодны быть честным валидатором.</strong></p>
  <p id="3a3c">Передовой опыт и оптимизация валидаторов являются постоянной задачей Solana, так как проект растет, появляются новые валидаторы, и растет конкуренция. Существует большое количество сообществ валидаторов, которые обсуждают свои наработки, и делятся ими друг с другом. Можно сказать, что текущая обстановка достаточно благоприятна для сотрудничества и взаимной поддержки валидаторов, плюс к этому существует ряд ценных ресурсов, которые нацелены на помощь в развитии валидаторов. Например, одним из таких ресурсов является руководство от Фонда Solana.</p>
  <p id="cd3d">Маринад продолжает тесно сотрудничать с сообществом валидаторов и стремится учитывать их пожелания. Всем валидаторам предлагается присоединиться к каналу #Validator в <a href="https://discord.gg/xufe874Haw" target="_blank">дискорде Marinade</a> для обсуждения стратегии делегирования и сотрудничества пула с валидаторами.</p>
  <h3 id="3ac1"></h3>
  <h2 id="pD2k">О Marinade.Finance</h2>
  <p id="6367">Marinade.Finance — это первый некастодиальный протокол ликвидного стейкинга, основанный на Solana. Размещайте свои SOL с помощью Marinade и получайте взамен токены mSOL (маринованные SOL), которые можно использовать в DeFi. mSOL — это наиболее широко используемая версия SOL, которая имеет реальное обеспечение. Цена mSOL повышается относительно SOL каждую эпоху, а вознаграждение зачисляется на стейк аккаунт пользователя.</p>
  <p id="5e9e">Стратегия делегирования Marinade опирается на более чем 400 валидаторов, которые выбираются автоматически по справедливой формуле с открытым исходным кодом. Эта формула опирается на производительность (доходность — прим. переводчика), комиссию и децентрализацию.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://solananewbie.net/server-node-administration</guid><link>https://solananewbie.net/server-node-administration?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie</link><comments>https://solananewbie.net/server-node-administration?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie#comments</comments><dc:creator>solananewbie</dc:creator><title>Настройка сервера, установка ноды, администрирование</title><pubDate>Tue, 28 Dec 2021 23:00:54 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/62/2d/622d8363-49da-4d37-b70d-381f4d43735a.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/ce/b0/ceb0f345-3d75-445d-a511-8c58f06521ed.jpeg"></img>Мануал почти готов, нашли ошибки - пишите мне в личку.]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="i39t">Мануал почти готов, нашли ошибки - пишите мне в личку.</p>
  </section>
  <nav>
    <ul>
      <li class="m_level_1"><a href="#OmR7"></a></li>
      <li class="m_level_1"><a href="#74Au">Какие гайды уже существуют?</a></li>
      <li class="m_level_1"><a href="#fkPg"></a></li>
      <li class="m_level_1"><a href="#h7qw">Подготовка к установке</a></li>
      <li class="m_level_2"><a href="#KnAT">Raid 0</a></li>
      <li class="m_level_2"><a href="#oAjJ">Проверка дисков</a></li>
      <li class="m_level_2"><a href="#3nQq">Проверка интернета</a></li>
      <li class="m_level_2"><a href="#JJDu">Проверка памяти</a></li>
      <li class="m_level_2"><a href="#o4Nv">Firewall</a></li>
      <li class="m_level_2"><a href="#XSwC">Root</a></li>
      <li class="m_level_1"><a href="#7icL"></a></li>
      <li class="m_level_2"><a href="#8oZ8">Ram-диск</a></li>
      <li class="m_level_1"><a href="#oi5V">Установка ноды под Root</a></li>
      <li class="m_level_2"><a href="#d9lc">Настройки конфига соланы</a></li>
      <li class="m_level_2"><a href="#oSvH">Создание ключей</a></li>
      <li class="m_level_2"><a href="#nST7">Установка систюнера</a></li>
      <li class="m_level_2"><a href="#Sonc">Сервисный файл. Создание и настройка</a></li>
      <li class="m_level_2"><a href="#cyW5">Установка logrotate</a></li>
      <li class="m_level_2"><a href="#vCMi"></a></li>
      <li class="m_level_2"><a href="#6unx">Создание символических ссылок</a></li>
      <li class="m_level_2"><a href="#P5QV">Включение сервиса Соланы и запуска ноды</a></li>
      <li class="m_level_1"><a href="#aT4c"></a></li>
      <li class="m_level_1"><a href="#1vfT">Администрирование ноды</a></li>
      <li class="m_level_2"><a href="#bWOX">Скачивание снепшота с быстрых RPC Node до рестарта соланы</a></li>
      <li class="m_level_2"><a href="#9YQt">Как заменить пароль на ключ и изменить порт для SSH</a></li>
      <li class="m_level_2"><a href="#x70G">Как читать логи?</a></li>
      <li class="m_level_2"><a href="#gKgE">Мониторинг температуры</a></li>
      <li class="m_level_1"><a href="#wbyf">Установка аватарки и смена имени ноды на сайте валидатор.апс</a></li>
    </ul>
  </nav>
  <h2 id="OmR7"></h2>
  <h2 id="74Au">Какие гайды уже существуют?</h2>
  <p id="0NaY">На текущий момент я знаю 3 авторов, которые писали гайды по установке ноды в Солане и одного, который выпустил другие гайды для Соланы, а именно:</p>
  <ol id="jpXh">
    <li id="n6UI"><a href="https://www.youtube.com/channel/UCOmT4j8tfhBnR79PlsQ_fRg" target="_blank">Гайды от Димана (в формате видео)</a></li>
    <ol id="rWbc">
      <li id="0M4G"><a href="https://www.youtube.com/watch?v=oXknHGiUSlg" target="_blank">Установка Ноды</a></li>
      <li id="AH37"><a href="https://www.youtube.com/watch?v=uxc1qj4P-Wg" target="_blank">Настройка RAM-диска</a></li>
      <li id="zMVZ"><a href="https://www.youtube.com/watch?v=5eSrb3GF3Dg" target="_blank">Raid-0 в дата-центре Hetzner</a></li>
      <li id="nMH7"><a href="https://www.youtube.com/watch?v=ztfgg0hqt9M" target="_blank">Установка мониторинга telegraf</a></li>
    </ol>
    <li id="RJGa"><a href="https://medium.com/@artkrpt/%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D1%83%D0%B7%D0%BB%D0%B0-%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%82%D0%BE%D1%80%D0%B0-%D0%B2-%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B9-%D1%81%D0%B5%D1%82%D0%B8-tour-de-soul-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0-solana-75433b842556" target="_blank">Гайд по установке ноды от Артема (в формате текста)</a></li>
    <li id="ASFU"><a href="https://www.youtube.com/playlist?list=PL6W8z7_LBYsJxIQuzTulRtWvwyjMttTkx" target="_blank">Гайды от Абеза (в формате видео, плюс полезная информация по Solana)</a></li>
    <ol id="aeSj">
      <li id="mopf"><a href="https://www.youtube.com/watch?v=mUDkKNgRlkI&list=PL6W8z7_LBYsJxIQuzTulRtWvwyjMttTkx&index=6" target="_blank">Raid-0  в дата-центре OVH</a></li>
    </ol>
    <li id="Ipb7"><a href="https://teletype.in/@letskynode/Solana_part4_node" target="_blank">Гайд по установке ноды от команды Let&#x27;s Node (в формате текста)</a></li>
  </ol>
  <h2 id="fkPg"></h2>
  <p id="toEE"><strong>Какой гайд использовать для установки ноды? </strong></p>
  <p id="kmRS">Можете брать любой из списка выше, или читать мой и пробовать ставить по нему, в своем гайде я постарался учесть все возможные проблемы и ошибки, которые может совершить <strong>новичок</strong>, на пути становления валидатором. Сам же в мае 2021 года я ставил ноду по гайду <a href="https://www.youtube.com/watch?v=oXknHGiUSlg" target="_blank">Димана</a>, но многие тонкости и нюансы понял позже, когда сам нарыл всю информацию и общался с другими валидаторами. </p>
  <p id="TbAa">Итак, поехали.</p>
  <p id="wrmF"></p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Uk06">Для установки ноды нам будет нужен сервер, как выбрать дата-центр читаем тут, какую выбрать конфигурацию для сервера читаем тут. - <strong>Эта статья пока не готова</strong></p>
  </section>
  <p id="K0sX"></p>
  <p id="eNZO">У нас есть два варианта, как мы будем производить настройку сервера и дальнейшую установку ноды, мы можем это делать или под самым главным пользователем операционной системы Ubuntu - Root, или под любым другим пользователем, который уже создан в системе, например, у дата-центра OVH стандартная настройка сервера подразумевает работу под пользователем ubuntu, или под тем пользователем, которого вы создадите сами. </p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="S9YM">Обратите внимание, что в разных дата-центрах тот пользователь, под которым вам предлагается работать, может быть разным. Его имя по сути не имеет вообще никакой разницы. </p>
    <p id="xLaA">Для людей, кто не является профи в операционных системах типа Ubuntu, я рекомендую работать только под пользователем Root. Это исключит множество ошибок, которые могут возникнуть работая под несколькими пользователями. Но мы рассмотрим в этом мануале оба варианта установки.   </p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="H6kx">Давайте договоримся сразу, если вы работаете под Root, то при вводе команд вам не нужно использовать sudo, например, команда для установки файлового менеджера Midnight Commander под Root будет иметь такой вид:</p>
    <p id="9D6n">apt install mc</p>
    <p id="04YJ">А под пользователем, вот такой:</p>
    <p id="yjhW">sudo apt install mc</p>
  </section>
  <p id="YtSj"></p>
  <h2 id="h7qw">Подготовка к установке</h2>
  <p id="wB0K">Для того, чтобы исключить возможные проблемы после установки Соланы, нам необходимо провести тестирование железа и интернет-канала, очень часто бывают проблемы на новых серверах, связанные с коннектором для NVME дисков, в связи с этим скорость их записи и чтения становится недопустимо маленькой. Чтобы потом не мучиться и не писать в чат вопросы: &quot;А почему у меня  что-то не работает&quot; мы и проводим все эти процедуры. Но для начала установим Raid 0 и операционную систему Ubuntu 20.04</p>
  <p id="1lAw"></p>
  <h3 id="KnAT">Raid 0</h3>
  <p id="44Xl">Raid 0 представляет собой массив из двух или более дисков, запись на которые происходит параллельно, за счет этого скорость записи и считывания увеличивается в 2 и более раз (зависит от количества дисков, если 2 диска - в два раза, 3 - в три). Реальное увеличение скорости можно увидеть для записи/чтения больших файлов, но и при записи/чтении маленьких файлов скорость также увеличивает, но немного меньше.</p>
  <p id="O0G0">Для чего это там нужно? Так как Солана достаточно требовательна к скорости вашего диска и команда рекомендует использовать NVME-диски, то оптимизировать их работу мы можем с помощью Raid 0.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="dCDV">Внимание! Raid 0 можно сделать только ДО установки Соланы, более того Raid 0 делается ДО установки операционной системы. Поэтому, если вы решили сделать Raid 0 после того, как вы установили Солану - у вас ничего не выйдет. Придется форматировать диск (что повлечет за собой потерю всех данных, если не создадите резервную копию), создавать Raid 0, устанавливать операционную систему, а уже потом устанавливать Солану.</p>
  </section>
  <p id="si3a"></p>
  <h3 id="oAjJ">Проверка дисков</h3>
  <p id="96iX">Сначала запускаем команду, которая проверит скорость записи/чтения информации на диск:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="P7eX">curl -sL yabs.sh | bash -s -- -ig</p>
  </section>
  <p id="5kyV">И видим следующую информацию:</p>
  <figure id="blXX" class="m_column">
    <img src="https://img1.teletype.in/files/ce/b0/ceb0f345-3d75-445d-a511-8c58f06521ed.jpeg" width="1300" />
  </figure>
  <p id="Tw1a">Обращаем внимание на скорость записи/чтения для файлов 4k, т.е. для файлов размером 4кб, так как основной объем работы Солана проделываем как раз с файлами такого размера. На скриншоте мы видим отличные показатели диска для работы Соланы. Если ваш диск покажет скорость меньше 500мб/с на запись/чтение, то с большей долей вероятности этот диск не подойдет для работы Соланы. Хотя, есть успешные истории людей, которые запускали Солану на HDD-дисках, в которых скорость еще меньше. Но мы люди не рисковые, делать будем все максимально безопасно, чтобы в будущем не хапнуть проблем.</p>
  <p id="fplw">Также хорошо бы посмотреть, новые нам дали диски или старые, хотя даже диски использованные на 50% могут работать отлично, при этом многие дата-центра не будут вам менять диски, если с ними все в порядке, но они не новые. Эта информация больше нужна нам самим, для понимания, с каким железом мы работаем, писать в саппорт с предъявами, что нам поставили старые диски смысла особо нет, но вы можете попробовать это сделать ).</p>
  <p id="TzIi">Итак, сначала смотрим список всех дисков, которые установлены на нашем сервере, вводим команду:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="hxGL">lsblk</p>
  </section>
  <p id="wjmO">И видим такую информацию:</p>
  <figure id="JKa8" class="m_column">
    <img src="https://img3.teletype.in/files/61/db/61dbe8e5-cb1b-4ea3-b74b-81556a92cbf5.jpeg" width="812" />
  </figure>
  <p id="mYvw">Красным я выделил диски и их названия в системе, теперь нам нужно проверить каждый из них, для этого устанавливаем сначала утилиту smart:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="UlnI">apt install smartmontools</pre>
  </section>
  <p id="4Gzv">Далее смотрим информацию по первому диску:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="uT3J">smartctl -a /dev/nvme0n1</pre>
  </section>
  <p id="Qx5E">Видим следующее:</p>
  <figure id="2WUW" class="m_column">
    <img src="https://img3.teletype.in/files/20/c6/20c6fdc2-b03a-466a-babe-7ef03385b4af.jpeg" width="1474" />
  </figure>
  <ol id="e8xb">
    <li id="updG">Модель нашего первого NVME диска</li>
    <li id="XXHu">Объем нашего первого NVME диска</li>
    <li id="VIMR">Критическая температура, выше которой нашему диску будет плохо</li>
  </ol>
  <p id="jTXd">Спускаемся ниже и видим остальную информацию:</p>
  <figure id="CGmq" class="m_column">
    <img src="https://img1.teletype.in/files/0d/7f/0d7f4b15-1381-4913-bfd0-0bd019ddfced.jpeg" width="1408" />
  </figure>
  <ol id="QEvK">
    <li id="C18W">Текущую температуру первого NVME-диска (информация поступает с двух сенсоров)</li>
    <li id="XsaD">Процент износа диска</li>
    <li id="OY95">Объем информации, который уже были записаны на наш первый NVME-диск</li>
    <li id="U3mL">Объем информации, который был считан с нашего первого NVME-диска</li>
    <li id="QpAH">Отсутсвие информации об ошибках</li>
  </ol>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="cqod">Так выглядит диск, который отработал около 8 месяцев на сервере с работающей Соланой. </p>
  </section>
  <p id="0bK0">Исходя из этой информации, мы можем сделать для себя несколько выводов:</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <ul id="2Bu0">
      <li id="Ldcu">Диск не новый, но рабочий</li>
      <li id="RXIq">Скорость записи/чтения отличные</li>
      <li id="gsfI">Солана за 8 месяцев работы убивает диск на 31%</li>
    </ul>
  </section>
  <p id="K9t8">Для дополнительной уверенности советую также протестировать и второй диск, в нашем случае это можно будет сделать командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="D0NG">smartctl -a /dev/nvme1n1</p>
  </section>
  <p id="zExz">Возможно, вам пригодится еще команда, чтобы посмотреть свободное место на дисках, вот она:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="U0M0">df -h</p>
  </section>
  <figure id="bnJa" class="m_column">
    <img src="https://img3.teletype.in/files/ed/4e/ed4efe0c-6e39-4eca-a34f-9a1098665648.jpeg" width="858" />
  </figure>
  <p id="6ad0">Тут видим, что у нас из 1,9Тb занято системой (потому что сейчас на диск установлена только система) 2,4Gb, а свободно 1,8Тб. Этого для работы Соланы нам более чем достаточно.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Devo">Обратите внимание на тот момент, что на вашем сервере с огромной долей вероятности будут другие данные, разделы (диски) будут иметь другие название и их будет разное количество, вам не нужно пугаться, что у вас не так, как на моих скриншотах. Главной вам нужно разобраться какую информацию искать и как ее использовать.</p>
  </section>
  <h3 id="3nQq">Проверка интернета</h3>
  <p id="kaef">Для Соланы необходим канал в 1Гбит, обычно она потребляет не больше 300мбит/сек входящего и 300мбит/сек исходящего трафика. Суммарно за месяц в тестнете тратится около 100Тб трафика (50Тб исходящий, 50 Тб входящий), если ваш дата-центр или провайдер ограничивает скорость при достижении порога в 50Тб или меньше, то вам этот провайдер или дата-центр не подойдет, возможно, придется докупать еще трафик дополнительно. Запускаем проверку скорости первым способом:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="6hmE">curl -sL yabs.sh | bash -s -- -fg</p>
  </section>
  <p id="Ty9T">Получаем вот такой результат:</p>
  <figure id="UAw9" class="m_column">
    <img src="https://img4.teletype.in/files/7f/dd/7fdd7d6d-6f0d-42de-be0f-37f35e8d9c29.png" width="1276" />
  </figure>
  <p id="4ld3">Как мы видим на скриншоте, на нашем сервере достаточно хороший интернет, для Соланы нам его однозначно хватит.</p>
  <p id="Ojm5">Обычно этого теста достаточно, чтобы понять, все ли у нас хорошо с интернетом или нет, но можно протестировать его еще этим способом, устанавливаем:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WFdx">apt install speedtest-cli -y</p>
  </section>
  <p id="iidA">и запускаем:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="SSRc">speedtest</p>
  </section>
  <p id="C9Tk">Видим следующее:</p>
  <figure id="Oolj" class="m_column">
    <img src="https://img1.teletype.in/files/00/d7/00d7bf71-c45d-46b5-bfeb-672ef3dbd9c6.png" width="1338" />
  </figure>
  <p id="P4NA">И этот тест тоже говорит нам, что с каналом у нас все отлично.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="hgDW">Запомните! Те показатели, которые вы получили сейчас, не являются гарантией того, что такая скорость будет всегда. Вдруг у вашего сервера может выйти из строй сетевая карта или в дата-центре сломаться свитч, поэтому всегда тестируйте скорость интернета, если Солана работает не так, как вам хотелось! И старайтесь это делать при выключенной Солане, а не когда она работает и потребляет трафик, так тесты скорости будут для вас более показательными.</p>
  </section>
  <p id="Qjsy"></p>
  <h3 id="JJDu">Проверка памяти</h3>
  <p id="XURf">Достаточно редкое явление, что вам подсунули в дата-центре плохую память, но такой дата-центр как Икула (<a href="https://www.ikoula.com/" target="_blank">ikoula.com</a>) частенько подсовывает битую память своим клиентам, видимо она переходит от одного сервера к другому, вдруг арендатор сервера не заметит что с ней есть проблемы и будет работать на битой памяти. Видимо так они рассуждают. Поэтому проверить память точно будет не лишним, устанавливаем <strong>memtester</strong>:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="sq2N">apt install memtester</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="StYi">Будьте готовый к тому, что тестирование оперативной памяти процесс длительный, если с памятью есть проблемы, то ошибки могут показаться уже на первых минутах теста, а если с ней все хорошо, то тестирование может занять несколько часов. На тест 64Гб памяти может потребоваться около 4-6 часов, на тесты 128Гб около 12 часов.</p>
  </section>
  <p id="OET7">Теперь нам нужно запустить тестирование оперативной памяти, но тут есть один нюанс, memtester сможет протестировать только свободную на данный момент оперативную память. Для того, чтобы узнать, сколько на текущий момент у нас свободно оперативной памяти вводим команду:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ObEK">free -m</p>
  </section>
  <p id="4KdC">И видимы мы следующую информацию:</p>
  <figure id="yl4n" class="m_column">
    <img src="https://img1.teletype.in/files/8a/9d/8a9d1a4d-47c2-48d9-97e5-e924be22d53f.jpeg" width="1286" />
  </figure>
  <ol id="75mu">
    <li id="iX6A">Свободная оперативная память 61 619Мб</li>
    <li id="ozHu">Доступная оперативная память 63 317Мб</li>
  </ol>
  <p id="xBxS">Можно попробовать и запустить проверку <strong>доступной оперативной памяти</strong>, если не получится, запускайте проверку <strong>свободной оперативной памяти</strong>, вот так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="AWhE">memtester 60G 1</p>
  </section>
  <p id="qh8H">Цифра 1 указывает на количество циклов, которые будет тестировать память программа memtester, в нашем случае 1 цикла будет достаточно.</p>
  <p id="fDAx">61Gb = 61 * 1024 = 62 464Mb, так как это значение входит в доступную память, которая на момент проверки ровняется 63 317Мб, то у меня проверку запустить удалось. Если у вас запустить не получится и memtester выдаст ошибку, то запускайте проверку свободной оперативной памяти, в Гб это будет 61 619 / 1024 = 60Gb</p>
  <p id="wNmU">В результате тестов увидим следующую информацию:</p>
  <figure id="1gHB" class="m_column">
    <img src="https://img3.teletype.in/files/aa/8c/aa8cf4b3-b58a-4088-a232-0df0f0d44fa7.png" width="1354" />
  </figure>
  <p id="raQF">У нас все с памятью хорошо, все тесты пройдены. </p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="CYHt">Запомните! Если вы решили протестировать оперативную память после того, как установили Солану, обязательно остановите ее перед тестированием памяти. Если не остановите, то memtester не сможет протестировать около 32Гб памяти в тестнете и 64Гб памяти в майннете. Почему? Потому что memtester может проверять только <strong>свободную</strong> оперативную память, чтобы ее освободить, перед тестом Солану нужно остановить!</p>
  </section>
  <h3 id="o4Nv">Firewall</h3>
  <p id="8BrB">Firewall - это программа, которая выполняет роль сетевого экрана и ограничивает трафик. С одной стороны если мы умеем (реально умеем, а не думаем, что умеем) ей пользоваться она позволит нам защитить сервер от лишнего трафика, сетевых атак и взлома. С другой стороны (если вы читаете о фаирволе впервые в этом мануале) фаирвол может запороть работу ноды, что в результате выльется в высокий скип-рейт. Если вы не знаете, что это, то в работе Соланы вы можете не использовать фаирвол, все будет работать и так хорошо, но если у вас возникают проблемы с дата-центром, и он рекомендует вам ограничить трафик вашего сервера в приватные сети (это такие сети, в которые если вдруг ваша нода начинает слать трафик, то это будет выглядеть как попытка атаки, и ваш дата-центр может на время изолировать трафик вашего сервера). </p>
  <p id="aGsu">Устанавливаем фаирвол:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="6cYt"><code>apt install ufw</code></p>
  </section>
  <p id="e0FN">Проверка статуса фаирвола:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="rsKA">ufw status</p>
  </section>
  <p id="kV5E">После этой команды (если вы еще не производили никаких настроек фаирвола) вы увидите ответ - <strong>Status: inactive</strong>, это значит, что в данный момент вы только установили фаирвол, но он у вас еще не активен.</p>
  <p id="wBOr">Далее добавляем правила, по которым наш фаирвол будет фильтровать трафик:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="13b6">ufw allow 22<br />ufw allow 8000/tcp<br />ufw allow 8899/tcp<br />ufw allow 8900/tcp<br />ufw allow 8000:8020/udp</p>
  </section>
  <p id="tdrZ">Первая строка разрешает нам работать по 22 порту (по этому порту мы подключаемся к нашему серверу по SSH)</p>
  <p id="76ez">Далее мы открываем порты, по которым мы будем получать и отправлять трафик по протоколу TCP.</p>
  <p id="JuWs">И нижняя строчка разрешает нам отправлять и получать трафик по протоколу UPD через порты с 8000 до 8020.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="xo2j">Если в настройках фаирвола вы нечаянно запретите или НЕ разрешите серверу принимать или отправлять UDP трафик, то будьте уверены, нода ваша работать будет очень плохо, практически не будет. Все потому, что основной трафик у Соланы - это UPD трафик.</p>
  </section>
  <p id="niJ7">Далее запрещаем ноде отправлять трафик в приватные сети (куда нельзя посылать трафик лучше всего уточнить у вашего провайдера), в данном случае написаны правила для дата-центра Hetzner, у вас однозначно адреса подсетей будут другие:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="EJQx">ufw deny out from any to 10.0.0.0/8<br />ufw deny out from any to 172.16.0.0/12<br />ufw deny out from any to 192.168.0.0/16<br />ufw deny out from any to 169.254.0.0/16</p>
  </section>
  <p id="ZMJj">После того, как создали правила дня нашего фаирвола, мы можем его включить:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="IfMT">ufw enable</p>
  </section>
  <p id="HbDg">И еще раз на всякий случай проверить его статус:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="0SpX">ufw status</p>
  </section>
  <p id="8kfh">В ответ вы увидите список правил, который вы прописали для работы вашего фаирвола.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="BNkA">Еще раз напомню, фаирвол можно не использовать вообще, лично я, не использую.</p>
  </section>
  <p id="qt7j"></p>
  <p id="BPOJ"> </p>
  <h3 id="XSwC">Root</h3>
  <p id="qRkf">Если вы решили устанавливать ноду под пользователем Root, а ваш дата-центр предпочитает выдавать клиентам пользователя с правами администратора (могут быть ограничения, по сравнению с пользователем Root), то вам нужно его включить и разрешить авторизоваться с помощью пользователя Root по SSH.</p>
  <p id="pvQU">Вводим команда:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Ns4A">sudo passwd root</p>
  </section>
  <p id="uJ81">Видим следующее:</p>
  <figure id="CgNv" class="m_column">
    <img src="https://img2.teletype.in/files/53/81/53811168-ba0d-4d60-a8db-4aeaa0621614.png" width="1276" />
  </figure>
  <p id="3Iax">Вводим пароль для пользователя root, его нужно будет ввести дважды, видим такое сообщение:</p>
  <figure id="c9vp" class="m_column">
    <img src="https://img4.teletype.in/files/78/2d/782dbcae-b74a-4b9e-946f-c6647a20cea3.png" width="1554" />
  </figure>
  <p id="FZWg">Теперь нам нужно от отредактировать конфигурационный файл SSH, который позволит нам подключаться к серверу по SSH используя пользователя Root, вводим команду:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="tN50">sudo nano /etc/ssh/sshd_config</p>
  </section>
  <p id="rI15">Видим следующее:</p>
  <figure id="jZCC" class="m_column">
    <img src="https://img4.teletype.in/files/77/49/77498fcf-50e5-4d63-a2b4-a859e22f7876.jpeg" width="2332" />
  </figure>
  <p id="xJPf">Нам интересна вот эта строка - <strong>#PermitRootLogin prohibit-password</strong> она запрещает пользователю Root авторизироваться в системе с помощью пароля.</p>
  <p id="Tiip">Убираем решетку (#) из строчки PermitRootLogin, убираем значение <strong>prohibit-password</strong> и дописываем в конце yes, чтобы было вот так:</p>
  <figure id="urug" class="m_column">
    <img src="https://img4.teletype.in/files/f2/e6/f2e66a64-efaf-445d-9a88-dc11c8d02c56.jpeg" width="2316" />
  </figure>
  <p id="GlDN">Нажимаем ctrl+c, сохраняем изменения (нажимаем y, потом enter)</p>
  <p id="JKYQ">Перезагружаем сервис SSH:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="4h3P">systemctl restart ssh</p>
  </section>
  <p id="Q96v">Далее система попросит ввести текущий пароль от пользователя, под которым вы подключены сейчас к серверу по SSH, вводим пароль.</p>
  <figure id="22Q5" class="m_column">
    <img src="https://img3.teletype.in/files/25/ed/25ed75b0-8dbd-4cdc-af3a-400324106048.png" width="1142" />
  </figure>
  <p id="ThCF">После введения пароля системы ответит нам, что сервис SSH перезапустился.</p>
  <p id="sMXI">Все, мы включили пользователя Root и разрешили ему подключаться к серверу по SSH, теперь нам нужно проверить, все ли нормально, для этого еще раз подключаемся к нашему серверу по SSH (не закрываем старое подключение), но теперь уже под пользователем root и паролем, который мы задали. Если подключение прошло успешно, то смело можем закрывать старое подключение под пользователем. Теперь у нас все работает под root. Мы молодцы)</p>
  <p id="EqT5"></p>
  <h2 id="7icL"></h2>
  <h3 id="8oZ8">Ram-диск</h3>
  <p id="UmGR">Что такое рамдиск?</p>
  <p id="21pu">Рамдиск представляет собой область в оперативной памяти, куда оперативная система может складывать файлы для хранения, словно они находятся на жестком диске.</p>
  <p id="R8M7">Для чего он нужен и нужен ли нам он вообще?</p>
  <p id="3Xcq">В официальной документации Соланы написано, что если на вашем сервере много оперативной памяти, то вы можете использовать рамдиск <strong>для хранения на нем папки accounts</strong>. Что значит много? </p>
  <ul id="cZ29">
    <li id="YALB">Если мы ставим ноду для тестнета, то там во время обычной работы сети Солана потребляет порядка 32Гб оперативной памяти, с возможными скачками до 64Гб, а в моменты стресс-тестов и 128Гб не хватает, спасает свап.</li>
    <li id="NJ8u">Если мы говорим о майннет, то тут оперативной памяти Солана потребляет больше и 64ГБ тут минимальное значение с возможными скачками до 128Гб, но бывают момент, когда сеть нереально загружена и 128Гб оперативной памяти в майннете тоже не хватает, и тут опять же спасает свап.</li>
  </ul>
  <p id="xvzH">Поэтому, если у вас 128Гб оперативной памяти, то и для тестнета и для майннета можно сделать рамдиск на 300Гб, при этом свап можно сделать 250-300Гб (я делаю 300Гб). </p>
  <p id="HRaQ"><strong>Что такое свап?</strong></p>
  <p id="RchQ">Свап или файл подкачки, представляет собой место на жестком диске, куда операционная система записывает файлы, которые не могут поместиться в операционной памяти потому, что оперативная память уже занята. И тут возникает вопрос, а зачем нам делать рамдиск, который будет храниться частично в оперативной памяти, а остальную информацию система будет скидывать в свап? А все просто, в свап система скидывает те файлы, которые ей в данный момент особо не нужны, а вот в оперативную память она будет записывать те файлы, которые нужны прямо сейчас и очень сильно нужны. </p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="S406">В папку accounts Солана постоянно записывает и считывает маленькие файлы размером 4Кб, этих файлов очень много. А так как у каждого жесткого диска есть ресурс на запись/чтение информации, то с помощью переноса папки accounts на рамдиск мы увеличиваем срок службы нашего жесткого диска. </p>
  </section>
  <p id="ta2z">Если вы решили делать рамдиск (я делаю всегда), то вот инструкция:</p>
  <ol id="Vw0K">
    <li id="BYCY">Отключаем все файлы подкачки (свап):</li>
  </ol>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WwzU">swapoff -a</p>
  </section>
  <p id="xLLU">   2. Создаем новый свап-файл для хранения данных размером в 300Гб:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="f6Ll">dd if=/dev/zero of=/swapfile bs=1G count=300</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="6by1">Создание свап-файла в 300Гб может занять до 10 минут.</p>
  </section>
  <p id="SmTm">В результате создания увидим такую картину:</p>
  <figure id="m5uH" class="m_column">
    <img src="https://img3.teletype.in/files/64/90/6490023c-7d99-4404-b9db-3dd2c6b37033.png" width="1404" />
  </figure>
  <p id="7VNW">3. Задаем необходимые права для свап-файла: </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="yoIw">chmod 600 /swapfile</p>
  </section>
  <p id="AWXU">  4. Создаем свап из свап-файла:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="X6wu">mkswap /swapfile</p>
  </section>
  <p id="SSkU">  Видим следующее:</p>
  <figure id="Gkgp" class="m_column">
    <img src="https://img4.teletype.in/files/76/fa/76fa5ffc-4fcf-442b-b04c-ed02d8cd3dbd.png" width="1086" />
  </figure>
  <p id="Dhfz">  5. Включаем файл подкачки (свап):</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="4oNy">swapon /swapfile</p>
  </section>
  <p id="2amJ">  6. Проверить свап файл и память можно командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="en5R">free -h  </p>
  </section>
  <p id="7oCn">Видим следующее:</p>
  <figure id="YGvu" class="m_column">
    <img src="https://img1.teletype.in/files/43/2e/432ee762-11fc-4bb8-bf70-7c8b65c53343.jpeg" width="1278" />
  </figure>
  <p id="tKBC">Вот и появился наш раздел с файлом подкачки.</p>
  <p id="sG2m">  7. В конфигурационный файл файловой системы fstab добавляем информацию о новом файле и комментируем старые файлы подкачки (свапы):</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ayuh">nano /etc/fstab</p>
  </section>
  <p id="5gKz">Комментируем решеткой, ищем строчки, где содержатся слова swap и их комментируем (выключаем) с помощью символа решетка - #, вот так:</p>
  <figure id="DD4O" class="m_column">
    <img src="https://img3.teletype.in/files/e3/13/e3139a2a-c800-4f26-b59a-3f8d2a513084.jpeg" width="1086" />
  </figure>
  <p id="eNVl">Добавляем в конец файла 2 строчки:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="AWyq">/swapfile none swap sw 0 0</p>
    <p id="caco">tmpfs /mnt/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=300G 0 0</p>
  </section>
  <p id="4ihi">В общем запись будет иметь такой вид:</p>
  <figure id="iISj" class="m_column">
    <img src="https://img1.teletype.in/files/82/0c/820c6802-53b9-4b0e-ba4b-89373715ed57.jpeg" width="1124" />
  </figure>
  <p id="svdX">Нажимаем на клавиатуре ctrl+x, затем y и enter</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="3NCb">Обратите внимание, что у вас в файле /etc/fstab может быть несколько разделов со свапом, в этом случае вам придется закомментировать их все.</p>
  </section>
  <p id="rS6a">  8. Создаем новую папку для рамдиска:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="XRbZ">mkdir -p /mnt/ramdisk </p>
  </section>
  <p id="PVie">  9. Монтируем папку в качестве нового раздела:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="6lLx">mount /mnt/ramdisk</p>
  </section>
  <p id="z9Xf">  10. Проверяем созданный рамдиск командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="6XJC">df -h | grep ramdisk</p>
  </section>
  <p id="Ug5E">Видим:</p>
  <figure id="kYcD" class="m_column">
    <img src="https://img2.teletype.in/files/97/e7/97e7ec18-e5e9-46c4-bc66-c2ff2381ef8c.png" width="1010" />
  </figure>
  <p id="outN">На этом все, наш рамдиск готов, теперь нам лишь осталось в сервисном файле указать, где будет храниться папка accounts, это мы сделаем уже после установки Соланы с помощью параметра:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="kvRu">--accounts /mnt/ramdisk/accounts</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="gImP">По сравнению настройкой Raid 0, для создания рамдиска нам не нужно форматировать жесткий диск и снова устанавливать систему. Рамдиск мы можем сделать в любое время, лучше всего во время его создания <strong>остановите Солану </strong>и запустите ее только после того, как сделаете все настройки. Я предпочитаю сначала пройти все подготовительные этапы, а уже потом только устанавливать Солану, но, выбор за вами. </p>
  </section>
  <p id="vtTy"></p>
  <h2 id="oi5V">Установка ноды под Root</h2>
  <p id="r7MU">В этом пункте вы уже должны протестировать свой сервер и сделать необходимые настройки, а именно:</p>
  <ul id="dM11">
    <li id="j0LT">Однозначно должен быть сделан Raid 0, </li>
    <li id="wlZx">Настроен Root (по желанию, но я делаю все только под рутом), </li>
    <li id="lLQE">Протестирован жесткий диск</li>
    <li id="spd9">Протестирован интернет канал</li>
    <li id="nrZV">Протестирована оперативная память</li>
    <li id="PEzU">по желанию настроен фаирвол (можете его вообще не устанавливать, как я), </li>
    <li id="Gm3N">создан рамдиск.</li>
  </ul>
  <p id="TvdT"></p>
  <p id="9KLX">Теперь нам нужно узнать, какую на данный момент версию команда просит чтобы устанавливали валидаторы? Так как если вы зайдете на <a href="https://docs.solana.com/cli/install-solana-cli-tools" target="_blank">https://docs.solana.com/cli/install-solana-cli-tools</a>, то с большей вероятностью вы увидите последнюю версию Соланы, которая еще не рекомендована для всех валидаторов, что в теснтете, что в майннет, поэтому нам нужно будет зайди в <a href="https://discord.gg/solana" target="_blank">дискорд</a> проекта и посмотреть анонсы:</p>
  <ol id="zecs">
    <li id="1aA3">Для майннета</li>
    <li id="2Uao">Для тестнета</li>
  </ol>
  <figure id="a6RF" class="m_retina">
    <img src="https://img1.teletype.in/files/04/bf/04bf0799-1eac-4101-91da-defc9661c22f.jpeg" width="230.5" />
  </figure>
  <p id="UdH4">Там вы увидите просьбы команды обновиться до той или иной версии, также вы можете перейти на сайт <a href="https://solanatools.xyz/index.html" target="_blank">SolanaTools</a> и посмотреть, на какой версии в тестнете или в майннет больше всего валидаторов и поставить эту версию вот такой командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="P6dm">sh -c &quot;$(curl -sSfL <a href="https://release.solana.com/v1.9.2/install" target="_blank">https://release.solana.com/v1.9.2/install</a>)&quot;</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="NYrL">За место <strong>1.9.2</strong> поставьте ту версию, которую решили ставить.</p>
  </section>
  <p id="G5fe">Видимо вот такой результат:</p>
  <figure id="gwNa" class="m_column">
    <img src="https://img2.teletype.in/files/d7/68/d768c23b-14a9-4f07-a75f-69fa2c46c9b8.png" width="1718" />
  </figure>
  <p id="qMkF">Солана просит нас или закрыть текущую сессию (отключиться от сервера) и подключиться снова или прописать нижнюю строчку в консоль, отключаться мы не будем, а просто выделим эту строчку и введем в консоль:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="hqp3">export PATH=&quot;/root/.local/share/solana/install/active_release/bin:$PATH&quot;</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="jaon">Только выделите ее без лишних пробелов, или возьмите прям с мануала.</p>
  </section>
  <p id="xYQe">Потом смотрим, добавили ли мы в переменную PATH пути до Соланы, вводим:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="2mjM">echo $PATH</p>
  </section>
  <p id="QB4t">Увидим вот такую страшную строку, у вас она может быть другой, так что не пугаемся:</p>
  <figure id="sIJ0" class="m_column">
    <img src="https://img1.teletype.in/files/8b/28/8b288264-6f26-4283-a526-a1e3a88d6817.png" width="2304" />
  </figure>
  <p id="fJn0">Далее создаем папку solana, в которой у нас все (кроме папки accounts) будет храниться:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="cQkQ">mkdir solana</p>
  </section>
  <p id="OUtp">Переходим в эту папку:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="7sJb">cd solana</p>
  </section>
  <p id="SKSV"></p>
  <h3 id="d9lc">Настройки конфига соланы</h3>
  <p id="NTNy">Теперь задаем стандартные настройки для кластера, в котором мы будем работать и для ключа, которым мы по дефолту будем подписывать все транзакции:</p>
  <p id="ODjX">Для тестнета:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="nV7T">solana config set --url <a href="https://api.testnet.solana.com" target="_blank">https://api.testnet.solana.com</a></p>
    <p id="VGm0">solana config set --keypair /root/solana/validator-keypair.json</p>
  </section>
  <p id="5oM9">Увидим следующее:</p>
  <figure id="7a78" class="m_column">
    <img src="https://img1.teletype.in/files/41/82/4182aa6a-af16-4944-a67c-b6f19416bae3.jpeg" width="1822" />
  </figure>
  <p id="9C1W">Для майннета:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="nFYT">solana config set --url <a href="https://api.mainnet-beta.solana.com" target="_blank">https://api.mainnet-beta.solana.com</a></p>
    <p id="ZmaA">solana config set --keypair /root/solana/mainnet-validator-keypair.json</p>
  </section>
  <p id="ahpX"> Сюда скриншот вставлять не буду, разница будет только в адресе и файле.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="T0Ln">Актуальную информацию по адресу кластера берем на <a href="https://docs.solana.com/clusters" target="_blank">этой странице</a>.</p>
    <ul id="vHBv">
      <li id="iOkH">для тестнета - <a href="https://docs.solana.com/clusters#testnet" target="_blank">вот</a></li>
      <li id="EuVa">для майннета - <a href="https://docs.solana.com/clusters#mainnet-beta" target="_blank">вот</a></li>
    </ul>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="gn3b">Обратите внимание! Имена ключей validator-keypair.json и mainnet-validator-keypair.json могут быть какими угодно, точнее такими, какими вы их создали или планируете создать, главное, чтобы вы понимали, что этот ключ именно от тестнета, а другой, именно от майннета.</p>
  </section>
  <p id="2mT3"></p>
  <h3 id="oSvH">Создание ключей</h3>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="l7pz">Внимание! Если вы переезжаете с одного сервера на другой, вам все равно нужно указать Солане какой ключ она должна использовать по дефолту для подписи транзакций <strong>solana config set --keypair</strong> и в каком кластере вы будете работать <strong>solana config set --url</strong>. И если вы решили перенести ключи майннета на ноду, на которой раньше работали ключи тестнета, или наоборот, то не забудьте сменить в конфиге ключ и кластер на нужные!</p>
  </section>
  <p id="9qsB">Теперь мы будем или создавать ключи (если мы первый раз устанавливаем ноду и у нас вообще нет никаких ключей) или будем их копировать с нашего домашнего компьютера на сервер.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="n0Wt">Обратите внимание! То, что мы называем ключом на самом деле является парой ключей, на английском это keypair. Пара ключей состоит из публичного ключа, который выглядит вот так - 7MrYU7fnghgmtx9pWnbfsNJN3ZJTrUnn25Nx7z3x1TpV и приватного ключа, который может быть файлом в формате .json или мнемонической фразой. А ключом мы называем эту пару ключей потому, что все так привыкли.</p>
  </section>
  <p id="NWMW">Создаем основной ключ валидатора:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="mKai">solana-keygen new -o /root/solana/validator-keypair.json</p>
  </section>
  <p id="GgFU">И видим следующее:</p>
  <figure id="kUJk" class="m_column">
    <img src="https://img1.teletype.in/files/07/f5/07f50474-2725-4125-870f-a4e106a9e6b6.png" width="1690" />
  </figure>
  <p id="yo54">Система предлагает нам добавить дополнительное слово в нашу стандартную мнемоническую фразу, которая состоит из 12 слов, если вы добавите это слово, то мнемоника вашего ключа будет состоять уже из 13 слов (точнее 12+1), вероятно, это уменьшает шансы на взлом вашего ключа, но я не использую дополнительной слово и просто нажимаю Enter, в результате система нам покажет нам:</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="IBjU">Внимание! Если вы решили добавить дополнительное слово или любой набор символов в качестве 13 слова то запомните его или запишите, так как потом без него вы не сможете восстановить свой ключ.</p>
  </section>
  <figure id="wXN8" class="m_column">
    <img src="https://img3.teletype.in/files/6d/13/6d133cc3-0004-46b0-8758-ca6c63af74a5.jpeg" width="1700" />
  </figure>
  <ol id="ubpq">
    <li id="vYa8">Путь до созданного ключа и его имя (можете создать ему любое имя, это нужно только для вашего удобства, чтобы вы понимали где какой ключ у вас находится).</li>
    <li id="9U6i">Публичный ключ, по которому можно осуществлять перевод на этот ключ.</li>
    <li id="sDXh">Приватный ключ в виде мнемонической фразы</li>
  </ol>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="h84b">Обязательно скопируйте файл validator-keypair.json на свой локальный компьютер и сохраните мнемоническую фразу где-нибудь в надежном месте или запишите на бумаге. </p>
  </section>
  <p id="9QlC">Запрашиваем на свой основной ключ токены из тестовой сети, для этого идем на <a href="https://solanatools.xyz/faucet/testnet.html" target="_blank">сюда</a> и вводим публичный ключ своего основного ключа, жмем &quot;show me the money!&quot;:</p>
  <figure id="CWg6" class="m_column">
    <img src="https://img1.teletype.in/files/cb/1b/cb1b8a58-c5fe-4627-a4f9-c3e46781f152.png" width="2880" />
  </figure>
  <p id="lSg8">Ждем надписи на сайте <strong>Tokens sent!</strong> и проверяем баланс нашего кошелька:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="rLqu">solana balance</p>
  </section>
  <p id="JFHj">И видим там 100 SOL:</p>
  <figure id="wNFG" class="m_column">
    <img src="https://img4.teletype.in/files/fd/63/fd631512-c98a-4646-a587-02bb119c1992.png" width="1028" />
  </figure>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="oZVt">Обратите внимание! Для того, чтобы нам узнать баланс своего ключа нам не пришлось писать его публичный ключ или указывать путь до файла этого ключа. Все потому, что выше мы задали дефолтный ключ для системы командой <strong>solana config set --keypair /root/solana/validator-keypair.json</strong>, поэтому Солана по дефолту в эту команду и подставила наш ключ.</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="buz6">В майннете попросить у кого-то токенов не получится, поэтому свой ключ пополняем сами)</p>
  </section>
  <p id="FLgZ">Создаем ключ для воут-аккаунта:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ygmU">solana-keygen new -o /root/solana/vote-account-keypair.json</p>
  </section>
  <p id="NNie">Тут все один в один, как и с основным ключом валидатора, создаем, сохраняем на свой компьютер файл, записываем мнемоническую фразу.</p>
  <p id="JvC7">Создаем ключ для ауторизед виздравера (Authorized Withdrawer Account):</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="1dwq">solana-keygen new -o /root/solana/authorized-withdrawer-keypair.json</p>
  </section>
  <p id="ajdw">Тут все один в один, как и с основным ключом валидатора, создаем, сохраняем на свой компьютер файл, записываем мнемоническую фразу.</p>
  <p id="4PP9">Из ключа, который мы создали для воут-аккаунта, делаем это самый воут-аккаунт, и сразу в этой же команде назначаем ауторизет виздравером тот ключ, который мы для этого создали следующей командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Fu5T">solana create-vote-account /root/solana/vote-account-keypair.json /root/solana/validator-keypair.json /root/solana/authorized-withdrawer-keypair.json</p>
  </section>
  <p id="yPZC">И видим что у нас все получилось:</p>
  <figure id="xPT7" class="m_column">
    <img src="https://img3.teletype.in/files/27/68/2768a608-957d-41d2-8690-9e6a9e029385.png" width="2308" />
  </figure>
  <p id="FcNu">Если бы у нас не было SOL на основном ключе, то мы бы не смогли создать воут-аккаунт для нашего основного ключа, так как для этой операции нам нужны SOL для оплаты комисси, которая составляет около 0,026 SOL. Столько стоит эта операция хоть в тестнете, хоть в майннете. </p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="kdFY">Если мы создаем воут-аккаунт для майннета, то нам еще нужно изменить комиссию, которую наш войт-аккаунт получает за работу в сети, по дефолту это значение равно 100%, но для получения делегации от фонда необходимо установить комиссию не более 10% (можно и меньше), это мы можем сделать сразу, во время создания войт-аккаунта, вот так:</p>
  </section>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="JHjo">solana create-vote-account /root/solana/vote-account-keypair.json /root/solana/validator-keypair.json /root/solana/authorized-withdrawer-keypair.json --commission 10</p>
  </section>
  <p id="yHmp">Или после того, как вы сделали войт-аккаунт (<strong>без ауторизет виздравера</strong>), вот так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Gws6">solana vote-update-commission 81iuTYDaeJ71XFGkPXNUuQ8gNvHQfBxpU7Vj2hzJ9Q4e 10 /root/solana/validator-keypair.json</p>
  </section>
  <p id="4OLr">Или после того, как вы сделали войт-аккаунт (<strong>с авторизет виздравером</strong>), вот так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="EwGF">solana vote-update-commission 81iuTYDaeJ71XFGkPXNUuQ8gNvHQfBxpU7Vj2hzJ9Q4e 10 /root/solana/authorized-withdrawer-keypair.json</p>
  </section>
  <p id="kZHR">За место 81iuTYDaeJ71XFGkPXNUuQ8gNvHQfBxpU7Vj2hzJ9Q4e ставите пабкей своего воут-аккаунта.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="PPYI">Что это вообще за ключ такой ауторизет виздравер и зачем мы его создали?</p>
    <p id="ef8S">Для повышения безопасности средств в Солане есть возможность дать права на распоряжение стейком-аккаунтом и на снятие ревардов с воут-аккаунта другому ключу, которому нет необходимости постоянно находиться на сервере. Раньше функцию ауторизет виздравера выполнял ключ validator-keypair.json, который всегда должен находиться на сервере, так как от его имени происходит голосование в сети и с этого же ключа списывается комиссия для голосования в сети. Но это не безопасно, так как если злоумышленник получит доступ к вашему серверу с нодой, то сможет забрать стейк и реварды и переслать на свой ключ. А если эти права передать другому ключу, который будет лежать у вас на домашнем компьютере, то даже с доступом к серверу он не сможет забрать ваши деньги. Поэтому теперь все ключи, которые являются и основным ключом валидатора и ауторизет виздравером, помечаются в сервисе <a href="https://www.validators.app/" target="_blank">validators.app</a> желтым треугольником, вот таким: </p>
    <figure id="yWIN" class="m_original">
      <img src="https://img1.teletype.in/files/4c/ce/4cce4573-7933-464e-b87c-7442e633defb.png" width="56" />
    </figure>
    <p id="T1c1">Как его убрать, читаем тут.</p>
  </section>
  <p id="lbjg"></p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ZcI5">Еще одно важное дополнение. Создается воут-аккаунт и связываются ключи 1 раз. Один раз для одной ноды в тестнете и один раз для одной ноды в майннет. Если вы переезжаете на новый сервер вам не нужно проводить эту процедуру снова, ее нужно сделать только 1 раз! Если вы надумаете переехать на другой сервер, то вам просто нужно будет сохранить свои ключи у себя на локальном компьютере и потом скопировать их на новый сервер.</p>
  </section>
  <p id="smmy"></p>
  <p id="xHBN">Продолжаем установку Соланы.</p>
  <h3 id="nST7">Установка систюнера</h3>
  <p id="TQEz">Систюнер представляет собой набор настроек, которые оптимизируют операционную систему для работы Соланы. Так как систюнер уже встроен в Solana CLI, то мы можем или запускать его каждый раз перед запуском или рестартом Соланы вот так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="jHX3">sudo $(command -v solana-sys-tuner) --user $(whoami) &gt; sys-tuner.log 2&gt;&amp;1 &amp;</p>
  </section>
  <p id="MjRo">Или прописать те настройки, которые устанавливает систюнер, сразу в систему и не запускать его каждый раз перед стартом или рестартом Соланы. Мы пойдем вторым путем, сразу пропишем все настройки и не будем систюнер постоянно запускать, для этого вводим эти команды по очереди, всего 3 команд:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="IUuR" data-lang="shell">sudo bash -c &quot;cat &gt;/etc/sysctl.d/21-solana-validator.conf &lt;&lt;EOF
# Increase UDP buffer sizes
net.core.rmem_default = 134217728
net.core.rmem_max = 134217728
net.core.wmem_default = 134217728
net.core.wmem_max = 134217728

# Increase memory mapped files limit
vm.max_map_count = 1000000

# Increase number of allowed open file descriptors
fs.nr_open = 1000000
EOF&quot;</pre>
  </section>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="Ejmk" data-lang="shell">sudo sysctl -p /etc/sysctl.d/21-solana-validator.conf</pre>
  </section>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="kFQ4" data-lang="shell">sudo bash -c &quot;cat &gt;/etc/security/limits.d/90-solana-nofiles.conf &lt;&lt;EOF
# Increase process file descriptor count limit
* - nofile 1000000
EOF&quot;</pre>
  </section>
  <p id="RRRe"></p>
  <h3 id="Sonc">Сервисный файл. Создание и настройка</h3>
  <p id="sDuS">Теперь создаем сервисный файл:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="GxJe">nano solana.service</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="essg">Обратите внимание! Эта команда работает так: если у вас нет файла по тому пути, который вы указали, а сейчас мы хотим создать файл в /root/solana/, то тогда мы создадим его сразу будем в него записывать необходимую нам информацию. Но если у нас этот файл есть по данному пути, то мы откроем его в режиме редактирования и сможем в него записывать все, что нам нужно. Поэтому в данный момент мы его только создаем, потом уже этой же командой будем редактировать.</p>
  </section>
  <p id="vgve">И записываем в этот файл следующее:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="Vpdg" data-lang="shell">[Unit]
Description=Solana Node
After=network.target syslog.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
LimitNOFILE=1024000
Environment=&quot;SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=tds,u=testnet_write,p=c4fa841aa918bf8274e3e2a44d77568d9861b3ea&quot;
ExecStart=/root/.local/share/solana/install/active_release/bin/solana-validator \
--entrypoint entrypoint.testnet.solana.com:8001 \
--entrypoint entrypoint2.testnet.solana.com:8001 \
--entrypoint entrypoint3.testnet.solana.com:8001 \
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \
--known-validator 7XSY3MrYnK8vq693Rju17bbPkCN3Z7KvvfvJx4kdrsSY \
--known-validator Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN \
--known-validator 9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv \
--only-known-rpc \
--expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY \
--wal-recovery-mode skip_any_corrupted_record \
--identity /root/solana/validator-keypair.json \
--vote-account /root/solana/vote-account-keypair.json \
--ledger /root/solana/ledger \
--accounts /mnt/ramdisk/accounts \
--snapshot-interval-slots 500 \
--maximum-local-snapshot-age 1000 \
--maximum-snapshots-to-retain 1 \
--minimal-snapshot-download-speed 20485760 \
--limit-ledger-size 50000000 \
--dynamic-port-range 8000-8020 \
--log /root/solana/solana.log \
--private-rpc \
--rpc-port 8899
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
</pre>
  </section>
  <p id="xdCH">Взять и скопировать сервисный файл вообще не добавляет человеку ни знаний, ни счастья, а только умножает печали, поэтому, чтобы мы не печалились, будем разбирать каждый параметр, который используем. Поехали.</p>
  <p id="eTRl">Начиная с версии 1.9 команда добавила в Солану инкрементальные снепшоты, за место вот этих параметров:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="yYqm" data-lang="shell">--snapshot-interval-slots 500 \
--maximum-local-snapshot-age 1000 \
--maximum-snapshots-to-retain 1 \</pre>
  </section>
  <p id="eHl4">Вы можете поставить эти:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="3OKo" data-lang="shell">--incremental-snapshots \
--full-snapshot-interval-slots 25000 \
--incremental-snapshot-interval-slots 500 \
--maximum-full-snapshots-to-retain 1 \
--maximum-incremental-snapshots-to-retain 2 \
--maximum-local-snapshot-age 1500 \</pre>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="BSC0">Текущие значения для инкрементальных снепшотов не являются единственно верными! Эксперементируйте, подбирайте удобные для вас значения, на мой взгляд таких значений достаточно.</p>
  </section>
  <p id="exwL">Опишу каждый параметр я ниже.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="glg1">Для начала хотелось бы прояснить один момент, сервисный файл используется Соланой в качестве параметров для запуска, а это значит что Солана использует его ТОЛЬКО в момент запуска или в те моменты, когда происходит рестарт ноды из-за сбоев в системе (например, переполнение оперативной памяти). Поэтому не нужно бояться изменять сервисный файл в момент, когда нода работает, так как его изменение не нарушит работу ноды.</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="2y3P">Обратите внимание на такой параметр, как --no-port-check, что он делает, описано ниже. На что обращать внимание? Если вы устанавливаете новую ноду и где то в другом гайде увидели, что этот параметр в сервисном файле присутствует и решили его себе тоже добавить, то есть возможность получить проблемы в виде большого скипа. Почему? Потому что без проверки портов на открытие солана запустится и когда к вам будет идти трафик по тому порту, который у вас закрыт (а вы не знаете, есть ли у вас проблемы с портами, если солана их не проверяет), вы скипнете лидер-блок. Поэтому настоятельно рекомендую не ставить этот параметр, если на 100% не уверены, что с портами проблем нет.</p>
  </section>
  <p id="SA4c"><strong>--entrypoint</strong> - Точка входа для Соланы, представляет собой такую же ноду, как и у нас, только она мощнее и является своеобразным маяком, на который ориентируются рядовые ноды в кластере. Эта нода принадлежит команде Соланы. Для каждого кластера мы указываем свои энтрипоинты, их мы можем найти в <a href="https://docs.solana.com/clusters" target="_blank">официальной документации Соланы</a></p>
  <p id="62QO"><strong>--known-validator</strong> - известный нам валидатор, которому мы доверяем и с которого мы будем качать снепшоты в случае, если мы их не пишем на свой жесткий диск или они оказались повреждены. В случае, когда мы берем этих валидаторов с доков соланы (для каждого кластера свои кноун-валидаторы), то мы указываем ноды, которые принадлежат команде Соланы, также мы можем указать там своего друга и качать снепшоты с него (но чтобы это заработало, нужны настройки его ноды, ниже об этом будет сказано)</p>
  <p id="IQ1h"><strong>--only-known-rpc</strong> - запрещает вашей ноде качать снепшоты с НЕ известных вам валидаторов, если у вас стоит этот параметр, то вы будете качать снепшот только с тех валидаторов, которые указали в параметре --known-validator, если же этого параметра не будет, то сначала нода попробует скачать снепшот с кноун-валидаторов, и если не получится, начнет качать у других. Почему этот параметр может оказаться важным? Все потому, что он защищает кластер от злоумышленников. Если вдруг владелец ноды, с которой можно качать снепшоты, изменит снепшот и внедрит в него вредоностный код, то ноды, которые будут с него качать этот снепшот будут делать то, что нужно ему. Если в тестнете это не критично, так как перезапустить сеть не стоит денег, а вот в майннете это может дорогого стоить, поэтому в майннете лучше качать снепшоты с доверенных нод.</p>
  <p id="YHLV"><strong>--expected-genesis-hash</strong> - Ожидание определенного хэша у генезиса</p>
  <p id="DH8u"><strong>--wal-recovery-mode</strong> - Режим восстановления леджера</p>
  <p id="OzLi"><strong>--identity</strong> - путь до нашего основного ключа</p>
  <p id="sqZG"><strong>--vote-account</strong> - путь до нашего воут-аккаунта</p>
  <p id="ccIL"><strong>--ledger</strong> - путь до леджера</p>
  <p id="8UqY"><strong>--accounts</strong> - путь до папки с аккаунтами</p>
  <p id="kbCq"><strong>--snapshot-interval-slots</strong> - интервал, через сколько слотов делать снепшоты </p>
  <p id="EqpW"><strong>--snapshot-compression</strong> - сжимать или не сжимать снепшоты, которые мы записываем на диск, если указываем значение none - то не сжимаем, если вообще не указываем параметр &quot;--snapshot-compression&quot; в сервисном файле  - то сжимаем</p>
  <p id="gdUD"><strong>--snapshot-archive-format</strong> - в каком формате будем сжимать снепшоты, если их сжимаем. По дефолту - zstd, могут быть варианты: bz2, gzip, zstd, tar.</p>
  <p id="gXIJ"><strong>--maximum-local-snapshot-age</strong> - этот параметр необходим для того, чтобы нода стартовала с локального снепшота в том случае, если он моложе этого показателя. Если поставите значение 2000, то с локального будете стартовать тогда, когда ваш локальный снепшот младше 2000 слотов (менее 2000 слотов отстает от кластера на данный момент), если старше - нода скачает свежий снепшот с кластера.</p>
  <p id="2r7x"><strong>--incremental-snapshots</strong> - наличие этого параметра в вашем сервисном файле говорит о том, что вы включили функцию инкрементальных снепшотов.</p>
  <p id="oKlZ"><strong>--full-snapshot-interval-slots</strong> - через сколько слотов делать полный снепшот кластера.</p>
  <p id="wsQ4"><strong>--incremental-snapshot-interval-slots</strong> - через сколько слотов делать инкрементальные снепшоты.</p>
  <p id="tuiS"><strong>--maximum-full-snapshots-to-retain</strong> - максимальное количество полных снепшотов кластера, которые будут храниться в вашем леджере (или в том месте, где укажите, чтобы хранились ваши снепшоты)</p>
  <p id="MWmn"><strong>--maximum-incremental-snapshots-to-retain</strong> - максимальное количество инкрементальных снепшотов, которые будут храниться в вашем леджере (или в том месте. где укажете, чтобы хранились ваши снепшоты</p>
  <p id="AHxx"><strong>--maximum-snapshots-to-retain</strong> - сколько снепшотов хранить на диске (этот параметр используется в случае, если инкрементальные снепшоты мы не включали)</p>
  <p id="OOPL"><strong>--minimal-snapshot-download-speed</strong> - минимальная скорость скачивания снепшотов, этот параметр будет работать только в том случае, если есть выбор откуда качать снепшоты. Если у нас стоит запрет на скачивание снепшотов с НЕ известных для нас валидаторов, то скачивание снепшота будет идти с тех, кого мы указали в списке известных валидаторов, вне зависимости от скорость, с которой это скачивание будет происходить.</p>
  <p id="2M3v"><strong>--limit-ledger-size</strong> - ограничение размера леджера, которое исчесляется в шредах, что такое шреды читаем <a href="https://solananewbie.net/solana-dictionary#UUjg" target="_blank">тут</a>.</p>
  <p id="yUVa"><strong>--dynamic-port-range</strong> - порты, на которые Солана будет принимать и отправлять трафик.</p>
  <p id="DZXu"><strong>--log</strong> - путь до файла с логами. Если этот параметр не указан, что логи будут писаться с системный журнал Соланы, как их смотреть в этом случае смотрим <a href="https://solananewbie.net/console-commands#gvnI" target="_blank">тут</a>.</p>
  <p id="JMa4"><strong>--private-rpc</strong> - запрещает другим валидаторам качать с вас снепшоты и выполнять другие действия с помощью RPC-команд, которые могут нагружать ваш сервер. Для обычных валидаторов (таких как мы) команда не советует открывать RPC наружу.</p>
  <p id="zA4Q"><strong>--rpc-bind-address</strong> - этот параметр раньше выполнял роль параметра --private-rpc, по идее его уже можно не использовать, на на всякий случай он есть в моем сервисном файле.</p>
  <p id="MnxL"><strong>--rpc-port</strong> - на каком порте будет работать RPC, если вдруг вы решите ее открыть наружу и сделать доступной для других. В этом случае этот порт должен быть у вас открыт (если вы используете фаирвол)</p>
  <p id="Yoen"><strong>--no-port-check</strong> - не выполнять проверку доступных портов для работы Соланы. Вы можете поставить этот параметр себе в сервисный файл после того, как проверите, что у вас Солана работает нормально и логах нет никаких ошибок, связанных с портами. Этот параметр может сократить время запуска Соланы после перезагрузки на несколько секунд.</p>
  <p id="sHBJ"></p>
  <p id="WEUh"><strong>Параметры, которые могут нам пригодиться в момент подъема кластера, после падения сети:</strong></p>
  <p id="9QHF"><strong>--expected-shred-version</strong></p>
  <p id="XUU8"><strong>--wait-for-supermajority</strong> - запускает работу ноды полностью только тогда, когда 80% стейка окажется на слоте, который на 1 меньше значение, которое указано в параметре</p>
  <p id="yLEB"><strong>--no-snapshot-fetch</strong> - запрет на скачивание снепшотов с других валидатор. Старт с локального снепшота, если он есть</p>
  <p id="BHZl"><strong>--no-genesis-fetch</strong> - не запрашивать из кластера данные о генезисе</p>
  <p id="scq6"></p>
  <p id="L7un"></p>
  <p id="7y2I"></p>
  <p id="9Kml">Информацию по остальным параметрам вы можете найти в своем терминале введя команду: </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="usir">solana-validator -h</p>
  </section>
  <p id="A4di"></p>
  <h3 id="cyW5">Установка logrotate</h3>
  <p id="nqUo"><strong>Для чего нам нужно?</strong></p>
  <p id="qBYg">Логротейт позволяет нам создать ротацию для файла лога, если сказать простым языком, то файл с логированием всех событий в Солане мы режем на куски, которые по времени равны одному дню. Файлы, которые содержат логи старше чем за 7 дней система удаляет. Итого у нас в системе находится актуальный файл с логами за текущий день плюс 7 файлов логов за последние 7 дней. Файл с логами за каждый день в Солане весит около 10Гб, итого получается мы храним 70Гб логов за 7 дней плюс логи за текущий день.</p>
  <p id="2Z5c">Создаем файл в папке Solana:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="2rmd">nano solana.logrotate</pre>
  </section>
  <p id="GL9q">И записываем в него следующее:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="QWDR" data-lang="shell">/root/solana/solana.log {
rotate 7
daily
missingok
postrotate
systemctl kill -s USR1 solana.service
endscript
}</pre>
  </section>
  <p id="ksft"><strong>Что значат эти параметры?</strong></p>
  <p id="79Me"><strong>rotate</strong> 7 - храним 7 файлов;</p>
  <p id="Vnz9"><strong>daily</strong> - интервал файлов 1 день;</p>
  <p id="0nXC"><strong>missingok</strong> - не записывать сообщение об ошибке, если файл с логом отсутсвует;</p>
  <p id="KpLH"><strong>postrotate</strong> - после этой команды и между <strong>endscript</strong> записывается команда, которая будет выполнена после создания каждого файла с логами. </p>
  <p id="CPT2"><strong>systemctl kill -s USR1 solana.service</strong> - отправляет сигнал <strong>USR1</strong> процессу solana-validator (так называется процесс нашей ноды Соланы) на пересоздание лог файла.</p>
  <h3 id="vCMi"></h3>
  <h3 id="6unx">Создание символических ссылок</h3>
  <p id="xwHX"><strong>Для чего нам нужны?</strong></p>
  <p id="wXzG">Символические ссылки это своеобразные ярлыки на файлы или папки в Windows, используем мы их для удобства, чтобы производить редактирование сервисного файла из папки solana, а не из папки <strong>/etc/systemd/system</strong></p>
  <p id="XBmE">Создаем символические ссылки следующими командами</p>
  <p id="LyM5">для Соланы:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="41Px">ln -s /root/solana/solana.service /etc/systemd/system</pre>
  </section>
  <p id="tt4k">для логротейта:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="UElq">ln -s /root/solana/solana.logrotate /etc/logrotate.d/</pre>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="kdZv">Если вам удобнее размещать файлы в системные директории, а не хронить их в папке solana, то символические ссылки создавать вам не нужно, вам нужно сразу создавать файлы в <strong>/etc/systemd/system</strong> и в <strong>/etc/logrotate.d/</strong></p>
  </section>
  <p id="PmG3"></p>
  <h3 id="P5QV">Включение сервиса Соланы и запуска ноды</h3>
  <p id="HHQN">Теперь нам остался последний шаг, нам нужно включить в системе сервис и запустить Солану:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <pre id="6rLT">systemctl daemon-reload
systemctl enable solana.service
systemctl start solana.service</pre>
  </section>
  <p id="Ka9L"><strong>systemctl daemon-reload</strong> - эта команда выполняет роль &quot;мягкой&quot; перезагрузки системы, обновляет конфигурации из файловой системы и восстанавливает деревья зависимостей.</p>
  <p id="Zvwm"><strong>systemctl enable solana.service</strong> - эта команда автоматически запускает Солану после перезагрузки вашего сервера.</p>
  <p id="wsUe"><strong>systemctl start solana.service</strong> - запускает Солану.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="U4wC">Поздравляю! Мы запустили нашу ноду. Теперь нам предстаит научиться ее обсуживать, читать логи, искать проблемы и устранять их.</p>
  </section>
  <p id="oxVU"></p>
  <p id="vtGa">Установка ноды под пользователем (не Root)</p>
  <h2 id="aT4c"></h2>
  <h2 id="1vfT">Администрирование ноды</h2>
  <h3 id="bWOX">Скачивание снепшота с быстрых RPC Node до рестарта соланы</h3>
  <p id="M65O"></p>
  <h3 id="9YQt">Как заменить пароль на ключ и изменить порт для SSH</h3>
  <p id="hmps"></p>
  <h3 id="x70G">Как читать логи?</h3>
  <p id="w3AE"></p>
  <h3 id="gKgE">Мониторинг температуры</h3>
  <p id="3pAZ"></p>
  <h2 id="wbyf">Установка аватарки и смена имени ноды на сайте валидатор.апс</h2>

]]></content:encoded></item><item><guid isPermaLink="true">https://solananewbie.net/solana-dictionary</guid><link>https://solananewbie.net/solana-dictionary?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie</link><comments>https://solananewbie.net/solana-dictionary?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie#comments</comments><dc:creator>solananewbie</dc:creator><title>Solana / Словарь валидатора</title><pubDate>Tue, 21 Dec 2021 13:57:43 GMT</pubDate><description><![CDATA[Для каждого сообщества, профессии или коллектива очень важно разговаривать на одном языке. В своей работе валидатора мы используем определенный профессиональный сленг. Для того, чтобы вам было комфортно общаться в нашей большой семье необходимо разобраться со всеми словами, что используют валидаторы в обсуждениях. Начнем!]]></description><content:encoded><![CDATA[
  <p id="iGHu">Для каждого сообщества, профессии или коллектива очень важно разговаривать на одном языке. В своей работе валидатора мы используем определенный профессиональный сленг. Для того, чтобы вам было комфортно общаться в нашей большой семье необходимо разобраться со всеми словами, что используют валидаторы в обсуждениях. Начнем!</p>
  <p id="zE1O"><strong>Нода</strong> - узел, или программный комплекс, который осуществляет передачу информации в сети. В нашем случае эта сеть Соланы.</p>
  <p id="QQ8N"><strong>Эпоха</strong> - промежуток времени, который измеряется в слотах (не в секундах, минутах или часах). Эпоха составляет 432000 слотов, каждый слот занимает примерно 0,4-0,8 секунд. Время каждого слота зависит от загруженности сети, чем она выше, тем больше будет создаваться блок за во времени одного слота, если сеть не загружена вообще, то время на создание 1 блока за слот будет составляеть 0,4 секунды и эпоха продлится 432000 * 0,4 / 3600 = 48 часов. </p>
  <p id="8HjG">Чтобы посмотреть текущее время эпохи используем команду: </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="DfZK">solana epoch-info</p>
  </section>
  <p id="Nmvz"><strong>Валидатор</strong> - человек, который занимается обслуживанием ноды. Чтобы посмотреть список всех валидаторов в сети используем команду:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="aL1S">solana validators</p>
  </section>
  <p id="RJr7"><strong>Слот</strong> - период времени, в течение которого каждый лидер принимает транзакции в сети и создает блок. Чтобы посмотреть, какой сейчас слот в блокчейне, используем команду:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="6StQ">solana slot</p>
  </section>
  <p id="LXc7"><strong>Блок</strong> - непрерывный набор записей в леджере, которые были подтверждены голосованием валидаторов. Лидер производит не более 1 блока за один слот.</p>
  <p id="HBPx"><strong>Лидер</strong> - нода, которая в данный момент времени получила возможность произвести блок. Подряд каждый лидер производит 4 блока.</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="xAH8">Без этого объяснения картина была бы не полной. Почему этот лидер что-то производит и для чего. Чтобы это понять необходимо рассказать, как работает блокчейн Соланы.</p>
    <p id="8461">Блокчейн Соланы устроен следующим образом. В начале каждой эпохи каждому валидатору автоматически в случайном порядке создается расписание его лидер-слотов по 4 слота. Когда приходит тот блок, в котором у валидатора по расписанию стоит его лидер-слот, валидатор должен получить информацию от предыдущего валидатора, кто был перед ним по расписанию и создавал 4 блока за 4 слота, создать новый блок и записать его в блокчейн. </p>
  </section>
  <p id="vLE2"><strong>Лидер-слот</strong> - слот во время которого лидер должен совершить блок, количество лидерслотов в текущей эпохе у валидатора можно посмотреть следующей командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="r5Uz">solana -u localhost leader-schedule  | grep GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE | wc -l </p>
  </section>
  <p id="Ixcz">Расписание лидер-слотов у валидатора можно посмотреть этой командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ReOy">solana -u localhost leader-schedule  | grep GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE</p>
  </section>
  <p id="hrsw">Внимание! Вместо GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE поставьте публичный ключ своего валидатора, или того, чью информацию хотите посмотреть.</p>
  <p id="WLWV"><strong>Скип рейт / Скип</strong> - показатель работы ноды, который рассчитывается как отношение количества пропущенных блоков к тем блокам, которые были в расписании на данный момент. </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="AnMT">Например, у вас на текущий момент было запланировано 130 блоков, сделали вы 80, 20 из них пропустили. Итого рассчитаем скип рейт:</p>
    <p id="0o2g">20 / 130 * 100 = 15,38%</p>
  </section>
  <p id="8zzS">Скип рейт можно посмотреть следующей командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Z7Hn">solana -v block-production | grep GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE</p>
  </section>
  <p id="CGvo">Внимание! Вместо GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE поставьте публичный ключ своего валидатора, или того, чью информацию хотите посмотреть.</p>
  <p id="vvqH"></p>
  <p id="Xr1H"><strong>Кластер</strong> - набор валидаторов, которые поддерживают один леджер (единую сеть)</p>
  <p id="BP01"><strong>Кредит или войт-кредит</strong> - очки или баллы, которые получает нода за голосование внутри сети (подтверждение возможности и правильности транзакции)</p>
  <p id="okPB"><strong>Голос или войт</strong> - действие, результатом которого является подтверждение или отказ в добавлении транзакции в леджер блокчейна.</p>
  <p id="onYV"><strong>Кошелек</strong> - набор пар ключей (публичный и приватный ключ), который позволяет пользователям управлять своими средствами.</p>
  <p id="ze3B"><strong>Инфляция</strong> - увеличение количества токенов с течение времени, которые используются для выплаты вознаграждения валидаторам и для финансирования дальнейшего финансирования Solana.</p>
  <p id="yRc0"><strong>Пара ключей (keypair)</strong> - представляет собой открытый (публичный) ключ и закрытый (приватный) ключ. Публичный ключ представляет собой запись типа - GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE из 44 символов, а приватный ключ представляет собой или мнемоническую фразу из 12 слов (плюс еще можно добавить одну фразу, которая будет являться паролем - passphrase) или json файлом.</p>
  <p id="txmx"><strong>Лампорт</strong> - является минимальной единицей монеты Sol и составляет 0.000000001 Sol, аналогом у Биткоина является Сатоши.</p>
  <p id="zPpu"><strong>Леджер</strong> - Список записей, который содержит в себе все транзакции, совершенные в сети. Реестр (леджер) каждого валидатора содержит около 50 000 000 шредов, которые охватывают транзакции одной эпохи. Получается, что в каждый момент времени каждый валидатор хранит у себя на ноде историю всех транзакций блокчейна только за одну эпоху. Остальная информация хранится в Google Big Table Storage и на других частных серверах.</p>
  <p id="UUjg"><strong>Шред</strong> - часть блока, которая содержит определенное количество транзакций, это количество зависит от текущей пропускной способности сети (TPS).</p>
  <p id="tYFD"><strong>TPS</strong> - Transactions per second, количество транзакций в секунду.</p>
  <p id="mU5F"><strong>Транзакция</strong> - одна или несколько инструкций, которая была подписана одной или несколькими парами ключей, выполняемая автоматически. У транзакции может быть только 2 результата: успех или неудача.</p>
  <p id="tzgR"><strong>Смарт-контракт</strong> - это программа в блокчейне, которая может считывать или изменять учетные записи, которыми она управляет.</p>
  <p id="74ji"><strong>Стейк</strong> - Монеты SOL, которые заделегированы на ноду валидатора и которые приносят прибыль. В зависимости от комиссии валидатора владелец стейка получает от 90% до 100% прибыли, которая на текущий месяц равняется около 7% годовых. Валидатор может установить любую комиссию от 0% до 100%, которую будет получать от владельца стейка. Но так как мы находимся в свободном рынке, и текущие предложения по комиссии со стейка составляют от 0% до 10%, то валидаторы с большей комиссией вряд ли получат стейк от владельцев стейка.</p>
  <p id="nyMG"><strong>ID транзакции</strong> - Первая подпись в транзакции, которая может однозначно использоваться для идентификации транзакции в леджере.</p>
  <p id="sWui"><strong>Период прогрева (warmup period)</strong> - это период, который занимает одну эпоху после того, как стейк был делегирован валидатору. В этот период стейк имеет статус активации, активным он станет на следующую эпоху. Это относится и к лидер-слотам, которые получает валидатор. Если стейк стал активным в текущей эпохе, то лидер-слоты он получит только в следующей эпохе. Это работает и в другую сторону: если вы потеряли стейк в прошлой эпохе, то в текущей эпохе вы еще получите лидер-слоты (так как они будут выданы на основе стейка в прошлой эпохи), а вот в следующей (которая идет за эпохой без стейка), вы уже не получите лидер-слотов.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://solananewbie.net/solana-registration</guid><link>https://solananewbie.net/solana-registration?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie</link><comments>https://solananewbie.net/solana-registration?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie#comments</comments><dc:creator>solananewbie</dc:creator><title>Solana / Регистрация в SFDP</title><pubDate>Mon, 13 Dec 2021 12:38:51 GMT</pubDate><description><![CDATA[<img src="https://img1.teletype.in/files/c5/90/c5902c7c-c510-4b94-9104-79c184b7c933.png"></img>Итак, пара слов о Solana Foundation Delegation Program, или сокращенно SFDP. В сети Solana поднять свою ноду и помогать сети работать может любой, но тут возникает сразу же 2 проблемы:]]></description><content:encoded><![CDATA[
  <p id="D9uo">Итак, пара слов о Solana Foundation Delegation Program, или сокращенно SFDP. В сети Solana поднять свою ноду и помогать сети работать может любой, но тут возникает сразу же 2 проблемы:</p>
  <ul id="WZY2">
    <li id="6LQA">Если мы это делаем в сети Testnet - то у нас нет токенов для того, чтобы появились слоты и можно было создавать лидер-блоки (о том, как работает блокчейн Solana читаем тут). А без токенов мы можем только голосовать. Тестовые токены мы не можем купить на бирже, но можем попробовать подоить кран, который в последнее время токенов не дает вообще, или попросить у тех, кто уже валидирует в тестовой сети и заработал на этом тестовых токенов.</li>
    <li id="2W0Y">Если мы это делаем в сети Mainnet - мы можем купить токены на бирже, но Solana потребляет за 1 эпоху (в среднем 2 дня 18 часов) около 2 SOL на голосование внутри сети (о расчете прибыльности в Mainnet читаем тут), соответственно заниматься этим никто не будет, так как это получается сжиганием собственных денег.</li>
  </ul>
  <p id="2L7v">Для того, чтобы держать ноду в тестовой и основной (Mainnet) сети было выгодно и интересно команда придумала программу делегации от фонда Solana и назвала эту программу Solana Foundation Delegation Program. </p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="hBXB">В этой статье я не буду затрагивать вопрос как двигается очередь для попадания в тестовую сеть и основную, об этом можно почитать в <a href="https://solananewbie.net/solana-queue" target="_blank">этой статье</a>.</p>
  </section>
  <p id="J32p"></p>
  <p id="5PRw">Для того, чтобы приступить к регистрации, нам нужны:</p>
  <ol id="S3b6">
    <li id="bwpb">Электронная почта</li>
    <li id="eocf">Учетная запись в Discord</li>
    <li id="WDgd">Паспорт</li>
    <li id="ZZmV">Собственное лицо</li>
    <li id="niG7">Ключ (или его еще можно назвать кошельком) для сети Testnet;</li>
    <li id="SjHu">Ключ для сети Mainnet</li>
    <li id="MzeC">Пополнить ключ в сети Mainnet на 0,002 Sol</li>
    <li id="Zv32">Связать ключи между собой</li>
  </ol>
  <p id="ELM4"></p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="kfUM">Если вдруг у вас токены Sol только на бирже, а там минимальное количество для отправки составляет больше, чем сумма, необходимая для связки ключей, можете не переживать. Эти токены никуда не пропадут, вы сможете их вернуть назад на биржу или отправить на любой другой кошеле в сети Solana.</p>
  </section>
  <p id="uTDo"></p>
  <h2 id="KjkY">Установка Solana CLI</h2>
  <p id="i9eO">Для данной процедуры нам нужно установить Solana CLI (Command Line Interface - интерфейс командной строки для Solana). CLI можно установить на Linux, Mac и Windows. В данной инструкции я буду использовать операционную систему Ubuntu. Вы можете арендовать любой VPS или выделенный сервер для этих процедур. Итак, приступим.</p>
  <ol id="h6tO">
    <li id="pQ8R">Подключаемся к серверу по SSH с помощью любого клиента (как арендовать сервер и азы командной строки можно узнать в этой статье).</li>
    <li id="MVLK">На всякий случай обновляем все приложения в системе, вводим команду:</li>
  </ol>
  <pre id="NHbF">sudo apt update &amp;&amp; sudo apt upgrade -y</pre>
  <p id="mhLU">и видим следующий скрин:</p>
  <figure id="jvXz" class="m_column">
    <img src="https://img1.teletype.in/files/c5/90/c5902c7c-c510-4b94-9104-79c184b7c933.png" width="2334" />
    <figcaption>Все нормально, мы обновили ядро и программы.</figcaption>
  </figure>
  <ol id="LL7M">
    <li id="P5vP">Переходим по ссылке на <a href="https://docs.solana.com/" target="_blank">официальную документацию Solana</a> и видим следующее:</li>
  </ol>
  <figure id="6TxP" class="m_column">
    <img src="https://img3.teletype.in/files/a8/2f/a82fca42-8b74-4d05-b5bd-01a39809d5fa.png" width="2848" />
    <figcaption>Этот скриншот может отличаться от того, что находится в доках Соланы в данный момент.</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="jisn">Обратите внимание, что версия CLI может отличаться от той, что вы видите на скриншоте. Ничего страшного. Используйте ту версию, которая в находится в официальной документации Соланы в тот момент, когда вы читаете этот мануал.</p>
  </section>
  <p id="hr4n">3. Копируем команду полностью (можно нажать на правый краешек, там будет кнопка <strong>Copy</strong> и вставляем ее в командную строку (<strong>ctrl+v</strong>). Нажимаем <strong>Enter</strong> и видим процесс установки Solana CLI:</p>
  <figure id="mOig" class="m_column">
    <img src="https://img1.teletype.in/files/4b/ce/4bce4e01-eca5-40bf-96bf-9deb404ca983.png" width="2320" />
    <figcaption>Все нормально, пакет скачивается, далее будет процедура установки.</figcaption>
  </figure>
  <p id="Fb4U">4. После завершения процесса установки система предложит нам ввести команду:</p>
  <pre id="uoI5">export PATH=&quot;/root/.local/share/solana/install/active_release/bin:$PATH&quot;</pre>
  <p id="ZD9u">Копируем команду из терминала (выделяем ее мышкой и нажимаем <strong>ctrl+c</strong>) и вставляем в терминал (<strong>ctrl+v</strong>) или можно скопировать прям из этого мануала, со временем эта команда не изменится.</p>
  <p id="hwLy">5. Далее проверяем, все ли нормально установилось, проверить это можно командой:</p>
  <pre id="9kVh">solana --version</pre>
  <p id="Y56p">В итоге вы увидите текущую версию Solana CLI, которую вы только что установили, идем дальше.</p>
  <p id="fOrE"></p>
  <h2 id="Aerh">Создание ключей</h2>
  <h3 id="MeKy"></h3>
  <h3 id="cOhb">Создаем ключ для тестнета</h3>
  <p id="G6LA">Очень легкая процедура, нам нужно создать 2 ключа, один для тестнета, второй для майннета. Пишем следующую команду в терминале:</p>
  <pre id="OZbX">solana-keygen new -o ~/validator-keypair.json</pre>
  <p id="RvGA">В результате мы увидим такую информацию:</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="dKTY">Generating a new keypair</p>
    <p id="945R">For added security, enter a BIP39 passphrase</p>
    <p id="q4l9">NOTE! This passphrase improves security of the recovery seed phrase NOT the<br />keypair file itself, which is stored as insecure plain text</p>
    <p id="BLVi">BIP39 Passphrase (empty for none): </p>
  </section>
  <p id="iiZ9">В этом сообщении система предлагает нам ввести пароль, который будет являться дополнительным словом к вашей мнемонической фразе, это значит, что каждый раз, когда вы будете восстанавливать свой кошелек с помощью мнемонической фразы (смотреть команду для этого тут), вам будет необходимо вводить этот пароль. Если вы считаете, что самой мнемонической фразы вам хватит, просто нажимаем <strong>Enter</strong>. Видим следующее:</p>
  <figure id="0Gcz" class="m_column">
    <img src="https://img2.teletype.in/files/1e/de/1ededcb8-f569-4475-90b1-2e93d76a1936.png" width="2308" />
  </figure>
  <p id="RPfP">На скриншоте мы видимо адрес, по которому в данный момент находится наш ключ:</p>
  <pre id="P9Cj">/root/validator-keypair.json</pre>
  <p id="eat3">Его публичный ключ (по этому адресу вам можно отправить токены Sol):</p>
  <pre id="BBez">BZwURm4QzNVHC4KPrJKboeh4hzdANdA26EgmBvLiufFq</pre>
  <p id="r42O">И ваша мнемоническая фраза:</p>
  <pre id="WJ6v">patch security safe middle panda wonder remind way valley second cable plunge</pre>
  <p id="IDp2"></p>
  <h3 id="SVlt">Создаем ключ для майннета</h3>
  <p id="b8UL">Процедура абсолютно одинаковая, отличаться будет только имя вашего ключа, поэтому вводим следующую команду в терминале:</p>
  <pre id="e7Kp">solana-keygen new -o ~/mainnet-validator-keypair.json</pre>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="h2iX">Обратите внимание, абсолютно не важно как вы назовете ключ, имя ключа задается только для вашего удобства, чтобы вы потом не запутались в ключах.</p>
  </section>
  <p id="9Nym">Далее мы увидим такую же информацию в терминале, как была при создании ключа для тестнета. Хотите задать дополнительный пароль - задаете, нет - нажимаете <strong>Enter</strong>. Снова копируете все данные о ключе в надежном месте, после этого переходим к следующему этапу.</p>
  <p id="DHgL"></p>
  <h2 id="zL5N">Связывание ключей</h2>
  <p id="e0uO">Эта процедура нам необходима для того, чтобы система понимала, какой валидатор из тестнета будет работать или работает в майннете. Хочется уточнить один важный момент. В этой связке основным ключом является ключ от тестнета, именно по этому ключу вы будете отслеживать себя в очереди. Если вы потеряете ключ майннета (<strong>до вхождения в майннет</strong>), то ничего страшного, вы сможете привязать новый ключ майннета к тестнету и не потеряете свою очередь. Но если вы потеряете все данные от ключа тестнета, то вам придется начинать все заново.</p>
  <p id="zYBM">Для связывания ключей нам необходимо установить дополнительное программное обеспечение по следующему мануалу:</p>
  <ol id="VoYL">
    <li id="vI3X">Переходим на сайт <a href="https://rustup.rs/" target="_blank">https://rustup.rs/</a> и копируем следующую команду (можно нажать на иконку справа от строчки):</li>
  </ol>
  <figure id="8Tpp" class="m_column">
    <img src="https://img1.teletype.in/files/03/5e/035e5cee-9c43-4206-9b10-7cb3bec25f58.jpeg" width="2824" />
  </figure>
  <p id="n77k">Вводим ее в терминал, нажимаем <strong>Enter</strong> и видим:</p>
  <figure id="kuWX" class="m_column">
    <img src="https://img3.teletype.in/files/64/88/6488a07f-9319-4aca-8ec2-6c465cc29ead.png" width="2330" />
  </figure>
  <p id="7v9o">Нажимаем 1 и <strong>Enter</strong>. Ожидаем когда программа скачает необходимые пакеты, после этого программа предлагает нам или перезапустить нашу сессию (отключиться от сервера и подключиться снова) или ввести команду. Я ввожу команду:</p>
  <pre id="0ODt">source $HOME/.cargo/env</pre>
  <p id="OKfy">2. В связи с тем, что для работы нам нужны дополнительные библиотеки, нам их нужно установить следующей командой:</p>
  <pre id="en7E">sudo apt install build-essential clang libudev-dev pkg-config libhidapi-dev librust-openssl-sys-dev librocksdb-dev
sudo apt install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang</pre>
  <p id="0pt0">Вводим команду и видим:</p>
  <figure id="5aNM" class="m_column">
    <img src="https://img4.teletype.in/files/b3/57/b3576795-b1b7-4b24-ae64-d71da54132a6.png" width="2312" />
  </figure>
  <p id="DzNR">Нажимаем Y и потом <strong>Enter</strong>. Теперь мы можем увидеть процесс установки. Ожидаем окончания и идем дальше.</p>
  <p id="AlaF">3. Запускаем следующую команду</p>
  <pre id="Ab0a">cargo install solana-foundation-delegation-program-cli</pre>
  <p id="kylU">Запасайтесь терпением, процедура может длиться минут 5-10, это нормально.</p>
  <p id="Qu0J"></p>
  <h2 id="84M1">Перевод Sol на кошелек.</h2>
  <p id="uJaS">Как я писал в самом начале, теперь нам нужно пополнить наш кошелек реальными Sol с биржи или с другого кошелька.</p>
  <p id="ybXn">А теперь заходим на вашу биржу или кошелек и переводим 0,002 Sol на публичный ключ для тестнета. Проверяем, поступили ли они командой</p>
  <pre id="WO1D">solana balance validator-keypair.json -um</pre>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="oIXY">Обратите внимание, мы добавили к команде флаг -um, который позволяет нам проверить баланс именно в кластере майннет. Чтобы посмотреть баланс в кластере тестнет (если он не задан по дефолту у нас), используем флаг -ut.</p>
  </section>
  <p id="AILN">Если токены поступили, то вводим следующую команду:</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="nb1w">solana-foundation-delegation-program apply --mainnet mainnet-validator-keypair.json --testnet validator-keypair.json --keypair validator-keypair.json --confirm</p>
  </section>
  <p id="U5UX">Я хотел бы чтобы вы понимали все команды, которые вводите в командную строку, особенно это касается команд самой Соланы. В некоторых мануалах написано, что токены нужно переводить на кошелек майннета, в других написано, что на кошелек тестнета. Вы должны понимать, что нет никакой разницы, на какой кошелек вы будете переводить токены, которые будут служить комиссией за транзакцию (связку ключей, которая записывается в блокчейне). Обратите внимание на эту часть команды:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="XRUT">--keypair validator-keypair.json</p>
  </section>
  <p id="NZL4">Именно эта часть команды и указывает, откуда мы будем списывать комиссию за совершение транзакции.</p>
  <p id="p31e">Все, кошельки мы связали, статус их можно проверить следующей командой:</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="l0Ho">solana-foundation-delegation-program status validator-keypair.json --keypair validator-keypair.json</p>
  </section>
  <p id="GvUG">Если вы увидите статус Pending - значит все хорошо. Когда статус сменится на Approved, это будет значить, что вас ждут в качестве валидатора в майннете.</p>
  <p id="9DDE"></p>
  <h3 id="QSlZ">Регистрация в программе SFDS</h3>
  <ol id="2y5H">
    <li id="PLA8">Переходим на сайт <a href="https://solana.foundation/delegation-program" target="_blank">по ссылке</a> и нажимаем на Apply now:</li>
  </ol>
  <figure id="nHzU" class="m_column">
    <img src="https://img1.teletype.in/files/c3/06/c306d82a-a7aa-44fe-a0f8-bbe20ed99ee9.jpeg" width="2854" />
  </figure>
  <p id="3SYw">Вводим свои данные:</p>
  <ol id="uPg2">
    <li id="m42u">Ваше гражданство</li>
    <li id="PigF">Публичный ключ майннета</li>
    <li id="mYvH">Публичный ключ тестнета</li>
  </ol>
  <figure id="IC5t" class="m_column">
    <img src="https://img4.teletype.in/files/77/55/77553f7e-b2e7-45e8-8e34-8e74aea86914.jpeg" width="2864" />
  </figure>
  <p id="C2VW">Жмем <strong>Next</strong>.</p>
  <p id="XvzA"></p>
  <p id="pg5T">Далее вводим:</p>
  <ol id="iPPb">
    <li id="W6QW">Ваше имя (на латинице)</li>
    <li id="oW0c">Вашу фамилию (на латинице)</li>
    <li id="AFcT">Адрес электронной почты</li>
    <li id="yvDq">Имя учетной записи в дискорде</li>
    <li id="kDZO">Проходим проверку, что мы человек, а не робот</li>
  </ol>
  <figure id="MCTX" class="m_column">
    <img src="https://img1.teletype.in/files/86/ea/86ea26b7-0845-4542-80c1-fa3576609fd4.jpeg" width="2850" />
  </figure>
  <p id="1Wt0">Жмем <strong>Next</strong>.</p>
  <p id="9ff1">Далее вам на почту придет электронное письмо с кодом, который будет необходимо ввести на следующей странице. После этого попадаем на страницу:</p>
  <figure id="nBXZ" class="m_column">
    <img src="https://img3.teletype.in/files/a0/6c/a06cbacd-549b-4f9b-a46e-798320386a39.jpeg" width="1205" />
  </figure>
  <p id="VZyC">Где указываем:</p>
  <ol id="SR0L">
    <li id="beOd">Фамилию и имя на английском языке, например, Ivanov Ivan</li>
    <li id="3yjP">В эту графу записываем Individual (если вы физическое лицо)</li>
    <li id="dt6C">Здесь пишем страну вашего гражданства, например, Russia</li>
  </ol>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="tCnO">На сколько я знаю вы не сможете участвовать в SDFP, если ваше гражданство Беларусь.</p>
  </section>
  <p id="xLD7">Далее спускаемся вниз и видим следующую информацию:</p>
  <figure id="8XUN" class="m_column">
    <img src="https://img2.teletype.in/files/1a/d1/1ad13a80-5be4-40da-abd1-06bcdff10317.jpeg" width="1164" />
  </figure>
  <p id="kJ1S"></p>
  <ol id="3IJS">
    <li id="Nolx">Это поле у вас уже будет заполнено автоматически, там будет Фамилия и Имя.</li>
    <li id="yyFx">В это поле вам нужно будет кликнуть и с помощью мышки или тачпада поставить свою подпись, вот тут:</li>
  </ol>
  <figure id="RYva" class="m_column">
    <img src="https://img2.teletype.in/files/1f/01/1f0110dd-53ac-4856-9c4c-929699ed0070.jpeg" width="954" />
  </figure>
  <p id="AC98">    3. В этом поле у вас также будет ваше Имя и Фамилия, они должны там отобразиться автоматически.</p>
  <p id="nHAG">    4. В это поле вводим Mr. - если вы мужчина, Mrs или Miss - если женщина.</p>
  <p id="ZMwm"><strong>Жмем Далее </strong>(справа сверху синяя кнопка)</p>
  <p id="Jubj">Теперь осталось дело за малым. Вам нужно выбрать документ, с помощью которого вы будете проходить процедуру KYC. Можно выбрать:</p>
  <ol id="Pb3a">
    <li id="KLOL">Паспорт</li>
    <li id="XyJd">Водительские права</li>
    <li id="28fE">Национальное удостоверение личности</li>
  </ol>
  <p id="buYV">После выбора одного из документов вас перенаправит на страницу, на которой нужно выбрать с помощью камеры ноутбука вы будете фотографировать документы и снимать свое лицо или с помощью камеры своего телефона (с телефона вы можете отсканировать QR-код, который перекинет вас на сайт для прохождения KYC или отправить ссылку себе на почту, по которой вы сможете также пройти со своего телефона или с любого другого устройства)</p>
  <p id="hN9R">Выбирайте то, что вам нравится.</p>
  <p id="7RHu">Для биометрической проверки вашего лица вам будет необходимо разместить свое лицо в овал и дождаться, пока система не скажет вам, отодвинуть его или приблизить ближе. После этого вы увидите проверку качества изображения и подтверждение, что все прошло успешно.</p>
  <p id="jriC">Бывают ситуации, когда у вас или плохой свет, или просто фото документа сделали размытым, тогда система предложит вам или загрузить фото заново или сделать новые фото.</p>
  <p id="zIUp">Через несколько минут (или часов) вам придет письмо, в котором будет написано следующее:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="IvdG">Dear Ivan,</p>
    <p id="Iarn">Thank you for signing up for the Solana Foundation Delegation Program. You have passed KYC successfully. This email address is now registered with the following validator keys: </p>
    <p id="fwnS">Testnet: Ключ тестнета <br />Mainnet-Beta: Ключ майннета</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="HC0a">Внимание! Если вам пришло письмо с другим содержанием:</p>
    <p id="VgkH">Thank you so much for signing up for the Solana Foundation Delegation Program and completing our KYC process. You did not pass KYC, most likely because of your photo quality.</p>
    <p id="dQjO">Make sure to use high-quality images of your documents so that all the information is clearly visible. The photos have to be clear, with proper contrast and sharpness; be careful that the image is not blurry. When taking the photo of the documents, place the documents in a well-lit room or in natural lighting, and make sure there isn’t any glare from a light obstructing any of the details on the image.</p>
    <p id="YSgO">Your ID documents must be visible end-to-end, which means all four corners of your ID are visible in the photo.</p>
    <p id="nONe">То вам нужно заново пройти всю процедуру регистрации (связывать ключи уже не надо), снова идем на сайт <a href="https://solana.foundation/delegation-program" target="_blank">https://solana.foundation/delegation-program</a>, вводим там свои ключи (этого может быть и не потребуется, но KYC заново проходить точно придется) и проходим всю процедуру заново, снова заполняем и подписываем документ, снова подгружаем или фотографируем свои документы, но уже с лучшим качеством, чем было до этого. И делаем это снова и снова, пока не придет письмо с текстом подтверждения, что вы успешно прошли KYC.</p>
  </section>
  <p id="Loxo">Поздравляю вас, скоро (хотя, может быть и не так скоро, как хотелось бы) вы присоединитесь к нашей большой и дружной семье, а теперь переходим на <a href="https://solananewbie.net/solana-queue" target="_blank">эту страницу</a> и читаем, как нам отслеживать свою очередь в тестнет и майннет.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://solananewbie.net/solana-queue</guid><link>https://solananewbie.net/solana-queue?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie</link><comments>https://solananewbie.net/solana-queue?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie#comments</comments><dc:creator>solananewbie</dc:creator><title>Очередь в тестнет и майннет</title><pubDate>Mon, 13 Dec 2021 12:15:39 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/fb/f1/fbf1e672-0464-44e7-bf65-61d8e859e342.jpeg"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/af/68/af68fd84-c7e0-4e96-823a-e8f75370807c.jpeg"></img>В этой статье я хочу рассмотреть один из самых главных вопросов: &quot;Когда я попаду в мейн&quot;? Вопрос этот достаточно сложный, потому зависит не только от того, какой у вас сервер, интернет, жесткий диск, а также от того, на каких серверах едут ваши соседи по очереди.]]></description><content:encoded><![CDATA[
  <p id="CPCp">В этой статье я хочу рассмотреть один из самых главных вопросов: &quot;Когда я попаду в мейн&quot;? Вопрос этот достаточно сложный, потому зависит не только от того, какой у вас сервер, интернет, жесткий диск, а также от того, на каких серверах едут ваши соседи по очереди.</p>
  <p id="H0Rj"></p>
  <h2 id="2Lg7">Содержание</h2>
  <nav>
    <ul>
      <li class="m_level_1"><a href="#2Lg7">Содержание</a></li>
      <li class="m_level_1"><a href="#b83f">Краткий путь валидатора в майннет по программе SFDP</a></li>
      <li class="m_level_1"><a href="#VQ3s">Очередь в тестнет</a></li>
      <li class="m_level_1"><a href="#B51p">Очередь в майннет</a></li>
    </ul>
  </nav>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="2L1Q">Внимание! Если вы хотите запустить ноду в тестнете или майннет без делегации от фонда (без токенов, которые фонд делегирует участникам программы) вы можете сделать это в любое время. В этом случае вам не нужно проходить никакие регистрации или KYC, просто переходите к этой инструкции и вперед!</p>
  </section>
  <h2 id="b83f">Краткий путь валидатора в майннет по программе SFDP</h2>
  <p id="q8Q1">Кратко путь попадания в майннет (по программе SFDP) через тестнет (иначе никак, в майннет (по программе SFDP) могут попасть только валидаторы, которые прошли весь путь в тестнете) можно представить так:</p>
  <p id="3AaQ"></p>
  <ol id="6kH4">
    <li id="aAhO">Связывание ключей регистрация в SFDP и прохождение KYC (об этом читаем <a href="https://solananewbie.net/solana-registration" target="_blank">тут</a>)</li>
    <li id="bct5">Примерно 2 месяца ожидания.</li>
    <li id="4KIt">Мониторинг своей примерной очереди в сервисе <a href="https://solanatools.xyz/signups.html" target="_blank">SolanaTools</a></li>
    <li id="5pD8">Обнаруживаем в сервисе SolanaTools прочерк в своей очереди</li>
    <li id="VDNA">Ищем свой ключ в пулреквесте на гитхабе проекта, сначала в открытом пулреквесте - <a href="https://github.com/solana-labs/stake-o-matic/pulls" target="_blank">тут</a>, потом в закрытом пулреквесте - <a href="https://github.com/solana-labs/stake-o-matic/pulls?q=is%3Apr+is%3Aclosed" target="_blank">тут.</a></li>
    <li id="ttoG">Ожидаем примерно одну эпоху и ждем, когда ключ появится <a href="https://github.com/solana-labs/stake-o-matic/blob/master/bot/src/validator_list.rs" target="_blank">тут.</a></li>
    <li id="gcFK">Запускаем ноду и начинаем отслеживать свою очередь <a href="https://solana.foundation/validators-search" target="_blank">тут</a> или <a href="https://solanatools.xyz/onboarding-history.html" target="_blank">тут</a>.</li>
    <li id="JXnH">Усердно работаем в течение 12-24 месяцев и попадаем в майннет! Ура!</li>
  </ol>
  <p id="53Fe"></p>
  <p id="a6Zx">Для отслеживания очереди мы будем пользоваться следующими ресурсами:</p>
  <ul id="v4Aa">
    <li id="QggI"><a href="https://solana.foundation/validators-search" target="_blank">Официальный сайт Solana</a></li>
    <li id="8YIg"><a href="https://solanatools.xyz/" target="_blank">Solana tools</a> от Хуенга (если есть вопросы или предложения по сервису, пишем <a href="https://t.me/NodesCrew" target="_blank">тут</a>)</li>
    <li id="BfEI"><a href="https://github.com/solana-labs/stake-o-matic/pulls" target="_blank">Официальный гитхаб Solana</a></li>
  </ul>
  <p id="Bv4t"></p>
  <h2 id="VQ3s">Очередь в тестнет</h2>
  <p id="vr5M">С этой очередью все не так просто. А все потому, что на данный момент отсутствует официальный сервис от команды, который мог бы поставлять актуальные данные о очереди в тестнет. На сайте <a href="https://solanatools.xyz/signups.html" target="_blank">SolanaTools</a> есть возможность проверить момент, в который была совершена связка ключей (тестнет и майнет, как это делать читаем в этой статье), эта информация дает нам примерное понимание, когда ключ попадет в тестнет. Почему примерное? А потому что очередь идет не по времени связывания ключей, а по времени прохождения KYC, и получается ситуация, что человек ключ связал сегодня, а KYC прошел через месяц, соответственно его очередь идет с момента прохождения KYC. Если так получилось, то вот что мы увидим на сайте:</p>
  <figure id="oWxv" class="m_column">
    <img src="https://img3.teletype.in/files/af/68/af68fd84-c7e0-4e96-823a-e8f75370807c.jpeg" width="2862" />
  </figure>
  <p id="rjXD">Первые ключи были связаны давным-давно, а в тестнет они до сих пор не попали. Почему? Потому что они до сих пор не прошли KYC.</p>
  <p id="4UWY">Как определить через сколько времени вы попадете в тестнет? Нужно свою очередь делить на 100.</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Ysgx">В тестнет запускают по 100 ключей каждую неделю, поэтому свою очередь делим на 100 и получаем количество недель, через которые вас запустят в тестнет. В <strong>одну неделю</strong> укладывается примерно <strong>3 эпохи</strong>, поэтому на сайте SolanaTools вы будете видеть изменение вашей очереди на 100 позиций <strong>каждые 3 эпохи.</strong></p>
  </section>
  <p id="1msa">Когда ваш ключ будет добавлен в теснет вы увидите вот такие прочерки в очереди:</p>
  <figure id="uc3S" class="m_column">
    <img src="https://img4.teletype.in/files/b8/65/b865edcb-a29e-4fde-bbdc-7a59dcdb11c8.jpeg" width="2864" />
  </figure>
  <p id="iTGH">Как видите, 1 ключ зашел в тестнет в 255 эпохе, второй в 258. Хотя, этот прочерк еще не означает, что ключ уже зашел в тестнет и его видит бот, который начисляет стейк. Этот прочерк значит, что ваш ключ был добавлен в список, который в ближайшие 1-2 эпоху попадет в тестнет, его заметит бот и даст стейк.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="3SJo">Один нюанс, если вы видите прочерки ДО цифр с очередью, это значит, что до этого момента ваши ключ не были связаны, а связка ключей была произведена в ту эпоху, в которой вы увидели первые цифры, например, вот так:</p>
  </section>
  <figure id="iqLP" class="m_column">
    <img src="https://img2.teletype.in/files/5b/a9/5ba95947-4f32-43bb-a484-aefbef6ce817.png" width="2880" />
  </figure>
  <p id="0wfi">Как видите на этом скриншоте, второй ключ до 245 эпохи не был в очереди в тестнет, связка ключе произошла в 247 эпоху и с этого момента начинается отсчет его очереди (в том случае, если в <strong>эту же эпоху человек также прошел KYC</strong>). Теперь нужно ждать, когда прочерк будет ПОСЛЕ цифр очереди.</p>
  <p id="xYvb">Следующих этап попадания в тестнет лежит через гитхаб проекта, а именно, поэтому, переходит по <a href="https://github.com/solana-labs/stake-o-matic/pulls" target="_blank">ссылке</a> и видим:</p>
  <figure id="9ctM" class="m_column">
    <img src="https://img3.teletype.in/files/a8/66/a866139e-5068-4355-8932-146efdaa144f.jpeg" width="2878" />
  </figure>
  <p id="HjK6">Пулреквесты, а точнее открытые пулреквесты на добавление 100 ключей в бота. Пока этот пулреквест не закрыт, ключ в бота не попадет. Как вы можете заметить, в этот раз команда сделала сразу несколько пулреквестов, но это исключение, обычно каждую неделю можно увидеть только один пулреквест. Видимо, это связано с Рождественскими и Новогодними каникулами. Поэтому кликаем на <strong>192 Closed</strong> (192 пулреквеста команда уже закрыла и добавила какую-то информацию в бота, это не обязательно могут быть ваши ключ, могут быть и другие исправления в коде бота) и видим следующее:</p>
  <figure id="m4we" class="m_column">
    <img src="https://img4.teletype.in/files/fb/3a/fb3a240f-b4f5-47cd-8a2c-b9b1b1bdfcca.jpeg" width="2870" />
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="m8Xu">Пулреквест - это запрос к управляющему каким-либо репозиторием или базой данных (в роли управляющего может быть человек, группа лиц или вообще робот) на добавление в этот репозиторий информации. Соответственно, закрытый пулреквест (с зеленой галочкой) это удовлетворенный запрос на добавление информации в базу.</p>
  </section>
  <p id="3Gr7">Мы видим что 3 дня назад был закрыт пулреквест номер 216, кликаем на этот пулреквест и видим в вот такую ссылку:</p>
  <figure id="HYsH" class="m_column">
    <img src="https://img4.teletype.in/files/30/ff/30ff5522-6f7c-4de5-81b0-97314430c4cc.jpeg" width="2860" />
  </figure>
  <p id="7s3W">Переходим по ней и видим список ключей, который в этот раз команда добавила в тестнет:</p>
  <figure id="rdDE" class="m_column">
    <img src="https://img3.teletype.in/files/e0/49/e049da9c-ebc9-419a-ba77-d37f19d66c81.jpeg" width="2848" />
  </figure>
  <p id="bd42"></p>
  <p id="jDBr">Так отмечены ключи, которые в этом пулреквесте были добавлены в бота. Нажимаете ctrl+F и ищете свой ключ в этом списке, если вы есть - все отлично, ждем около 1 эпохи и вы в тестнете!</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="MEpo">Обратите внимание, те ключи, которые НЕ выделены зеленым цветом и без плюсиков, УЖЕ находятся в базе, чтобы это проверить вы можете взять любой из этих ключей и проверить его в боте. Как проверять - читаем ниже.</p>
  </section>
  <p id="OIen">Если нашли свой ключ тут - <a href="https://raw.githubusercontent.com/solana-labs/stake-o-matic/master/bot/src/validator_list.rs" target="_blank">https://raw.githubusercontent.com/solana-labs/stake-o-matic/master/bot/src/validator_list.rs</a> <strong>значит, смело можете запускать свою ноду!</strong></p>
  <p id="j5Oi">После того, как запустите ноду и синхронизируетесь с сетью, примерно в течение 1 эпохи вас заметит бот и заделегирует на вас 1 SOL. Информацию об этом сможете найти тут:</p>
  <ul id="0zyJ">
    <li id="vQ7e"><a href="https://raw.githubusercontent.com/wiki/solana-labs/stake-o-matic/md/Validator-PUBLIC-KEY.md" target="_blank">https://raw.githubusercontent.com/wiki/solana-labs/stake-o-matic/md/Validator-PUBLIC-KEY.md</a> вставив за место PUBLIC-KEY свой публичный ключ. Если там есть информация о вашем ключе - значит бот вас уже заметил, если видите - 404: Not Found, значит пока еще не успел заметить и обновить свою базу.</li>
    <li id="Wbbb">Перейти по ссылке в <a href="https://github.com/solana-labs/stake-o-matic/wiki" target="_blank">самого бота</a> - и в поле <strong>Find a Page...</strong> вбить свой публичный ключ, вот тут:</li>
  </ul>
  <figure id="GlLi" class="m_column">
    <img src="https://img2.teletype.in/files/9d/84/9d84ddff-b6fa-49ee-9ac0-b9a46a64e9a7.jpeg" width="2858" />
  </figure>
  <p id="HVb3">Поздравляю вас, теперь вы присоединились к дружной семье валидаторов тестнета, впереди еще длинный путь, возможно, больше года, так что переходим к очереди в майннет.</p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="gtKS">Внимание! Бывают моменты, когда ваш ключ исчез из очереди в тестнете (появился прочерк в сервисе SolanaTools, а в пулреквесте не появился, или появился в пулреквесте, а вот в самого бота так и не попал. И это продолжается уже не одну и не две эпохи. В таком случае срочно идем в <a href="https://discord.gg/solana" target="_blank">дискорд проекта</a>, проходим там авторизацию, если не делали это раньше (как это сделать, читаем тут) и заходим в канал <strong>#delegation-program</strong>, который находится в разделе Solana Foundation. И пишем текст примерно такого содержания: @kuzekuze could you check when my key - (пишем адрес своего публичного ключа в тестнете) gets into the testnet. I passed KYC (пишет месяц и число, когда примерно проходили KYC), and should have gotten into the testnet by now. Ждем ответа Эллы.</p>
  </section>
  <h2 id="B51p">Очередь в майннет</h2>
  <p id="a62z">Если вы уже находитесь в тестнете и можете найти свой публичный ключ по ссылке - <a href="https://raw.githubusercontent.com/wiki/solana-labs/stake-o-matic/md/Validator-PUBLIC-KEY.md" target="_blank">https://raw.githubusercontent.com/wiki/solana-labs/stake-o-matic/md/Validator-PUBLIC-KEY.md</a> (PUBLIC-KEY необходимо заменить на ваш публичный ключ в сети тестнет).</p>
  <p id="yqAd">То идем на <a href="https://solana.foundation/validators-search" target="_blank">эту страницу</a> и вводим сюда свой публичный ключ:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="jUAJ">Что такое публичный ключ, для чего он нужен и чем отличаются ключи в тестнете и майннете читаем тут.</p>
  </section>
  <figure id="0Oc1" class="m_column">
    <img src="https://img3.teletype.in/files/e1/b2/e1b216fd-415c-4874-94a1-9b2f42badfd5.jpeg" width="2870" />
  </figure>
  <p id="Unzi">В итоге мы видим следующее:</p>
  <figure id="0ZlX" class="m_column">
    <img src="https://img2.teletype.in/files/91/4a/914a6ce2-752e-49a1-a0e3-a248e05e7bd1.jpeg" width="2866" />
  </figure>
  <ol id="fuZD">
    <li id="h8zd">Какой процент бонусных эпох ваша нода едет в тестнете начиная с 207 эпохи.</li>
    <li id="OWj7">Какой процент бонусных эпох ваша ноде едет в тестнете за последние 13 эпох.</li>
    <li id="Xu7E"><s>Какое количество кредитов заработала ваша нода за последние 64 эпохи. </s>(формулу изменили, данный параметр больше не актуален и не используется в расчете очереди)</li>
    <li id="mGQi">Здесь находится описание на английском, что значат цифры в первой колонке (нужно навести на эту область мышкой)</li>
    <li id="KFc9">Здесь находится описание на английском, что значат цифры во второй колонке (нужно навести на эту область мышкой)</li>
    <li id="ZUDu">Здесь находится описание на английском, что значат цифры в третьей колонке (нужно навести на эту область мышкой)</li>
  </ol>
  <p id="fEuw"></p>
  <p id="IlRM">Как мы видим на скриншоте выше, столбец <strong>Onbording priority </strong>у этого ключа ровняется <strong>1594</strong>, что это значит? А значит это то, что этот ключ попадет в майнет примерно через 64 недели (1594 /  25 = 64). </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="muaM">Почему делим на 25? Потому что каждую неделю в майннет запускают по 25 человек.</p>
  </section>
  <p id="FJE4"></p>
  <p id="0dWt">С одной стороны здесь все понятно, находишь свой номер очереди, делишь на 25, и через определенное количество недель попадаешь в майннет. А вот и нет, все просто кажется только на первый взгляд, потому что очередь у нас <strong>динамическая!</strong> А это значит, что каждую эпоху очередь будет меняться.</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="o3Nw">Бот пересчитывает очередь не всегда стабильно и не всегда в одно и тоже время. Обновление данных происходит обычно в ночь после окончания каждой эпохи. </p>
  </section>
  <p id="cisO">Что нам несет эта <strong>динамическая очередь</strong>? А несет она нам очень часто потерю нервных клеток). Пока вы не наберете полные 64 эпохи (а это максимум, который вы можете заработать по кредитам) вы будете двигаться вперед быстрее, чем на 25 позиций в неделю. А вот когда наберете все 64 эпохи по кредитам, вот тогда ваша очередь станет двигаться медленнее, иногда будут случаться эпохи, когда вас будет отбрасывать назад в очереди. В этом нет ничего плохого.</p>
  <p id="Aqja">Для более комфортного отслеживания вашей очереди в майннет рекомендую использовать <a href="https://solanatools.xyz/onboarding-history.html" target="_blank">Solanatools</a>. Там вы сможете отслеживать позицию вашей ноды каждую эпоху.</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="c3jg"><strong>Формула</strong>, по которой на данный момент считаются ваши баллы для попадания в майннет:</p>
    <p id="KvZZ">0,5 * 1 показатель + 0,5 * 2 показатель</p>
  </section>
  <p id="6EmU">Анализировать очередь мы будем для ключа 8cDHpBhzqzea9mu51KwFaBLSquk1dMuPNZaddw2LfC1s, можете попробовать это сделать вместе со мной. Для этого переходим на сайт <a href="https://solanatools.xyz/onboarding-history.html" target="_blank">Solanatools</a> и вбиваем ключ в строку поиска:</p>
  <figure id="GZr2" class="m_column">
    <img src="https://img3.teletype.in/files/a1/4c/a14c9e09-17a6-4a1e-9db5-534ae25e2a21.jpeg" width="2872" />
  </figure>
  <p id="1eSJ">На сайте есть:</p>
  <ol id="R9HZ">
    <li id="aPdO">Строка поиска ключа</li>
    <li id="XC0C">Возможность отменить ключ как избранный (он будет всегда находиться вверху списка ключей)</li>
    <li id="3lsA">Ссылка на ключ в гитхабе</li>
  </ol>
  <p id="KEA6"></p>
  <p id="f9fL">На момент написания статьи ключ находился в очереди на 1594 месте, с 207 по 264 эпоху он ехал с бонусом 12,77% эпох, за последние 13 эпох он ехал 46,15% эпох с бонусом и за все время работы в тестнете он набрал 3 210 043 кредитов, показатель в 19,82% говорит нам о том, что ключ еще очень долго будет набирать свои максимальные 64 эпохи (сколько он проехал посмотрим дальше), итоговый балл на данный момент ключ имеет 24,64. Как писал выше, расчет такой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="I4Kh"><s>12,77 * 0,25 + 46,15 * 0,25 + 19,82 * 0,5 = 3,1925 + 11,5375 + 9,91 = <strong>24,64 </strong></s>расчет не актуальный, из-за изменения формулы</p>
  </section>
  <p id="y5ao">Теперь углубимся в расчет каждого показателя и разберемся, откуда они берутся на сайте:</p>
  <ol id="q29A">
    <li id="4RLe">Смотрим на предыдущий скриншот, находим там прямоугольник подписанный цифрой 3 и щелкаем на ключ, и попадаем на гитхаб проекта с информацией о ключе:</li>
  </ol>
  <figure id="SSm4" class="m_column">
    <img src="https://img2.teletype.in/files/d6/d5/d6d5de0b-8ccf-4c75-a936-5650b4f05877.jpeg" width="2378" />
  </figure>
  <p id="PGvT">Опускаемся вниз и ищем эпоху с которой начинается *<strong> Stake level: **Bonus**</strong><br /></p>
  <p id="i0WM">Почему этот ключ получил бонус? Потому что в 256 эпоху он набрал достаточное количество кредитов и закончил ее со скипом, ниже максимального (вот тут смотрим требования под каждую эпоху - <a href="https://github.com/solana-labs/stake-o-matic/wiki/Testnet" target="_blank">для тестнета</a> и <a href="https://github.com/solana-labs/stake-o-matic/wiki/Mainnet" target="_blank">для майннета</a>), а также выполнил еще одно требование.</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="DALc">Обратите внимание, что данные в боте опаздывают на одну эпоху. Также можно сказать, что сначала появляется подзаголовок <strong>Epoch N, </strong>а уже потом идут данные по этой эпохе.</p>
  </section>
  <p id="j6iF">Давайте попробуем этот момент закрепить еще с помощью этого скриншота:</p>
  <figure id="qsOn" class="m_column">
    <img src="https://img1.teletype.in/files/01/d4/01d40fb4-6de4-435c-b86b-e1e8cca3f09c.jpeg" width="1560" />
  </figure>
  <p id="2vKg">Мы тут видим следующее:</p>
  <ol id="eW8H">
    <li id="SCPs">Номер эпохи, которая идет в данный момент (по ней нет еще информации в боте, так как она еще не закончилась)</li>
    <li id="sx4Y">Минимальное количество кредитов, которое нужно было набрать для получения базового стейка в 263 эпохе (она уже закончилась).</li>
    <li id="AvJe">Максимально допустимый скип в 263 эпохе.</li>
    <li id="po4A">Номер эпохи, данные которой представлены выше (НЕ ниже!).</li>
  </ol>
  <p id="UBww"></p>
  <p id="RxdS">Продолжаем наш анализ...</p>
  <p id="7w9y">В итоге в тестнете в 256 эпохе были следующие требования:</p>
  <figure id="GmvM" class="m_column">
    <img src="https://img2.teletype.in/files/13/6e/136e4269-3ea2-4490-9904-4d931551799b.jpeg" width="1914" />
  </figure>
  <ul id="fM86">
    <li id="8BXd">Минимальное количество кредитов - 186 197 (кредиты за эпоху по этому ключу мы посмотрим чуть позже)</li>
    <li id="ha5k">Максимальный скип рейт - 42%</li>
    <li id="iQRu">Также валидатор не превысил максимальную концентрацию в 25% (что это такое, читаем в статье, как выбрать сервер)</li>
  </ul>
  <p id="JApv">Начинаем считать бонусные эпохи и видим, что в 259 эпохи его лишают бонусного стейка вот за это -  <strong>Stake reason: Poor block production during epoch 259: 11 blocks in 20 slots, 45% skip rate</strong>. А какой был максимально разрешенный скип для этой эпохи (идем опять на <a href="https://github.com/solana-labs/stake-o-matic/wiki/Testnet" target="_blank">гитхаб</a> и ищем 259 эпоху)? Он был <strong>42%</strong>. За это ключ и лишили бонусного стейка, а значит его откинет в очереди назад (на сколько, зависит от того, как едут его соседи). Лишением бонусного стейка нода потеряет как в первом показателе, так и во втором. На трений показатель (кредиты) проблема со скипом влияния не окажет).</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="t5Vv">Что такое skip rate, как он рассчитывается и другие непонятные слова ищем в словаре молодого валидатора.</p>
  </section>
  <p id="pK5x">Идем дальше.</p>
  <p id="mM0Q">Итого у этого ключа по состоянию на 262 эпоху:</p>
  <ul id="zMsd">
    <li id="c0Zx">6 бонусных эпох (начиная с 207 эпохи)</li>
    <li id="3sRT">3 бонусные эпохи подряд</li>
  </ul>
  <p id="PO7i">С расчетом первого показателя вручную могут быть сложности, потому что некоторые эпохи из-за проблем с ботом были не учтены в статистике (речь идет о <strong>бонусных эпохах</strong>, при этом в подсчете <strong>кредитов</strong> пропущенных эпох нет). Чтобы узнать, какие эпохи мы пропустили, придется выбрать любой ключ, который уже находится в майннете или скоро туда попадет и проанализировать пропуски:</p>
  <figure id="iFTP" class="m_column">
    <img src="https://img3.teletype.in/files/26/b1/26b1bd47-0ddf-42c6-ae83-bc0a60a002ca.jpeg" width="1012" />
  </figure>
  <p id="mQl0">Считаем количество эпох начиная с 207 (ее не берем) по 262 (ее считаем), у нас получается 47, из 47 эпох у этого ключа бонусных 6, получается:</p>
  <p id="bQJY">6 / 47 * 100 = 12,77%</p>
  <p id="bWu3">Рассчитываем второй показатель - 6 / 13 * 100 = 46,15%</p>
  <p id="iKkb">Теперь самое интересное, расчет кредитов, у нас есть 2 варианта:</p>
  <ol id="MvRj">
    <li id="c9GF">Взять данные из блокчейна</li>
    <li id="VgJA">Взять данные с сайта <a href="https://solana.foundation/validators-search" target="_blank">Solana Foundation</a></li>
    <li id="5RzZ">Взять данные с сайта <a href="https://solanatools.xyz/credits-testnet.html" target="_blank">SolanaTools</a></li>
  </ol>
  <p id="f9NW">Первый вариант подойдет для любителей разобраться самому и покопаться под капотом, для этого нам понадобится:</p>
  <p id="G56T">1. В терминале ввести команду: </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="n61Y">solana vote-account vote-account-keypair.json</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="fgbV">Внимание! Команда сработает в том случае, если вы находитесь в директории, где лежит ключ с названием vote-account-keypair.json. Если выполняете команду из другой директории, укажите верный путь до ключа воут аккаунта и его имя.</p>
  </section>
  <p id="jf4Y">Там вы увидите всю информацию по вашему воут ключу, в какой эпохе сколько кредитов он заработал. Так как информация хранится только за 64 эпохи, остальную историю ключа по кредитам вы не увидите. Да она нам собственно и не нужна.</p>
  <p id="8Mba">2. Переходим на сайт, вбиваем свой ключ и кликаем на данные:</p>
  <figure id="9dOd" class="m_column">
    <img src="https://img1.teletype.in/files/0c/ff/0cff57a2-3e64-42c7-9b0b-1ba44536d672.jpeg" width="2836" />
  </figure>
  <p id="PUCm">Далее спускаемся вниз и кликаем по кнопке <strong>Show details</strong></p>
  <figure id="KFI9" class="m_column">
    <img src="https://img1.teletype.in/files/07/0f/070f0dcd-0654-414b-9e93-40e5b3aaa5d8.jpeg" width="2848" />
  </figure>
  <p id="bexq">Вот тут и видим всю информацию по кредитам за ваши 64 эпохи (полные или нет):</p>
  <figure id="bCjQ" class="m_column">
    <img src="https://img1.teletype.in/files/4b/70/4b705b81-5070-4d3f-84c6-de724cbd41db.jpeg" width="2808" />
  </figure>
  <p id="u3Cm">Вот этот столбец и является самым важным для нас. Он показывает на сколько хорошо голосует ваша нода по сравнению с лидером (лидером может стать и ваша нода тоже, лидер меняется практически каждую эпоху). </p>
  <p id="kVoa">3. Ну, этот пункт даже снабжать скриншотами не нужно, там все понятно, зашли, вбили свой ключ и смотрите, если хотите найти лидера и посмотреть сколько он заработал кредитов за прошлую эпоху, то удалите свой ключ из строки поиска и отсортируйте кредиты по убыванию (там треугольничек есть у каждой эпохи), ладно, сделаю еще один скрин:</p>
  <figure id="nlmq" class="m_column">
    <img src="https://img3.teletype.in/files/e4/d4/e4d490cc-345a-480b-b0bb-b88e6c9d4ba7.jpeg" width="2842" />
  </figure>
  <p id="m2jK">Ну, всё. Теперь вы умеете анализировать очередь как в тестнете, так и в майннете, часто у людей возникают вопросы:</p>
  <ol id="XF5W">
    <li id="2rcU">А почему моя нода уже несколько эпох стоит на месте и не продвигается вперед?</li>
  </ol>
  <p id="1BtK">Такое может случиться по нескольким причинам:</p>
  <p id="LlQU">Во-первых вы уже набрали максимум по 2 (13 эпох закрыли с бонусами) или 3 показателю (проехали 64 эпохи), а остальные ноды, которые ехали за вами, начали их набирать в эти эпохи, поэтому показатели выравниваются или даже немного опережают вашу ноду, так как в тестнет пускают по 100 человек, а в майннет только по 25 поэтому за меньшее место в очереди очень высокая конкуренция. Анализируйте ноды, которые едут перед вами и за вами, эта информация даст понимание, почему так происходит конкретно с вашей нодой.</p>
  <p id="i6ln">Во-вторых вы едите на слабом сервере, который голосует хуже сильных серверов. Каждый месяц нагрузка в тестнете растет и та конфигурация, которой хватало пол года назад может не справляться с текущей нагрузкой.</p>
  <p id="GFc7">    2. На сколько нужно ехать хорошо, чтобы опередить тех, кто зашел раньше, т.е. старичков?</p>
  <p id="5zFH"> Вопрос и сложный и простой одновременно. Так как у нас есть 3 показателя по которым мы попадаем в майннет, часто валидаторы, которым повезло с ключом, и плюс у них очень хороший сервер с интернетом, надеются обогнать за счет кредитов старичков. Давайте попробуем рассчитать, на сколько нужно обгонять по кредитам всех, чтобы зайти в майннет раньше старичков:</p>
  <p id="i0ux">Возьмем гипотетический ключ (ключ А), который едет со следующими показателями:</p>
  <p id="rpP8">1 показатель - 60%, 2 показатель - 100%, 3 показатель 100% (такое хоть и не реально, но мы же просто фантазируем). </p>
  <p id="ErkM">И есть другой ключ (ключ Б), который едет со следующими показателями:</p>
  <p id="NTpM">1 показатель 79%, 2 показатель 100%, 3 показатель 88% (вот это вполне реальные цифры), считаем итоговый баллы по каждому ключу:</p>
  <p id="Qqll">Ключ А -  60 * 0,25 + 100 * 0,25 + 100 * 0,50 = 15 + 25 + 50 = <strong>90</strong></p>
  <p id="dEnG">Ключ Б - 79 * 0,25 + 100 * 0,25 + 88 * 0,50 = 19,75 + 25 + 44 = <strong>88,75</strong></p>
  <p id="hI6g">Как мы видим из расчетов, даже валидатор, кто зашел позже, теоретически может обогнать старичка, все дело в кредитах. Если ваша нода зарабатывает кредитов больше, чем остальные, есть вероятность, что вы зайдете немного раньше, чем те, кто дольше вас держат ноду в тестнете. Да, на кредиты можно немного повлиять, ехать на самом лучшем сервере и с отличным интернетом, но как показывает практика хороший сервер и качественный интернет далеко не всегда оказывает положительное влияние на кредиты.</p>
  <p id="LuSI"></p>
  <p id="3XRv">Здесь могут быть ваши вопросы по очереди, не стесняйтесь, задавайте их в чате <a href="https://t.me/joinchat/kqr_VYyhsMZkY2Ni" target="_blank">Песочницы</a>, на них там ответят и я добавлю их сюда.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://solananewbie.net/console-commands</guid><link>https://solananewbie.net/console-commands?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie</link><comments>https://solananewbie.net/console-commands?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie#comments</comments><dc:creator>solananewbie</dc:creator><title>Solana / Консольные команды</title><pubDate>Mon, 13 Dec 2021 12:00:37 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/49/d8/49d8cc10-070f-4982-8ce2-893bca097d1e.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/8f/18/8f1816fd-30bf-4051-a334-63dd471980dc.png"></img>В Солане для каждой команды можно вызвать хелп, в котором будет описано, как правильно ее использовать, какие параметры нужно там указать, чтобы она отработала верно. Чтобы посмотреть этот хелп нужно написать так:]]></description><content:encoded><![CDATA[
  <p id="HuSN">В Солане для каждой команды можно вызвать хелп, в котором будет описано, как правильно ее использовать, какие параметры нужно там указать, чтобы она отработала верно. Чтобы посмотреть этот хелп нужно написать так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="rwWj">solana -h</p>
    <p id="3dXV">или</p>
    <p id="IZ1j">solana --help</p>
  </section>
  <p id="jLVU">Вот что мы увидим:</p>
  <figure id="jhBh" class="m_column">
    <img src="https://img1.teletype.in/files/8f/18/8f1816fd-30bf-4051-a334-63dd471980dc.png" width="1988" />
  </figure>
  <p id="6EpL">Сначала идут флаги (Flags), они представляют собой параметры к команде, которые сами по себе самодостаточны, т.е. нам не нужно к этому флагу дописывать еще что-то. </p>
  <p id="l2Sq">Далее идут опции (Options), они представляю собой также параметры к команде, но вот они уже требует какой то аргумент к ним и без него они не сработают, как видно на скрине выше у опции --config должен быть аргумент с путем к ключу.</p>
  <p id="6a9M">Ну, и самое главное для нас - это Субкоманды:</p>
  <figure id="5XW4" class="m_column">
    <img src="https://img1.teletype.in/files/4a/0e/4a0e0335-1f80-4a4f-a739-44186247111f.png" width="2022" />
  </figure>
  <p id="sjM6">На этом скриншоте они не все, у себя в терминале введете эту команду и посмотрите все субкоманды, которые сможете использовать. Большинство из этих команд никто из нас никогда не использовал, но есть те, которые используем постоянно, об этих командах и будет идти речь.</p>
  <p id="TN21">По каждой субкоманде мы можем вывести подсказку следующим способом:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="7reE">solana transfer -h</p>
    <p id="MkrH">или</p>
    <p id="CIzV">solana transfer --help</p>
  </section>
  <p id="Qhgn">В итоге увидим вот такой хелп по команде (в данном случае по субкоманде):</p>
  <figure id="fqQt" class="m_column">
    <img src="https://img4.teletype.in/files/35/2c/352c7fac-afdc-4138-b998-cbca337f2b6b.png" width="2104" />
  </figure>
  <p id="UvyV">Также, можно увидеть подсказку, как пользоваться той или иной командой просто введя ее без каких-либо параметров, например, мы хотим узнать, что нужно ввести, чтобы отправить токены на другой ключ, вводим команду:</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="uLHn">solana transfer</p>
  </section>
  <p id="3yEC">И видим следующее:</p>
  <figure id="NGBY" class="m_column">
    <img src="https://img4.teletype.in/files/3b/c5/3bc5f09a-de98-4519-8f2a-e3b5972f5f73.png" width="1122" />
  </figure>
  <p id="1vnj">Солана ругается, что в команде отсутствует аргументы, без которых она не может работать, а именно:</p>
  <ul id="iPgl">
    <li id="0nGV">Адрес получателя (Recipient_Address)</li>
    <li id="mb2y">Количество (Amount)</li>
  </ul>
  <p id="zvia">И ниже еще мы видим подсказку, в каком виде можно использовать эту команду:</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ykaY">solana transfer &lt;RECIPIENT_ADDRESS&gt; &lt;AMOUNT&gt;, меняем то, что в скобках на наши данные и получаем:</p>
    <p id="H81F">solana transfer GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE 100</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ip1R">Обратите внимание, в примере на скриншоте есть еще опция --config &lt;FILEPATH&gt;. Она означает, что вы можете указать путь до ключа, с которого и будете производить это действие, в нашем случае, перевод токенов. Так как во время установки Соланы мы установили ключ validator-keypair.json, как ключ по умолчанию (командой solana config set --keypair /root/solana/validator-keypair.json), то Солана всегда теперь использует наш ключ в тех командах, в которых можно использовать опцию --config &lt;FILEPATH&gt;.</p>
  </section>
  <p id="zv9o">Не бойтесь практиковаться в командах, когда находитесь в тестнете, времени у вас достаточно чтобы научиться всему. Валидатор в майннете должен уметь все и не задавать вопросы: &quot;А как мне посмотреть кэчап?&quot; или &quot;А почему у меня нода не может догнать кластер?&quot;. Все эти знания вы должны получить во время тестнета. </p>
  <p id="YrjU">Поэтому, поехали разбирать основные команды:</p>
  <p id="b8Wm"></p>
  <h2 id="9VBX">Содержание</h2>
  <nav>
    <ul>
      <li class="m_level_1"><a href="#9VBX">Содержание</a></li>
      <li class="m_level_1"><a href="#TIvL">Работа с ключами</a></li>
      <li class="m_level_2"><a href="#LVlX">Создать ключ</a></li>
      <li class="m_level_2"><a href="#vI3q">Операции в разных кластерах</a></li>
      <li class="m_level_2"><a href="#EblH">Посмотреть публичный адрес по json файлу</a></li>
      <li class="m_level_1"><a href="#XXhW">Стейк, реварды, войт-аккаунт</a></li>
      <li class="m_level_2"><a href="#m5IR">Создать войт-аккаунт</a></li>
      <li class="m_level_2"><a href="#bJzO">Сменить виздравера для войт аккаунта</a></li>
      <li class="m_level_2"><a href="#Zgj5">Сменить виздравера для стейк аккаунта</a></li>
      <li class="m_level_2"><a href="#fPmF">Информация о стейке</a></li>
      <li class="m_level_2"><a href="#8vHQ">Заделегировать токены</a></li>
      <li class="m_level_2"><a href="#TWlg">Узнать сколько ревардов было заработано</a></li>
      <li class="m_level_2"><a href="#xClV">Забрать реварды</a></li>
      <li class="m_level_2"><a href="#UNel">Деактивировать стейк</a></li>
      <li class="m_level_2"><a href="#1dJ7"></a></li>
      <li class="m_level_2"><a href="#GTM5">Забрать стейк со стейк аккаунта</a></li>
      <li class="m_level_2"><a href="#UFxU">Объединить стейки</a></li>
      <li class="m_level_2"><a href="#FRpL">Изменить комиссию войт-аккаунта</a></li>
      <li class="m_level_1"><a href="#eTkO">Отправка токенов</a></li>
      <li class="m_level_1"><a href="#Riht">Убрать желтый треугольник</a></li>
      <li class="m_level_1"><a href="#zONg">Кэчап</a></li>
      <li class="m_level_1"><a href="#nZRx">Как посмотреть свои кредиты и место по кредитам</a></li>
      <li class="m_level_1"><a href="#RZxY">Как посмотреть свой скип в текущей эпохе и сколько слотов уже сделано/пропущено</a></li>
      <li class="m_level_1"><a href="#fmDZ">Сколько слотов запланировано в данную эпоху</a></li>
      <li class="m_level_1"><a href="#g7Oq">Как посмотреть, какие слоты я уже сделал или пропустил в текущей эпохе</a></li>
      <li class="m_level_1"><a href="#zilQ">Средний скипрейт по кластеру</a></li>
      <li class="m_level_1"><a href="#PaTT">Информация по кластеру  (сколько валидаторов на какой версии соланы и др.)</a></li>
      <li class="m_level_1"><a href="#Iy2j">Посмотреть сколько нод сейчас не в сети (делинкет)</a></li>
      <li class="m_level_1"><a href="#4xN2">Информация о текущей эпохе</a></li>
      <li class="m_level_1"><a href="#dKBl">Узнать текущий слот</a></li>
      <li class="m_level_1"><a href="#4xq8">Логи соланы и журнал solana.service</a></li>
      <li class="m_level_2"><a href="#fak7">Посмотреть логи соланы</a></li>
      <li class="m_level_2"><a href="#gvnI">Посмотреть системный журнал Solana.service</a></li>
      <li class="m_level_2"><a href="#1ldL">Посмотреть записей системного журнала Solana.service в режиме потока</a></li>
      <li class="m_level_1"><a href="#FB9R">Команды установки и обслуживания ноды</a></li>
      <li class="m_level_2"><a href="#0PIv">Установить Solana CLI </a></li>
      <li class="m_level_2"><a href="#TCx8">Обновить Solana</a></li>
      <li class="m_level_2"><a href="#YhHW">Запустить Solana (ноду)</a></li>
      <li class="m_level_2"><a href="#navu">Перезапустить Solana (рестарт ноды)</a></li>
      <li class="m_level_2"><a href="#mpVL">Остановить Solana (ноду)</a></li>
      <li class="m_level_2"><a href="#5txk"></a></li>
      <li class="m_level_2"><a href="#hTZp">Посмотреть статус Solana (ноды)</a></li>
      <li class="m_level_2"><a href="#pw7q">Перезагрузить демона</a></li>
      <li class="m_level_2"><a href="#sW6p">Установить в конфиг кластер по умолчанию</a></li>
      <li class="m_level_2"><a href="#AFxK">Установить в конфиг ключ по умолчанию</a></li>
    </ul>
  </nav>
  <h2 id="TIvL">Работа с ключами</h2>
  <h3 id="LVlX">Создать ключ</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="aTHb">solana-keygen new -o /root/solana/validator-keypair.json</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="TA6S">Очень важный комментарий! Пожалуйста, запомните это сразу. Каждый раз, когда вы создаете ключ, будь то идентифи (он же валидатор кейпеир), ключ для воут-аккаунта, ключ для стейка или ауторизет виздравер, вы просто создаете своеобразный кошелек. В зависимости от того, какую роль вы этому кошельку назначите, он ее выполнять и будет. Но первоначально это просто обычный ключ без каких-либо признаков. Название для него вы придумываете такое, чтобы вы точно понимал, что это за ключ и для чего он у вас создан. </p>
    <p id="3hrp">Среди валидаторов так сложилось, что основной ключ валидатора имеет имя validator-keypair.json</p>
    <p id="WgqU">Ключ для войт-аккаунта имеет имя  vote-account-keypair.json</p>
    <p id="51rA">Ключ для стейка имеет имя stake-1.json, stake-2.json и т.д.</p>
    <p id="RnDW">Ключ для ауторизет виздравера имеет имя authorized-withdrawer-keypair.json</p>
    <p id="4dc7">Всегда записывайте мнемонические фразы для своих ключей, всегда делайте бекапы своих ключей на локальном компьютере.</p>
    <p id="l9z8">Еще один момент. У Соланы существует 3 кластера: Тестнет, Майннет и Девнет. Кластер это отдельная сеть, в которой могут использоваться разные версии Соланы, но которые обычно работают по тем же самым правилам. Представьте это просто как 3 параллельных реальности, где могут существовать одни и те же предметы (в нашем случае ключи). Если вы создали ключ для тестнета и записали его мнемоническую фразу или сохранили файл в формате .json, вы можете использовать этот же ключ и в майннете и в девнете, при этом между кластерами перемещение токенов невозможно (нельзя из тестнета перевести токены в майннет). И тут возникает вопроса, а почему тогда мы создаем отдельные ключи всегда и для тестнета и для майннета? А все просто - чтобы не запутаться и чтобы можно было эти ключ при необходимости связать друг между другом (как мы это делали при регистрации SFDP). Перечитайте эту заметку несколько раз и если не поняли - напишите в <a href="https://t.me/joinchat/kqr_VYyhsMZkY2Ni" target="_blank">Песочнице</a>, задайте наводящие вопросы, мы на них ответим и пополним этот гайд дополнительной информацией.</p>
  </section>
  <h3 id="vI3q">Операции в разных кластерах</h3>
  <p id="mxxM">Во время установки ноды вы прописываете основной ключ, который будет подписывать все транзакции и кластер, в котором хотите, чтобы работала нода. Как это делается - смотрим <a href="#sW6p">тут</a>. Но что делать, если хочется посмотреть баланс своего ключа в другом кластере? Все очень просто, нам нужно добавлять следующие параметры к командам:</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="lymR">Для майннет -um</p>
    <p id="p8da">Для тестнета -ut</p>
    <p id="EjE5">Для девнета -ud</p>
  </section>
  <p id="k1qX">Например, хотим мы посмотреть баланс нашего идентифи ключа в кластере Майннет, для этого пишем команду:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="MthB">solana balance -um</p>
  </section>
  <p id="YcBC">Если хотим отправить токены в кластере Майннет, делаем так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="uJLE">solana transfer GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE 100 -um</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="cvjw">Повторюсь! При этом вы должны понимать, что вы не можете с баланса своего ключа в теснете перевести токены в майннет. Чтобы сделать перевод у вас на ключе должны быть токены в том кластере, в котором вы хотите сделать перевод. Если по команде <strong>solana balance -um</strong> показало что у вас там есть токены, тогда вы сможете сделать перевод командой <strong>solana transfer GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE 100 -um</strong></p>
  </section>
  <h3 id="EblH">Посмотреть публичный адрес по json файлу</h3>
  <p id="7ye0">Бывает ситуация, когда есть json файл ключа, а вот его публичный адрес найти не получается, для этого есть команда:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="SXNz">solana address -k /root/solana/validator-keypair.json</p>
  </section>
  <p id="gcNq">Укажите путь до своего файла и увидете публичный адрес своего ключа.</p>
  <p id="BQDR"></p>
  <h2 id="XXhW">Стейк, реварды, войт-аккаунт</h2>
  <p id="Gngf"></p>
  <h3 id="m5IR">Создать войт-аккаунт</h3>
  <p id="zziE">Для начала нам нужно создать простой ключ, как это делать идем <a href="#LVlX">сюда</a></p>
  <p id="vZlD">Потом создаем из этого ключа войт-аккаунт вот так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Q7UX">solana create-vote-account /root/solana/vote-account-keypair.json /root/solana/validator-keypair.json /root/solana/authorized-withdrawer-keypair.json</p>
  </section>
  <p id="3z2z">В этой команде мы создаем войт-аккаунт, прикрепляем его к своему основному ключу (валидатор кейпейр) и назначаем ауторизет виздравером ключ authorized-withdrawer-keypair.json. На данный момент именно так и рекомендуется создавать воут-аккаунт. А раньше можно было так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Y70p">solana create-vote-account /root/solana/vote-account-keypair.json /root/solana/validator-keypair.json</p>
  </section>
  <p id="QZHZ">Здесь мы создавали войт-аккаунт и прикрепляли его к основному ключу, при этом функцию ауторизет-виздравера выполнял сам ключ. Для чего мы добавили еще один ключ - читаем тут.</p>
  <h3 id="bJzO">Сменить виздравера для войт аккаунта</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="PuDt">solana vote-authorize-withdrawer /root/solana/vote-account-keypair.json /root/solana/authorized-withdrawer-keypair.json /root/solana/authorized-withdrawer-keypair-new.json</p>
  </section>
  <p id="pqi0">Если вдруг вы решили сменить один авторизет виздравер на другой, то используем команду выше, там мы видим 3 ключа:</p>
  <p id="kmpp">/root/solana/vote-account-keypair.json - ваш ключ войт аккаунта;</p>
  <p id="djDE">/root/solana/authorized-withdrawer-keypair.json - текущий ауторизет виздравер</p>
  <p id="CJsu">/root/solana/authorized-withdrawer-keypair-new.json - новый ауторизет виздравер</p>
  <p id="ZhSw">как обычно, пути к ключам и их названия задаем свои.</p>
  <p id="UVP3"></p>
  <h3 id="Zgj5">Сменить виздравера для стейк аккаунта</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="qmwn">solana stake-authorize EiZkmYw4t5gQT6srAGN5jM28UYsB8GH5L8nbqTm31WFL --new-stake-authority /root/solana/authorized-withdrawer-keypair-new.json --new-withdraw-authority /root/solana/authorized-withdrawer-keypair-new.json --withdraw-authority /root/solana/authorized-withdrawer-keypair.json</p>
  </section>
  <p id="fivY">Для смены виздравера у стейк аккаунта нам нужны следующие ключи:</p>
  <p id="1e3y">EiZkmYw4t5gQT6srAGN5jM28UYsB8GH5L8nbqTm31WFL - публичный ключ вашего стейк аккаунта (можно использовать и файл, если он у вас есть)</p>
  <p id="wA80">/root/solana/authorized-withdrawer-keypair-new.json - новый виздравер</p>
  <p id="kQ5b">/root/solana/authorized-withdrawer-keypair.json - старый виздравер, которым мы подпишем транзакцию</p>
  <p id="zkRV">как обычно, пути к ключам и их названия задаем свои.</p>
  <p id="Zrv4"></p>
  <h3 id="fPmF">Информация о стейке</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="pWGL">solana stakes /root/solana/vote-account-keypair.json</p>
  </section>
  <h3 id="8vHQ">Заделегировать токены</h3>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="3gV0">Внимание! Если вы хотите сделать селфстейк для себя в мейне, создавайте его не на 100 SOL, а на 100.1, так как комиссия спишется с этой суммы и при создании стейк-аккаунта из 100 SOL по факту будет создан стейк-аккаунт на 99.99 SOL, что является меньше 100 SOL, и бот в майннете скажет, что у вас нет селфстейка.</p>
  </section>
  <p id="f9qL">Для того, чтобы заделегировать SOL на валидатора необходимо выполнить следующие действия:</p>
  <p id="qhpQ">   1. Создать новый ключ (абсолютной не важно как вы его назовете, но я назову его validator-stake-keypair.json) следующей командой: </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="j7zs">solana-keygen new -o /root/solana/validator-stake-keypair.json</p>
  </section>
  <p id="3O04">   2. Делаем из этого ключа стейк-аккаунт с указанием суммы, которую мы хотим в будущем делегировать на войт-аккаунт и сразу же в этой команде назначаем этому стейк-аккаунту ключ с правами stake-authority и withdraw-authority, т.е. мы задаем для стейк-аккаунта виздравера. Нам это нужно для того, чтобы в майннете бот определил наш стейк как селф-стейк. В тестнете это делать не обязательно, но лучше потренироваться сразу там.</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="9UbM">solana create-stake-account /root/solana/validator-stake-keypair.json 101 --stake-authority /root/solana/authorized-withdrawer-keypair.json --withdraw-authority /root/solana/authorized-withdrawer-keypair.json</p>
  </section>
  <p id="ECvQ">   3. Делегируем стейк на войт-аккаунт, если мы делегируем на свой войт-аккаунт, то легче всего нам указать его файл, а не публичный ключ, вот так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="u9w1">solana delegate-stake /root/solana/validator-stake-keypair.json /root/solana/vote-account-keypair.json</p>
  </section>
  <p id="4qtp">А если мы хотим заделегировать на войт-аккаунт другого валидатора, то его ключа в формате json у нас конечно же нет, поэтому будем использовать публичный ключ этого войт-аккаунта, и команда будет выглядеть вот так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="66ZJ">solana delegate-stake /root/solana/validator-stake-keypair.json 81iuTYDaeJ71XFGkPXNUuQ8gNvHQfBxpU7Vj2hzJ9Q4e</p>
  </section>
  <p id="Dgba">Теперь мы можем проверить, все ли у нас хорошо и начал ли стейк активироваться, используем команду:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="87B9">solana stakes /root/solana/vote-account.json</p>
  </section>
  <p id="wedw">или</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="8ior">solana stakes 81iuTYDaeJ71XFGkPXNUuQ8gNvHQfBxpU7Vj2hzJ9Q4e</p>
  </section>
  <p id="FOCf">И видим следующее:</p>
  <figure id="KXhW" class="m_column">
    <img src="https://img4.teletype.in/files/bd/a2/bda2db71-e99b-4da0-bfe3-ca0b1de240b6.jpeg" width="1548" />
  </figure>
  <ol id="tUp7">
    <li id="fRmX">Публичный ключ стейк-аккаунта</li>
    <li id="4uFZ">Баланс, который находится на этом стейк-аккаунте (так как он заделегирован валидатору, то этот баланс считается замороженным)</li>
    <li id="eBP0">Жду ответ по вопросу</li>
    <li id="jrS5">Делегированный стейк, тот, который фактически сейчас находится на воут-аккаунте.</li>
    <li id="7E2q">Активный стейк, который уже активно участвует в голосовании в сети.</li>
    <li id="vNeh">Публичный ключ воут-аккаунта, куда этот стейк заделегирован.</li>
    <li id="lLiu">Stake Authority - </li>
    <li id="eKht">Withdraw Authority  - публичный ключ, который имеет право забрать этот стейк назад (подробнее об этом ключе читаем тут)</li>
    <li id="Skl8">Номер эпохи, когда стейк будет деактивирован, активация и деактивация стейка занимает ровно 1 эпоху. (в вашем случае после делегирования стейка будет написано <strong>Stake activates starting from epoch: </strong>№ эпохи.)</li>
  </ol>
  <h3 id="TWlg">Узнать сколько ревардов было заработано</h3>
  <p id="j6uY">За последнюю эпоху:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ZEh0">solana inflation rewards /root/solana/vote-account-keypair.json</p>
  </section>
  <p id="XMkH">За последние 10 эпох (больше посмотреть не получается)</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="iptI">solana vote-account /root/solana/vote-account-keypair.json --with-rewards --num-rewards-epochs 10</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="icPU">Внимание! Если решите запросить информацию за 10 эпох, то на это может потребоваться много времени. За 1-2 эпоху выдает намного быстрее, пробуйте.</p>
  </section>
  <h3 id="xClV">Забрать реварды</h3>
  <p id="CeXL">Теперь каждую эпоху мы можем забирать с этого стейка свои реварды (как они рассчитываются читаем тут) следующей командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="d3Dk">solana withdraw-from-vote-account --authorized-withdrawer /root/solana/withdraw-testnet.json /root/solana/vote-account-keypair.json 5cNEV9dx5Puuwp2GSZsUwUchCGfxchcxS6rNuD6yNGEh 50</p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="NMjE">Обратите внимание! Вы должны всегда оставлять небольшую сумма на воут-аккаунте. Не забирайте все реварды под ноль, или используйте ALL, чтобы система сама подсчитала необходимый минимальный остаток, а остальное перевело на указанный вами ключ (как выглядит эта команда смотрите немного ниже)</p>
  </section>
  <p id="QB9E">В этой команде мы забираем реварды в количестве 50 токенов и переводим их на ключ 5cNEV9dx5Puuwp2GSZsUwUchCGfxchcxS6rNuD6yNGEh, при этом для подписания этой транзакции мы используем authorized-withdrawer (кто это такой - читаем тут)</p>
  <p id="sXJA">В том случае, если вы не задавали authorized-withdrawer для воут-аккаунта в процессе его создания (как создавать его читаем тут), то команда будет иметь такой вид:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="3eRn">solana withdraw-from-vote-account /root/solana/vote-account-keypair.json 5cNEV9dx5Puuwp2GSZsUwUchCGfxchcxS6rNuD6yNGEh 50</p>
  </section>
  <p id="uB20">В этом случае подписывает транзакцию ваш основной ключ (validator-keypair.json), так как он тоже является authorized-withdrawer, т.е. имеет право на управление воут-ключем (разбираемся в этом вопросе подробнее тут).</p>
  <p id="4zui">Также вы можете забрать все реварды с воут-аккаунта следующей командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="C8eY">solana withdraw-from-vote-account /root/solana/vote-account-keypair.json 5cNEV9dx5Puuwp2GSZsUwUchCGfxchcxS6rNuD6yNGEh ALL</p>
  </section>
  <h3 id="UNel">Деактивировать стейк</h3>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="9D18">solana deactivate-stake /root/solana/validator-stake-keypair.json</p>
  </section>
  <p id="hS71">На деакцтивацию стейка, как и на активацию необходима 1 эпоха.</p>
  <h3 id="1dJ7"></h3>
  <p id="OSiq"></p>
  <h3 id="GTM5">Забрать стейк со стейк аккаунта</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="5dLA">solana withdraw-stake /root/solana/validator-stake-keypair.json /root/solana/validator-keypair.json 100 (указываем количество, можно забрать все командой ALL) и команда будет такой:</p>
    <p id="JBvm">solana withdraw-stake /root/solana/validator-stake-keypair.json /root/solana/validator-keypair.json ALL</p>
  </section>
  <p id="tcRa"></p>
  <h3 id="UFxU">Объединить стейки</h3>
  <p id="PfKr">Если вы сделали несколько стейк аккаунтов (и они в данный момент имеют статус active) и хотите объединить их в один, можете это сделать следующей командой:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ViZL">solana merge-stake /root/solana/validator-stake1-keypair.json /root/solana/validator-stake2-keypair.json</p>
  </section>
  <p id="jIiB">В случае успеха этот ключ перестанет быть стейк-аккаунтом - /root/solana/validator-stake2-keypair.json, а весь стейк с него перейдет в этот стейк-аккаунт - /root/solana/validator-stake1-keypair.json</p>
  <p id="0DEN"></p>
  <h3 id="FRpL">Изменить комиссию войт-аккаунта</h3>
  <p id="WqxJ">Если вы не создавали для войт-аккаунта authorized-withdrawer </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="AXn0">solana vote-update-commission 81iuTYDaeJ71XFGkPXNUuQ8gNvHQfBxpU7Vj2hzJ9Q4e 10 /root/solana/validator-keypair.json</p>
  </section>
  <p id="CdKn">Если вы создавали authorized-withdrawer и связывали его с войт-аккаунтом</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="fgVL">solana vote-update-commission 81iuTYDaeJ71XFGkPXNUuQ8gNvHQfBxpU7Vj2hzJ9Q4e 10 /root/solana/authorized-withdrawer-keypair.json</p>
  </section>
  <p id="ik6B">Что в первом, что во втором случае меняем мой публичный ключ войт-акканута, вот этот - 81iuTYDaeJ71XFGkPXNUuQ8gNvHQfBxpU7Vj2hzJ9Q4e на свой публичный ключ войт-аккаунта</p>
  <p id="8dvq"></p>
  <h2 id="eTkO">Отправка токенов</h2>
  <p id="G3MY">На кошелек, на котором уже были токены:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="IZ8z">solana transfer GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE 10</p>
  </section>
  <p id="h1id">На кошелек, на котором еще не было токенов (только что создали, например):</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="mVN4">solana transfer GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE 10 --allow-unfunded-recipient</p>
  </section>
  <h2 id="Riht">Убрать желтый треугольник</h2>
  <p id="Ytrh"></p>
  <h2 id="zONg">Кэчап</h2>
  <p id="QY4G">Проверка кэчапа в на текущий момент:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="IO5r">solana catchup --our-localhost</p>
  </section>
  <p id="ga1T">Проверка кэчапа в течение времени (пока не остановите его с помощью сочетания клавиш ctrl+C)</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="4vGq">solana catchup --our-localhost --follow --log</p>
  </section>
  <p id="Hy9s"></p>
  <h2 id="nZRx">Как посмотреть свои кредиты и место по кредитам</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="w6pc">solana validators -ul --sort=credits -r -n | grep GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE</p>
  </section>
  <p id="gnIK">Заменяем мой публичный ключ на свой.</p>
  <p id="0zMX"></p>
  <h2 id="RZxY">Как посмотреть свой скип в текущей эпохе и сколько слотов уже сделано/пропущено</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="TD6r">solana -v block-production | grep GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE | awk &#x27;NR == 1&#x27;</p>
  </section>
  <p id="7yjb">Заменяем мой публичный ключ на свой.</p>
  <h2 id="fmDZ">Сколько слотов запланировано в данную эпоху</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="vJ98">solana leader-schedule | grep GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE | wc -l</p>
  </section>
  <p id="HhaU">Заменяем мой публичный ключ на свой.</p>
  <h2 id="g7Oq">Как посмотреть, какие слоты я уже сделал или пропустил в текущей эпохе</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="RN2X">solana -v block-production | grep GtgtQLfqKjn3gaHuH7Fw64n49vr2DrYHiJAsSTNNscAE</p>
  </section>
  <p id="IGLe">Заменяем мой публичный ключ на свой.</p>
  <p id="Z69P"></p>
  <h2 id="zilQ">Средний скипрейт по кластеру</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ZprX">solana validators | grep &quot;Average Stake-Weighted Skip Rate&quot; | awk &#x27;{print $5}&#x27;</p>
  </section>
  <p id="MelN"></p>
  <h2 id="PaTT">Информация по кластеру  (сколько валидаторов на какой версии соланы и др.)</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="zZ2b">solana validators | grep &quot;current validators&quot;</p>
  </section>
  <p id="i9Rs"></p>
  <h2 id="Iy2j">Посмотреть сколько нод сейчас не в сети (делинкет)</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Ne7H">solana validators | grep &quot;Delinquent Stake&quot;</p>
  </section>
  <p id="3ene"></p>
  <h2 id="4xN2">Информация о текущей эпохе</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="IpEa">solana epoch-info</p>
  </section>
  <p id="RqQg"></p>
  <h2 id="dKBl">Узнать текущий слот</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="eOBX">solana slot</p>
  </section>
  <p id="N23O"></p>
  <h2 id="4xq8">Логи соланы и журнал solana.service</h2>
  <h3 id="fak7">Посмотреть логи соланы</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Rie2">tail -f /root/solana/solana.log</p>
  </section>
  <p id="Agrp">Обратите внимание, что файл с логами у вас может лежать в другой директории, укажите правильный для вас путь.</p>
  <p id="1YLB"></p>
  <h3 id="gvnI">Посмотреть системный журнал Solana.service</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="zSh5">journalctl -u solana.service</p>
  </section>
  <p id="6TUi">Если вы введете эту команду, то окажитесь на 1 странице системного журнала Соланы, которая вмещает в себя информацию в  размере 46 строк (в моем случае 46 строк, у вас может быть больше или меньше, зависет о разрешения экрана), и тут есть сложность посмотреть последние страницы системного журнала Соланы, так как перелистывать его нужно пробелом. Если у вас нода работает давно, то таких страниц у вас может быть много, поэтому чтобы переместиться сразу на последнюю страницу системного журана Соланы, на которой вы увидите актуальную информацию по событиям, используем ключ -e и команда будет выглядеть так:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="olrR"> journalctl -u solana.service -e</p>
  </section>
  <p id="xcbx"></p>
  <h3 id="1ldL">Посмотреть записей системного журнала Solana.service в режиме потока</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="IeFD">journalctl -u solana.service -f </p>
  </section>
  <p id="ZqIm"></p>
  <h2 id="FB9R">Команды установки и обслуживания ноды</h2>
  <p id="ponm"></p>
  <h3 id="0PIv">Установить Solana CLI </h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="gjWi">sh -c &quot;$(curl -sSfL https://release.solana.com/v1.9.1/install)&quot;</p>
  </section>
  <p id="acOB">Подставляем необходимую версию за место &quot;1.9.1&quot;. Актуальную версию смотрим в официальном дискорде команды - <a href="https://discord.gg/solana" target="_blank">https://discord.gg/solana</a> в канале testnet-announcements (для тестнета) и в канале mb-announcements (для майннета)</p>
  <p id="Fxrg"></p>
  <h3 id="TCx8">Обновить Solana</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="IOrt">solana-install init v1.9.1</p>
  </section>
  <p id="1rNt">Подставляем необходимую версию за место &quot;1.9.1&quot;. Актуальную версию смотрим в официальном дискорде команды - <a href="https://discord.gg/solana" target="_blank">https://discord.gg/solana</a> в канале testnet-announcements (для тестнета) и в канале mb-announcements (для майннета)</p>
  <p id="OKWb"></p>
  <h3 id="YhHW">Запустить Solana (ноду)</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="5UAw">systemctl start solana.service</p>
  </section>
  <p id="VKnk">или</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="tYDi">systemctl start solana</p>
  </section>
  <p id="6Ty2"></p>
  <h3 id="navu">Перезапустить Solana (рестарт ноды)</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="cGaZ">systemct restart solana.service</p>
  </section>
  <p id="VA1V">или</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="7D7C">systemctl restart solana</p>
  </section>
  <p id="oDjE"></p>
  <h3 id="mpVL">Остановить Solana (ноду)</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Rp1I">systemctl stop solana.service</p>
  </section>
  <p id="6KSU">или</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="SUD5">systemctl stop solana</p>
  </section>
  <h3 id="5txk"></h3>
  <h3 id="hTZp">Посмотреть статус Solana (ноды)</h3>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="0eA0">systemctl status solana.service</p>
  </section>
  <p id="PDgr">или</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="LrBL">systemctl status solana</p>
  </section>
  <p id="beWC"></p>
  <h3 id="pw7q">Перезагрузить демона</h3>
  <p id="WZ2z">Команду необходимо запускать после внесения любых изменений в сервисный файл solana.service</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="r817">systemctl daemon-reload</p>
  </section>
  <p id="MKIL"></p>
  <h3 id="sW6p">Установить в конфиг кластер по умолчанию</h3>
  <p id="QII6">Актуальные данные для каждого кластера лучше смотреть <a href="https://docs.solana.com/clusters" target="_blank">тут</a></p>
  <p id="HlAv">Тестнет</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="R7NH">solana config set --url <a href="https://api.testnet.solana.com" target="_blank">https://api.testnet.solana.com</a></p>
  </section>
  <p id="uxE4">Майннет</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="zTki">solana config set --url <a href="https://api.mainnet-beta.solana.com" target="_blank">https://api.mainnet-beta.solana.com</a></p>
  </section>
  <p id="7UVp">Девнет</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="FIC6">solana config set --url <a href="https://api.devnet.solana.com" target="_blank">https://api.devnet.solana.com</a></p>
  </section>
  <p id="HIKM"></p>
  <h3 id="AFxK">Установить в конфиг ключ по умолчанию</h3>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="7wL5">solana config set --keypair /root/solana/validator-keypair.json</p>
  </section>

]]></content:encoded></item><item><guid isPermaLink="true">https://solananewbie.net/content</guid><link>https://solananewbie.net/content?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie</link><comments>https://solananewbie.net/content?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=solananewbie#comments</comments><dc:creator>solananewbie</dc:creator><title>Навигация по блогу</title><pubDate>Mon, 13 Dec 2021 11:44:25 GMT</pubDate><description><![CDATA[Друзья, пока большинство из данных статей не готово, прошу запастись терпением, ссылки будут работать по мере наполнения блога контентом]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="8SCu">Друзья, пока большинство из данных статей не готово, прошу запастись терпением, ссылки будут работать по мере наполнения блога контентом</p>
  </section>
  <ol id="7zKA">
    <li id="xXB3"><a href="https://solananewbie.net/about-solana" target="_blank">О солане</a></li>
    <ol id="tLAE">
      <li id="JvrV"><a href="https://solananewbie.net/solana-registration" target="_blank">Регистрация в качестве валидатора для получения стейка от фонда</a></li>
      <li id="OcY9"><a href="https://solananewbie.net/solana-docs" target="_blank">Документация</a></li>
      <li id="n6W5"><a href="https://solananewbie.net/solana-blockchain" target="_blank">Как работает блокчейн</a></li>
      <li id="gN8y"><a href="https://solananewbie.net/solana-hardware-requirements" target="_blank">Технические требования к железу</a></li>
      <li id="RDOQ"><a href="https://solananewbie.net/solana-clusters" target="_blank">Тестнет, майннет, девнет. В чем разница?</a></li>
      <li id="FPuz"><a href="https://solananewbie.net/console-commands" target="_blank">Консольные команды</a></li>
      <ol id="lWvd">
        <li id="WGa8">Стейк, реварды</li>
        <li id="MlAU">Authorized withdrawer</li>
        <li id="WhyU">Отправка токенов</li>
        <li id="nonQ">Убрать желтый треугольник</li>
        <li id="6LlD">Селфстейк для майнета</li>
        <li id="uEkR">Кэчап</li>
        <li id="KoaA">Информация о стейке</li>
        <li id="3Nrt">Как посмотреть свои кредиты</li>
        <li id="psgd">Как посмотреть свой скип в текущей эпохе</li>
        <li id="n0kq">Сколько слотов запланировано в текущей эпохе</li>
        <li id="urQ2">Как посмотреть сколько слотов сделано или пропущено в данной эпохе</li>
      </ol>
      <li id="avFP"><a href="https://solananewbie.net/solana-selfstudy" target="_blank">Как учиться работать с Solana самостоятельно?</a></li>
      <li id="p1UK"><a href="https://solananewbie.net/solana-github" target="_blank">Github Solana, что там интересного?</a></li>
      <ol id="fruY">
        <li id="oUfN">Stake-o-maitc</li>
        <li id="mYZU">Pull request (PL) ключей в тестнет</li>
        <li id="fnTf">Версии новых релизов и чейнджлог</li>
      </ol>
      <li id="VppR"><a href="https://solananewbie.net/solana-helpful-information" target="_blank">Полезная информация от команды Solana</a></li>
    </ol>
    <li id="qtbN"><a href="https://solananewbie.net/solana-money" target="_blank">Деньги</a> </li>
    <ol id="fh6M">
      <li id="gIOl">Сколько нужно денег для старта?</li>
      <li id="WeMm">Сколько сейчас зарабатывают валидаторы?</li>
      <li id="3n7v">А сколько я буду зарабатывать, когда попаду в Майннет?</li>
      <li id="7RKN">Как долго нода в Майннете будет оставаться рентабельной?</li>
      <li id="cCve"><a href="https://solananewbie.net/marinade-finance-validator-guide" target="_blank">Как получить стейк от пула Marinade.</a></li>
    </ol>
    <li id="PxOw"><a href="https://solananewbie.net/solana-datacenters" target="_blank">Дата-центры</a></li>
    <ol id="QThf">
      <li id="Fwfq">Hetzner (Хецнер)</li>
      <li id="79C7">OVH (ОВХ)</li>
      <li id="G6je">Mevspace (бывший skynode.eu)</li>
      <li id="5aig">Reliable (Релайбл)</li>
      <li id="V3vx">Webtopia (Вебтопия)</li>
      <li id="L9Tb">Ikula (Икула)</li>
      <li id="vDN7">Ionos (Айнос)</li>
    </ol>
    <li id="QLow"><a href="https://solananewbie.net/home-node" target="_blank">Домашнее нодоводство</a></li>
    <li id="UxRX"><a href="https://solananewbie.net/troubleshooting" target="_blank">Как диагностировать проблемы с нодой? Что делать, если большой скип?</a></li>
    <li id="dUt2"><a href="https://solananewbie.net/solana-queue" target="_blank">Очередь в тестнет и майннет. Как работает? Как считать?</a></li>
    <li id="3qtv"><a href="https://solananewbie.net/server-node-administration" target="_blank">Настройка сервера, установка ноды, администрирование</a></li>
    <ol id="X9X2">
      <li id="AHxU">Raid0</li>
      <li id="cush">Firewall</li>
      <li id="2a0F">Скачивание снепшота с быстрых нод до рестарта Solana</li>
      <li id="aD2n">Как сменить пароль на ssh-ключ и изменить порт для SSH</li>
      <li id="tQq9">Как читать логи?</li>
      <li id="oSUq">Проверка дисков</li>
      <li id="gK9q">Проверка интернета</li>
      <li id="0qD1">Проверка оперативной памяти</li>
      <li id="Oi64">Мониторинг температуры</li>
      <li id="mUa9">Установка аватарки и смена имени ноды для сайта validators.app</li>
    </ol>
    <li id="fRfO"><a href="https://solananewbie.net/solana-monitoring" target="_blank">Мониторинг</a></li>
    <ol id="EW7b">
      <li id="eFf8">Телеграф</li>
      <li id="K7wx">Телеграм бот</li>
    </ol>
    <li id="nhv1"><a href="https://solananewbie.net/solana-gpu-cuda" target="_blank">Установка GPU для Solana</a></li>
  </ol>

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