<?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>BlockPro | Blockchain Validators</title><generator>teletype.in</generator><description><![CDATA[Мы — BlockPro, команда валидаторов, предоставляющая надежную и безопасную инфраструктуру для блокчейн-проектов.]]></description><image><url>https://img3.teletype.in/files/e6/6e/e66ebc16-33a5-431e-a68a-fa144608d250.png</url><title>BlockPro | Blockchain Validators</title><link>https://teletype.in/@blockpro</link></image><link>https://teletype.in/@blockpro?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/blockpro?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/blockpro?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 23 Oct 2026 04:29:18 GMT</pubDate><lastBuildDate>Fri, 23 Oct 2026 04:29:18 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@blockpro/monad-testnet</guid><link>https://teletype.in/@blockpro/monad-testnet?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro</link><comments>https://teletype.in/@blockpro/monad-testnet?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro#comments</comments><dc:creator>blockpro</dc:creator><title>Гайд по запуску Full Node и Validator в тестовой сети Monad</title><pubDate>Mon, 23 Feb 2026 15:07:08 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/10/57/105791cf-daca-40bb-9933-bb03b8a14721.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/b8/d6/b8d65926-3b0f-4d90-9a01-099ad2271a12.png"></img>Twitter 🆇 BlockPro ✘ Twitter 🆇 Monad]]></description><content:encoded><![CDATA[
  <figure id="kbbN" class="m_retina">
    <img src="https://img4.teletype.in/files/b8/d6/b8d65926-3b0f-4d90-9a01-099ad2271a12.png" width="768" />
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Oen5" data-align="center"><a href="https://x.com/BlockPro_" target="_blank">Twitter 🆇 BlockPro </a>✘ <a href="https://x.com/monad" target="_blank">Twitter 🆇 Monad</a></p>
  </section>
  <p id="cP1N">В этом гайде разберём:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <ul id="qgjM">
      <li id="wqz1"><a href="https://teletype.in/@blockpro/monad-testnet#RG0w" target="_blank">Требования к серверу</a></li>
    </ul>
    <ul id="Gx45">
      <li id="8im0"><a href="https://teletype.in/@blockpro/monad-testnet#Jxed" target="_blank">Подготовку сервера</a></li>
      <li id="rbPb"><a href="https://teletype.in/@blockpro/monad-testnet#sf5D" target="_blank">Установку ноды</a></li>
      <li id="6qXX"><a href="https://teletype.in/@blockpro/monad-testnet#Hwi1" target="_blank">Регистрация Validator в тестовой сети Monad</a></li>
      <li id="oafV"><a href="https://teletype.in/@blockpro/monad-testnet#L8Br" target="_blank">Общие операции и диагностика</a></li>
    </ul>
  </section>
  <hr />
  <h2 id="YRjD">Важно перед началом</h2>
  <p id="TUap">Этот пример установки показан на базе <strong>Hetzner Dedicated Server</strong>, потому что это удобный и понятный пример для демонстрации подготовки сервера.</p>
  <p id="4OhG">Но мы <strong>не рекомендуем использовать Hetzner для запуска validator в Monad</strong>.</p>
  <p id="9AL9">Почему:</p>
  <ul id="zuyW">
    <li id="qm0e">Hetzner не считается crypto-friendly провайдером</li>
    <li id="NYKY">на Hetzner уже размещено много валидаторов</li>
    <li id="XM6U">высокая концентрация валидаторов у одного хостинг-провайдера ухудшает децентрализацию сети и создаёт дополнительные инфраструктурные риски для самого проекта</li>
  </ul>
  <p id="EeFx">Если вы хотите запускать именно <strong>validator</strong>, лучше заранее проверить, где уже размещены другие операторы, и выбрать более уникальную комбинацию <strong>хостинга + локации</strong>.</p>
  <p id="v4ov">Для этого мы сделали собственный dashboard валидаторов Monad, где можно посмотреть:</p>
  <ul id="nZrO">
    <li id="3IXI">в каких странах размещены валидаторы</li>
    <li id="0d2U">какие хостинг-провайдеры уже заняты</li>
    <li id="8P4t">какие локации и провайдеры перегружены</li>
    <li id="Iot9">где можно выбрать более уникальное размещение для лучшей децентрализации сети</li>
  </ul>
  <p id="7N9c"><strong><a href="https://monad-validators-testnet.block-pro.net/" target="_blank">Dashboard</a></strong></p>
  <p id="YCM2">Если вы запускаете <strong>full node</strong>, Hetzner ещё можно рассматривать как рабочий вариант для тестов. Но для validator лучше выбрать другого провайдера и более редкую географию.</p>
  <hr />
  <h2 id="cUZU">Требования к серверу</h2>
  <p id="PUn4">⚠️ Облака (AWS, GCP, Azure и т.д.) официально <strong>не поддерживаются</strong>.</p>
  <h2 id="tNzj">Минимальные требования</h2>
  <h3 id="Gfk2">CPU</h3>
  <p id="oue9">16 ядер с базовой частотой 4.5 GHz+<br /> Примеры:</p>
  <ul id="3l9A">
    <li id="7tos">AMD Ryzen 9950X</li>
    <li id="VTrR">AMD Ryzen 7950X</li>
    <li id="DPTJ">AMD EPYC 4584PX</li>
  </ul>
  <h3 id="o82f">- RAM</h3>
  <p id="ou6O">32 GB и больше</p>
  <h3 id="rKO4">Диски</h3>
  <ul id="gkiE">
    <li id="fWFL">2 TB NVMe (отдельный диск для TrieDB / Execution)</li>
    <li id="RokS">500 GB для OS и MonadBFT</li>
    <li id="NEwf">PCIe Gen4 x4 NVMe или лучше</li>
  </ul>
  <h3 id="KNso">Сеть</h3>
  <ul id="ccf3">
    <li id="kxzF">300 Mbit/s — для валидатора</li>
    <li id="qABt">100 Mbit/s — для full node</li>
  </ul>
  <hr />
  <h2 id="CWOT">🔥 Лучшие NVMe (по тестам команды)</h2>
  <p id="sL8g"><strong>Топ:</strong></p>
  <ul id="nB7d">
    <li id="S7no">Samsung 980 Pro / 990 Pro</li>
    <li id="mtju">Samsung PM9A1</li>
  </ul>
  <p id="tfOx"><strong>Нестабильные:</strong></p>
  <ul id="9loQ">
    <li id="VU40">Micron 7450 (просадки под нагрузкой)</li>
    <li id="8NRz">Nextorage (перегрев, зависания)</li>
  </ul>
  <hr />
  <h1 id="UYcy">Компоненты ноды</h1>
  <p id="pjiI">Monad устанавливается как systemd-сервисы:</p>
  <ul id="vnZs">
    <li id="acjn"><code>monad-bft</code> — консенсус</li>
    <li id="GLGQ"><code>monad-execution</code> — execution client</li>
    <li id="2ZFo"><code>monad-rpc</code> — RPC сервер</li>
    <li id="aHGK"><code>monad-mpt</code> — инициализация TrieDB</li>
    <li id="rxl1"><code>monad-cruft</code> — очистка старых файлов</li>
    <li id="9VvI"><code>otelcol</code> — метрики</li>
  </ul>
  <p id="ofVG">Все сервисы работают от пользователя <code>monad</code>.</p>
  <hr />
  <h1 id="Jxed">⚙️ Подготовка сервера</h1>
  <h2 id="bPfk">Требования к системе</h2>
  <ul id="FkbM">
    <li id="pXc7">Ubuntu 24.04+</li>
    <li id="tiw1">Kernel ≥ 6.8.0.60</li>
    <li id="A1qY">HyperThreading / SMT — выключить в BIOS</li>
  </ul>
  <p id="WAoP">⚠️ Версии kernel 6.8.0.56–59 вызывают зависания.</p>
  <hr />
  <h1 id="y7i5">Подготовка сервера (пример Hetzner)</h1>
  <p id="Ayix">В этом разделе показано, как подготовить сервер для запуска ноды на примере <strong>Hetzner Dedicated Server</strong>.</p>
  <p id="8oL2">Рекомендуемая схема дисков:</p>
  <pre id="H6ZV">Disk 1 → OS + MonadBFT
Disk 2 → TrieDB / Execution</pre>
  <p id="P9Az">Это соответствует требованиям ноды:</p>
  <ul id="qX7p">
    <li id="mf78"><strong>500 GB NVMe</strong> для OS и MonadBFT</li>
    <li id="jmJw"><strong>2 TB NVMe</strong> для TrieDB</li>
  </ul>
  <p id="jRWF">Использовать <strong>RAID не рекомендуется</strong>, так как он может увеличивать latency и снижать IOPS для TrieDB.</p>
  <hr />
  <h1 id="ckv0">Установка операционной системы</h1>
  <ol id="b7wK">
    <li id="zHJ6">В панели <strong>Hetzner Robot</strong> включите <strong>Rescue System</strong>.</li>
  </ol>
  <pre id="FVkf">Servers → Rescue → Linux → Activate</pre>
  <ol id="i7r3">
    <li id="D2Y6">Перезагрузите сервер.</li>
    <li id="IcBE">Подключитесь по SSH:</li>
  </ol>
  <pre id="J84l">ssh root@YOUR_SERVER_IP</pre>
  <ol id="VXEa">
    <li id="UaDT">Запустите установщик системы:</li>
  </ol>
  <pre id="oPsA">installimage</pre>
  <hr />
  <h1 id="3PfA">Конфигурация дисков</h1>
  <p id="nkjD">При установке системы используйте <strong>только один диск для ОС</strong>.</p>
  <p id="fnQQ">Пример конфигурации:</p>
  <pre id="icIv">DRIVE1 /dev/nvme0n1
#DRIVE2 /dev/nvme1n1

SWRAID 0

BOOTLOADER grub

