<?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>@skcrypto</title><generator>teletype.in</generator><description><![CDATA[@skcrypto]]></description><link>https://teletype.in/@skcrypto?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/skcrypto?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/skcrypto?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 12 Apr 2026 05:38:24 GMT</pubDate><lastBuildDate>Sun, 12 Apr 2026 05:38:24 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@skcrypto/JqYJ3feAHEJ</guid><link>https://teletype.in/@skcrypto/JqYJ3feAHEJ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/JqYJ3feAHEJ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Как запустить новую версию aztec ноды</title><pubDate>Sat, 08 Nov 2025 20:19:15 GMT</pubDate><description><![CDATA[<img src="https://img3.teletype.in/files/ea/39/ea391f84-0134-4006-844e-9ace46492304.png"></img>нажимаем y]]></description><content:encoded><![CDATA[
  <h3 id="6xOU"><strong>1</strong> Устанавливаем необходимые пакеты</h3>
  <pre id="G3uD">sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt install -y curl git build-essential</pre>
  <pre id="a0fW">curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs</pre>
  <pre id="mnMb">curl -L https://foundry.paradigm.xyz | bash
source ~/.bashrc
foundryup
cast --version</pre>
  <pre id="xqzq">bash -i &lt;(curl -s https://install.aztec.network)</pre>
  <figure id="R6YL" class="m_original">
    <img src="https://img3.teletype.in/files/ea/39/ea391f84-0134-4006-844e-9ace46492304.png" width="947" />
  </figure>
  <p id="Guwp">нажимаем y </p>
  <pre id="Faei">echo &#x27;export PATH=&quot;$HOME/.aztec/bin:$PATH&quot;&#x27; &gt;&gt; ~/.bashrc
source ~/.bashrc</pre>
  <pre id="wNOD">aztec --version</pre>
  <figure id="7URH" class="m_original">
    <img src="https://img3.teletype.in/files/64/5f/645f6a68-4945-4b5a-9c7a-93165ed620de.png" width="624" />
  </figure>
  <h3 id="5vIn">2 подтверждаем права на новый стейк </h3>
  <pre id="dfH0">cast send 0x139d2a7a0881e16332d7D1F8DB383A4507E1Ea7A \
  &quot;approve(address,uint256)&quot; 0xebd99ff0ff6677205509ae73f93d0ca52ac85d67 200000ether \
  --private-key ВАШ СТАРЫЙ ПРИВАТНИК НА КОТОРОМ БЫЛА РАНЬШЕ НОДА \
  --rpc-url ВАШ RPC Sepolia</pre>
  <figure id="06ig" class="m_original">
    <img src="https://img3.teletype.in/files/68/11/6811f7cf-1314-417a-b5ad-82d23c4fdbc5.png" width="712" />
  </figure>
  <h3 id="UxC0">3 Получаем новый адрес</h3>
  <pre id="iGDD">aztec validator-keys new --fee-recipient 0x0000000000000000000000000000000000000000000000000000000000000000</pre>
  <figure id="kxjD" class="m_original">
    <img src="https://img2.teletype.in/files/1f/73/1f73cb23-65b8-40f0-8602-5a38088f94dc.png" width="636" />
  </figure>
  <h3 id="rsWI">4 Вытаскиваем 2 приватника от нового ЕТН и BLS</h3>
  <pre id="1ZM4">jq -r &#x27;.validators[0].attester.eth&#x27; /root/.aztec/keystore/key1.json
jq -r &#x27;.validators[0].attester.bls&#x27; /root/.aztec/keystore/key1.json</pre>
  <p id="4JUk">!!!!сохраняем в надежное место новый адрес и приватники</p>
  <h3 id="31e9"><strong>5 Регистрируем валидатора</strong></h3>
  <pre id="YNpy">aztec add-l1-validator \
  --l1-rpc-urls ВАШ RPC \
  --network testnet \
  --private-key ВАШ СТАРЫЙ ПРИВАТНИК НА КОТОРОМ БЫЛА РАНЬШЕ НОДА  \
  --attester НОВЫЙ ETH АДРЕСС из шага 3 \
  --withdrawer НОВЫЙ ETH АДРЕСС из шага 3 \
  --bls-secret-key ВАШ ПРИВАТНИК BLS из шага 4 \
  --rollup 0xebd99ff0ff6677205509ae73f93d0ca52ac85d67</pre>
  <figure id="eypJ" class="m_original">
    <img src="https://img3.teletype.in/files/20/db/20db2798-bdf2-45ed-b71f-1ddf65d34ef1.png" width="554" />
  </figure>
  <p id="8daC">Видим что транзакция прошла успешно </p>
  <p id="K9ZE">Пополняем новый НОВЫЙ ETH АДРЕСС из шага 3 тестовыми токенами Sepolia ETH</p>
  <h3 id="qh51">6 Запускаем валидатор</h3>
  <pre id="rcMG">screen -S aztec</pre>
  <pre id="9uqq">aztec start --node --archiver --sequencer \
  --network testnet \
  --l1-rpc-urls ВАШ СЕПОЛИ RPC \
  --l1-consensus-host-urls ВАШ beacon_sepolia_RPC \
  --sequencer.validatorPrivateKeys НОВЫЙ ПРИВАТНИК из шага 4 \
  --sequencer.coinbase НОВЫЙ ETH АДРЕСС из шага 3 \
  --p2p.p2pIp ВАШ АЙПИ </pre>
  <figure id="WLGx" class="m_original">
    <img src="https://img2.teletype.in/files/5a/51/5a513657-a5dd-4cda-b46f-143c15467ee7.png" width="642" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/7JIoixtd5QH</guid><link>https://teletype.in/@skcrypto/7JIoixtd5QH?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/7JIoixtd5QH?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Canton Network Quest 6</title><pubDate>Thu, 16 Oct 2025 20:27:56 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/3b/f1/3bf1a008-3497-4f67-a29a-181ef9782ff9.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/00/a3/00a3211d-41d5-4962-a6a2-388c506e2b34.png"></img>Должен показать openapi: 3.0.3.]]></description><content:encoded><![CDATA[
  <pre id="J4FS">sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt install -y curl unzip jq openjdk-17-jdk screen</pre>
  <pre id="iWLh">curl -sSL https://get.daml.com/ | sh -s 3.3.0-snapshot.20250930.0</pre>
  <pre id="3jqd">echo &#x27;export PATH=$HOME/.daml/bin:$PATH&#x27; &gt;&gt; ~/.bashrc
source ~/.bashrc</pre>
  <pre id="eQgY">daml version</pre>
  <pre id="cxpY">daml new capstone --template quickstart-java
cd capstone</pre>
  <pre id="O0KN">daml build</pre>
  <pre id="KeJn">screen -S daml-sandbox
daml sandbox --json-api-port 7575</pre>
  <pre id="8g1I">curl localhost:7575/docs/openapi | head -n 5</pre>
  <p id="t6Rl">Должен показать <code>openapi: 3.0.3</code>.</p>
  <p id="CHws">6. Загрузка пакета (.dar)</p>
  <pre id="1qk5">curl -v -X POST &#x27;http://localhost:7575/v2/packages&#x27; \
  -H &quot;Content-Type: application/octet-stream&quot; \
  --data-binary @.daml/dist/quickstart-0.0.1.dar</pre>
  <p id="P6rc">Ожидаем <code>HTTP/1.1 200 OK</code>.</p>
  <h2 id="qfXZ">Создание Parties (Alice, Bob, EUR_Bank, USD_Bank)</h2>
  <p id="2bly">Каждую команду выполняем и записываем Party ID:</p>
  <pre id="RXbZ"># Alice
curl -d &#x27;{&quot;partyIdHint&quot;:&quot;Alice&quot;, &quot;identityProviderId&quot;: &quot;&quot;}&#x27; \
-H &quot;Content-Type: application/json&quot; -X POST localhost:7575/v2/parties | jq .</pre>
  <pre id="RTpU"># Bob
curl -d &#x27;{&quot;partyIdHint&quot;:&quot;Bob&quot;, &quot;identityProviderId&quot;: &quot;&quot;}&#x27; \
-H &quot;Content-Type: application/json&quot; -X POST localhost:7575/v2/parties | jq .</pre>
  <pre id="4Ker"># EUR_Bank
curl -d &#x27;{&quot;partyIdHint&quot;:&quot;EUR_Bank&quot;, &quot;identityProviderId&quot;: &quot;&quot;}&#x27; \
-H &quot;Content-Type: application/json&quot; -X POST localhost:7575/v2/parties | jq .</pre>
  <pre id="WKeT"># USD_Bank
curl -d &#x27;{&quot;partyIdHint&quot;:&quot;USD_Bank&quot;, &quot;identityProviderId&quot;: &quot;&quot;}&#x27; \
-H &quot;Content-Type: application/json&quot; -X POST localhost:7575/v2/parties | jq .</pre>
  <pre id="BY91">daml ledger list-parties</pre>
  <p id="geW9">(получаем все строки сразу)</p>
  <p id="KBR9">Получение Package ID</p>
  <pre id="Rajs">curl -X GET &#x27;http://localhost:7575/v2/interactive-submission/preferred-package-version?package-name=quickstart&amp;parties=&lt;ALICE_ID&gt;&#x27; | jq .</pre>
  <p id="Tzm3">создаем файлы через нано</p>
  <p id="MqYh">!!!!!НЕ ЗАБЫВАЙТЕ УКАЗЫВАТЬ ВАШИ ID </p>
  <pre id="uif3">nano issue_eur.json</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="9nqg">{<br />  &quot;commands&quot;: {<br />    &quot;commands&quot;: [<br />      {<br />        &quot;CreateAndExerciseCommand&quot;: {<br />          &quot;templateId&quot;: &quot;2fa7fec894ed2f78a52c03d35cd2bbd283dd2f415fd6bf40510c50a6445bbd2b:Iou:Iou&quot;,<br />          &quot;createArguments&quot;: {<br />            &quot;issuer&quot;: &quot;EUR_Bank::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;,<br />            &quot;owner&quot;: &quot;EUR_Bank::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;,<br />            &quot;currency&quot;: &quot;EUR&quot;,<br />            &quot;amount&quot;: &quot;100.0&quot;,<br />            &quot;observers&quot;: []<br />          },<br />          &quot;choice&quot;: &quot;Iou_Transfer&quot;,<br />          &quot;choiceArgument&quot;: {<br />            &quot;newOwner&quot;: &quot;Alice::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />          }<br />        }<br />      }<br />    ],<br />    &quot;userId&quot;: &quot;eur-bank-user&quot;,<br />    &quot;commandId&quot;: &quot;issue-eur-to-alice-1&quot;,<br />    &quot;actAs&quot;: [<br />      &quot;EUR_Bank::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />    ]<br />  }<br />}</p>
  </section>
  <pre id="LzvH">curl -X POST &#x27;http://localhost:7575/v2/commands/submit-and-wait-for-transaction&#x27; \
  -H &quot;Content-Type: application/json&quot; \
  -d @issue_eur.json | jq .</pre>
  <p id="Invs">берем  из вывода  &quot;contractId&quot; и вставляем его в конфиг alice</p>
  <p id="2hCa"></p>
  <pre id="4wbT">nano alice_trf.json</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="zK6z">{<br />  &quot;commands&quot;: {<br />    &quot;commands&quot;: [<br />      {<br />        &quot;ExerciseCommand&quot;: {<br />          &quot;templateId&quot;: &quot;2fa7fec894ed2f78a52c03d35cd2bbd283dd2f415fd6bf40510c50a6445bbd2b:Iou:IouTransfer&quot;,<br />          &quot;contractId&quot;: &quot;СЮДА&quot;,<br />          &quot;choice&quot;: &quot;IouTransfer_Accept&quot;,<br />          &quot;choiceArgument&quot;: {}<br />        }<br />      }<br />    ],<br />    &quot;userId&quot;: &quot;alice-user&quot;,<br />    &quot;commandId&quot;: &quot;alice-accept-eur-transfer&quot;,<br />    &quot;actAs&quot;: [<br />      &quot;Alice::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />    ]<br />  }<br />}</p>
  </section>
  <pre id="ZHAW">curl -X POST &#x27;http://localhost:7575/v2/commands/submit-and-wait-for-transaction&#x27; \
  -H &quot;Content-Type: application/json&quot; \
  -d @alice_trf.json | jq .</pre>
  <p id="4uF4">2. USD_Bank выпускает IOU </p>
  <pre id="S4hp">nano issue_usd.json</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="hYnb">{<br />  &quot;commands&quot;: {<br />    &quot;commands&quot;: [<br />      {<br />        &quot;CreateAndExerciseCommand&quot;: {<br />          &quot;templateId&quot;: &quot;2fa7fec894ed2f78a52c03d35cd2bbd283dd2f415fd6bf40510c50a6445bbd2b:Iou:Iou&quot;,<br />          &quot;createArguments&quot;: {<br />            &quot;issuer&quot;: &quot;USD_Bank::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;,<br />            &quot;owner&quot;: &quot;USD_Bank::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;,<br />            &quot;currency&quot;: &quot;USD&quot;,<br />            &quot;amount&quot;: &quot;110.0&quot;,<br />            &quot;observers&quot;: []<br />          },<br />          &quot;choice&quot;: &quot;Iou_Transfer&quot;,<br />          &quot;choiceArgument&quot;: {<br />            &quot;newOwner&quot;: &quot;Bob::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />          }<br />        }<br />      }<br />    ],<br />    &quot;userId&quot;: &quot;usd-bank-user&quot;,<br />    &quot;commandId&quot;: &quot;issue-usd-to-bob-1&quot;,<br />    &quot;actAs&quot;: [<br />      &quot;USD_Bank::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />    ]<br />  }<br />}</p>
  </section>
  <pre id="8WDo">curl -X POST &#x27;http://localhost:7575/v2/commands/submit-and-wait-for-transaction&#x27; \
  -H &quot;Content-Type: application/json&quot; \
  -d @issue_usd.json | jq .</pre>
  <p id="L2hI">берем  из вывода  &quot;contractId&quot; и вставляем его в конфиг bob</p>
  <pre id="DMQu">nano bob_trf.json</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="cXLM">{<br />  &quot;commands&quot;: {<br />    &quot;commands&quot;: [<br />      {<br />        &quot;ExerciseCommand&quot;: {<br />          &quot;templateId&quot;: &quot;2fa7fec894ed2f78a52c03d35cd2bbd283dd2f415fd6bf40510c50a6445bbd2b:Iou:IouTransfer&quot;,<br />          &quot;contractId&quot;: &quot;&lt;BOB_TRANSFER_CID&gt;&quot;,<br />          &quot;choice&quot;: &quot;IouTransfer_Accept&quot;,<br />          &quot;choiceArgument&quot;: {}<br />        }<br />      }<br />    ],<br />    &quot;userId&quot;: &quot;bob-user&quot;,<br />    &quot;commandId&quot;: &quot;bob-accept-usd-transfer&quot;,<br />    &quot;actAs&quot;: [<br />      &quot;Bob::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />    ]<br />  }<br />}</p>
  </section>
  <pre id="YbBu">curl -X POST &#x27;http://localhost:7575/v2/commands/submit-and-wait-for-transaction&#x27; \
  -H &quot;Content-Type: application/json&quot; \
  -d @bob_trf.json | jq .</pre>
  <p id="PA84">Следующий шаг ( Add Observer)<br /><br />Теперь у тебя есть оба:</p>
  <ul id="XLAo">
    <li id="nUxv"><code>&lt;ALICE_ACCEPT_EUR&gt;</code> = <code>00d28761210e104e2041648dbccbb4b1df5c60ad35e62d1577b6107018760e3862ca1112200cb42cb2df0a62a5f744b9dda228060f4e730b16f65e07072b0a5f98eb35ee94</code></li>
    <li id="51fY"><code>&lt;BOB_ID&gt;</code> = <code>Bob::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109</code></li>
  </ul>
  <pre id="6Ijp">nano add_observer.json</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="5moV">{<br />  &quot;commands&quot;: {<br />    &quot;commands&quot;: [<br />      {<br />        &quot;ExerciseCommand&quot;: {<br />          &quot;templateId&quot;: &quot;2fa7fec894ed2f78a52c03d35cd2bbd283dd2f415fd6bf40510c50a6445bbd2b:Iou:Iou&quot;,<br />          &quot;contractId&quot;: &quot;00d28761210e104e2041648dbccbb4b1df5c60ad35e62d1577b6107018760e3862ca1112200cb42cb2df0a62a5f744b9dda228060f4e730b16f65e07072b0a5f98eb35ee94&quot;,<br />          &quot;choice&quot;: &quot;Iou_AddObserver&quot;,<br />          &quot;choiceArgument&quot;: {<br />            &quot;newObserver&quot;: &quot;Bob::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />          }<br />        }<br />      }<br />    ],<br />    &quot;userId&quot;: &quot;alice-user&quot;,<br />    &quot;commandId&quot;: &quot;iou-disclosure-split-1&quot;,<br />    &quot;actAs&quot;: [<br />      &quot;Alice::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />    ]<br />  }<br />}<br /></p>
  </section>
  <pre id="1ZoS">curl -X POST &#x27;http://localhost:7575/v2/commands/submit-and-wait-for-transaction&#x27; \
  -H &quot;Content-Type: application/json&quot; \
  -d @add_observer.json | jq .</pre>
  <p id="WwAy">В ответе должен появиться <code>CreatedEvent</code> → это новый IOU с Bob в наблюдателях.<br /> Этот <code>contractId</code> мы будем называть <code>&lt;NEW_IOU&gt;</code> и использовать на Step 7.3 (Trade Proposal).  <br />Выглядит так<br />00c150e5e67fd561f512bac1c9b7ca4704400036a9e48abb2e5ae981253242d4d8ca111220df8ee3713c0312e5a0eca6fef60df7a50e99f75b28a4439c379d44796d9542e2<br /></p>
  <p id="20Rs">Создай файл <code>propose_trade.json</code></p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="MXSf">{<br />  &quot;commands&quot;: {<br />    &quot;commands&quot;: [<br />      {<br />        &quot;CreateCommand&quot;: {<br />          &quot;templateId&quot;: &quot;2fa7fec894ed2f78a52c03d35cd2bbd283dd2f415fd6bf40510c50a6445bbd2b:IouTrade:IouTrade&quot;,<br />          &quot;createArguments&quot;: {<br />            &quot;buyer&quot;: &quot;Alice::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;,<br />            &quot;seller&quot;: &quot;Bob::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;,<br />            &quot;baseIouCid&quot;: &quot;00c150e5e67fd561f512bac1c9b7ca4704400036a9e48abb2e5ae981253242d4d8ca111220df8ee3713c0312e5a0eca6fef60df7a50e99f75b28a4439c379d44796d9542e2&quot;,<br />            &quot;baseIssuer&quot;: &quot;EUR_Bank::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;,<br />            &quot;baseCurrency&quot;: &quot;EUR&quot;,<br />            &quot;baseAmount&quot;: &quot;100.0&quot;,<br />            &quot;quoteIssuer&quot;: &quot;USD_Bank::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;,<br />            &quot;quoteCurrency&quot;: &quot;USD&quot;,<br />            &quot;quoteAmount&quot;: &quot;110.0&quot;<br />          }<br />        }<br />      }<br />    ],<br />    &quot;userId&quot;: &quot;alice-user&quot;,<br />    &quot;commandId&quot;: &quot;trade-proposal-1&quot;,<br />    &quot;actAs&quot;: [<br />      &quot;Alice::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />    ]<br />  }<br />}<br /></p>
  </section>
  <pre id="OsEh">curl -X POST &#x27;http://localhost:7575/v2/commands/submit-and-wait-for-transaction&#x27; \
  -H &quot;Content-Type: application/json&quot; \
  -d @propose_trade.json | jq .</pre>
  <p id="2blQ">Вот этот контракт — твой <code>&lt;TRADE_PROPOSAL_CID&gt;</code>:</p>
  <p id="Vml2">002d95e05d90a25d478d0b2ab01b33a2c81ad4abe178fb42089f20c30bc6218380ca11122061b5232006c3860e61a7876f743701de50bca6f0e1fcae889b9e1bb1bce4e494<br /></p>
  <p id="PeMH">Создай файл <code>accept_trade.json</code></p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="hy9Y">{<br />  &quot;commands&quot;: {<br />    &quot;commands&quot;: [<br />      {<br />        &quot;ExerciseCommand&quot;: {<br />          &quot;templateId&quot;: &quot;2fa7fec894ed2f78a52c03d35cd2bbd283dd2f415fd6bf40510c50a6445bbd2b:IouTrade:IouTrade&quot;,<br />          &quot;contractId&quot;: &quot;002d95e05d90a25d478d0b2ab01b33a2c81ad4abe178fb42089f20c30bc6218380ca11122061b5232006c3860e61a7876f743701de50bca6f0e1fcae889b9e1bb1bce4e494&quot;,<br />          &quot;choice&quot;: &quot;IouTrade_Accept&quot;,<br />          &quot;choiceArgument&quot;: {<br />            &quot;quoteIouCid&quot;: &quot;00d4ebe87ee5d3d18e95fcec9661ddaaa916a2e39f57da36214062716a431a215eca111220d4357a4b8fdacac7a40d877d4a757105651c0a8f924a00e63fda603c5ec44634&quot;<br />          }<br />        }<br />      }<br />    ],<br />    &quot;userId&quot;: &quot;bob-user&quot;,<br />    &quot;commandId&quot;: &quot;trade-acceptance-1&quot;,<br />    &quot;actAs&quot;: [<br />      &quot;Bob::12205a298e9f8f1edbd2dc60a452d30c768e70210bd46e0b8b8e1ee0437db01c7109&quot;<br />    ]<br />  }<br />}<br /></p>
  </section>
  <pre id="7sRg">curl -X POST &#x27;http://localhost:7575/v2/commands/submit-and-wait-for-transaction&#x27; \
  -H &quot;Content-Type: application/json&quot; \
  -d @accept_trade.json | jq .</pre>
  <p id="0A07"></p>
  <figure id="DA8u" class="m_original">
    <img src="https://img1.teletype.in/files/00/a3/00a3211d-41d5-4962-a6a2-388c506e2b34.png" width="1874" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/HeyhlQTZWDc</guid><link>https://teletype.in/@skcrypto/HeyhlQTZWDc?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/HeyhlQTZWDc?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Quest 4 - 5 Canton Network</title><pubDate>Mon, 13 Oct 2025 19:11:33 GMT</pubDate><description><![CDATA[module Token where
import Daml.Script]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Ks7d" data-align="center">Quest 4</p>
  </section>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="tA7a">module Token where<br />import Daml.Script</p>
    <p id="tBU7">-- Contract template<br />template Token<br />  with<br />    owner : Party<br />  where<br />    signatory owner</p>
    <p id="vGIE">-- Test 1: Alice creates a token for herself<br />token_test_1 : Script (ContractId Token)<br />token_test_1 = script do<br />  alice &lt;- allocateParty &quot;Alice&quot;<br />  submit alice do<br />    createCmd Token with owner = alice</p>
    <p id="k8sd">-- Test 2: Authorization rules (must fail + valid cases)<br />token_test_2 : Script ()<br />token_test_2 = script do<br />  alice &lt;- allocateParty &quot;Alice&quot;<br />  bob   &lt;- allocateParty &quot;Bob&quot;</p>
    <p id="b6Tf">  -- Negative tests: should fail<br />  submitMustFail alice do<br />    createCmd Token with owner = bob</p>
    <p id="I7NK">  submitMustFail bob do<br />    createCmd Token with owner = alice</p>
    <p id="xpSs">  -- Positive tests: should succeed<br />  _ &lt;- submit alice do<br />    createCmd Token with owner = alice</p>
    <p id="xIiy">  _ &lt;- submit bob do<br />    createCmd Token with owner = bob</p>
    <p id="PkkJ">  pure ()</p>
    <p id="bEeA">-- Test 3: Archive a contract<br />token_archive_exercise : Script ()<br />token_archive_exercise = script do<br />  alice &lt;- allocateParty &quot;Alice&quot;</p>
    <p id="BYxz">  -- Create a token owned by Alice<br />  alice_token_cid &lt;- submit alice do<br />    createCmd Token with owner = alice</p>
    <p id="goor">  -- Archive the token<br />  submit alice do<br />    archiveCmd alice_token_cid</p>
    <p id="twVq">  pure ()<br /></p>
  </section>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Nryz" data-align="center">Quest 5</p>
  </section>
  <p id="Vg5f"></p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="CyOl">module PersonData where</p>
    <p id="mx0G">import Daml.Script<br />import DA.Optional (Optional(..))<br />import DA.List (delete)</p>
    <p id="At8J">data PersonKey = PersonKey with<br />   keyIssuer : Party<br />   keyDataId : Text<br /> deriving (Eq, Show)</p>
    <p id="9Z6I">template PersonData<br /> with<br />   issuer : Party  <br />   owner : Party    <br />   dataId : Text     <br />   personalInfo : (Text, Text, Int)  <br />   addresses : [Text]                <br />   contact : Optional Text           <br /> where<br />   signatory issuer, owner<br />   ensure dataId /= &quot;&quot;</p>
    <p id="yaRE">   choice UpdatePersonalInfo : ContractId PersonData<br />     with<br />       newInfo : (Text, Text, Int)<br />     controller owner<br />     do<br />       archive self<br />       create this with personalInfo = newInfo</p>
    <p id="rsXH">   choice AddAddress : ContractId PersonData<br />     with<br />       newAddress : Text<br />     controller owner<br />     do<br />       archive self<br />       create this with addresses = newAddress :: addresses</p>
    <p id="nJel">   choice SetContact : ContractId PersonData<br />     with<br />       newContact : Text<br />     controller owner<br />     do<br />       create this with contact = Some newContact</p>
    <p id="bDG9">   choice ClearContact : ContractId PersonData<br />     controller owner<br />     do<br />       archive self<br />       create this with contact = None</p>
    <p id="j22s"><br />template PersonDataProposal<br /> with<br />   proposal : PersonData<br /> where<br />   signatory proposal.issuer<br />   observer proposal.owner <br />  <br />   choice Accept : ContractId PersonData<br />     controller proposal.owner<br />     do<br />       create proposal</p>
    <p id="mrLi"><br />test_person_data = script do<br />   issuer &lt;- allocateParty &quot;IssuerParty&quot;<br />   owner &lt;- allocateParty &quot;OwnerParty&quot;<br />  <br />   let initialPersonData = PersonData with<br />           issuer = issuer<br />           owner = owner<br />           dataId = &quot;KYC-001&quot;<br />           personalInfo = (&quot;Jane&quot;, &quot;Doe&quot;, 35)<br />           addresses = [&quot;10 Downing Street&quot;]<br />           contact = Some &quot;old.contact@example.com&quot;<br />          <br />   proposalCid &lt;- submit issuer do<br />       createCmd PersonDataProposal with<br />           proposal = initialPersonData</p>
    <p id="NZQh">   personCid &lt;- submit owner do<br />       exerciseCmd proposalCid Accept</p>
    <p id="q0vr">   Some contract &lt;- queryContractId issuer personCid<br />   assert (contract.contact == Some &quot;old.contact@example.com&quot;)</p>
    <p id="MB56">   let personKey = PersonKey with keyIssuer = issuer, keyDataId = &quot;KYC-001&quot;<br />   newCid &lt;- submit owner do<br />     exerciseCmd personCid SetContact with<br />         newContact = &quot;new.contact@example.com&quot;<br />    <br />   Some newContract &lt;- queryContractId owner newCid<br />   assert (newContract.contact == Some &quot;new.contact@example.com&quot;)</p>
    <p id="Sj3q">   return ()</p>
  </section>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/O_wbhj5gL_A</guid><link>https://teletype.in/@skcrypto/O_wbhj5gL_A?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/O_wbhj5gL_A?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Как установить Blockcast BEACON ноду на VPS ubuntu 22/24/25</title><pubDate>Fri, 22 Aug 2025 18:45:17 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/56/59/56594a61-38f5-4c22-b34f-69764268f95c.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/8c/e5/8ce59757-d396-4155-9f63-1dc80ee776dd.png"></img>Покупаем VPS я предпочитаю на xorek.cloud]]></description><content:encoded><![CDATA[
  <p id="8S8o">Покупаем VPS я предпочитаю на <a href="https://xorek.cloud/?from=11437" target="_blank">xorek.cloud </a></p>
  <p id="kTSi">Минимальные требования:</p>
  <ul id="byYL">
    <li id="3AP0">2 CPU</li>
    <li id="0fFu">4 GB RAM</li>
    <li id="O5Zx">10 GB SSD</li>
  </ul>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="MUCu" data-align="center">ПОДГОТОВКА</p>
  </section>
  <pre id="9Bq5">sudo apt update &amp;&amp; sudo apt upgrade -y</pre>
  <pre id="cmc0">sudo apt install -y ca-certificates curl gnupg lsb-release</pre>
  <pre id="s7j7">sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  &quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null</pre>
  <pre id="mjwH">sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</pre>
  <pre id="cFnZ">docker --version