PART /boot ext3 1G
PART swap swap 16G
PART / ext4 500G
PART /home ext4 all</pre>
  <p id="R0sZ">Это создаст следующую структуру:</p>
  <pre id="8Jru">nvme0n1
 ├─ /boot
 ├─ swap
 ├─ /
 └─ /home</pre>
  <p id="QrbI">Второй диск <strong>останется свободным</strong> и будет использоваться для TrieDB.</p>
  <p id="xtEE">После установки перезагрузите сервер.</p>
  <hr />
  <h1 id="wuRv">Проверка дисков</h1>
  <p id="YvhO">После установки системы выполните:</p>
  <pre id="pZQi">lsblk</pre>
  <p id="1oLO">Ожидаемый результат:</p>
  <pre id="ovU2">nvme0n1 → OSnvme1n1 → пустой диск</pre>
  <h2 id="lYKD">Проверка версии Kernel</h2>
  <p id="p3pg">В <strong>Ubuntu 24.04</strong> kernel устанавливается автоматически вместе с системой, поэтому обычно ничего дополнительно устанавливать не нужно.</p>
  <p id="qlhZ">Чтобы проверить текущую версию kernel, выполните:</p>
  <pre id="pWGK">uname -r</pre>
  <p id="3q4A">Пример вывода:</p>
  <pre id="NWTO">6.8.0-90-generic</pre>
  <h2 id="qv2W">Disable HyperThreading / SMT</h2>
  <p id="Wntb">Для корректной работы ноды рекомендуется <strong>отключить HyperThreading (Intel) / SMT (AMD)</strong>, так как эти технологии могут снижать стабильность и производительность ноды.</p>
  <h3 id="usZJ">Проверка состояния SMT</h3>
  <p id="TaIh">Выполните:</p>
  <pre id="LHVf">cat /sys/devices/system/cpu/smt/active</pre>
  <p id="NwHU">Результат:</p>
  <pre id="ntnd">1</pre>
  <p id="WTu1">SMT включён.</p>
  <pre id="p9TO">0</pre>
  <p id="kFNS">SMT выключен.</p>
  <p id="wYo3">Дополнительно можно проверить:</p>
  <pre id="nJc1">lscpu | grep Thread</pre>
  <p id="bqBj">Если вывод:</p>
  <pre id="LRIv">Thread(s) per core: 2</pre>
  <p id="pAuR">SMT включён.</p>
  <p id="xJK5">Если:</p>
  <pre id="Vegn">Thread(s) per core: 1</pre>
  <p id="PwHc">SMT выключен.</p>
  <hr />
  <h1 id="9GtG">Отключение HyperThreading / SMT</h1>
  <p id="cCWf">Для стабильной работы ноды рекомендуется <strong>отключить HyperThreading (Intel) / SMT (AMD)</strong>, так как эти технологии могут ухудшать производительность и стабильность ноды.</p>
  <hr />
  <h1 id="X5cO">Стандартный способ (через GRUB)</h1>
  <p id="XWQf">Откройте конфигурацию GRUB:</p>
  <pre id="D4oI">nano /etc/default/grub</pre>
  <p id="u7OH">Найдите строку:</p>
  <pre id="yGoQ">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet&quot;</pre>
  <p id="WDW6">и измените её на:</p>
  <pre id="jRGE">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet nosmt&quot;</pre>
  <p id="S7YR">Сохраните файл и примените изменения:</p>
  <pre id="YAXC">update-grub</pre>
  <p id="ZYDF">Перезагрузите сервер:</p>
  <pre id="JmKF">reboot</pre>
  <hr />
  <h1 id="2MiW">Для серверов Hetzner</h1>
  <p id="R1mv">На некоторых серверах Hetzner параметры из файла <code>/etc/default/grub</code> могут быть <strong>переопределены конфигурацией Hetzner</strong>.<br /> В этом случае необходимо изменить дополнительный конфигурационный файл.</p>
  <p id="3n4k">Откройте файл:</p>
  <pre id="cXJP">nano /etc/default/grub.d/hetzner.cfg</pre>
  <p id="IxRE">Найдите строку:</p>
  <pre id="jKug">GRUB_CMDLINE_LINUX_DEFAULT=&quot;consoleblank=0&quot;</pre>
  <p id="IPxi">и измените её на:</p>
  <pre id="jjFY">GRUB_CMDLINE_LINUX_DEFAULT=&quot;consoleblank=0 nosmt&quot;</pre>
  <hr />
  <h1 id="IUKs">Применение изменений</h1>
  <p id="NBYI">После редактирования выполните:</p>
  <pre id="mR2L">update-grub</pre>
  <p id="VDyC">Перезагрузите сервер:</p>
  <pre id="5TPt">reboot</pre>
  <hr />
  <h1 id="KInb">Проверка</h1>
  <p id="dEKe">Проверьте, что SMT отключён:</p>
  <pre id="BVZP">cat /sys/devices/system/cpu/smt/active</pre>
  <p id="h0xJ">Ожидаемый результат:</p>
  <pre id="faSq">0</pre>
  <p id="fXBI">Также можно проверить:</p>
  <pre id="DRVZ">lscpu | grep Thread</pre>
  <p id="aB4f">Результат должен быть:</p>
  <pre id="sqSl">Thread(s) per core: 1</pre>
  <hr />
  <h2 id="yktu">Обновление системы</h2>
  <pre id="XlcF">apt update &amp;&amp; apt upgrade -y</pre>
  <p id="nEcP">Если обновилось ядро — перезагрузить сервер.</p>
  <hr />
  <h2 id="VpsP">Установка зависимостей</h2>
  <pre id="o6Af">apt install -y curl nvme-cli aria2 jq</pre>
  <hr />
  <h1 id="sf5D">Установка Monad</h1>
  <p id="gGZ5">Добавляем репозиторий:</p>
  <pre id="KRcq">cat &lt;&lt;EOF &gt; /etc/apt/sources.list.d/category-labs.sources
Types: deb
URIs: https://pkg.category.xyz/
Suites: noble
Components: main
Signed-By: /etc/apt/keyrings/category-labs.gpg
EOF</pre>
  <pre id="v8g5">curl -fsSL https://pkg.category.xyz/keys/public-key.asc \
  | gpg --dearmor --yes -o /etc/apt/keyrings/category-labs.gpg</pre>
  <p id="mPJc">Устанавливаем актуальную testnet-версию Monad:</p>
  <pre id="D7HR">apt update
apt install -y monad=0.13.0
apt-mark hold monad</pre>
  <hr />
  <h1 id="kNNa">👤 Создание пользователя</h1>
  <pre id="mwzm">useradd -m -s /bin/bash monad</pre>
  <p id="T3xg">Создаём структуру директорий:</p>
  <pre id="MWRS">mkdir -p /home/monad/monad-bft/config \
         /home/monad/monad-bft/ledger \
         /home/monad/monad-bft/config/forkpoint \
         /home/monad/monad-bft/config/validators</pre>
  <hr />
  <h1 id="xX2X">💾 Настройка TrieDB (ВАЖНО)</h1>
  <p id="dnft">⚠️ Делайте это аккуратно. Нельзя форматировать системный диск.</p>
  <p id="THVR">Проверяем диски:</p>
  <pre id="kkcx">nvme list
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL</pre>
  <p id="1Cwf">Эти команды покажут все NVMe диски и их текущие точки монтирования.</p>
  <p id="NUIx">Пример вывода:</p>
  <pre id="Erdo">NAME         SIZE TYPE MOUNTP MODEL
nvme1n1      3.5T disk        SAMSUNG MZQL23T8HCLS-00A07
nvme0n1      3.5T disk        SAMSUNG MZQL23T8HCLS-00A07
├─nvme0n1p1   16G part [SWAP]
├─nvme0n1p2    1G part /boot
├─nvme0n1p3  500G part /
├─nvme0n1p4    3T part /home
└─nvme0n1p5    1M part
 /home</pre>
  <p id="hZaE">В этом примере:</p>
  <pre id="Rq2m">nvme0n1 → системный диск
nvme1n1 → свободный диск</pre>
  <p id="zBZC">Системный диск легко определить по точкам монтирования:</p>
  <pre id="ZURr">/
/boot
swap
/home</pre>
  <p id="R6hD">Такой диск <strong>использовать нельзя</strong>.</p>
  <hr />
  <h1 id="RzM4">Выбор диска для TrieDB</h1>
  <p id="1Aqh">Необходимо выбрать диск <strong>без разделов и без точек монтирования</strong>.</p>
  <p id="ainj">В нашем примере это:</p>
  <pre id="Y70p">nvme1n1</pre>
  <p id="pDRk">Теперь указываем его в переменной:</p>
  <pre id="Jgui">TRIEDB_DRIVE=/dev/nvme1n1</pre>
  <p id="yzyq">Эта переменная будет использоваться в следующих командах для создания раздела TrieDB.</p>
  <p id="IJqC">Создаём таблицу разделов:</p>
  <pre id="J7rn">parted $TRIEDB_DRIVE mklabel gpt
parted $TRIEDB_DRIVE mkpart triedb 0% 100%</pre>
  <p id="Vybq">Создаём udev правило:</p>
  <pre id="wFnn">PARTUUID=$(lsblk -o PARTUUID $TRIEDB_DRIVE | tail -n 1)
echo &quot;Disk PartUUID: ${PARTUUID}&quot;

echo &quot;ENV{ID_PART_ENTRY_UUID}==\&quot;$PARTUUID\&quot;, MODE=\&quot;0666\&quot;, SYMLINK+=\&quot;triedb\&quot;&quot; \
  | tee /etc/udev/rules.d/99-triedb.rules</pre>
  <p id="GHKf">Перезапуск:</p>
  <pre id="bce8">udevadm trigger
udevadm control --reload
udevadm settle
ls -l /dev/triedb</pre>
  <hr />
  <h2 id="dP04">Проверка LBA</h2>
  <pre id="OPLz">nvme id-ns -H $TRIEDB_DRIVE | grep &#x27;LBA Format&#x27; | grep &#x27;in use&#x27;</pre>
  <p id="TK8k">Должно быть:</p>
  <pre id="RLOl">Data Size: 512 bytes (in use)</pre>
  <p id="9YyW">Если нет:</p>
  <pre id="GE29">nvme format --lbaf=0 $TRIEDB_DRIVE</pre>
  <hr />
  <h2 id="2INS">Инициализация TrieDB</h2>
  <pre id="CSLo">systemctl start monad-mpt &amp;&amp; journalctl -u monad-mpt -n 14 -o cat</pre>
  <p id="Irfb">Если ошибок нет — всё готово.</p>
  <hr />
  <h1 id="5oOW">🔐 Настройка Firewall</h1>
  <pre id="QLbm">ufw allow ssh
ufw allow 8000
ufw allow 8001
ufw enable
ufw status</pre>
  <p id="IjTc">Дополнительно защита от spam:</p>
  <pre id="R9tE">sudo iptables -I INPUT -p udp --dport 8000 -m length --length 0:1400 -j DROP</pre>
  <h1 id="4nnW">📡 Установка OTEL (метрики)</h1>
  <pre id="LE91">OTEL_VERSION=&quot;0.139.0&quot;
OTEL_PACKAGE=&quot;https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v${OTEL_VERSION}/otelcol_${OTEL_VERSION}_linux_amd64.deb&quot;

curl -fsSL &quot;$OTEL_PACKAGE&quot; -o /tmp/otelcol_linux_amd64.deb
dpkg -i /tmp/otelcol_linux_amd64.deb

cp /opt/monad/scripts/otel-config.yaml /etc/otelcol/config.yaml
systemctl restart otelcol</pre>
  <p id="4xEX">Метрики доступны на:</p>
  <pre id="UFa3">http://IP:8889/metrics</pre>
  <hr />
  <h1 id="Ai72">📄 Получение конфигов</h1>
  <p id="jcgA">Для Full Node:</p>
  <pre id="22Xx">MF_BUCKET=https://bucket.monadinfra.com
curl -o /home/monad/.env $MF_BUCKET/config/testnet/latest/.env.example
curl -o /home/monad/monad-bft/config/node.toml $MF_BUCKET/config/testnet/latest/full-node-node.toml</pre>
  <p id="fjeH">Для Validator:</p>
  <pre id="oTBS">MF_BUCKET=https://bucket.monadinfra.com
curl -o /home/monad/.env $MF_BUCKET/config/testnet/latest/.env.example
curl -o /home/monad/monad-bft/config/node.toml $MF_BUCKET/config/testnet/latest/node.toml</pre>
  <hr />
  <h1 id="ja90">Генерация ключей (BLS и SECP)</h1>
  <p id="pmaH">Нода Monad использует <strong>два типа ключей</strong>:</p>
  <p id="BLkV">• <strong>SECP key</strong> — используется для идентификации ноды<br />• <strong>BLS key</strong> — используется в консенсусе MonadBFT</p>
  <p id="7Rbc">Ключи сохраняются в <strong>зашифрованных keystore файлах</strong>.</p>
  <p id="CKtd">Пароль для шифрования задаётся через переменную:</p>
  <pre id="jC6j">KEYSTORE_PASSWORD</pre>
  <p id="4uKC">в файле:</p>
  <pre id="OIcb">/home/monad/.env</pre>
  <hr />
  <h1 id="Tuli">1. Генерация безопасного пароля</h1>
  <p id="gqWb">Если пароль ещё не задан в <code>.env</code>, можно сгенерировать случайный безопасный пароль:</p>
  <pre id="TGGE">sed -i &quot;s|^KEYSTORE_PASSWORD=$|KEYSTORE_PASSWORD=&#x27;$(openssl rand -base64 32)&#x27;|&quot; /home/monad/.env
source /home/monad/.env</pre>
  <p id="WRlO">Проверить:</p>
  <pre id="eYAk">cat /home/monad/.env</pre>
  <p id="TC74">Пример:</p>
  <pre id="3X9z">KEYSTORE_PASSWORD=&#x27;random-generated-password&#x27;</pre>
  <hr />
  <h1 id="0ytF">2. Создание директории для бэкапов</h1>
  <p id="tClX">Создаём директорию для резервных копий:</p>
  <pre id="qWW1">mkdir -p /opt/monad/backup</pre>
  <p id="1u70">Сохраняем пароль:</p>
  <pre id="SB7f">echo &quot;Keystore password: ${KEYSTORE_PASSWORD}&quot; &gt; /opt/monad/backup/keystore-password-backup</pre>
  <hr />
  <h1 id="PztJ">3. Генерация ключей</h1>
  <p id="c3xN">Выполните:</p>
  <pre id="OBpJ">bash &lt;&lt;&#x27;EOF&#x27;
set -e

source /home/monad/.env

if [[ -z &quot;$KEYSTORE_PASSWORD&quot; || \
      -f /home/monad/monad-bft/config/id-secp || \
      -f /home/monad/monad-bft/config/id-bls ]]; then
  echo &quot;Skipping: missing KEYSTORE_PASSWORD or keys already exist.&quot;
  exit 1
fi

monad-keystore create \
  --key-type secp \
  --keystore-path /home/monad/monad-bft/config/id-secp \
  --password &quot;${KEYSTORE_PASSWORD}&quot; &gt; /opt/monad/backup/secp-backup

monad-keystore create \
  --key-type bls \
  --keystore-path /home/monad/monad-bft/config/id-bls \
  --password &quot;${KEYSTORE_PASSWORD}&quot; &gt; /opt/monad/backup/bls-backup

grep &quot;public key&quot; /opt/monad/backup/secp-backup /opt/monad/backup/bls-backup \
  | tee /home/monad/pubkey-secp-bls

echo &quot;Success: New keystores generated&quot;

EOF</pre>
  <hr />
  <h1 id="erPO">4. Где будут сохранены ключи</h1>
  <p id="h8BA">Файлы keystore:</p>
  <pre id="gxXu">/home/monad/monad-bft/config/id-secp
/home/monad/monad-bft/config/id-bls</pre>
  <p id="z60O">Резервные копии:</p>
  <pre id="x1Vx">/opt/monad/backup/secp-backup
/opt/monad/backup/bls-backup</pre>
  <p id="ta7I">Публичные ключи:</p>
  <pre id="SzGG">/home/monad/pubkey-secp-bls</pre>
  <hr />
  <h1 id="b9OT">5. Обязательный внешний backup</h1>
  <p id="k5aK">Необходимо <strong>обязательно сохранить эти файлы вне сервера</strong>:</p>
  <pre id="ZiMO">/opt/monad/backup/secp-backup
/opt/monad/backup/bls-backup
/opt/monad/backup/keystore-password-backup</pre>
  <p id="iNMK">Например:</p>
  <p id="8lgr">• на локальном компьютере<br /> • в password manager<br /> • в зашифрованном cloud storage</p>
  <p id="npvL">⚠️ Если сервер будет потерян и <strong>бэкапов не будет</strong>, восстановить validator identity будет невозможно.</p>
  <hr />
  <h1 id="uJp9">Проверка</h1>
  <p id="aO76">После генерации ключей можно проверить публичные ключи:</p>
  <pre id="1Mdp">cat /home/monad/pubkey-secp-bls</pre>
  <p id="vhtm">Здесь будут отображены <strong>SECP и BLS public keys</strong>, которые могут понадобиться при регистрации валидатора.</p>
  <hr />
  <h1 id="QtVR">🌐 Настройка node.toml</h1>
  <p id="FndC">Открываем:</p>
  <pre id="lhi8">nano /home/monad/monad-bft/config/node.toml</pre>
  <h2 id="9fbx">Указываем beneficiary</h2>
  <p id="Rg4v">Для full node:</p>
  <pre id="tO8m">beneficiary = &quot;0x0000000000000000000000000000000000000000&quot;</pre>
  <p id="of40">Для валидатора:</p>
  <pre id="Wkht">beneficiary = &quot;0xВАШ_АДРЕС&quot;</pre>
  <hr />
  <h2 id="LCsc">Указываем имя ноды</h2>
  <pre id="s3xm">node_name = &quot;full_blockpro_1&quot;</pre>
  <hr />
  <h1 id="jbcL">✍️ Подпись Name Record</h1>
  <pre id="4fUg">source /home/monad/.env
monad-sign-name-record \
  --address $(curl -s4 ifconfig.me):8000 \
  --authenticated-udp-port 8001 \
  --keystore-path /home/monad/monad-bft/config/id-secp \
  --password &quot;${KEYSTORE_PASSWORD}&quot; \
  --self-record-seq-num 1</pre>
  <p id="xLLd">Полученные данные вставляем в:</p>
  <pre id="d7mM">[peer_discovery]
self_address
self_record_seq_num
self_name_record_sig</pre>
  <hr />
  <h1 id="EEP7">RaptorCast — как Full Node получает блоки</h1>
  <p id="uMfY">Full Node может получать блоки тремя способами.</p>
  <hr />
  <h2 id="Vpwk">1️⃣ Normal (стандартный публичный режим)</h2>
  <p id="Xec6">Это обычная конфигурация для большинства full node.</p>
  <ul id="wdKb">
    <li id="X0kR">Whitelist не нужен</li>
    <li id="XSEW">Работает через Secondary RaptorCast</li>
    <li id="1BEH">Подключение permissionless</li>
  </ul>
  <p id="pEN3">Нода автоматически подключается к валидаторам и получает приглашения в raptorcast-группы.</p>
  <p id="RIgY">В <code>node.toml</code> должно быть:</p>
  <pre id="JSyB">[fullnode_raptorcast]
enable_client = true</pre>
  <p id="JQPF">И:</p>
  <pre id="YgjP">[statesync]
expand_to_group = true</pre>
  <p id="HQyS">Это режим по умолчанию и самый рекомендуемый.</p>
  <hr />
  <h2 id="uuQf">2️⃣ Prioritized Secondary RaptorCast</h2>
  <p id="TFzZ">В этом режиме валидатор вручную добавляет full node в список приоритетных.</p>
  <ul id="E9rt">
    <li id="UBTb">Требуется whitelist от валидатора</li>
    <li id="FWZU">Всё равно используется Secondary RaptorCast</li>
    <li id="9Lti">Нода получает гарантированные приглашения в группы</li>
  </ul>
  <p id="VFDx">Используется, если вы договорились с валидатором о стабильном канале доставки блоков.</p>
  <hr />
  <h2 id="PDNd">3️⃣ Dedicated (Chunk Forwarding)</h2>
  <p id="siKg">Здесь валидатор напрямую форвардит full node все блоки из Primary RaptorCast.</p>
  <ul id="nxjp">
    <li id="K2dR">Требуется whitelist</li>
    <li id="B3JU">Используется Primary RaptorCast</li>
    <li id="yiZ0">Высокая нагрузка на валидатора</li>
  </ul>
  <p id="PiHL">В этом случае full node может работать с:</p>
  <pre id="kr2r">enable_client = false</pre>
  <p id="4O73">Так как она не участвует во Secondary RaptorCast.</p>
  <hr />
  <h2 id="5Ird">Что выбрать?</h2>
  <p id="apoi">Если вы запускаете обычный публичный full node — выбирайте <strong>Normal режим</strong>.</p>
  <p id="vFDT">Он:</p>
  <ul id="E4AQ">
    <li id="lpYg">не требует согласований</li>
    <li id="NAf1">масштабируем</li>
    <li id="YORD">надёжный</li>
    <li id="QXtz">рекомендован командой</li>
  </ul>
  <hr />
  <h1 id="5TCz">Запуск сервисов</h1>
  <pre id="Gx3w">chown -R monad:monad /home/monad/
systemctl enable monad-bft monad-execution monad-rpc</pre>
  <hr />
  <h1 id="EywY">Hard Reset (импорт снапшота)</h1>
  <pre id="QxyK">bash /opt/monad/scripts/reset-workspace.sh</pre>
  <p id="L1Rr">Скачать снапшот:</p>
  <pre id="ISew">curl -sSL https://bucket.monadinfra.com/scripts/testnet/restore-from-snapshot.sh | bash</pre>
  <p id="U9z2">После:</p>
  <pre id="CWmZ">systemctl start monad-bft monad-execution monad-rpc</pre>
  <hr />
  <h1 id="gVZg">Что такое Statesync</h1>
  <p id="Cu3T">Statesync:</p>
  <ul id="Vgcl">
    <li id="mDQT">подтягивает состояние</li>
    <li id="gIHj">синхронизирует аккаунты, storage</li>
    <li id="8nJl">потом blocksync догоняет последние блоки</li>
  </ul>
  <p id="9rFF">Обычно занимает:</p>
  <ul id="MOIP">
    <li id="ErWg">&lt;5 минут на тестнете</li>
  </ul>
  <hr />
  <h1 id="GmCc">monad-cruft</h1>
  <p id="MZrH">Сервис автоматически чистит старые:</p>
  <ul id="pnOn">
    <li id="Ewn5">ledger файлы</li>
    <li id="LXOD">forkpoint</li>
    <li id="pJKM">validators</li>
  </ul>
  <p id="G4Yj">Можно настроить время хранения в <code>.env</code>.</p>
  <hr />
  <h1 id="QsDh">✅ Готово</h1>
  <p id="yFiz">Теперь ваша full node полностью запущена.</p>
  <p id="0H0J">Если планируете стать валидатором — запускайте как full node заранее, чтобы не отставать от цепи.</p>
  <hr />
  <h1 id="Hwi1">Регистрация Validator в тестовой сети Monad</h1>
  <p id="YMDK">После того как нода полностью синхронизирована (statesync завершён, RPC активен, блоки идут), можно регистрировать валидатора.</p>
  <p id="0WHW">Регистрация происходит вызовом функции <code>addValidator</code> в staking precompile.</p>
  <h1 id="UzgJ">Какие данные нужны для регистрации</h1>
  <p id="rUDt">Функция <code>addValidator(bytes, bytes, bytes)</code> принимает:</p>
  <h2 id="d9YZ">1️⃣ Payload (закодированные данные)</h2>
  <p id="xoUT">Внутри payload последовательно упакованы:</p>
  <ul id="se52">
    <li id="ubNC"><code>secpPubkey</code> — публичный SECP ключ (для peer discovery и консенсуса)</li>
    <li id="NtCj"><code>blsPubkey</code> — публичный BLS ключ (для подписи блоков)</li>
    <li id="2IqN"><code>authAddress</code> — адрес управления валидатором (имеет право вывода средств)</li>
    <li id="1eR2"><code>amount</code> — self-stake (в MON)</li>
    <li id="JREB"><code>commission</code> — комиссия * 1e18<br /> Пример: 10% = <code>1e17</code></li>
  </ul>
  <p id="Pe8i">Payload формируется аналогично <code>abi.encodePacked()</code> в Solidity.</p>
  <hr />
  <h2 id="HhKC">2️⃣ signedSecpMessage</h2>
  <p id="zoid">SECP подпись над payload.</p>
  <hr />
  <h2 id="XzaA">3️⃣ signedBlsMessage</h2>
  <p id="8idY">BLS подпись над payload.</p>
  <hr />
  <h1 id="5km4">⚠️ Важные правила</h1>
  <p id="NVRb">Регистрация отклонится (revert), если:</p>
  <ul id="41M7">
    <li id="F9JI">любой из публичных ключей уже используется</li>
    <li id="uDTP">подписи невалидны</li>
    <li id="vjYI"><code>msg.value &lt; MIN_AUTH_ADDRESS_STAKE</code></li>
    <li id="p8nL">self-stake меньше минимума (100000 MON)</li>
  </ul>
  <hr />
  <h1 id="b9u3">Условия для активации валидатора</h1>
  <p id="OyJe">После регистрации валидатор станет активным <strong>не сразу</strong>.</p>
  <p id="axrK">Он должен:</p>
  <ul id="ix1H">
    <li id="9enX">Иметь stake ≥ <code>ACTIVE_VALIDATOR_STAKE = 10 000 000 MON</code></li>
    <li id="NG0h">Быть в топ-200 по stake</li>
    <li id="TD7U">Поддерживать self-stake ≥ <code>MIN_VALIDATE_STAKE = 100 000 MON</code></li>
  </ul>
  <p id="tZ3t">Только при выполнении всех трёх условий он попадёт в активный сет.</p>
  <h1 id="nlPY">Регистрация через Staking CLI (рекомендуемый способ)</h1>
  <p id="V8Yu">Monad предоставляет официальный CLI инструмент.</p>
  <p id="9C9X">Перед установкой CLI убедитесь, что на сервере установлен <strong>Python 3.8 или новее</strong>.</p>
  <p id="9ml0">Проверить версию Python:</p>
  <pre id="0LJQ">python3 --version</pre>
  <p id="6X6X">Пример:</p>
  <pre id="uGxz">Python 3.12.3</pre>
  <p id="EhdC">Если Python не установлен, выполните установку:</p>
  <pre id="EIRK">apt update
apt install python3 python3-venv python3-pip -y</pre>
  <hr />
  <h1 id="gTU6">Установка staking-sdk-cli</h1>
  <pre id="0k45">git clone https://github.com/monad-developers/staking-sdk-cli.git