docker compose version</pre>
  <figure id="RHW3" class="m_original">
    <img src="https://img1.teletype.in/files/8c/e5/8ce59757-d396-4155-9f63-1dc80ee776dd.png" width="467" />
  </figure>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="LNmG" data-align="center">УСТАНОВКА Blockcast Beacon </p>
  </section>
  <p id="hMWE">Клонируем репозиторий:</p>
  <pre id="MUGh">git clone https://github.com/Blockcast/beacon-docker-compose.git
cd beacon-docker-compose</pre>
  <pre id="CeaN">docker compose up -d</pre>
  <pre id="MoBj">docker compose ps</pre>
  <p id="HIwf">Ожидаем увидеть 4 сервиса:</p>
  <figure id="Bcw8" class="m_original">
    <img src="https://img4.teletype.in/files/79/33/7933ef2b-241d-44b4-b172-57e120e8e070.png" width="624" />
  </figure>
  <p id="omvc">Генерация ключей:</p>
  <pre id="X24w">docker compose exec blockcastd blockcastd init</pre>
  <figure id="mCpn" class="m_original">
    <img src="https://img4.teletype.in/files/ff/12/ff122996-b325-4294-9e9a-53c9f1b591a2.png" width="631" />
  </figure>
  <p id="NCCa">Получаем приватный ключ:</p>
  <pre id="nnMo">cat ~/.blockcast/certs/gw_challenge.key</pre>
  <p id="tXfj">-----BEGIN PRIVATE KEY---— AC322AQAwsawDK2hkyDeba6oWM0SF+wOeNBCY900wNYmqtqvU9IS56<br />-----END PRIVATE KEY---— </p>
  <h2 id="S34f">!!!!Обязательно сохраняем в надежное место</h2>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="gJcV" data-align="center">РЕГИСТРАЦИЯ НОДЫ</p>
  </section>
  <p id="yoBq">Отправляемся на <a href="https://app.blockcast.network?referral-code=CKtfT0" target="_blank">https://app.blockcast.network</a></p>
  <figure id="x7mn" class="m_original">
    <img src="https://img2.teletype.in/files/d1/27/d1279e6b-6bba-4a65-8c43-4f4f3d781b2b.png" width="1537" />
  </figure>
  <p id="FIWN">Подключаемся через почту </p>
  <ol id="uir8">
    <li id="NiGC">Подвязываем к профилю наш кошелек Solana, Twitter и дискорд</li>
    <li id="4Roz">Выполняем простые соц задания</li>
    <li id="fZeV">Переходим в раздел Manage Nodes -&gt; Register Node</li>
  </ol>
  <figure id="kjXt" class="m_original">
    <img src="https://img2.teletype.in/files/5f/74/5f7458b1-33ae-4246-a80b-2ae4946594d4.png" width="1044" />
  </figure>
  <p id="pFNH">Вводим полученные данные и нажимаем Register Node. </p>
  <p id="1JY2">Что бы ваша геолокация подтянулась нужно разрешить в браузере запрос геолокации. </p>
  <p id="rdRB"><strong>Если не хотите светить свою гео </strong></p>
  <p id="uTxh">Разрешаем доступ к геолокации.</p>
  <ul id="UNHl">
    <li id="DS7n">Указать точку вручную (например, Франкфурт) → в Chrome DevTools включи <strong>Sensors → Custom Location</strong> и подставь координаты.</li>
    <li id="4Tex">Пример:</li>
    <ul id="wkBf">
      <li id="PBuN">Latitude: <code>60.1109</code></li>
      <li id="6sao">Longitude: <code>85.6820</code></li>
    </ul>
  </ul>
  <p id="kDSo">Обновляем страницу и наша геолокация должна подтянутся </p>
  <p id="y4jK">Готово.</p>
  <p id="ZbHM">Ждем 10-15 минут пока нода скачает все необходимые файлы и синхронизируется с облаком</p>
  <figure id="35PD" class="m_original">
    <img src="https://img1.teletype.in/files/80/cb/80cb4980-a684-422f-bd3f-94fd3020d25c.png" width="1138" />
  </figure>
  <p id="6svv">Видим Online значит все прошло успешно</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/mSo5b_HZUKl</guid><link>https://teletype.in/@skcrypto/mSo5b_HZUKl?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/mSo5b_HZUKl?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Как установить 0G валидатор</title><pubDate>Wed, 30 Jul 2025 19:32:15 GMT</pubDate><description><![CDATA[<img src="https://img2.teletype.in/files/d8/3c/d83c4f89-96e4-400b-979d-e94734d76ac0.png"></img>Рекомендуемые параметры]]></description><content:encoded><![CDATA[
  <p id="harn"> Рекомендуемые параметры </p>
  <figure id="7cIL" class="m_original">
    <img src="https://img2.teletype.in/files/d8/3c/d83c4f89-96e4-400b-979d-e94734d76ac0.png" width="655" />
  </figure>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="4IaY" data-align="center">Подготовка</p>
  </section>
  <pre id="BC1s">sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt install -y curl wget unzip git build-essential jq nano ufw</pre>
  <p id="z6Yz">открываем порты:</p>
  <pre id="0Lsn">sudo ufw allow 22/tcp