cd staking-sdk-cli
python -m venv cli-venv
source cli-venv/bin/activate  # On Windows: cli-venv\Scripts\activate
pip install .</pre>
  <hr />
  <h1 id="2hJQ">Извлечение приватных ключей</h1>
  <p id="VkVY">⚠️ Нельзя использовать старые backup файлы напрямую.</p>
  <p id="EsDS">Используем <code>monad-keystore</code>:</p>
  <pre id="1AEe">source /home/monad/.env
monad-keystore recover --password &quot;$KEYSTORE_PASSWORD&quot; --keystore-path /home/monad/monad-bft/config/id-secp  --key-type secp
monad-keystore recover --password &quot;$KEYSTORE_PASSWORD&quot; --keystore-path /home/monad/monad-bft/config/id-bls  --key-type bls</pre>
  <p id="xdSk">Формат ключей:</p>
  <p id="KN6S">SECP:<br /> 64 hex символа без <code>0x</code></p>
  <p id="A4BN">BLS:<br /> 64 hex символа с <code>0x</code></p>
  <hr />
  <h1 id="Cm0T">Регистрация через CLI</h1>
  <pre id="3TtO">python staking-cli/main.py add-validator \
  --secp-privkey &quot;${SECP_PRIVATE_KEY}&quot; \
  --bls-privkey &quot;${BLS_PRIVATE_KEY}&quot; \
  --auth-address &quot;${AUTH_ADDRESS}&quot; \
  --amount 100_000</pre>
  <p id="sXVa">⚠️ Amount указывается в MON (не wei).<br /> CLI сам конвертирует.</p>
  <hr />
  <h1 id="ilTP">Проверка ключей</h1>
  <p id="85Nh">CLI покажет derived public keys:</p>
  <pre id="orTo">SECP Pubkey: 03bbf6...
BLS Pubkey: 985d3f...</pre>
  <p id="v9L6">Обязательно проверь совпадение с:</p>
  <pre id="dvR4">cat /home/monad/pubkey-secp-bls</pre>
  <p id="0B0o">Если подтвердить неправильные ключи — придётся делать key rotation.</p>
  <hr />
  <h1 id="xrlq">✅ Успешная регистрация</h1>
  <p id="7iiM">Успешный вывод:</p>
  <pre id="BK4l">Tx status: 1
Validator Created! ID: 19</pre>
  <p id="Xej6">Если статус 0 — транзакция провалилась.</p>
  <hr />
  <h1 id="sFMn">Проверка, что валидатор добавлен</h1>
  <p id="3CBu">Проверка execution set:</p>
  <pre id="yALK">python main.py query validator-set --type execution --config-path ~/config.toml | grep {{ SECP PUBKEY }}</pre>
  <p id="ahjm">Проверка конкретного валидатора:</p>
  <pre id="3tgn">python main.py query validator --validator-id 207</pre>
  <hr />
  <h1 id="L8Br">🔧 Общие операции и диагностика</h1>
  <h2 id="FiIu">Версия бинарников</h2>
  <p id="wV2Z">Посмотреть версию и информацию о сборке:</p>
  <pre id="Ch3I">monad-node --version
# Пример:
# monad-node {&quot;commit&quot;:&quot;c0cdcaae8eb527e44d72c4638c1f1335025a5132&quot;,&quot;tag&quot;:&quot;v0.12.2-rc&quot;,&quot;branch&quot;:&quot;&quot;,&quot;modified&quot;:true}</pre>
  <hr />
  <h2 id="x1Fx">CLI Help</h2>
  <p id="MeF2">Посмотреть доступные аргументы командной строки:</p>
  <pre id="p6U6">monad-rpc --help
monad --help
monad-bft --help</pre>
  <p id="oilc">⚠️ <strong>Не меняйте CLI-аргументы наугад</strong>. Некоторые параметры могут привести к нестабильной работе или падениям.</p>
  <hr />
  <h2 id="CbRN">Управление сервисами</h2>
  <p id="ONXk">Проверить статус всех сервисов сразу:</p>
  <pre id="Wzuw">systemctl status monad-bft monad-execution monad-rpc --no-pager -l</pre>
  <p id="hMAn">Проверить по отдельности:</p>
  <pre id="jsXp">systemctl status monad-bft
systemctl status monad-execution
systemctl status monad-rpc</pre>
  <p id="RqD8">Смотреть логи в реальном времени:</p>
  <pre id="lHxk">journalctl -u monad-bft -f
journalctl -u monad-execution -f
journalctl -u monad-rpc -f</pre>
  <hr />
  <h2 id="cW8y">Мониторинг высоты блоков</h2>
  <p id="EVTA">RPC начнёт слушать порт <strong>восемь ноль восемь ноль</strong> после завершения <strong>statesync</strong>.</p>
  <p id="IKZA">Проверить текущую высоту блока через RPC:</p>
  <pre id="81GJ">curl http://localhost:8080/ \
  -X POST \
  -H &quot;Content-Type: application/json&quot; \
  --data &#x27;{&quot;method&quot;:&quot;eth_blockNumber&quot;,&quot;params&quot;:[],&quot;id&quot;:1,&quot;jsonrpc&quot;:&quot;2.0&quot;}&#x27;</pre>
  <hr />
  <h2 id="gdgq">Использование диска MonadDB (TrieDB)</h2>
  <p id="ygvK">TrieDB автоматически делает компакцию примерно при <strong>восьмидесяти процентах</strong> заполнения, чтобы сохранять производительность SSD.</p>
  <p id="8wh4">Проверить использование TrieDB и глубину истории:</p>
  <pre id="Fwcs">monad-mpt --storage /dev/triedb</pre>
  <p id="IdDp">Пример вывода:</p>
  <pre id="J4p2">MPT database on storages:
          Capacity           Used      %  Path
           3.49 Tb       24.30 Gb  0.68%  &quot;/dev/nvme1n1p1&quot;
MPT database internal lists:
     Fast: 94 chunks with capacity 23.50 Gb used 23.40 Gb
     Slow: 3 chunks with capacity 768.00 Mb used 658.72 Mb
     Free: 14207 chunks with capacity 3.47 Tb used 0.00 bytes
MPT database has 599928 history, earliest is 36784905 latest is 37384832.
     It has been configured to retain no more than 33554432.
     Latest proposed is (37384832, 88a5550ba067c2f21cef6b6e8953fbf700fe300905952e5621335fe2bd58729c).
     Latest voted is (37384831, 56074c2429909c2966bfe8df55810ec3b8f4f4f599b407ff89ec92b090656ab1).
     Latest finalized is 37384830, latest verified is 37384827, auto expire version is 36784905</pre>
  <hr />
  <h2 id="HIN7">Анализ логов через monlog</h2>
  <p id="zh5E"><code>monlog</code> — лёгкая утилита от Category Labs: парсит BFT-логи и выдаёт статус и подсказки. Анализирует примерно последние <strong>шестьдесят секунд</strong> логов.</p>
  <h3 id="fM64">Установка</h3>
  <p id="3T59">Сначала (от root) даём пользователю <code>monad</code> доступ к systemd journal:</p>
  <pre id="H1it">usermod -a -G systemd-journal monad</pre>
  <p id="jpKQ">Если вы уже залогинены под <code>monad</code>, нужно перелогиниться, либо:</p>
  <pre id="Wv3N">su - monad</pre>
  <p id="6eoz">Дальше (под пользователем <code>monad</code>) скачиваем <code>monlog</code>:</p>
  <pre id="dIXM">cd /home/monad
curl -sSL https://pub-b0d0d7272c994851b4c8af22a766f571.r2.dev/scripts/monlog -O
chmod u+x ./monlog</pre>
  <p id="33uC">Проверяем sha:</p>
  <pre id="ziLY">sha256sum ./monlog
# Ожидаемый пример:# f8a1066d8c093bbdb5f722f5b3d89904c17a76fa01fa1dd62e950f445e88327f  ./monlog</pre>
  <h3 id="jS3Y">Запуск</h3>
  <pre id="h273">./monlog</pre>
  <p id="HACB">Live-режим:</p>
  <pre id="Z1N3">watch -d &quot;./monlog&quot;</pre>
  <p id="yNM2">Последние десять строк собранных логов:</p>
  <pre id="8y7n">./monlog -r</pre>
  <p id="sx18">Показать secp ключи с маппингом на имена валидаторов:</p>
  <pre id="smla">./monlog -n</pre>
  <p id="hhmf">Без цветной подсветки:</p>
  <pre id="MNjF">./monlog --no-color</pre>
  <hr />
  <h2 id="j7wQ">Информация о консенсусе через ledger-tail</h2>
  <p id="HRMm"><code>monad-ledger-tail</code> читает консенсусные артефакты ledger и стримит JSON.</p>
  <p id="2MuX">Запуск сервиса:</p>
  <pre id="kADU">systemctl start monad-ledger-tail</pre>
  <p id="yKGp">Просмотр вывода:</p>
  <pre id="8UIs">journalctl -fu monad-ledger-tail</pre>
  <hr />
  <h2 id="N2UR">Статус ноды через monad-status</h2>
  <p id="EbUw">Установка:</p>
  <pre id="Gufy">curl -sSL https://bucket.monadinfra.com/scripts/monad-status.sh -o /usr/local/bin/monad-status
chmod +x /usr/local/bin/monad-status</pre>
  <p id="CknQ">Запуск:</p>
  <pre id="amzU">monad-status</pre>
  <p id="CHnq">Вывод будет примерно в таком формате:</p>
  <pre id="Brw4">### Monad Node Status

hostname: monad-node
date: Wed Nov 26 10:48:26 PM CET 2025
uptime: 0d 00h 41m 49s
version: 0.12.2
config:
  network: mainnet
  chain: monad_mainnet
  chainId: 143
  secpPublicKey: 03831b36b50261011d82f94d58f8aa0edfe058359e2c365c37cce678436b9eb371
  blsPublicKey: b9c1905e11e8395a789bece454ec24bed98b96cf9dc04c02c9512fb94900d3e0355383e542c44a0eb1be4d2780a1fb2f
  nodeSignature: 4f6e3e47af0e8ff3614e1eb53f9015ef4fc8593e60c13d52c2b458d05385b5f94cff8776ceb8b9401c3647148637d599622353d0631864a23b07f6d7fb55e84f00
  selfAddress: 65.109.145.172:8000
  recordSeqNum: 0
services:
  monad-bft: running
  monad-execution: running
  monad-rpc: running
  otelcol: running
  monad-cruft:
    activated: true
    previous: 48min ago
    next: 11min
peers:
  peersNumber: 1146
consensus:
  status: in-sync
  mode: live
  epoch: 764
  round: 38259075
  blockNumber: 38200041
  blockNumberFromExternal: 38200040
  blockDifference: 0
statesync:
  percentage: 100.0000%
  progress: 38193694
  target: 38193694
rpc:
  status: active
  clientVersion: Monad/0.12.2
  netVersion: 143
  blockNumber: 38200041</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@blockpro/fuel-may2025</guid><link>https://teletype.in/@blockpro/fuel-may2025?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro</link><comments>https://teletype.in/@blockpro/fuel-may2025?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro#comments</comments><dc:creator>blockpro</dc:creator><title>Сводка новостей по проекту Fuel за май 2025</title><pubDate>Mon, 12 May 2025 10:20:11 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/b7/e1/b7e10016-5755-4361-b2fc-77e1236f0b4b.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/9d/94/9d94fadd-bdf0-4d5f-b83a-07b4197b05d2.png"></img>Вывод: На неделе 5–11 мая 2025 года Fuel сделал значительный шаг вперед, представив технологию реального времени, которая устраняет барьеры скорости в блокчейнах. Демонстрации, AMA и прозрачная финансовая стратегия укрепляют доверие сообщества и подчеркивают амбиции проекта в экосистеме Ethereum.]]></description><content:encoded><![CDATA[
  <h3 id="icEY" data-align="center">Сводка новостей по проекту Fuel за неделю 5–11 мая 2025 года:</h3>
  <ol id="DEEe">
    <li id="nzLs"><strong>Прорыв в скорости транзакций:</strong> Fuel стал первым блокчейн-роллапом на Ethereum, достигшим подтверждения транзакций менее чем за 100 мс (51 мс в регионах, 6 мс при локальном размещении нод). Это делает Fuel первым в мире реальным роллапом реального времени на Ethereum. Технология Fuel, включающая FuelVM и модель параллельных транзакций на основе UTXO, обеспечивает высокую производительность без компромиссов в безопасности и децентрализации. Это открывает возможности для приложений реального времени: торговых платформ, игр, DeFi и других. Доступны демо-версии: <a href="http://testnet.swayfarm.xyz" target="_blank">тестнет (бесплатно)</a>, <a href="https://www.swayfarm.xyz/" target="_blank">мейннет (требуется ETH)</a> — swayfarm.xyz.</li>
    <li id="Q6TL"><strong>Демонстрация возможностей:</strong> В Twitter опубликован <a href="https://x.com/BuildOnFuel/status/1920003753832304821" target="_blank">пост с видео</a>, где показана игра с зайцем, в которой каждое действие сопровождается транзакцией, демонстрируя реальную скорость подтверждений. Пост подчеркивает: «Реальное время уже здесь, и оно выглядит лучше, чем когда-либо».</li>
    <li id="edWw"><strong>Технические детали:</strong> <a href="https://x.com/fuel_network/status/1920123636662391054" target="_blank">В другом посте</a> Fuel объясняет, как достигается скорость подтверждений быстрее, чем моргание глаза (~100 мс). Транзакции получают «мягкое» предподтверждение за 6–51 мс через P2P-сеть, а окончательное урегулирование происходит на Ethereum позже. Это устраняет задержки, характерные для других L2, и обеспечивает мгновенный отклик, как в web2. Технология включает параллельную обработку UTXO, регистровую виртуальную машину и P2P-предподтверждения, сохраняя безопасность L1.</li>
    <li id="687Q"><strong>AMA-сессия:</strong> Fuel анонсировал и провел сессию AMA в Twitter, посвященную реальным подтверждениям и их значению для пользователей. Сообщество могло предложить вопросы и темы для обсуждения. <a href="https://x.com/fuel_network/status/1920825885025841244" target="_blank">Запись АМА.</a></li>
    <li id="V353"><strong>Программа покупки токенов:</strong> Fuel Network Foundation сообщила об успешном выполнении половины программы покупки токенов FUEL на $1 млн, приобретя токены на $500 тыс. Все токены переведены на <a href="https://app.safe.global/home?safe=eth:0x709D13330221D06E55667BF81B8A09Ec2efE224D" target="_blank">публичный адрес в мейннете Ethereum</a>. Программа, начатая ранее, предусматривает еженедельные покупки на $250 тыс. в течение четырех недель для пополнения казначейства экосистемы.</li>
  </ol>
  <p id="qYeb"><strong>Вывод:</strong> На неделе 5–11 мая 2025 года Fuel сделал значительный шаг вперед, представив технологию реального времени, которая устраняет барьеры скорости в блокчейнах. Демонстрации, AMA и прозрачная финансовая стратегия укрепляют доверие сообщества и подчеркивают амбиции проекта в экосистеме Ethereum.</p>
  <h3 id="CpPK">Сводка новостей по проекту Fuel за неделю 12–18 мая 2025 года:</h3>
  <ol id="9WG2">
    <li id="ifk2"><strong>Децентрализованный секвенсор Fuel. </strong>Fuel в сотрудничестве с Simply Staking представил децентрализованный секвенсор, устраняющий проблему централизации, присущую большинству роллапов. В отличие от традиционных решений, где один секвенсор управляет обработкой транзакций, Fuel распределяет эту функцию между несколькими валидаторами. Это обеспечивает устойчивость сети (нет единой точки отказа), минимизирует риски цензуры, снижает зависимость от одного оператора и предотвращает манипуляции с порядком транзакций для извлечения MEV.<br />Основные особенности:</li>
    <ul id="f5x7">
      <li id="35Rg">Модульная архитектура на базе Cosmos SDK с мостом между Ethereum и Fuel.</li>
      <li id="qslu">Минимальные требования к оборудованию валидаторов (4 ядра CPU, 8 ГБ RAM, 200 ГБ диск).</li>
      <li id="SKKC">Текущая система FuelStreamX использует мультиподпись для расчетов с Ethereum, в будущем планируется переход на решения с нулевым разглашением.</li>
      <li id="hcQR">Прозрачная обработка транзакций с приоритетом событий Ethereum и консенсусом между валидаторами.<br /><a href="https://x.com/fuel_network/status/1921917989844095345" target="_blank">Подробности</a></li>
    </ul>
    <li id="ATnd"><strong>Инструмент forc migrate для Sway.</strong> Команда Sway, языка программирования для Fuel, представила инструмент forc migrate, упрощающий миграцию проектов на новые версии с учетом ломающих изменений. Инструмент автоматизирует процесс, избавляя разработчиков от ручного анализа обновлений.<br />Основные функции:</li>
    <ul id="lE5q">
      <li id="vYXo">forc migrate show: отображает предстоящие ломающие изменения и шаги для миграции.</li>
      <li id="f85a">forc migrate check: проводит проверку проекта, оценивает объем изменений и предоставляет инструкции.</li>
      <li id="FhMC">forc migrate run: выполняет миграцию с пошаговым обзором изменений и опцией обратной совместимости.</li>
      <li id="DWMB">Интеграция с git для проверки и финализации изменений.<br />Документация и видео-туториал доступны: <a href="https://docs.fuel.network/docs/forc/plugins/forc_migrate/" target="_blank">docs.fuel.network</a>, <a href="https://www.youtube.com/watch?v=VL4DO9wPgFQ" target="_blank">YouTube</a>.</li>
    </ul>
    <li id="wdDb"><strong>Fuel на Dune. </strong>Fuel запустил интеграцию с аналитической платформой Dune, предоставляющей доступ к метрикам сети в реальном времени. Пользователи могут анализировать:</li>
    <ul id="7ORw">
      <li id="jAu2">Объемы транзакций.</li>
      <li id="Y1IG">Метрики производства блоков.</li>
      <li id="Iqrj">Паттерны использования газа.</li>
      <li id="uHNJ">Развертывание смарт-контрактов.</li>
      <li id="A1nn">Тренды сетевой активности.<br />Fuel также опубликовал руководство по созданию дашбордов на Dune, включая визуализацию объемов транзакций через SQL-запросы и настройку публичных дашбордов. <a href="https://x.com/fuel_network/status/1923036917588951347" target="_blank">Подробности</a></li>
    </ul>
    <li id="wt5y"><strong>Программа выкупа токенов FUEL. </strong>Fuel Network Foundation успешно выполнила 75% программы выкупа токенов FUEL на сумму $1 млн, приобретя токены на $750 тыс. Все токены переведены на публичный адрес в сети Ethereum mainnet. Подробности: <a href="https://forum.fuel.network/t/fuel-network-foundation-1m-fuel-purchase-program/9073" target="_blank">forum.fuel.network</a>.</li>
    <li id="Jblw"><strong>Анонсы экосистемы от CEO Fuel. </strong>Генеральный директор Fuel поделился планами развития экосистемы, включая:</li>
    <ul id="WGvK">
      <li id="RwE8">Запуск TheRig (stFUEL).</li>
      <li id="ogPX">Перезапуск Ruscet (аналог GMX v2+).</li>
      <li id="ZF3z">Ребрендинг и перезапуск Mira.</li>
      <li id="Sri2">NFT-маркетплейс и глобальный on/off-рамп от Bako.</li>
      <li id="KNMY">Программа поощрения 1Delta Points.</li>
      <li id="mzxS">Обновление SwaySwap 2.0.</li>
      <li id="fI2X">Быстрый мост Base  Fuel.</li>
      <li id="Hm6S">Интеграция с Hyperlane и поддержка кошелька ZAP Ethereum.</li>
      <li id="UNib">Оракл реального времени Stork.</li>
      <li id="9TSY">Стейблкоин M0 с поддержкой казначейства.</li>
      <li id="SdqW">Запуск ReactorDEX.</li>
      <li id="cK55">Приватный альфа-тест O2 (спотовая торговля).</li>
      <li id="BqRi">Два нераскрытых партнерства.</li>
    </ul>
  </ol>
  <p id="2U4n">Итог: На неделе 12–18 мая Fuel продемонстрировал значительный прогресс в развитии децентрализованной инфраструктуры, инструментов для разработчиков и аналитики, а также анонсировал амбициозные планы по расширению экосистемы.</p>
  <h3 id="xniO">Сводка новостей по проекту Fuel за неделю 19–25 мая 2025 года:</h3>
  <p id="j4M2"><strong>1. Обновление Fuel Ignition Mainnet (v0.41.9)</strong></p>
  <p id="zxOw">14 мая 2025 года сеть Fuel Ignition обновилась до версии fuel-core v0.41.9.</p>
  <ul id="kUVU">
    <li id="VMwc"><strong>Новые функции:</strong></li>
    <ul id="pFcV">
      <li id="Facs">Новый формат P2P-протокола для улучшенного управления ошибками.</li>
    </ul>
  </ul>
  <blockquote id="lKft">Узлы (компьютеры, поддерживающие сеть Fuel) теперь обмениваются данными по новому формату. Это как если бы они начали говорить на более понятном языке, чтобы быстрее находить и исправлять ошибки. Это делает сеть стабильнее.</blockquote>
  <ul id="I0hh">
    <ul id="8kml">
      <li id="q4pJ">Политика истечения срока действия транзакций.</li>
    </ul>
  </ul>
  <blockquote id="nztc">Теперь у транзакций есть время действия. Если транзакция не успевает обработаться (например, из-за перегрузки сети), она автоматически отменяется. Это предотвращает зависание старых транзакций и экономит ресурсы.</blockquote>
  <ul id="7c0z">
    <ul id="olKU">
      <li id="I03y">Поддержка ZK-опкодов (ecop, epar) для проверки доказательств Groth16, Plonk и FFlonk.</li>
    </ul>
  </ul>
  <blockquote id="Bvs8">Добавили возможность использовать специальные команды (ZK-опкоды), которые позволяют проверять сложные математические доказательства (Groth16, Plonk, FFlonk) прямо в сети. Это как добавить в калькулятор функцию для решения суперсложных задач. Такие доказательства нужны для приватных транзакций или сложных смарт-контрактов, чтобы они были безопасными и быстрыми.</blockquote>
  <ul id="0NyQ">
    <ul id="tKz8">
      <li id="Tt5f">Динамическое ценообразование газа на основе затрат Ethereum DA.</li>
    </ul>
  </ul>
  <blockquote id="hJwH">Комиссии за транзакции теперь зависят от того, сколько стоит отправка данных в сеть Ethereum (это называется DA — Data Availability). Если в Ethereum комиссии растут, в Fuel они тоже могут немного меняться, чтобы сеть оставалась прибыльной и работала без сбоев.</blockquote>
  <ul id="yaqe">
    <ul id="CiY2">
      <li id="KfRm">Поддержка портативного резервного копирования и восстановления базы данных.</li>
    </ul>
    <li id="8VyI"><strong>Исправления:</strong></li>
    <ul id="JSxU">
      <li id="Bbcn">Оптимизация DA-релятора для снижения избыточных запросов.</li>
    </ul>
  </ul>
  <blockquote id="XAp9">Раньше узлы Fuel слишком часто &quot;спрашивали&quot; данные у Ethereum, что нагружало систему. Теперь таких запросов стало меньше, и сеть работает эффективнее, как будто вы убрали ненужные звонки из расписания.</blockquote>
  <ul id="x0tg">
    <ul id="Yxwg">
      <li id="z9qJ">Улучшение производительности GraphQL и динамического ценообразования газа.</li>
    </ul>
  </ul>
  <blockquote id="22k1">GraphQL — это инструмент, который помогает разработчикам получать данные из сети. Его сделали быстрее, а заодно улучшили систему расчета комиссий за газ, чтобы она работала точнее и не тормозила.</blockquote>
  <ul id="2oX0">
    <ul id="3fwR">
      <li id="nKGl">Оптимизация доступа к данным с использованием SeqLocks.</li>
    </ul>
  </ul>
  <blockquote id="9NVA">Данные в сети теперь обрабатываются быстрее благодаря технологии SeqLocks. Это как если бы в библиотеке книги начали выдавать сразу нескольким людям без очередей.</blockquote>
  <ul id="YTrU">
    <ul id="igaT">
      <li id="QDSt">Исправление проблем с обратной совместимостью и сжатием DA.</li>
    </ul>
  </ul>
  <blockquote id="JPFi">Устранили проблемы, из-за которых новые обновления могли конфликтовать со старыми версиями сети, и улучшили сжатие данных для связи с Ethereum. Это как починить программу, чтобы она работала на всех версиях Windows без глюков.</blockquote>
  <ul id="au7Q">
    <ul id="iAGj">
      <li id="Djan">Улучшение мониторинга и метрик системы.</li>
    </ul>
  </ul>
  <blockquote id="dCHd">Добавили новые инструменты для отслеживания работы сети. Это как поставить датчики на машину, чтобы сразу видеть, если что-то работает не так, и быстрее это исправить.</blockquote>
  <p id="jTbE"><strong>2. Программа выкупа токенов FUEL</strong></p>
  <p id="rDQX">15 мая 2025 года Fuel Network Foundation объявила о продлении программы выкупа токенов FUEL. <strong>Детали:</strong></p>
  <ul id="4NqZ">
    <ul id="smvW">
      <li id="WdSu">Завершена программа выкупа на $1 млн (100% токенов переведены на публичный адрес в Ethereum).</li>
      <li id="kTSq">С 19 мая начнется новый этап: выкуп на $250 тыс. еженедельно в течение 3 недель.</li>
      <li id="ocN6">Оценка результатов после завершения периода.</li>
    </ul>
  </ul>
  <p id="3IVt">Подробности: <a href="https://forum.fuel.network/t/fuel-network-foundation-buyback-program-extension/9219" target="_blank">Форум Fuel</a>.</p>
  <p id="9wdN"><strong>3. Нативные активы Fuel</strong></p>
  <p id="dJKR">21 мая 2025 года Fuel подчеркнул преимущества нативных активов в своей модели UTXO.</p>
  <ul id="tz7R">
    <li id="sy6R">Особенности:</li>
    <ul id="Y6eG">
      <li id="stQA">В отличие от Ethereum, где для каждого токена требуется отдельный контракт и одобрение, Fuel обрабатывает все активы как нативные, что упрощает операции.</li>
      <li id="pFFS">Пример: перевод 1 ETH, 250 USDC и 5000 игровых монет в одной транзакции с одной подписью и одной комиссией.</li>
      <li id="v73v">Атомарные транзакции: либо все активы передаются, либо ни один.</li>
      <li id="ushu">Отсутствие шага одобрения (approve) устраняет уязвимости, связанные с вредоносными контрактами.</li>
    </ul>
    <li id="ihcP">Преимущества:</li>
    <ul id="uJ1U">
      <li id="btfF">Меньше комиссий и кликов.</li>
      <li id="ghAM">Простота кода и безопасность.</li>
      <li id="ExeR">Возможность массовых операций (например, выплата зарплаты в USDC и акциях в одной транзакции).</li>
    </ul>
  </ul>
  <p id="TLEv"><strong>4. FuelVM: Оптимизация производительности</strong></p>
  <blockquote id="VQKj">Что такое FuelVM и что нового?<br />FuelVM — это сердце сети Fuel, которое обрабатывает транзакции и программы. Оно оптимизировано, чтобы сеть работала быстро, не перегружала компьютеры и оставалась безопасной.</blockquote>
  <p id="tMFE">22–23 мая 2025 года Fuel рассказал о возможностях FuelVM, оптимизированной для роллапов Ethereum.</p>
  <ul id="7jQN">
    <li id="skrS">Ключевые особенности:</li>
    <ul id="DsbM">
      <li id="ha4d">Использование регистровой модели (как в ARM и RISC-V) для повышения эффективности по сравнению с EVM.</li>
    </ul>
  </ul>
  <blockquote id="NVDx">FuelVM использует подход, похожий на современные процессоры в телефонах (ARM, RISC-V). Вместо того чтобы &quot;складывать&quot; данные в стопку и доставать их по очереди (как в Ethereum), FuelVM сразу знает, где взять и куда положить данные. Это как если вместо поиска книги в куче на столе вы сразу знаете, на какой полке она лежит. Это ускоряет работу.</blockquote>
  <ul id="CVKh">
    <ul id="y17B">
      <li id="5Aic">Модель UTXO минимизирует объем хранимых данных: использованные UTXO удаляются, новые создаются с уникальным 32-байтным ID.</li>
    </ul>
  </ul>
  <blockquote id="sp3p">Fuel использует подход UTXO (как в Bitcoin). Это значит, что каждая транзакция создает &quot;монетку&quot; (UTXO) с уникальным кодом (32-байтным ID). Когда вы тратите эту &quot;монетку&quot;, она исчезает, а появляются новые. Это уменьшает объем данных, которые нужно хранить, в отличие от Ethereum, где данные накапливаются и требуют сотни гигабайт памяти.</blockquote>
  <ul id="AgLW">
    <ul id="7Y5I">
      <li id="bDlk">Список доступа (access list) позволяет выполнять непересекающиеся транзакции параллельно, достигая 21 тыс. TPS на ядро M4 CPU.</li>
    </ul>
  </ul>
  <blockquote id="YD8f">FuelVM использует &quot;список доступа&quot; — он показывает, какие данные затронет каждая транзакция. Если транзакции не мешают друг другу, их можно обрабатывать одновременно. Это как готовить несколько блюд на разных конфорках, а не по очереди. Благодаря этому FuelVM обрабатывает до 21 тысячи транзакций в секунду (TPS) на одном процессоре M4 (как в современных MacBook).</blockquote>
  <ul id="FBSv">
    <ul id="tUe0">
      <li id="V4gp">Предикаты и скрипты не оставляют постоянного следа, а большие данные хранятся как NFT-подобные пакеты, снижая нагрузку на узлы.</li>
      <li id="0tpo">Избежание &quot;state bloat&quot; (роста данных до 400–600 ГБ, как в Ethereum).</li>
    </ul>
  </ul>
  <blockquote id="xJyF">В Fuel программы (предикаты и скрипты) работают так, что не оставляют после себя лишних данных. Например, большие данные хранятся как компактные &quot;пакеты&quot; (похожие на NFT), которые распаковываются только при необходимости. Это как хранить вещи в сжатом виде и доставать только то, что нужно. Это помогает избежать &quot;раздувания данных&quot; (state bloat), когда сеть, как Ethereum, хранит 400–600 ГБ ненужной информации.</blockquote>
  <ul id="Uhoi">
    <li id="R7Jp">Примеры приложений:</li>
    <ul id="CHGQ">
      <li id="uPOh">@bakosafe: мультисиг без обновляемых контрактов, минимизирующий риски.</li>
    </ul>
    <ul id="Acve">
      <li id="8Pxv">@v12trade: книга ордеров на основе UTXO с параллельной обработкой без задержек.</li>
    </ul>
  </ul>
  <h3 id="HWfp">Сводка новостей по проекту Fuel за неделю 26–01 мая 2025 года:</h3>
  <p id="OEZe"><strong>1. 26.05 – Sway Community Call<br /></strong>Проведен открытый созвон сообщества Sway. Запись доступна по ссылке: <a href="/i/broadcasts/1YqxooaLmmExv">x.com/i/broadcasts/1YqxooaLmmExv</a>.</p>
  <p id="R3Ks"><strong>2. 26.05 – Проблема роста состояния блокчейна<br /></strong>В <a href="https://x.com/fuel_network/status/1917564810209771991" target="_blank">посте на X Fuel</a> объясняет проблему &quot;state bloat&quot; (роста состояния блокчейна), который увеличивает затраты на хранение и замедляет операции. Fuel решает это с помощью:</p>
  <ul id="u4Cj">
    <li id="Wpi6">Модели UTXO, исключающей необходимость в смарт-контрактах для каждого актива.</li>
    <li id="1Kck">Предикатов, обеспечивающих сложные условия расходования без сохранения состояния.</li>
    <li id="hX2r">Нативной поддержки множества активов.<br />Это минимизирует рост состояния, ускоряет транзакции и снижает затраты. Подробности о модели UTXO: <a href="https://docs.fuel.network/docs/fuels-ts/the-utxo-model/" target="_blank">docs.fuel.network/docs/fuels-ts/the-utxo-model/</a>.</li>
  </ul>
  <p id="VtYp"><strong>3. 28.05 – Интеграция с EigenDA</strong><br />Fuel Ignition переходит с Ethereum на EigenDA для обеспечения доступности данных (DA), что значительно увеличивает пропускную способность (до 150k TPS) и снижает затраты.<br />Преимущества:</p>
  <ul id="JGVZ">
    <li id="cBYc">Параллельная обработка транзакций с использованием всех ядер процессора.</li>
    <li id="XAf5">Минимизация роста состояния благодаря FuelVM и модели UTXO.</li>
    <li id="VaaM">Поддержка высокопроизводительных приложений (DeFi, игры, вычисления).<br />EigenDA, работающая на Ethereum, обеспечивает безопасность и масштабируемость. Разработчикам предлагается использовать язык Sway для создания приложений. </li>
  </ul>
  <p id="FI1y">Подробности: <a href="https://docs.fuel.network/docs/fuel-book/" target="_blank">docs.fuel.network/docs/fuel-book/</a>.<br /><a href="https://x.com/eigenlayer/status/1927737280678027355" target="_blank">Пост EigenLayer</a> <br />Видео (44 мин): <a href="/i/broadcasts/1YqxooLzWbQxv">x.com/i/broadcasts/1YqxooLzWbQxv</a>.</p>
  <p id="Z29Y"><strong>4. 29.05 – Решение проблемы дорогих DA<br /></strong>Fuel объясняет, почему доступность данных (DA) повышает комиссии в загруженные периоды. Интеграция с EigenDA решает проблему:</p>
  <ul id="UEHd">
    <li id="A2Q3">DA на EigenDA дешевле, чем на Ethereum, благодаря использованию уже застейканных ETH.</li>
    <li id="YISL">Пропускная способность EigenDA: 15 МБ/с (mainnet), до 100 МБ/с (планы).</li>
    <li id="b52M">Стабильные комиссии и высокая скорость транзакций.<br />Fuel и другие проекты (Mantle, Polygon CDK) используют модульный подход, разделяя выполнение и DA для оптимизации. <a href="https://x.com/fuel_network/status/1927715025688711335" target="_blank">Подробности</a></li>
  </ul>
  <p id="S3bZ"><strong>Ключевые выводы:</strong> Fuel активно развивает архитектуру, минимизирующую рост состояния и повышающую производительность. Переход на EigenDA и использование FuelVM с UTXO-моделью позволяют достичь высокой пропускной способности, низких комиссий и поддерживать новые высокопроизводительные приложения.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@blockpro/fuel-staking</guid><link>https://teletype.in/@blockpro/fuel-staking?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro</link><comments>https://teletype.in/@blockpro/fuel-staking?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro#comments</comments><dc:creator>blockpro</dc:creator><title>Гайд по стейкингу токенов Fuel через сеть Ethereum</title><pubDate>Thu, 13 Mar 2025 15:57:46 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/7e/5c/7e5ceed5-f059-4f37-b4d6-5f606c96584c.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/54/19/54199ece-21d5-4596-b7be-cea221d0fe03.png"></img>Перед тем как начать стейкинг, необходимо приобрести токены Fuel на одной из бирж и вывести их в сеть Ethereum. Ниже представлена информация о комиссиях за вывод с разных бирж:]]></description><content:encoded><![CDATA[
  <figure id="VVN3" class="m_column">
    <img src="https://img2.teletype.in/files/54/19/54199ece-21d5-4596-b7be-cea221d0fe03.png" width="1920" />
  </figure>
  <h3 id="hWJI">1. Покупка и вывод токенов Fuel</h3>
  <p id="Jq1P">Перед тем как начать стейкинг, необходимо приобрести токены Fuel на одной из бирж и вывести их в сеть Ethereum. Ниже представлена информация о комиссиях за вывод с разных бирж:</p>
  <ul id="m4bn">
    <li id="jxwv"><strong>Bybit</strong> - 250 FUEL (2,62 USD)</li>
    <li id="ZAct"><strong>MEXC</strong> - 67 FUEL (0,70 USD)</li>
    <li id="ZCA2"><strong>Bitget</strong> - 280 FUEL (2,96 USD)</li>
    <li id="1rDs"><strong>KuCoin</strong> - 417 FUEL (4,38 USD)</li>
    <li id="dWMb"><strong>Hotcoin</strong> - 122 FUEL (1,25 USD)</li>
  </ul>
  <p id="Czc0">В данном примере будет использоваться биржа MEXC, так как у неё наименьшая комиссия за вывод.</p>
  <h3 id="yX1A">2. Подготовка к стейкингу</h3>
  <ol id="2KoF">
    <li id="nE9j">Выведите токены Fuel в сеть Ethereum на кошелёк <strong>Metamask</strong>.</li>
    <li id="q7dU">Убедитесь, что у вас есть небольшое количество ETH в основной сети Ethereum для оплаты комиссий за транзакции.</li>
    <li id="p0j7">Перейдите по ссылке: <a href="https://app.fuel.network/staking/on-ethereum" target="_blank">https://app.fuel.network/staking/on-ethereum</a> и подключите ваш кошелёк Metamask.</li>
  </ol>
  <figure id="xl4u" class="m_column">
    <img src="https://img3.teletype.in/files/ae/51/ae51c00d-ed1e-401b-a40e-799d9e1028a9.jpeg" width="1280" />
  </figure>
  <h3 id="l80o">3. Процесс стейкинга</h3>
  <ol id="Q7Xh">
    <li id="Lbf9">Нажмите <strong>Stake on Ethereum Network</strong>.</li>
    <li id="gnhR">В списке валидаторов найдите <strong>BlockPro</strong> и нажмите <strong>Stake</strong>.</li>
    <li id="SHI5">Укажите количество токенов Fuel для стейкинга и нажмите <strong>Approve</strong>.</li>
    <li id="KMtI">После подтверждения нажмите <strong>Next</strong> и затем <strong>Confirm delegation</strong>.</li>
    <li id="H2Xd">Подтвердите транзакцию в Metamask и ожидайте завершения (примерно 30 минут).</li>
  </ol>
  <figure id="nw7v" class="m_column">
    <img src="https://img3.teletype.in/files/6b/54/6b5421cc-0321-4509-8746-b46c75b07a34.png" width="1494" />
  </figure>
  <p id="tLVU">Поздравляем! Ваши токены успешно застейканы.</p>
  <h3 id="kVC7">4. Итоговые комиссии</h3>
  <p id="IpTM">Общие затраты на комиссии составили:</p>
  <ul id="IcQ6">
    <li id="J2a0">Комиссия за вывод с MEXC: <strong>67 FUEL (0,70 USD)</strong></li>
    <li id="sd8k">Комиссия за подтверждение транзакций в ETH:</li>
    <ul id="9cjU">
      <li id="R9Z6"><strong>Gas Fee 0.0002 ETH (~0.28 USD)</strong></li>
      <li id="i9Yt"><strong>Gas Fee 0.0001 ETH (~0.13 USD)</strong></li>
    </ul>
  </ul>
  <p id="7dcl"><strong>Итого затраты на комиссии составили ~3 USD.</strong></p>
  <figure id="XQr1" class="m_column">
    <img src="https://img1.teletype.in/files/01/61/0161cfe8-332e-4cae-8530-32a4e90805f9.png" width="1042" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@blockpro/fuel-sequencer</guid><link>https://teletype.in/@blockpro/fuel-sequencer?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro</link><comments>https://teletype.in/@blockpro/fuel-sequencer?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=blockpro#comments</comments><dc:creator>blockpro</dc:creator><title>Гайд по установке ноды « Fuel Sequencer»</title><pubDate>Sat, 01 Mar 2025 18:05:14 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/43/88/4388203f-65bd-4bc6-a697-d005b58ef866.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/e0/86/e0862f30-7ac6-4c4d-bf7f-15fd1cbe08d3.png"></img>Fuel — это операционная система, созданная специально для Ethereum Rollups. Она помогает ускорять и улучшать работу блокчейнов без компромиссов.]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="95ua" data-align="center">Что такое Fuel?</h2>
  </section>
  <p id="bi95">Fuel — это операционная система, созданная специально для <strong>Ethereum Rollups</strong>. Она помогает ускорять и улучшать работу блокчейнов без компромиссов.</p>
  <h3 id="HYsE" data-align="center"><strong>Как это работает?</strong></h3>
  <p id="foDA"><strong>FuelVM</strong><br />FuelVM — это виртуальная машина, которая берет лучшие идеи из экосистемы Ethereum. Она использует улучшения, которые невозможно было внедрить в <strong>Ethereum Virtual Machine (EVM)</strong> из-за обратной совместимости.</p>
  <p id="MeW4">Главное преимущество FuelVM — <strong>параллельное выполнение транзакций</strong>. Это значит, что блокчейн обрабатывает данные быстрее, используя сразу несколько ядер процессора, а не одно, как большинство блокчейнов. В результате FuelVM обрабатывает <strong>больше транзакций и выполняет сложные вычисления быстрее</strong>.</p>
  <h3 id="HPOz" data-align="center"><strong>Язык программирования Sway</strong></h3>
  <p id="fkXa">Fuel разработал свой язык программирования <strong>Sway</strong> — он похож на <strong>Rust</strong>, но создан специально для смарт-контрактов.</p>
  <p id="VeIB">Sway сочетает в себе:</p>
  <ul id="jcWA">
    <li id="QDiw"><strong>Безопасность и строгий контроль ошибок</strong> (как в Rust)</li>
    <li id="WZmT"><strong>Удобство написания смарт-контрактов</strong> (как в Solidity)</li>
    <li id="hy1m"><strong>Оптимизированную работу с блокчейном</strong></li>
  </ul>
  <p id="gxXj">Ниже приведена краткая информация, которая поможет вам начать работу с нодой для блокчейна Fuel Sequencer.</p>
  <p id="IVOW">Для получения более подробной информации обратитесь к <a href="https://github.com/FuelLabs/fuel-sequencer-deployments/" target="_blank">репозиторию установки.</a></p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="h7l3" data-align="center">Системные требования</h2>
  </section>
  <figure id="SZyL" class="m_original">
    <img src="https://img1.teletype.in/files/4e/aa/4eaa47e5-0ccb-4671-a9e7-fb7e9b360ef6.png" width="677" />
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="BqJo" data-align="center"><strong>Настройка портов</strong></h2>
  </section>
  <p id="IHOM">По умолчанию для работы Fuel нужны <strong>следующие порты</strong>:</p>
  <ul id="seWN">
    <li id="xoe2"><strong>Sequencer</strong>: 26656, 26657, 9090, 1317</li>
    <li id="dM5L"><strong>Sidecar</strong>: 8080</li>
    <li id="kZlo"><strong>Ethereum</strong>: 8545, 8546</li>
  </ul>
  <p id="7We4">Эти модули <strong>обмениваются данными между собой</strong>, поэтому если ты <strong>изменишь порты</strong>, то нужно обновить настройки в других местах:</p>
  <p id="WE7A">🔹 <strong>Если изменил порты у Sequencer</strong> → измени настройки в параметрах запуска Sidecar.<br />🔹 <strong>Если изменил порт у Sidecar</strong> → измени настройки в конфигурации Sequencer.<br />🔹 <strong>Если изменил порты Ethereum</strong> → обнови параметры запуска Sidecar.</p>
  <p id="FYLl"><strong>Важно:</strong> если этого не сделать, модули просто не смогут соединиться друг с другом.</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="XhZy" data-align="center">Гайд по установке ноды</h2>
  </section>
  <h3 id="13A2"><strong>1. Установите Go (GoLang)</strong></h3>
  <p id="Ntyt">Для работы Fuel вам нужно установить Go (версия 1.21 или выше).</p>
  <p id="vbDY"><strong>Шаги:</strong></p>
  <ul id="s3eA">
    <li id="q726">Установите нужную версию Go:</li>
  </ul>
  <pre id="gKKe">ver=&quot;1.23.1&quot;