sudo ufw allow 26656/tcp    # p2p
sudo ufw allow 26657/tcp    # rpc
sudo ufw allow 3500/tcp     # node-api
sudo ufw allow 30303/tcp    # geth p2p
sudo ufw enable</pre>
  <p id="O8j3">1. Скачать архив с бинарниками:</p>
  <pre id="WQQF">wget -O galileo.tar.gz https://github.com/0glabs/0gchain-NG/releases/download/v1.2.0/galileo-v1.2.0.tar.gz</pre>
  <pre id="O8qB"> 2. Распаковать архив:</pre>
  <pre id="ySSD">tar -xzvf galileo.tar.gz -C ~</pre>
  <h2 id="avnu"> 3. Скопировать конфигурации и выдать права:</h2>
  <pre id="oH5E">cd ~/galileo-v1.2.0
cp -r 0g-home ~/0g-home
chmod 777 ./bin/geth
chmod 777 ./bin/0gchaind</pre>
  <h2 id="1CEz">4. Инициализация клиентов</h2>
  <pre id="fUFc">./bin/geth init --datadir ~/0g-home/geth-home ./genesis.json</pre>
  <h2 id="32MT"> 5. Инициализация <code>0gchaind</code> (временный конфиг):</h2>
  <pre id="6VdQ">./bin/0gchaind init your-node-name --home ~/tmp-0gchaind</pre>
  <h2 id="ghOH">6. Перенос ключей:</h2>
  <pre id="5baE">cp ~/tmp-0gchaind/data/priv_validator_state.json ~/0g-home/0gchaind-home/data/