wget &quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&quot;</pre>
  <ul id="lPiT">
    <li id="cMT1">Удалите старую версию (если есть) и установите новую:</li>
  </ul>
  <pre id="10Pn">sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf &quot;go$ver.linux-amd64.tar.gz&quot;
rm &quot;go$ver.linux-amd64.tar.gz&quot;</pre>
  <ul id="9VII">
    <li id="Seax">Добавьте Go в системный PATH:</li>
  </ul>
  <pre id="3cxk">echo &quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&quot; &gt;&gt; $HOME/.bash_profile
source $HOME/.bash_profile</pre>
  <ul id="jban">
    <li id="m8kY">Проверьте версию Go:</li>
  </ul>
  <pre id="MflE">go version</pre>
  <h3 id="n5uP"><strong>2. Запустите Ethereum Full Node</strong></h3>
  <p id="lD2R">Для оптимальной работы Sequencer, вам нужно запустить собственную Ethereum Mainnet ноду. Использование сторонних сервисов для Ethereum не рекомендуется.</p>
  <p id="5SMO"><strong>Настройки Ethereum ноды:</strong></p>
  <ul id="TUAd">
    <li id="8x4c"><code>--syncmode=snap</code></li>
    <li id="gaYx"><code>--gcmode=full</code></li>
  </ul>
  <p id="HiXS"><strong>Рекомендуемая инструкция для установки Ethereum ноды:</strong></p>
  <ul id="JogV">
    <li id="TkMr"><a href="https://ethdocker.com/Usage/QuickStart/" target="_blank">Инструкция по установке Ethereum ноды</a></li>
  </ul>
  <h3 id="l4PR"><strong>3. Скачайте и настройте Sequencer</strong></h3>
  <p id="vJoI">Теперь скачиваем бинарный файл и начальный файл конфигурации для Sequencer.</p>
  <ul id="wHa0">
    <li id="TmCl">Скачайте бинарник для Sequencer:</li>
  </ul>
  <pre id="vQxu">cd $HOME
wget -O fuelsequencerd https://github.com/FuelLabs/fuel-sequencer-deployments/releases/download/seq-mainnet-1.2-improved-sidecar/fuelsequencerd-seq-mainnet-1.2-improved-sidecar-linux-amd64
chmod +x fuelsequencerd
mv ~/fuelsequencerd ~/go/bin/</pre>
  <ul id="8dHi">
    <li id="fgFx">Проверьте версию бинарника:</li>
  </ul>
  <pre id="9Uo8">fuelsequencerd version

#вывод:
seq-mainnet-1.2-improved-sidecar</pre>
  <ul id="CNyU">
    <li id="HfMu">Инициализируйте директорию для ноды и задайте имя:</li>
  </ul>
  <pre id="KjbI">fuelsequencerd init &lt;node-name&gt; --chain-id seq-mainnet-1</pre>
  <ul id="ZGTD">
    <li id="HzTF">Скачайте файл <code>genesis.json</code> в директорию конфигурации:</li>
  </ul>
  <pre id="f80c">wget -O $HOME/.fuelsequencer/config/genesis.json https://files.block-pro.net/mainnet/fuel/genesis.json</pre>
  <ul id="esd6">
    <li id="h0VG">Скачайте файл <code>addrbook.json</code> в директорию конфигурации:</li>
  </ul>
  <pre id="OpnK">wget -O $HOME/.fuelsequencer/config/addrbook.json  https://files.block-pro.net/mainnet/fuel/addrbook.json</pre>
  <h3 id="zMgX">4. Настройка конфигурации (app.toml)</h3>
  <p id="vRbt">Откройте файл конфигурации <code>app.toml</code> в директории <code>~/.fuelsequencer/config/</code> и установите параметры:</p>
  <ul id="rMwa">
    <li id="o224">Установите минимальную цену газа:</li>
  </ul>
  <pre id="J4bF">minimum-gas-prices = &quot;10fuel&quot;</pre>
  <ul id="p7rG">
    <li id="zudn">В разделе <code>[sidecar]</code> убедитесь, что:</li>
  </ul>
  <pre id="1z3g">enabled = true