cp ~/tmp-0gchaind/config/node_key.json ~/0g-home/0gchaind-home/config/
cp ~/tmp-0gchaind/config/priv_validator_key.json ~/0g-home/0gchaind-home/config/
</pre>
  <h2 id="6cUZ">7. Запуск <code>0gchaind</code>:</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Zu2P">nohup ./bin/0gchaind start \<br />  --rpc.laddr tcp://0.0.0.0:26657 \<br />  --chaincfg.chain-spec devnet \<br />  --chaincfg.kzg.trusted-setup-path=kzg-trusted-setup.json \<br />  --chaincfg.engine.jwt-secret-path=jwt-secret.hex \<br />  --chaincfg.kzg.implementation=crate-crypto/go-kzg-4844 \<br />  --chaincfg.block-store-service.enabled \<br />  --chaincfg.node-api.enabled \<br />  --chaincfg.node-api.logging \<br />  --chaincfg.node-api.address 0.0.0.0:3500 \<br />  --pruning=nothing \<br />  --home ~/0g-home/0gchaind-home \<br />  --p2p.seeds 85a9b9a1b7fa0969704db2bc37f7c100855a75d9@8.218.88.60:26656 \<br />  --p2p.external_address ВАШ IP:26656 \<br />  &gt; ~/0g-home/log/0gchaind.log 2&gt;&amp;1 &amp;</p>
  </section>
  <h2 id="WPlw">8. Запуск <code>geth</code>:</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="fYUC">nohup ./bin/geth --config geth-config.toml \<br />  --nat extip:ВАШ IP \<br />  --bootnodes enode://de7b86d8ac452b1413983049c20eafa2ea0851a3219c2cc12649b971c1677bd83fe24c5331e078471e52a94d95e8cde84cb9d866574fec957124e57ac6056699@8.218.88.60:30303 \<br />  --datadir ~/0g-home/geth-home \<br />  --networkid 16601 \<br />  &gt; ~/0g-home/log/geth.log 2&gt;&amp;1 &amp;</p>
  </section>
  <p id="yArC"><strong>ВАШ IP меня на внешний IP сервера</strong><br /></p>
  <h2 id="J2ug">9. Проверка логов </h2>
  <pre id="B2PX">tail -f ~/0g-home/log/0gchaind.log</pre>
  <figure id="6rfG" class="m_original">
    <img src="https://img4.teletype.in/files/fa/b7/fab75393-6af1-48ab-9dca-8b35db33a1d9.png" width="1383" />
  </figure>
  <pre id="lq4q">tail -f ~/0g-home/log/geth.log</pre>
  <figure id="lENx" class="m_original">
    <img src="https://img1.teletype.in/files/02/0d/020d31f5-37b8-488f-887f-7f8c8856bb81.png" width="1575" />
  </figure>
  <p id="iKWP">Значит все в порядке нода синхронизируется с сетью</p>
  <p id="hgVZ">Проверяем статус синхронизации:</p>
  <pre id="MOMA">curl http://localhost:26657/status</pre>
  <p id="YjYr"><code>&quot;catching_up&quot;: true</code> →  нода <strong>ещё догоняет цепочку</strong></p>
  <p id="Xhe8"><code>&quot;catching_up&quot;: false</code> → <strong>нода полностью синхронизировалась</strong></p>
  <p id="ARdg"><strong>Синхронизация может занять 7-10 дней.</strong></p>
  <figure id="aEsG" class="m_original">
    <img src="https://img1.teletype.in/files/88/17/881774c8-ec2d-43b2-b009-9e08992c87ac.png" width="1352" />
  </figure>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="4WbQ" data-align="center">Выполняем синхронизацию через snap (занимает 2-3 часа)</p>
  </section>
  <pre id="jk9H">pkill 0gchaind
pkill geth</pre>
  <pre id="FtQb">cp ~/0g-home/0gchaind-home/data/priv_validator_state.json ~/priv_validator_state.json.backup</pre>
  <pre id="7gqQ">rm -rf ~/0g-home/0gchaind-home/data
curl https://server-3.itrocket.net/testnet/og/og_2025-07-30_4556600_snap.tar.lz4 | lz4 -dc - | tar -xf - -C ~/0g-home/0gchaind-home</pre>
  <pre id="Eyr2">mv ~/priv_validator_state.json.backup ~/0g-home/0gchaind-home/data/priv_validator_state.json</pre>
  <pre id="Siia">rm -rf ~/0g-home/geth-home/geth
curl https://server-3.itrocket.net/testnet/og/geth_og_2025-07-30_4556600_snap.tar.lz4 | lz4 -dc - | tar -xf - -C ~/0g-home/geth-home/geth</pre>
  <p id="Qoue">Архив может распаковываться несколько часов</p>
  <figure id="nwjl" class="m_original">
    <img src="https://img2.teletype.in/files/53/be/53be39f4-3fee-4e27-a80b-2cbab4336f47.png" width="652" />
  </figure>
  <p id="956I">если скачивание прервалось пробуем </p>
  <pre id="RRsS">sudo apt install aria2 -y
aria2c -x 16 -s 16 -c https://server-3.itrocket.net/testnet/og/geth_og_2025-07-30_4556600_snap.tar.lz4</pre>
  <figure id="XNd8" class="m_original">
    <img src="https://img2.teletype.in/files/5c/ee/5ceed215-4e14-40ac-9400-33b1bc2ed08d.png" width="652" />
  </figure>
  <p id="6k2P">Когда архив загрузится распаковываем его </p>
  <pre id="UWi5">lz4 -dc geth_og_2025-07-30_4556600_snap.tar.lz4 | tar -xf - -C ~/0g-home/geth-home/geth</pre>
  <p id="FbFZ">Распаковка так же займет около часа</p>
  <p id="0piU">Запускаем </p>
  <pre id="DBc2">cd ~/galileo-v1.2.0</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="sDnf">nohup ./bin/0gchaind start \<br />  --rpc.laddr tcp://0.0.0.0:26657 \<br />  --chaincfg.chain-spec devnet \<br />  --chaincfg.kzg.trusted-setup-path=kzg-trusted-setup.json \<br />  --chaincfg.engine.jwt-secret-path=jwt-secret.hex \<br />  --chaincfg.kzg.implementation=crate-crypto/go-kzg-4844 \<br />  --chaincfg.block-store-service.enabled \<br />  --chaincfg.node-api.enabled \<br />  --chaincfg.node-api.logging \<br />  --chaincfg.node-api.address 0.0.0.0:3500 \<br />  --pruning=nothing \<br />  --home ~/0g-home/0gchaind-home \<br />  --p2p.seeds 85a9b9a1b7fa0969704db2bc37f7c100855a75d9@8.218.88.60:26656 \<br />  --p2p.external_address ВАШ IP:26656 \<br />  &gt; ~/0g-home/log/0gchaind.log 2&gt;&amp;1 &amp;</p>
  </section>
  <p id="3xHu">потом </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="zBq8">nohup ./bin/geth --config geth-config.toml \<br />  --nat extip:ВАШ IP \<br />  --bootnodes enode://de7b86d8ac452b1413983049c20eafa2ea0851a3219c2cc12649b971c1677bd83fe24c5331e078471e52a94d95e8cde84cb9d866574fec957124e57ac6056699@8.218.88.60:30303 \<br />  --datadir ~/0g-home/geth-home \<br />  --networkid 16601   &gt; ~/0g-home/log/geth.log 2&gt;&amp;1 &amp;</p>
  </section>
  <p id="UZJp">После того как убедились что нода синхронизирована можно удалить архив </p>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="I10E" data-align="center">Сохраняем приватник </p>
  </section>
  <pre id="7gDN">nano ~/0g-home/0gchaind-home/config/priv_validator_key.json</pre>
  <p id="10s4"></p>
  <figure id="ZyCT" class="m_original">
    <img src="https://img4.teletype.in/files/fb/39/fb39c318-803a-4dcd-a1fa-55d0825f08d6.png" width="438" />
  </figure>
  <p id="0McV">копируем и сохраняем в надежное место</p>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Wo32" data-align="center">Создаем автозапуск</p>
  </section>
  <pre id="jwKy">pkill geth
pkill 0gchaind</pre>
  <pre id="J2kF">rm ~/0g-home/log/geth.log