address — адрес, где будет работать Sidecar (address = &quot;localhost:8080&quot;)</pre>
  <h3 id="7XoF">5. Настройка конфигурации (config.toml)</h3>
  <p id="MClG">Откройте файл <code>config.toml</code> и выполните следующие настройки:</p>
  <ul id="RaBr">
    <li id="C6sM">В разделе <code>[p2p]</code> установите:</li>
  </ul>
  <pre id="5fvy">persistent_peers = &quot;c92a832384b2b676c5b0f317acfb6c0d49846e80@fuel-mainnet-peer.block-pro.net:60756,b3052ca64950786499d56ade68593a555e383ad4@fuel-mainnet-peer.itrocket.net:63656,d48507eb9c8fc6cab278da8b64548496134562dc@141.95.11.200:26656,9584099276b4baf2d6fdf07d4eb9dec40564bba5@185.107.68.171:26656,bbb5f1939278b75efbc213067cc8226591353fc4@65.108.133.32:26656,5d75cca90b178f2b782ce57b0067c0ec8512354c@65.109.70.89:41656,0d7efe1a993e548acccba23358de50a87f5ac841@176.103.222.150:26656,445952b74b508ba5915f3c2f0a8d169a409f174b@57.129.64.92:26656,9bc530d3715a57b4e4f987e75343a67a747b4626@95.217.204.58:29656,9eb2801d1dde4b9ff0be3427092cc2548e973d71@176.103.222.162:26656,40369a07f904d01262141353b5b8fcc8fae2b9da@65.109.53.189:26656,9ad948216644797315b9dfd4851abc2a87235f29@37.27.129.24:14656&quot;</pre>
  <ul id="M3VG">
    <li id="xVLg">В разделе <code>[mempool]</code> установите:</li>
  </ul>
  <pre id="3JSh">max_tx_bytes = 1258291
max_txs_bytes = 23068672</pre>
  <h3 id="Vs99">6. Настройка сжатия (pruning)</h3>
  <p id="u2in">Для эффективного управления хранилищем данных, настройте параметры сжатия:</p>
  <pre id="VEG1">sed -i -e &quot;s/^pruning *=.*/pruning = \&quot;custom\&quot;/&quot; $HOME/.fuelsequencer/config/app.toml 
sed -i -e &quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&quot;100\&quot;/&quot; $HOME/.fuelsequencer/config/app.toml
sed -i -e &quot;s/^pruning-interval *=.*/pruning-interval = \&quot;19\&quot;/&quot; $HOME/.fuelsequencer/config/app.toml</pre>
  <h3 id="WnXe">7. Запуск Sequencer через systemd</h3>
  <p id="yIRi">Чтобы запускать Sequencer как фоновый сервис, используйте <code>systemd</code>.</p>
  <ul id="JVbm">
    <li id="zAfW">Создайте сервисный файл для Sequencer:</li>
  </ul>
  <pre id="naCH">sudo tee /etc/systemd/system/fuelsequencerd.service &gt; /dev/null &lt;&lt;EOF
[Unit]
Description=Sequencer Node
After=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/.fuelsequencer
ExecStart=$(which fuelsequencerd) start --home $HOME/.fuelsequencer
Restart=on-failure
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF</pre>
  <ul id="feiP">
    <li id="tghD">Перезагрузите <code>systemd</code> и запустите сервис:</li>
  </ul>
  <pre id="k1XM">sudo systemctl daemon-reload
sudo systemctl enable fuelsequencerd
sudo systemctl restart fuelsequencerd &amp;&amp; sudo journalctl -u fuelsequencerd -fo cat</pre>
  <h3 id="FiBJ">8. Запуск Sidecar</h3>
  <p id="bpk8">Для запуска Sidecar в фоне используйте сервисную настройку через <code>systemd</code>.</p>
  <ul id="LhK7">
    <li id="bpaI">Создайте сервисный файл для Sidecar:</li>
  </ul>
  <pre id="SHL9">sudo tee /etc/systemd/system/sidecard.service &gt; /dev/null &lt;&lt;EOF
[Unit]
Description=Sidecar
After=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/.fuelsequencer
ExecStart=$HOME/go/bin/fuelsequencerd start-sidecar \
    --host &quot;0.0.0.0&quot; \
    --sequencer_grpc_url &quot;127.0.0.1:9090&quot; \
    --eth_ws_url &quot;ws://127.0.0.1:8546&quot; \
    --eth_rpc_url &quot;http://127.0.0.1:8545&quot; \
    --eth_contract_address &quot;0xBa0e6bF94580D49B5Aaaa54279198D424B23eCC3&quot;
Restart=on-failure
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF</pre>
  <p id="IXOV">Перезагрузите <code>systemd</code> и запустите сервис:</p>
  <pre id="Ub1b">sudo systemctl daemon-reload
sudo systemctl enable sidecard
sudo systemctl restart sidecard &amp;&amp; sudo journalctl -u sidecard -fo cat</pre>
  <p id="KEXq"><strong>Теперь ваш Sequencer и Sidecar настроены и работают в фоновом режиме!</strong></p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="EcqQ" data-align="center">Запуск валидатора Fuel</h2>
  </section>
  <h3 id="M99f">1. Создание кошелька</h3>
  <p id="flEc">Для работы валидатора потребуется адрес Sequencer. Создать новый кошелек можно с помощью команды:</p>
  <pre id="S8sf">fuelsequencerd keys add &lt;ИМЯ&gt;</pre>
  <p id="zkRB">Либо восстановить из мнемонической фразы:</p>
  <pre id="rPGX">fuelsequencerd keys add &lt;ИМЯ&gt; --recover</pre>
  <p id="YoEJ">После выполнения команды появится адрес вида <code>fuelsequencer1l7qk9umswg65av0zygyymgx5yg0fx4g0dpp2tl</code> и мнемоническая фраза. <strong>Сохраните её в безопасном месте!</strong></p>
  <h3 id="edUg">Генерация Ethereum-совместимого адреса</h3>
  <p id="aV0C">Чтобы получить совместимый с Ethereum адрес, выполните команду:</p>
  <pre id="casK">fuelsequencerd keys parse &lt;АДРЕС&gt;</pre>
  <p id="cdo5">Вы получите вывод вида:</p>
  <pre id="X3cf">bytes: FF8162F37072354EB1E222084DA0D4221E93550F
human: fuelsequencer</pre>
  <p id="Vrst">Добавьте <code>0x</code> перед <code>bytes</code>, и получите нужный адрес:</p>
  <pre id="RY5o">0xFF8162F37072354EB1E222084DA0D4221E93550F</pre>
  <h3 id="juw9">2. Пополнение аккаунта</h3>
  <p id="9bv5">Для работы валидатора необходимо пополнить аккаунт FUEL-токенами и ETH для оплаты газовых комиссий.</p>
  <p id="1DcI"><strong>Важные адреса:</strong></p>
  <ul id="9qQA">
    <li id="Kxpe"><strong>FUEL Token</strong>: <code>0x675B68AA4d9c2d3BB3F0397048e62E6B7192079c</code></li>
    <li id="kZon"><strong>Sequencer Interface (Bridge)</strong>: <code>0xca0c6B264f0F9958Ec186eb2EAa208966187D866</code></li>
  </ul>
  <p id="MCQJ"><strong>Одобрение токенов</strong></p>
  <p id="1czX">Перед пополнением кошелька необходимо разрешить Fuel Token Contract проводить транзакции. Для этого:</p>
  <ol id="wqJR">
    <li id="7vIk">Откройте Etherscan <a href="https://etherscan.io/token/0x675b68aa4d9c2d3bb3f0397048e62e6b7192079c#writeProxyContract" target="_blank">контракт FUEL-токена.</a></li>
    <li id="fJFZ">Используйте функцию <code>approve (0x095ea7b3)</code>.</li>
    <li id="d1DV">В поле <strong>Spender (адрес)</strong> введите: <code>0xca0c6B264f0F9958Ec186eb2EAa208966187D866</code>.</li>
    <li id="grgJ">В поле <strong>Value (uint256)</strong> укажите количество токенов, добавляя 9 дополнительных нулей.</li>
    <ul id="rNZe">
      <li id="KY9v">Для неограниченного одобрения укажите:<br /><code>0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</code></li>
    </ul>
  </ol>
  <figure id="QEjK" class="m_retina">
    <img src="https://img1.teletype.in/files/0a/a5/0aa59ff3-03df-4322-90c8-048d68efa8a8.png" width="1369" />
  </figure>
  <h3 id="Uqes">Бриджинг токенов (перевод на Sequencer)</h3>
  <ol id="UKW1">
    <li id="iT9U">Откройте <a href="https://etherscan.io/address/0xca0c6B264f0F9958Ec186eb2EAa208966187D866" target="_blank">Sequencer Interface (Bridge)</a> на Etherscan.</li>
    <li id="biox">Подключите Ethereum-кошелек (нажмите <strong>Connect to Web3</strong>).</li>
    <li id="PP2M">Используйте функцию <code>depositFor (0x36efd6f)</code>.</li>
    <li id="qPcS">В поле <strong>Amount (uint256)</strong> введите количество токенов, добавляя 9 нулей.</li>
    <li id="a4R2">В поле <strong>Recipient address</strong> вставьте ваш Ethereum-совместимый адрес (например, <code>0xFF8162F37072354EB1E222084DA0D4221E93550F</code>).</li>
    <li id="UUKw">Нажмите <strong>Write</strong>, подтвердите транзакцию.</li>
  </ol>
  <figure id="I38y" class="m_retina">
    <img src="https://img2.teletype.in/files/59/d0/59d0f292-babd-45d8-8ce7-5696d2f8b043.png" width="1375" />
  </figure>
  <p id="57VL">Транзакция займет около 20 минут.</p>
  <h3 id="5rU8">Проверка баланса</h3>
  <p id="NH3T">После завершения перевода, проверьте баланс в <a href="https://mainnet.block-pro.net/fuel" target="_blank">блок-эксплорере</a>, введя ваш Sequencer-адрес.</p>
  <figure id="laGu" class="m_retina">
    <img src="https://img4.teletype.in/files/f5/23/f523731a-22a4-46aa-93b9-39b2f5408bd8.png" width="943.5" />
  </figure>
  <h2 id="et8L">3. Создание валидатора</h2>
  <p id="wLmH">Для этого потребуется минимум <strong>1 FUEL</strong>, а также дополнительные токены для оплаты комиссий.</p>
  <h3 id="YiQ6">Создание конфигурации валидатора</h3>
  <p id="638J">Создайте файл <code>validator.json</code> и добавьте в него:</p>
  <pre id="Pe9H">{
 &quot;pubkey&quot;: {&quot;@type&quot;:&quot;/cosmos.crypto.ed25519.PubKey&quot;,&quot;key&quot;:&quot;&lt;PUBKEY&gt;&quot;},
 &quot;amount&quot;: &quot;1000000000fuel&quot;,
 &quot;moniker&quot;: &quot;&lt;ИМЯ_ВАЛИДАТОРА&gt;&quot;,
 &quot;identity&quot;: &quot;&lt;ОПЦИОНАЛЬНО&gt;&quot;,
 &quot;website&quot;: &quot;&lt;ВАШ САЙТ&gt;&quot;,
 &quot;security&quot;: &quot;&lt;ВАШ EMAIL&gt;&quot;,
 &quot;details&quot;: &quot;&lt;ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ&gt;&quot;,
 &quot;commission-rate&quot;: &quot;0.05&quot;,
 &quot;commission-max-rate&quot;: &quot;0.10&quot;,
 &quot;commission-max-change-rate&quot;: &quot;0.01&quot;,
 &quot;min-self-delegation&quot;: &quot;1&quot;
}</pre>
  <h3 id="1QDj">Получение публичного ключа</h3>
  <pre id="9ooP">fuelsequencerd tendermint show-validator</pre>
  <p id="SRpI">Скопируйте ключ и вставьте его в поле <code>pubkey</code> в <code>validator.json</code>.</p>
  <h3 id="Vl4H">Запуск команды для создания валидатора</h3>
  <pre id="OMyY">fuelsequencerd tx staking create-validator path/to/validator.json \
    --from &lt;ИМЯ_КОШЕЛЬКА&gt; \
    --gas auto \
    --gas-prices 10fuel \
    --gas-adjustment 1.5 \
    --chain-id seq-mainnet-1</pre>
  <h2 id="KVgL">4. Проверка работы</h2>
  <p id="XPA4">После запуска валидатора:</p>
  <ul id="ciQ8">
    <li id="YiyY">В <strong>Sequencer</strong> должен отображаться процесс синхронизации блоков.</li>
    <li id="wJPV">В <strong>Sidecar</strong> будут появляться запросы на обработку событий.</li>
  </ul>
  <p id="xyQE">Поздравляем! Теперь ваш валидатор Fuel успешно запущен.</p>

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