rm ~/0g-home/log/0gchaind.log</pre>
  <pre id="2450">sudo nano /etc/systemd/system/geth.service</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="9AUe">[Unit]<br />Description=Geth Node Service<br />After=network.target</p>
    <p id="Nw7j">[Service]<br />User=vm1225<br />WorkingDirectory=/home/vm1225/galileo-v1.2.0<br />ExecStart=/home/vm1225/galileo-v1.2.0/bin/geth \<br />  --config geth-config.toml \<br />  --nat extip:ВАШ IP \<br />  --bootnodes enode://de7b86d8ac452b1413983049c20eafa2ea0851a3219c2cc12649b971c1677bd83fe24c5331e078471e52a94d95e8cde84cb9d866574fec957124e57ac6056699@8.218.88.60:30303 \<br />  --datadir /home/vm1225/0g-home/geth-home \<br />  --networkid 16601<br />Restart=always<br />RestartSec=5<br />LimitNOFILE=65535</p>
    <p id="58ws">[Install]<br />WantedBy=multi-user.target</p>
  </section>
  <p id="uwZn">CTRL+O -&gt; Enter -&gt; CTR+X</p>
  <pre id="B8Ly">sudo nano /etc/systemd/system/0gchaind.service</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="nGI0">[Unit]<br />Description=0gchaind Node Service<br />After=network.target</p>
    <p id="KumH">[Service]<br />User=vm1225<br />WorkingDirectory=/home/vm1225/galileo-v1.2.0<br />ExecStart=/home/vm1225/galileo-v1.2.0/bin/0gchaind start \<br />  --rpc.laddr tcp://0.0.0.0:26657 \<br />  --chaincfg.chain-spec devnet \<br />  --chaincfg.kzg.trusted-setup-path=kzg-trusted-setup.json \<br />  --chaincfg.engine.jwt-secret-path=jwt-secret.hex \<br />  --chaincfg.kzg.implementation=crate-crypto/go-kzg-4844 \<br />  --chaincfg.block-store-service.enabled \<br />  --chaincfg.node-api.enabled \<br />  --chaincfg.node-api.logging \<br />  --chaincfg.node-api.address 0.0.0.0:3500 \<br />  --pruning=nothing \<br />  --home /home/vm1225/0g-home/0gchaind-home \<br />  --p2p.seeds 85a9b9a1b7fa0969704db2bc37f7c100855a75d9@8.218.88.60:26656 \<br />  --p2p.external_address 95.165.157.208:26656<br />Restart=always<br />RestartSec=5<br />LimitNOFILE=65535</p>
    <p id="3TCC">[Install]<br />WantedBy=multi-user.target</p>
  </section>
  <p id="PNgQ">CTRL+O -&gt; Enter -&gt; CTR+X</p>
  <p id="cI2j">Активация сервисов</p>
  <pre id="3zZI">sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable geth
sudo systemctl enable 0gchaind
sudo systemctl start geth
sudo systemctl start 0gchaind</pre>
  <p id="9K7d">Проверка:</p>
  <pre id="OZKr">sudo systemctl status geth
sudo systemctl status 0gchaind</pre>
  <p id="vZ9t">И логи:</p>
  <pre id="dEvZ">sudo journalctl -u geth -f -l
sudo journalctl -u 0gchaind -f -l</pre>
  <p id="Et71">journalctl -u 0gchaind -n 100 --no-pager</p>
  <p id="cJrg">journalctl -u geth -n 100 --no-pager</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/i-jWt4LXMB_</guid><link>https://teletype.in/@skcrypto/i-jWt4LXMB_?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/i-jWt4LXMB_?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Как установить Nexus CLI на Ubuntu 22.04</title><pubDate>Mon, 23 Jun 2025 18:04:15 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/96/88/96886671-f628-4fd4-9e1f-9ba287f08ac4.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/ad/39/ad39fbb9-d9ca-461e-b4fe-6df6f7cc1d57.png"></img>Покупаем VPS (чем мощнее тем лучше фармит)

я предпочитаю на xorek.cloud]]></description><content:encoded><![CDATA[
  <p id="WnYb">Покупаем VPS <em>(чем мощнее тем лучше фармит)</em><br /><br />я предпочитаю на <a href="https://xorek.cloud/?from=11437" target="_blank">xorek.cloud </a></p>
  <pre id="A94b">sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker
sudo apt install nano
sudo apt install screen</pre>
  <pre id="IdB4">docker pull nexusxyz/nexus-cli:latest</pre>
  <p id="4E5s">Отправляемся на <a href="https://app.nexus.xyz/" target="_blank">https://app.nexus.xyz/</a> во вкладке Node берем Node ID</p>
  <figure id="zvW1" class="m_original">
    <img src="https://img3.teletype.in/files/ad/39/ad39fbb9-d9ca-461e-b4fe-6df6f7cc1d57.png" width="510" />
  </figure>
  <p id="IWOF">Возвращаемся на сервер</p>
  <pre id="aweQ">screen -S nexus</pre>
  <p id="Y3CU"><code>docker run -it --init \<br />  -v ~/.nexus:/root/.nexus \<br />  nexusxyz/nexus-cli:latest start --node-id ВАШ_ID</code></p>
  <figure id="SPmT" class="m_original">
    <img src="https://img1.teletype.in/files/0c/91/0c913581-eb40-450d-badc-405be91b97be.png" width="991" />
  </figure>
  <p id="utfH">сварачиваем сессию CTRL+A+D</p>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="1YsQ" data-align="center">Обновление ноды </p>
  </section>
  <p id="TsJb"></p>
  <pre id="oG7J">screen -r nexus</pre>
  <p id="U4vb">нажимаем Q</p>
  <pre id="XEPu">docker pull nexusxyz/nexus-cli:latest</pre>
  <p id="sw2K">запускаем клиент </p>
  <p id="cMLW"><code>docker run -it \<br />  -v ~/.nexus:/root/.nexus \<br />  nexusxyz/nexus-cli:latest start --node-id ВАШ_ID</code></p>
  <p id="m4hq"></p>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Sro1" data-align="center">Полезные команды</p>
  </section>
  <p id="pAPj">screen -ls список активных скринов</p>
  <p id="wrem">screen -r ИМЯ Сессии   подключиться в скрину</p>
  <p id="HPzC">screen -S ИМЯ Сессии придумать название сессии</p>
  <p id="rDhF">screen -S ИМЯ Сессии -p 0 -X quit   удалить сессию</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/qChkzljz_v5</guid><link>https://teletype.in/@skcrypto/qChkzljz_v5?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/qChkzljz_v5?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Установка  RPC  Sepolia и Beacon на GETH и Pryzm</title><pubDate>Tue, 27 May 2025 17:22:33 GMT</pubDate><description><![CDATA[<img src="https://img4.teletype.in/files/b7/d8/b7d8c05b-fc4d-4520-83f2-db193f2ca184.png"></img>sudo tee /etc/systemd/system/sepolia-geth.service &gt; /dev/null &lt;&lt;EOF
[Unit]
Description=Sepolia Geth Node
After=network.target]]></description><content:encoded><![CDATA[
  <h2 id="XpPp">Требования к серверу:</h2>
  <ul id="tvDj">
    <li id="IseX">VPS с <strong>8 vCPU, 16 ГБ RAM, 800+ ГБ NVMe </strong></li>
    <li id="1FwT">Ubuntu 22.04+</li>
  </ul>
  <h2 id="P9x4">я предпочитаю на <a href="https://xorek.cloud/?from=11437" target="_blank">xorek.cloud</a></h2>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="DYfY" data-align="center">Установка RPC </h2>
  </section>
  <h2 id="DGWW">1.  Устанавливаем зависимости</h2>
  <pre id="67Bv">sudo apt update &amp;&amp; sudo apt install -y curl wget gnupg nano ufw docker.io systemd-timesyncd
sudo systemctl enable --now docker.service
sudo systemctl enable --now systemd-timesyncd.service</pre>
  <h2 id="3pIq">Запускаем (Firewall)</h2>
  <pre id="Maxq">sudo ufw default deny incoming
sudo ufw default allow outgoing</pre>
  <pre id="xOuU">sudo ufw allow ssh</pre>
  <pre id="DkZE">sudo ufw allow 8546/tcp
sudo ufw allow 8551/tcp     
sudo ufw allow 30303/tcp    
sudo ufw allow 30303/udp</pre>
  <pre id="12mU">sudo ufw allow 5053/tcp</pre>
  <pre id="YCsm">sudo ufw allow 40401/tcp </pre>
  <pre id="26PY">sudo ufw allow 8080/tcp</pre>
  <h2 id="KLqa">2.  Устанавливаем Geth (Execution Layer)</h2>
  <h2 id="zmts"></h2>
  <pre id="k4OX">GETH_VER=&quot;1.15.10-2bf8a789&quot;
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-$GETH_VER.tar.gz
tar -xf geth-linux-amd64-$GETH_VER.tar.gz
sudo mv geth-linux-amd64-$GETH_VER/geth /usr/local/bin/
sudo chmod +x /usr/local/bin/geth</pre>
  <p id="7M6S"></p>
  <h2 id="uXx6">3.  Создаем JWT для Engine API</h2>
  <pre id="Z8rY">mkdir -p ~/sepolia-node
openssl rand -hex 32 &gt; ~/sepolia-node/jwt.hex</pre>
  <h2 id="UwMv">4. Создаем systemd сервис для Geth</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="pMrp">sudo tee /etc/systemd/system/sepolia-geth.service &gt; /dev/null &lt;&lt;EOF<br />[Unit]<br />Description=Sepolia Geth Node<br />After=network.target</p>
    <p id="aWJL">[Service]<br />Type=simple<br />User=root<br />WorkingDirectory=/root/sepolia-node<br />ExecStart=/usr/local/bin/geth --sepolia \<br />  --datadir /root/sepolia-node/geth \<br />  --syncmode snap \<br />  --cache 4096 \<br />  --http --http.addr 127.0.0.1 --http.port 8545 \<br />  --http.api eth,net,engine,web3,txpool,debug \<br />  --authrpc.addr 0.0.0.0 --authrpc.port 8551 \<br />  --authrpc.jwtsecret /root/sepolia-node/jwt.hex \<br />  --authrpc.vhosts=* \<br />  --metrics --pprof --pprof.addr 0.0.0.0 --pprof.port 6060<br />Restart=always<br />RestartSec=10</p>
    <p id="t8QN">[Install]<br />WantedBy=multi-user.target<br />EOF</p>
  </section>
  <h2 id="yuzC">Запускаем сервис</h2>
  <pre id="ZMxo">sudo systemctl daemon-reload
sudo systemctl enable --now sepolia-geth</pre>
  <h2 id="WK0s">5. Установливаем Prysm  он же Beacon </h2>
  <pre id="BLBw">sudo install -d -o $USER /opt/prysm
curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh -o /opt/prysm/prysm.sh
chmod +x /opt/prysm/prysm.sh</pre>
  <h2 id="fObG">6.  Systemd сервис для Prysm</h2>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="nBoc">sudo tee /etc/systemd/system/sepolia-prysm.service &gt; /dev/null &lt;&lt;EOF<br />[Unit]<br />Description=Sepolia Prysm Beacon Node<br />After=network.target sepolia-geth.service<br />Requires=sepolia-geth.service</p>
    <p id="1VUg">[Service]<br />Type=simple<br />User=root<br />WorkingDirectory=/root/sepolia-node<br />ExecStart=/opt/prysm/prysm.sh beacon-chain \<br />  --sepolia \<br />  --datadir=/root/sepolia-node/prysm \<br />  --execution-endpoint=http://localhost:8551 \<br />  --jwt-secret=/root/sepolia-node/jwt.hex \<br />  --genesis-beacon-api-url=https://lodestar-sepolia.chainsafe.io \<br />  --checkpoint-sync-url=https://sepolia.checkpoint-sync.ethpandaops.io \<br />  --accept-terms-of-use \<br />  --rpc-host=127.0.0.1 \<br />  --rpc-port=5052 \<br />  --grpc-gateway-host=127.0.0.1 \<br />  --grpc-gateway-port=3500<br />Restart=always<br />RestartSec=10</p>
    <p id="LSMB">[Install]<br />WantedBy=multi-user.target<br />EOF</p>
  </section>
  <h2 id="5kzx"></h2>
  <pre id="eyP1">sudo systemctl daemon-reload
sudo systemctl enable --now sepolia-prysm</pre>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="si7n">RPC начнет синхронизацию, которая занимает порядка 12 часов может больше.</p>
  </section>
  <h2 id="KrlV"> Проверка логов запущенных сервисов</h2>
  <h3 id="iSWw">Лог Geth:</h3>
  <pre id="706B">journalctl -u sepolia-geth -f</pre>
  <p id="LMIy">Увидите процесс синхронизации</p>
  <p id="bRWV"><strong>Лог Prysm (Beacon):</strong></p>
  <pre id="f42Z">journalctl -u sepolia-prysm -f</pre>
  <p id="X4WU">Так же будут логи работы без ошибок </p>
  <p id="pQGB">Проверка статуса синхронизации</p>
  <pre id="nuX0">curl -s -X POST http://localhost:8545 \
  -H &quot;Content-Type: application/json&quot; \
  --data &#x27;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;method&quot;:&quot;eth_syncing&quot;,&quot;params&quot;:[],&quot;id&quot;:1}&#x27;</pre>
  <pre id="Ad9O">curl http://127.0.0.1:3500/eth/v1/node/syncing</pre>
  <p id="1fVy">Если <strong>синхронизация в процессе</strong>:<br />{<br />  &quot;jsonrpc&quot;: &quot;2.0&quot;,<br />  &quot;id&quot;: 1,<br />  &quot;result&quot;: {<br />    &quot;startingBlock&quot;: &quot;0x74c200&quot;,<br />    &quot;currentBlock&quot;: &quot;0x75b30a&quot;,<br />    &quot;highestBlock&quot;: &quot;0x806abc&quot;<br />  }<br />}</p>
  <p id="Sam0">Если <strong>синхронизация завершена</strong>:</p>
  <figure id="NXJI" class="m_original">
    <img src="https://img4.teletype.in/files/b7/d8/b7d8c05b-fc4d-4520-83f2-db193f2ca184.png" width="1030" />
  </figure>
  <p id="52Cc">RPC выдаст актуальные блоки и можно закидывать RPC в конфиг aztec</p>
  <p id="Mrsa"></p>
  <pre id="CTKt">--l1-rpc-urls http://127.0.0.1:8545
--l1-consensus-host-urls http://127.0.0.1:3500</pre>
  <p id="Jx8B">Настройка </p>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="MMK2" data-align="center">7.  Если Aztec на другом сервере настраиваем защиту  NGINX (если все локально NGINX не нужен так как вы не открываетесь в наружу) </h2>
  </section>
  <p id="538C"></p>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="538C">ВНИМАНИЕ!!! AZTEC не принимает авторизацию через ЛОГИН ПАРОЛЬ, по этому делайте авторизацию через IP или токен. </p>
  </section>
  <p id="qjch">В гайди пример через IP</p>
  <pre id="538C">sudo apt install nginx apache2-utils</pre>
  <h2 id="qehG">Cоздаем конфиг для Geth </h2>
  <p id="UqgU">(строка <em>allow IP СЕРВЕРА AZTEC&quot;</em> указываем IP где стоит нода aztec)</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="FMKD">sudo tee /etc/nginx/sites-available/geth-rpc &gt; /dev/null &lt;&lt;EOF<br />server {<br />    listen 8546;<br />    server_name _;</p>
    <p id="UYsQ">    location / {<br />        allow 127.0.0.1;<br />        allow IP СЕРВЕРА AZTEC;<br />        deny all;</p>
    <p id="7FoC">        proxy_pass <a href="http://127.0.0.1:8545" target="_blank">http://127.0.0.1:8545</a>;<br />        proxy_set_header Host \$host;<br />        proxy_set_header X-Real-IP \$remote_addr;<br />        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;<br />    }<br />}<br />EOF</p>
  </section>
  <h2 id="YVHW">Конфиг для Prysm (Beacon → 5053):</h2>
  <p id="SN56">(строка <em>allow IP СЕРВЕРА AZTEC&quot;</em> указываем IP где стоит нода aztec)</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="rD5V">sudo tee /etc/nginx/sites-available/beacon-rpc &gt; /dev/null &lt;&lt;EOF<br />server {<br />    listen 5053;</p>
    <p id="Stag">    location / {<br />        allow 127.0.0.1;<br />        allow IP СЕРВЕРА  AZTEC;<br />        deny all;</p>
    <p id="rnzN">        proxy_pass <a href="http://127.0.0.1:3500" target="_blank">http://127.0.0.1:3500</a>;<br />        proxy_set_header Host \$host;<br />        proxy_set_header X-Real-IP \$remote_addr;<br />        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;<br />    }<br />}<br />EOF</p>
  </section>
  <p id="vxSa">Активируем и перезапускаем NGINX:</p>
  <pre id="HHhY">sudo ln -s /etc/nginx/sites-available/geth-rpc /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/beacon-rpc /etc/nginx/sites-enabled/
sudo nginx -t &amp;&amp; sudo systemctl reload nginx</pre>
  <p id="RHnM">Проверяем ответ снаружи. </p>
  <p id="hBL7">Заходим на сервер aztec ноды </p>
  <pre id="S8ok">curl http://IP сервера RPC:8546 \
  -H &quot;Content-Type: application/json&quot; \
  --data &#x27;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;method&quot;:&quot;eth_syncing&quot;,&quot;params&quot;:[],&quot;id&quot;:1}&#x27;</pre>
  <pre id="GwHC">curl http://IP сервера RPC:5053/eth/v1/node/syncing</pre>
  <p id="XRNq">вывод должен быть такой же как и в случае с локальным выводом, далее добавляем в конфиг адрес RPC</p>
  <pre id="w9ko">--l1-rpc-urls http://IP сервера RPC:8546
--l1-consensus-host-urls http://IP сервера RPC:5053</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/6J6AhmrAvDc</guid><link>https://teletype.in/@skcrypto/6J6AhmrAvDc?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/6J6AhmrAvDc?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Pipe network TESTNET. Как установить  POP ноду на Ubuntu 24</title><pubDate>Thu, 15 May 2025 16:23:13 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/73/6b/736b4a6f-2896-4530-a740-105fd345ba6a.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/45/8f/458f07f6-3819-48a3-9222-e12fea5c7b8f.png"></img>ОБРАТИТЕ ВНИМАНИЕ НУЖНА ИМЕННО Ubuntu 24]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="eTpP">ОБРАТИТЕ ВНИМАНИЕ НУЖНА ИМЕННО Ubuntu 24</p>
  </section>
  <p id="wgov"><strong>ОС</strong>: Ubuntu 24.04</p>
  <p id="N5tQ"><strong>CPU</strong>: минимум 4 ядра</p>
  <p id="cXbS"><strong>RAM</strong>: минимум 16 ГБ</p>
  <p id="bdpn"><strong>Диск</strong>: SSD с минимум 100 ГБ свободного пространства</p>
  <p id="JgR3"><strong>МОЖНО И ПОДЕШЕВЛЕ, ПРОСТО В КОНФИГЕ УКАЗЫВАЙТЕ 50-60% от мощностей</strong></p>
  <p id="HfMI"><strong>Сеть</strong>: стабильное подключение с пропускной способностью 1 Гбит/с или выше<br />я предпочитаю на <a href="https://xorek.cloud/?from=11437" target="_blank">xorek.cloud</a></p>
  <figure id="c4M7" class="m_original">
    <img src="https://img1.teletype.in/files/45/8f/458f07f6-3819-48a3-9222-e12fea5c7b8f.png" width="480" />
  </figure>
  <p id="fvF2">Открываем VPS<br /></p>
  <h2 id="mlXF">🧰 Установка необходимых зависимостей</h2>
  <pre id="DW3A">sudo apt update &amp;&amp; sudo apt install -y \
  curl \
  screen \
  nano \
  ufw \
  jq \
  psmisc \
  net-tools \
  git \
  build-essential \
  libssl-dev \
  ca-certificates \
  lsof \
  unzip \
  wget</pre>
  <h3 id="BuBq">2. Сетевые настройки (для производительности):</h3>
  <pre id="o3B8">cat &gt; /etc/sysctl.d/99-popcache.conf &lt;&lt; EOL
net.ipv4.ip_local_port_range = 1024 65535
net.core.somaxconn = 65535
net.ipv4.tcp_low_latency = 1
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOL

sysctl -p /etc/sysctl.d/99-popcache.conf</pre>
  <pre id="ganw">cat &gt; /etc/security/limits.d/popcache.conf &lt;&lt; EOL
*    hard nofile 65535
*    soft nofile 65535
EOL</pre>
  <p id="3MzX">Перезагружаем Сервер</p>
  <pre id="Vdd2">reboot</pre>
  <p id="ANl0">4. Настройка firewall (если требуется):</p>
  <p id="EGak">ufw allow ssh<br />ufw allow 80/tcp<br />ufw allow 443/tcp<br />ufw enable<br /></p>
  <p id="Ymt9">📥 <strong> Загрузка и установка бинарного файла</strong></p>
  <pre id="T0ho">mkdir -p /opt/popcache</pre>
  <pre id="Evw1">mkdir -p /opt/popcache/logs</pre>
  <pre id="8z9V">cd /opt/popcache</pre>
  <p id="s93T">Скачайте последнюю версию бинарного файла</p>
  <pre id="HRgA">wget https://download.pipe.network/static/pop-v0.3.0-linux-x64.tar.gz</pre>
  <pre id="icpm">tar -xzf pop-v0.3.0-linux-x64.tar.gz</pre>
  <pre id="uxSn">chmod 755 /opt/popcache/pop</pre>
  <pre id="uZ3Z">pop --help</pre>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="e0Q2"><strong>Видим вот такой вывод значит все прошло успешно</strong><br />Pipe Network CDN PoP Cache Node<br />Usage:<br />  ./pop                                    Start the PoP node<br />  ./pop create-config [path]               Create a default config file (default: config.json)<br />  ./pop --regenerate-hw-signature          Regenerate the hardware signature<br />  ./pop -h, --help                         Show this help message</p>
  </section>
  <h2 id="06wZ">⚙️ Шаг 3: Настройка конфигурации</h2>
  <ol id="igP0">
    <li id="28xP">Создайте файл конфигурации:</li>
  </ol>
  <pre id="ltoC">./pop create-config</pre>
  <pre id="CMza">nano /opt/popcache/config.json</pre>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="f8aX">{<br />  &quot;pop_name&quot;: &quot;Ваше имя POP (любое)&quot;,<br />  &quot;pop_location&quot;: &quot;Страна где стоит Сервер&quot;,<br />  &quot;invite_code&quot;: &quot;ВАШ ИНВАЙТ КОД&quot;,<br />  &quot;server&quot;: {<br />    &quot;host&quot;: &quot;0.0.0.0&quot;,<br />    &quot;port&quot;: 443,<br />    &quot;http_port&quot;: 80,<br />    &quot;workers&quot;: 4<br />  },<br />  &quot;cache_config&quot;: {<br />    &quot;memory_cache_size_mb&quot;: 8192,  <strong>!!!УКАЗАТЬ 50-60% от вашей оперативки</strong><br />    &quot;disk_cache_path&quot;: &quot;./cache&quot;,<br />    &quot;disk_cache_size_gb&quot;: 100, <strong>!!!УКАЗАТЬ 50-60% от вашего диска</strong><br />    &quot;default_ttl_seconds&quot;: 86400,<br />    &quot;respect_origin_headers&quot;: true,<br />    &quot;max_cacheable_size_mb&quot;: 1024<br />  },<br />  &quot;api_endpoints&quot;: {<br />    &quot;base_url&quot;: &quot;<a href="https://dataplane.pipenetwork.com" target="_blank">https://dataplane.pipenetwork.com</a>&quot;<br />  },<br />  &quot;identity_config&quot;: {<br />    &quot;node_name&quot;: &quot;ЛЮБОЕ ИМЯ НОДЫ&quot;,<br />    &quot;name&quot;: &quot;ВАШЕ ИМЯ&quot;,<br />    &quot;email&quot;: &quot;ВАША ПОЧТА НА КОТОРУЮ ПРИШЛА ССЫЛКА НА ТЕСТНЕТ&quot;,<br />    &quot;website&quot;: &quot;<a href="https://your-website.com" target="_blank">https://your-website.com</a>&quot;,<br />    &quot;discord&quot;: &quot;ЮСЕРНЕЙМ В ДИСКОРДЕ&quot;,<br />    &quot;telegram&quot;: &quot;ТЕЛЕГРАМ ЮЗЕРНЕЙМ&quot;,<br />    &quot;solana_pubkey&quot;: &quot;АДРЕС КОШЕЛЬКА СОЛАНА (ПУБЛИЧНЫЙ)&quot;<br />  }<br />}</p>
  </section>
  <p id="FBHr">Вводим свои значения затем CTRL+O -&gt; Enter -&gt; CTR+X</p>
  <p id="UcJU">Сохраните файл CTRL+O -&gt; Enter -&gt; CTR+X и выполните:</p>
  <p id="xZ1S">Создание systemd-сервиса:</p>
  <pre id="2x63">nano /etc/systemd/system/popcache.service</pre>
  <p id="kfFi">Сохраняем access_token и refresh_token в надежное место</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="5vXY">[Unit]<br />Description=POP Cache Node<br />After=network.target</p>
    <p id="6VXs">[Service]<br />Type=simple<br />User=root<br />Group=root<br />WorkingDirectory=/opt/popcache<br />ExecStart=/opt/popcache/pop<br />Restart=always<br />RestartSec=5<br />LimitNOFILE=65535<br />StandardOutput=append:/opt/popcache/logs/stdout.log<br />StandardError=append:/opt/popcache/logs/stderr.log<br />Environment=POP_CONFIG_PATH=/opt/popcache/config.json</p>
    <p id="bhJS">[Install]<br />WantedBy=multi-user.target</p>
  </section>
  <h2 id="v2yF">Запуск и проверка:</h2>
  <pre id="Rc0R">systemctl daemon-reload
systemctl enable popcache
systemctl start popcache</pre>
  <pre id="E9Rl">systemctl status popcache</pre>
  <figure id="zUke" class="m_original">
    <img src="https://img2.teletype.in/files/53/5b/535b1bcb-3bfc-4780-9bac-359ca2adc8b2.png" width="890" />
  </figure>
  <pre id="KbAR">journalctl -u popcache -f </pre>
  <p id="E0tf">Просмотр логов:</p>
  <p id="wxta">tail -f /opt/popcache/logs/stdout.log<br />tail -f /opt/popcache/logs/stderr.log</p>
  <p id="Rind">если видим такую историю</p>
  <figure id="RY90" class="m_original">
    <img src="https://img1.teletype.in/files/0d/8d/0d8d1c19-b6be-4d73-ad2f-4975143637a6.png" width="992" />
  </figure>
  <pre id="c27f">systemctl stop popcache</pre>
  <pre id="e7he">nano /opt/popcache/config.json</pre>
  <p id="jVeH">удаляем из кофига </p>
  <p id="rvHN">  &quot;invite_code&quot;: &quot;ВАШ ИНВАЙТ КОД&quot;,<br /><br />ждем 2 часa</p>
  <pre id="o7u1">systemctl start popcache </pre>
  <pre id="cGmU">systemctl enable popcache</pre>
  <h3 id="pPTE"></h3>
  <p id="yq4U">🔍 Полезные команды:</p>
  <ul id="ADeP">
    <li id="KAwt">Проверка состояния:</li>
  </ul>
  <p id="loF9">curl <a href="http://localhost/health" target="_blank">http://localhost/health</a></p>
  <p id="lI4J">В браузере: </p>
  <p id="jgbO">https://&lt;your-vps-ip&gt;/state</p>
  <p id="ndls">check state curl -sk <a href="https://localhost/state" target="_blank">https://localhost/state</a> &amp;&amp; echo -e &quot;\n&quot; </p>
  <p id="oCuf">check metrics curl -sk <a href="https://localhost/metrics" target="_blank">https://localhost/metrics</a> &amp;&amp; echo -e &quot;\n&quot; </p>
  <p id="KLW5">check health curl -sk <a href="https://localhost/health" target="_blank">https://localhost/health</a> &amp;&amp; echo -e &quot;\n&quot;</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/YcbntgbDQvE</guid><link>https://teletype.in/@skcrypto/YcbntgbDQvE?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/YcbntgbDQvE?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Как создать архив для диплоя NFT коллекции в aztec</title><pubDate>Mon, 05 May 2025 19:35:22 GMT</pubDate><description><![CDATA[<img src="https://img3.teletype.in/files/6d/a1/6da1e232-6474-4019-8492-5f382c33fd52.png"></img>Создаем текстовый документ c помощью «Блокнот» следующего содержания:]]></description><content:encoded><![CDATA[
  <p id="nwBi">Создаем текстовый документ c помощью «Блокнот» следующего содержания:</p>
  <pre id="Pd9g">{
  &quot;count&quot;: 3,
  &quot;nfts&quot;: [
    {
      &quot;name&quot;: &quot;NFT #1&quot;,
      &quot;description&quot;: &quot;Description for NFT #1&quot;,
      &quot;traits&quot;: [
        {
          &quot;trait_type&quot;: &quot;background&quot;,
          &quot;value&quot;: &quot;blue&quot;
        },
        {
          &quot;trait_type&quot;: &quot;is rare&quot;,
          &quot;value&quot;: true
        }
      ]
    },
    {
      &quot;name&quot;: &quot;NFT #2&quot;,
      &quot;description&quot;: &quot;Description for NFT #2&quot;,
      &quot;traits&quot;: [
        {
          &quot;trait_type&quot;: &quot;background&quot;,
          &quot;value&quot;: &quot;blue&quot;
        },
        {
          &quot;trait_type&quot;: &quot;is rare&quot;,
          &quot;value&quot;: true
        }
      ]
    },
    {
      &quot;name&quot;: &quot;NFT #3&quot;,
      &quot;description&quot;: &quot;Description for NFT #3&quot;,
      &quot;traits&quot;: [
        {
          &quot;trait_type&quot;: &quot;background&quot;,
          &quot;value&quot;: &quot;blue&quot;
        },
        {
          &quot;trait_type&quot;: &quot;is rare&quot;,
          &quot;value&quot;: true
        }
      ]
    }
  ]
}</pre>
  <p id="Xb2l">Создать простой текстовый документ, вставить туда нужный код JSON данных и поменять расширение файла на *.json.</p>
  <p id="jPzS">Откройте любой текстовый редактор, например, редактор «Блокнот», который входит в состав операционной системы Windows. Найти эту программу можно через главное меню Пуск -&gt; Все программы -&gt;Стандартные -&gt; Блокнот.</p>
  <p id="GFam">В главном меню программы выбираем «Файл-Сохранить как».</p>
  <p id="FJfR">И сохраняем текстовый файл с расширением *.txt.</p>
  <p id="sgRg">Теперь нужно поменять расширение этого файла с *.txt на *.json. просто переименовывая его</p>
  <figure id="B1w0" class="m_original">
    <img src="https://img3.teletype.in/files/6d/a1/6da1e232-6474-4019-8492-5f382c33fd52.png" width="980" />
  </figure>
  <p id="GvSB">Далее берем несколько картинок (файл написан для 3х картинок) в формате PNG  и создаем папку images и запихиваем эту папку с картинками и json файл в архив у вас должна получится &quot;Сжатая ZIP-папка&quot;</p>
  <figure id="LlIi" class="m_original">
    <img src="https://img1.teletype.in/files/c5/49/c549572a-99f0-485d-8bed-9827826ed821.png" width="876" />
  </figure>
  <p id="xKZ1">Имя можете придумать ей любое</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@skcrypto/IVxHqfGNnk3</guid><link>https://teletype.in/@skcrypto/IVxHqfGNnk3?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto</link><comments>https://teletype.in/@skcrypto/IVxHqfGNnk3?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=skcrypto#comments</comments><dc:creator>skcrypto</dc:creator><title>Как установить aztec ноду на ubuntu 22.04</title><pubDate>Sat, 03 May 2025 20:19:23 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/34/20/3420c18f-2e6a-4933-b7a5-fdc16db87047.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/08/ea/08ea444d-6908-4f46-9490-9a867925472c.png"></img>Покупаем VPS (требования)
8 ядер СPU
16 GB of RAM
100+ Mb/s internet
1000 GB of free storage 
я предпочитаю https://contabo.com/  или на xorek.cloud просто докупив память до 1 TB]]></description><content:encoded><![CDATA[
  <p id="39IK">Покупаем VPS <em>(требования)</em><br />8 ядер СPU<br />16 GB of RAM<br />100+ Mb/s internet<br />1000 GB of free storage <br />я предпочитаю <a href="https://contabo.com/" target="_blank">https://contabo.com/</a>  или на <a href="https://xorek.cloud/?from=11437" target="_blank">xorek.cloud </a>просто докупив память до 1 TB</p>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="rhT1" data-align="center">Подготовка</h2>
  </section>
  <p id="3t3P">Нам понадобиться кошелек Метамаск, который нужно пополнить более чем на 2 ETH в сети Sepolia testnet <br />Краны:</p>
  <ul id="5qtL">
    <li id="WsQw"><strong><a href="https://sepoliafaucet.com/" target="_blank">https://sepoliafaucet.com</a></strong></li>
    <li id="X3QA"><strong><a href="https://infura.io/faucet/sepolia" target="_blank">https://infura.io/faucet/sepolia</a></strong></li>
    <li id="lZ3c"><strong><a href="https://faucet-sepolia.rockx.com/" target="_blank">https://faucet-sepolia.rockx.com</a></strong></li>
    <li id="oUyL"><strong><a href="https://access.rockx.com/faucet-sepolia" target="_blank">https://access.rockx.com/faucet-sepolia</a></strong></li>
    <li id="4nF8"><strong><a href="https://faucetlink.to/sepolia" target="_blank">https://faucetlink.to/sepolia</a></strong></li>
    <li id="uTKY"><a href="https://sepolia-faucet.pk910.de" target="_blank">https://sepolia-faucet.pk910.de</a></li>
  </ul>
  <p id="A3oh">Так же нам понадобиться индивидуальные RPC Sepolia testnet и RPC Sepolia testnet beacon </p>
  <ul id="JQgG">
    <li id="CHqh">RPC Sepolia можно взять на <a href="https://dashboard.alchemy.com/chains" target="_blank">https://dashboard.alchemy.com/chains</a> или <a href="https://www.ankr.com/rpc" target="_blank">https://www.ankr.com/rpc</a></li>
    <li id="4yvW">RPC Sepolia testnet beacon можно взять на <a href="https://console.chainstack.com/" target="_blank">https://console.chainstack.com/</a></li>
  </ul>
  <p id="ywV9">Регистрируемся по почте и запрашиваем адрес RPC для двух сетей </p>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="TyCv" data-align="center">Устанавливаем ноду</h2>
  </section>
  <p id="RQd8">Заходим на наш VPS root+пароль</p>
  <h2 id="BEcQ">🔧 Устанавливаем необходимые утилиты:</h2>
  <pre id="qpmR">curl -fsSL https://get.docker.com -o get-docker.sh</pre>
  <pre id="us7z">sh get-docker.sh</pre>
  <pre id="pIhU">sudo usermod -aG docker $USER</pre>
  <pre id="VQoz">newgrp docker</pre>
  <pre id="uK3A">docker --version</pre>
  <pre id="yXMC">apt update &amp;&amp; sudo apt install -y curl screen net-tools psmisc jq ufw nano</pre>
  <h2 id="GX03">📦 Установка AZTEC CLI:</h2>
  <pre id="bjEo">curl -fsSL https://install.aztec.network | bash</pre>
  <pre id="Zi8p">export PATH=&quot;$HOME/.aztec/bin:$PATH&quot;</pre>
  <pre id="vmOB">echo &#x27;export PATH=&quot;$HOME/.aztec/bin:$PATH&quot;&#x27; &gt;&gt; ~/.bashrc</pre>
  <pre id="VtJg">source ~/.bashrc</pre>
  <h2 id="d0C6">🔄 Обновление до последней версии testnet:</h2>
  <pre id="4XYK">aztec-up alpha-testnet</pre>
  <p id="6YHv">⚙️ Настройка параметров:</p>
  <pre id="5Y9w">IP=$(curl -s https://api.ipify.org)</pre>
  <pre id="T8A3">L1_RPC_URL=&quot;ВАШ SEPOLIA RPC&quot;</pre>
  <pre id="yvUw">L1_CONSENSUS_URL=&quot;ВАШ SEPOLIA Beacon&quot;</pre>
  <pre id="QPp9">VALIDATOR_PRIVATE_KEY=&quot;ВАШ_ПРИВАТНЫЙ_КЛЮЧ_...&quot;</pre>
  <pre id="TcAE">COINBASE_ADDRESS=&quot;ВАШ_АДРЕС_0x...&quot;</pre>
  <h2 id="8EtA">7. 📟 Создаtv файл запуска:</h2>
  <pre id="a27U">cat &gt; $HOME/start_aztec_node.sh &lt;&lt; EOL
#!/bin/bash
export PATH=\$PATH:\$HOME/.aztec/bin
aztec start --node --archiver --sequencer \\
  --network testnet \\
  --port 8080 \\
  --l1-rpc-urls $L1_RPC_URL \\
  --l1-consensus-host-urls $L1_CONSENSUS_URL \\
  --sequencer.validatorPrsivateKeys $VALIDATOR_PRIVATE_KEY \\
  --sequencer.coinbase $COINBASE_ADDRESS \\
  --p2p.p2pIp $IP
EOL

chmod +x $HOME/start_aztec_node.sh</pre>
  <h2 id="XnlY">8. ▶️ Запуск ноды:</h2>
  <pre id="ZPGG">screen -S aztec</pre>
  <pre id="8wyQ">./start_aztec_node.sh</pre>
  <p id="9wd3">Видим вот такие логи значит началась синхронизация</p>
  <figure id="NfVE" class="m_original">
    <img src="https://img1.teletype.in/files/08/ea/08ea444d-6908-4f46-9490-9a867925472c.png" width="1589" />
  </figure>
  <p id="lS8k">Ждем 10 минут отправляемся в дискорд на канал<code>#operators | start-here</code> </p>
  <p id="hB1H">находим свежий пост с данными нам интересен <strong>Proven block</strong></p>
  <figure id="uK0F" class="m_original">
    <img src="https://img2.teletype.in/files/5e/f7/5ef730d1-83c0-4e4d-9a31-77f5a14f7bf3.png" width="428" />
  </figure>
  <p id="GeOy">Возвращаемся на сервер получаем номер блока который должен совпадать с <strong>Proven блоком</strong> в дискорде (значение динамическое)</p>
  <pre id="d2gZ">curl -s -X POST -H &#x27;Content-Type: application/json&#x27; -d &#x27;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;method&quot;:&quot;node_getL2Tips&quot;,&quot;params&quot;:[],&quot;id&quot;:67}&#x27; http://localhost:8080 | jq -r &#x27;.result.proven.number&#x27;</pre>
  <pre id="2KcC">или
bash &lt;(curl -s https://raw.githubusercontent.com/cerberus-node/aztec-network/refs/heads/main/sync-check.sh)</pre>
  <figure id="tc01" class="m_original">
    <img src="https://img3.teletype.in/files/ae/b8/aeb8adc5-4a0c-4270-a1ec-a2f257912cbb.png" width="1533" />
  </figure>
  <p id="t5NM">В следующей команде заменяем block-number на полученный номер блока </p>
  <pre id="PVyI">curl -s -X POST -H &#x27;Content-Type: application/json&#x27; -d &#x27;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;method&quot;:&quot;node_getArchiveSiblingPath&quot;,&quot;params&quot;:[&quot;block-number&quot;,&quot;block-number&quot;],&quot;id&quot;:67}&#x27; http://localhost:8080 | jq -r &quot;.result&quot;</pre>
  <p id="uK3I">получаем вывод proof </p>
  <h2 id="bSnM">8. 📟Получение роли Apprentice в Discord</h2>
  <p id="rGNl">После запуска и синхронизации узла вы можете получить роль Apprentice в Discord-сервере Aztec</p>
  <ol id="TJ5X">
    <li id="b4u5">Перейдите в канал <code>#operators | start-here</code> </li>
    <li id="eFin">Выполните команду <code>/operator start</code>.</li>
    <li id="TXBK">Вас попросят ввести:</li>
    <ul id="hvta">
      <li id="pttT"><strong>Address</strong>: ваш адрес валидатора (например, <code>0x72977488379a24F140139972b3b06bD873Aa0d45</code>).</li>
      <li id="uA4Z"><strong>Block-number</strong>: номер последнего подтверждённого блока (полученный ранее).</li>
      <li id="zJWc"><strong>Proof</strong>: доказательство синхронизации, которое мы дак же получили</li>
    </ul>
  </ol>
  <h2 id="edns"><strong>9.  Регистрация в качестве валидатора</strong></h2>
  <p id="K0Es">После полной синхронизации узла вы можете зарегистрироваться в качестве валидатора, выполнив следующую команду:</p>
  <pre id="YITs">aztec add-l1-validator \
  --l1-rpc-urls ВАШ RPC Sepolia \
  --private-key ВАШ_ПРИВАТНЫЙ_КЛЮЧ_.. \
  --attester ВАШ_АДРЕС_0x... \
  --proposer-eoa ВАШ_АДРЕС_0x... \
  --staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \
  --l1-chain-id 11155111
</pre>
  <p id="5SgX"><br />При попытке зарегистрироваться в качестве валидатора вы можете увидеть ошибку типа ValidatorQuotaFilledUntil, что означает, что дневная квота достигнута — преобразуйте предоставленную временную метку Unix в местное время, чтобы узнать, когда вы можете снова попытаться зарегистрироваться в качестве валидатора.<br /></p>
  <figure id="lSy3" class="m_original">
    <img src="https://img3.teletype.in/files/e5/53/e5539717-9241-4f19-9f73-a867c13bff9c.png" width="627" />
  </figure>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="H0os" data-align="center">ОБНОВЛЯЕМ НОДУ</p>
  </section>
  <h4 id="TI4v"> 1. Останови текущую ноду:</h4>
  <p id="jfKc">Если она запущена в <code>screen</code></p>
  <pre id="1tSu">screen -r aztec</pre>
  <p id="024V">И останови сочетанием <code>Ctrl+C</code>, потом выйди:</p>
  <p id="FObH"><strong>3. Обновляем ПО до новой версии:</strong></p>
  <pre id="DdSX">aztec-up latest</pre>
  <p id="zgVX"><strong>4. Запусти снова:</strong></p>
  <pre id="lidF">./start_aztec_node.sh</pre>
  <p id="Xkp4">Проверить версию</p>
  <pre id="LKHw">aztec -V</pre>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="d6Nu" data-align="center">УСТРАНЯЕМ ОШИБКИ</p>
  </section>
  <figure id="uYlb" class="m_original">
    <img src="https://img3.teletype.in/files/6e/a5/6ea55a0d-3452-482b-b436-bc1fe59d92a5.png" width="735" />
  </figure>
  <p id="ZRed">ОШИКА НЕХВАТКИ ПАМЯТИ <br />Node.js в Aztec CLI по умолчанию использует лимит ~1.5–2 ГБ но в пике бывает 6 ГБ</p>
  <p id="7Isz">Добавляем в файл запуска строку </p>
  <pre id="E5EE">nano $HOME/start_aztec_node.sh</pre>
  <pre id="qFEE">export NODE_OPTIONS=&quot;--max-old-space-size=8192&quot;</pre>
  <p id="mFf5">CTRL+O -&gt; ENTR -&gt; CTRL+X</p>
  <p id="5IX4">Файл запуска должен выглядеть так: </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="YeMg">#!/bin/bash</p>
    <p id="Q2OA">export PATH=$PATH:$HOME/.aztec/bin<br />export LOG_LEVEL=debug<br />export NODE_OPTIONS=&quot;--max-old-space-size=8192&quot;</p>
    <p id="Zeik">aztec start --node --archiver --sequencer \<br />  --network alpha-testnet \<br />  --port 8080 \<br />  --l1-rpc-urls ВАШ RPC \<br />  --l1-consensus-host-urls ВАШ beacon RPC \<br />  --sequencer.validatorPrivateKeys Ваш приватник \<br />  --sequencer.coinbase Ваш адрес \<br />  --p2p.p2pIp ВАШ IP </p>
  </section>
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="KJzY" data-align="center">АВТОМАТИЧЕСКОЕ ОБНОВЛЕНИЕ</p>
  </section>
  <pre id="gjxU">nano $HOME/start_aztec_node.sh</pre>
  <p id="h63z">редактируем строку aztec start</p>
  <pre id="py3S">aztec start --node --archiver --sequencer --auto-update config-and-version \</pre>
  <p id="eghu">CTRL+O -&gt; ENTR -&gt; CTRL+X</p>
  <p id="MFeX">Создаем run_forever.sh:</p>
  <pre id="TNPm">nano $HOME/run_forever.sh</pre>
  <p id="wKa0">Вставляем туда:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ub9y">#!/bin/bash<br />while true; do<br />  /root/.aztec/bin/aztec-up latest<br />  ./start_aztec_node.sh<br />  echo &quot;Node stopped. Restarting in 90 seconds...&quot;<br />  sleep 90<br />done</p>
  </section>
  <p id="HZ6U">CTRL+O -&gt; ENTR -&gt; CTRL+X</p>
  <pre id="6I41">chmod +x $HOME/run_forever.sh</pre>
  <p id="DqwV">Теперь запуск ноды будет через команду </p>
  <pre id="s5GD">./run_forever.sh</pre>
  <p id="w6sr">В случае если нода автоматически обновится и остановится файл автоматически её перезапустит</p>
  <h2 id="tXNd">Или можно сделать systemd как вам удобно</h2>

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