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

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

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

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

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

</content></entry><entry><id>skcrypto:i-jWt4LXMB_</id><link rel="alternate" type="text/html" href="https://teletype.in/@skcrypto/i-jWt4LXMB_?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=skcrypto"></link><title>Как установить Nexus CLI на Ubuntu 22.04</title><published>2025-06-23T18:04:15.029Z</published><updated>2026-03-11T08:35:54.696Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/96/88/96886671-f628-4fd4-9e1f-9ba287f08ac4.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ad/39/ad39fbb9-d9ca-461e-b4fe-6df6f7cc1d57.png&quot;&gt;Покупаем VPS (чем мощнее тем лучше фармит)

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

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

</content></entry><entry><id>skcrypto:6J6AhmrAvDc</id><link rel="alternate" type="text/html" href="https://teletype.in/@skcrypto/6J6AhmrAvDc?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=skcrypto"></link><title>Pipe network TESTNET. Как установить  POP ноду на Ubuntu 24</title><published>2025-05-15T16:23:13.988Z</published><updated>2025-05-18T06:47:17.277Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/73/6b/736b4a6f-2896-4530-a740-105fd345ba6a.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/45/8f/458f07f6-3819-48a3-9222-e12fea5c7b8f.png&quot;&gt;ОБРАТИТЕ ВНИМАНИЕ НУЖНА ИМЕННО Ubuntu 24</summary><content type="html">
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;eTpP&quot;&gt;ОБРАТИТЕ ВНИМАНИЕ НУЖНА ИМЕННО Ubuntu 24&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wgov&quot;&gt;&lt;strong&gt;ОС&lt;/strong&gt;: Ubuntu 24.04&lt;/p&gt;
  &lt;p id=&quot;N5tQ&quot;&gt;&lt;strong&gt;CPU&lt;/strong&gt;: минимум 4 ядра&lt;/p&gt;
  &lt;p id=&quot;cXbS&quot;&gt;&lt;strong&gt;RAM&lt;/strong&gt;: минимум 16 ГБ&lt;/p&gt;
  &lt;p id=&quot;bdpn&quot;&gt;&lt;strong&gt;Диск&lt;/strong&gt;: SSD с минимум 100 ГБ свободного пространства&lt;/p&gt;
  &lt;p id=&quot;JgR3&quot;&gt;&lt;strong&gt;МОЖНО И ПОДЕШЕВЛЕ, ПРОСТО В КОНФИГЕ УКАЗЫВАЙТЕ 50-60% от мощностей&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;HfMI&quot;&gt;&lt;strong&gt;Сеть&lt;/strong&gt;: стабильное подключение с пропускной способностью 1 Гбит/с или выше&lt;br /&gt;я предпочитаю на &lt;a href=&quot;https://xorek.cloud/?from=11437&quot; target=&quot;_blank&quot;&gt;xorek.cloud&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;c4M7&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/45/8f/458f07f6-3819-48a3-9222-e12fea5c7b8f.png&quot; width=&quot;480&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fvF2&quot;&gt;Открываем VPS&lt;br /&gt;&lt;/p&gt;
  &lt;h2 id=&quot;mlXF&quot;&gt;🧰 Установка необходимых зависимостей&lt;/h2&gt;
  &lt;pre id=&quot;DW3A&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install -y \
  curl \
  screen \
  nano \
  ufw \
  jq \
  psmisc \
  net-tools \
  git \
  build-essential \
  libssl-dev \
  ca-certificates \
  lsof \
  unzip \
  wget&lt;/pre&gt;
  &lt;h3 id=&quot;BuBq&quot;&gt;2. Сетевые настройки (для производительности):&lt;/h3&gt;
  &lt;pre id=&quot;o3B8&quot;&gt;cat &amp;gt; /etc/sysctl.d/99-popcache.conf &amp;lt;&amp;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&lt;/pre&gt;
  &lt;pre id=&quot;ganw&quot;&gt;cat &amp;gt; /etc/security/limits.d/popcache.conf &amp;lt;&amp;lt; EOL
*    hard nofile 65535
*    soft nofile 65535
EOL&lt;/pre&gt;
  &lt;p id=&quot;3MzX&quot;&gt;Перезагружаем Сервер&lt;/p&gt;
  &lt;pre id=&quot;Vdd2&quot;&gt;reboot&lt;/pre&gt;
  &lt;p id=&quot;ANl0&quot;&gt;4. Настройка firewall (если требуется):&lt;/p&gt;
  &lt;p id=&quot;EGak&quot;&gt;ufw allow ssh&lt;br /&gt;ufw allow 80/tcp&lt;br /&gt;ufw allow 443/tcp&lt;br /&gt;ufw enable&lt;br /&gt;&lt;/p&gt;
  &lt;p id=&quot;Ymt9&quot;&gt;📥 &lt;strong&gt; Загрузка и установка бинарного файла&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;T0ho&quot;&gt;mkdir -p /opt/popcache&lt;/pre&gt;
  &lt;pre id=&quot;Evw1&quot;&gt;mkdir -p /opt/popcache/logs&lt;/pre&gt;
  &lt;pre id=&quot;8z9V&quot;&gt;cd /opt/popcache&lt;/pre&gt;
  &lt;p id=&quot;s93T&quot;&gt;Скачайте последнюю версию бинарного файла&lt;/p&gt;
  &lt;pre id=&quot;HRgA&quot;&gt;wget https://download.pipe.network/static/pop-v0.3.0-linux-x64.tar.gz&lt;/pre&gt;
  &lt;pre id=&quot;icpm&quot;&gt;tar -xzf pop-v0.3.0-linux-x64.tar.gz&lt;/pre&gt;
  &lt;pre id=&quot;uxSn&quot;&gt;chmod 755 /opt/popcache/pop&lt;/pre&gt;
  &lt;pre id=&quot;uZ3Z&quot;&gt;pop --help&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;e0Q2&quot;&gt;&lt;strong&gt;Видим вот такой вывод значит все прошло успешно&lt;/strong&gt;&lt;br /&gt;Pipe Network CDN PoP Cache Node&lt;br /&gt;Usage:&lt;br /&gt;  ./pop                                    Start the PoP node&lt;br /&gt;  ./pop create-config [path]               Create a default config file (default: config.json)&lt;br /&gt;  ./pop --regenerate-hw-signature          Regenerate the hardware signature&lt;br /&gt;  ./pop -h, --help                         Show this help message&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;06wZ&quot;&gt;⚙️ Шаг 3: Настройка конфигурации&lt;/h2&gt;
  &lt;ol id=&quot;igP0&quot;&gt;
    &lt;li id=&quot;28xP&quot;&gt;Создайте файл конфигурации:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;ltoC&quot;&gt;./pop create-config&lt;/pre&gt;
  &lt;pre id=&quot;CMza&quot;&gt;nano /opt/popcache/config.json&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;f8aX&quot;&gt;{&lt;br /&gt;  &amp;quot;pop_name&amp;quot;: &amp;quot;Ваше имя POP (любое)&amp;quot;,&lt;br /&gt;  &amp;quot;pop_location&amp;quot;: &amp;quot;Страна где стоит Сервер&amp;quot;,&lt;br /&gt;  &amp;quot;invite_code&amp;quot;: &amp;quot;ВАШ ИНВАЙТ КОД&amp;quot;,&lt;br /&gt;  &amp;quot;server&amp;quot;: {&lt;br /&gt;    &amp;quot;host&amp;quot;: &amp;quot;0.0.0.0&amp;quot;,&lt;br /&gt;    &amp;quot;port&amp;quot;: 443,&lt;br /&gt;    &amp;quot;http_port&amp;quot;: 80,&lt;br /&gt;    &amp;quot;workers&amp;quot;: 4&lt;br /&gt;  },&lt;br /&gt;  &amp;quot;cache_config&amp;quot;: {&lt;br /&gt;    &amp;quot;memory_cache_size_mb&amp;quot;: 8192,  &lt;strong&gt;!!!УКАЗАТЬ 50-60% от вашей оперативки&lt;/strong&gt;&lt;br /&gt;    &amp;quot;disk_cache_path&amp;quot;: &amp;quot;./cache&amp;quot;,&lt;br /&gt;    &amp;quot;disk_cache_size_gb&amp;quot;: 100, &lt;strong&gt;!!!УКАЗАТЬ 50-60% от вашего диска&lt;/strong&gt;&lt;br /&gt;    &amp;quot;default_ttl_seconds&amp;quot;: 86400,&lt;br /&gt;    &amp;quot;respect_origin_headers&amp;quot;: true,&lt;br /&gt;    &amp;quot;max_cacheable_size_mb&amp;quot;: 1024&lt;br /&gt;  },&lt;br /&gt;  &amp;quot;api_endpoints&amp;quot;: {&lt;br /&gt;    &amp;quot;base_url&amp;quot;: &amp;quot;&lt;a href=&quot;https://dataplane.pipenetwork.com&quot; target=&quot;_blank&quot;&gt;https://dataplane.pipenetwork.com&lt;/a&gt;&amp;quot;&lt;br /&gt;  },&lt;br /&gt;  &amp;quot;identity_config&amp;quot;: {&lt;br /&gt;    &amp;quot;node_name&amp;quot;: &amp;quot;ЛЮБОЕ ИМЯ НОДЫ&amp;quot;,&lt;br /&gt;    &amp;quot;name&amp;quot;: &amp;quot;ВАШЕ ИМЯ&amp;quot;,&lt;br /&gt;    &amp;quot;email&amp;quot;: &amp;quot;ВАША ПОЧТА НА КОТОРУЮ ПРИШЛА ССЫЛКА НА ТЕСТНЕТ&amp;quot;,&lt;br /&gt;    &amp;quot;website&amp;quot;: &amp;quot;&lt;a href=&quot;https://your-website.com&quot; target=&quot;_blank&quot;&gt;https://your-website.com&lt;/a&gt;&amp;quot;,&lt;br /&gt;    &amp;quot;discord&amp;quot;: &amp;quot;ЮСЕРНЕЙМ В ДИСКОРДЕ&amp;quot;,&lt;br /&gt;    &amp;quot;telegram&amp;quot;: &amp;quot;ТЕЛЕГРАМ ЮЗЕРНЕЙМ&amp;quot;,&lt;br /&gt;    &amp;quot;solana_pubkey&amp;quot;: &amp;quot;АДРЕС КОШЕЛЬКА СОЛАНА (ПУБЛИЧНЫЙ)&amp;quot;&lt;br /&gt;  }&lt;br /&gt;}&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;FBHr&quot;&gt;Вводим свои значения затем CTRL+O -&amp;gt; Enter -&amp;gt; CTR+X&lt;/p&gt;
  &lt;p id=&quot;UcJU&quot;&gt;Сохраните файл CTRL+O -&amp;gt; Enter -&amp;gt; CTR+X и выполните:&lt;/p&gt;
  &lt;p id=&quot;xZ1S&quot;&gt;Создание systemd-сервиса:&lt;/p&gt;
  &lt;pre id=&quot;2x63&quot;&gt;nano /etc/systemd/system/popcache.service&lt;/pre&gt;
  &lt;p id=&quot;kfFi&quot;&gt;Сохраняем access_token и refresh_token в надежное место&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;5vXY&quot;&gt;[Unit]&lt;br /&gt;Description=POP Cache Node&lt;br /&gt;After=network.target&lt;/p&gt;
    &lt;p id=&quot;6VXs&quot;&gt;[Service]&lt;br /&gt;Type=simple&lt;br /&gt;User=root&lt;br /&gt;Group=root&lt;br /&gt;WorkingDirectory=/opt/popcache&lt;br /&gt;ExecStart=/opt/popcache/pop&lt;br /&gt;Restart=always&lt;br /&gt;RestartSec=5&lt;br /&gt;LimitNOFILE=65535&lt;br /&gt;StandardOutput=append:/opt/popcache/logs/stdout.log&lt;br /&gt;StandardError=append:/opt/popcache/logs/stderr.log&lt;br /&gt;Environment=POP_CONFIG_PATH=/opt/popcache/config.json&lt;/p&gt;
    &lt;p id=&quot;bhJS&quot;&gt;[Install]&lt;br /&gt;WantedBy=multi-user.target&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;v2yF&quot;&gt;Запуск и проверка:&lt;/h2&gt;
  &lt;pre id=&quot;Rc0R&quot;&gt;systemctl daemon-reload
systemctl enable popcache
systemctl start popcache&lt;/pre&gt;
  &lt;pre id=&quot;E9Rl&quot;&gt;systemctl status popcache&lt;/pre&gt;
  &lt;figure id=&quot;zUke&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/53/5b/535b1bcb-3bfc-4780-9bac-359ca2adc8b2.png&quot; width=&quot;890&quot; /&gt;
  &lt;/figure&gt;
  &lt;pre id=&quot;KbAR&quot;&gt;journalctl -u popcache -f &lt;/pre&gt;
  &lt;p id=&quot;E0tf&quot;&gt;Просмотр логов:&lt;/p&gt;
  &lt;p id=&quot;wxta&quot;&gt;tail -f /opt/popcache/logs/stdout.log&lt;br /&gt;tail -f /opt/popcache/logs/stderr.log&lt;/p&gt;
  &lt;p id=&quot;Rind&quot;&gt;если видим такую историю&lt;/p&gt;
  &lt;figure id=&quot;RY90&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0d/8d/0d8d1c19-b6be-4d73-ad2f-4975143637a6.png&quot; width=&quot;992&quot; /&gt;
  &lt;/figure&gt;
  &lt;pre id=&quot;c27f&quot;&gt;systemctl stop popcache&lt;/pre&gt;
  &lt;pre id=&quot;e7he&quot;&gt;nano /opt/popcache/config.json&lt;/pre&gt;
  &lt;p id=&quot;jVeH&quot;&gt;удаляем из кофига &lt;/p&gt;
  &lt;p id=&quot;rvHN&quot;&gt;  &amp;quot;invite_code&amp;quot;: &amp;quot;ВАШ ИНВАЙТ КОД&amp;quot;,&lt;br /&gt;&lt;br /&gt;ждем 2 часa&lt;/p&gt;
  &lt;pre id=&quot;o7u1&quot;&gt;systemctl start popcache &lt;/pre&gt;
  &lt;pre id=&quot;cGmU&quot;&gt;systemctl enable popcache&lt;/pre&gt;
  &lt;h3 id=&quot;pPTE&quot;&gt;&lt;/h3&gt;
  &lt;p id=&quot;yq4U&quot;&gt;🔍 Полезные команды:&lt;/p&gt;
  &lt;ul id=&quot;ADeP&quot;&gt;
    &lt;li id=&quot;KAwt&quot;&gt;Проверка состояния:&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;loF9&quot;&gt;curl &lt;a href=&quot;http://localhost/health&quot; target=&quot;_blank&quot;&gt;http://localhost/health&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;lI4J&quot;&gt;В браузере: &lt;/p&gt;
  &lt;p id=&quot;jgbO&quot;&gt;https://&amp;lt;your-vps-ip&amp;gt;/state&lt;/p&gt;
  &lt;p id=&quot;ndls&quot;&gt;check state curl -sk &lt;a href=&quot;https://localhost/state&quot; target=&quot;_blank&quot;&gt;https://localhost/state&lt;/a&gt; &amp;amp;&amp;amp; echo -e &amp;quot;\n&amp;quot; &lt;/p&gt;
  &lt;p id=&quot;oCuf&quot;&gt;check metrics curl -sk &lt;a href=&quot;https://localhost/metrics&quot; target=&quot;_blank&quot;&gt;https://localhost/metrics&lt;/a&gt; &amp;amp;&amp;amp; echo -e &amp;quot;\n&amp;quot; &lt;/p&gt;
  &lt;p id=&quot;KLW5&quot;&gt;check health curl -sk &lt;a href=&quot;https://localhost/health&quot; target=&quot;_blank&quot;&gt;https://localhost/health&lt;/a&gt; &amp;amp;&amp;amp; echo -e &amp;quot;\n&amp;quot;&lt;/p&gt;

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

</content></entry><entry><id>skcrypto:IVxHqfGNnk3</id><link rel="alternate" type="text/html" href="https://teletype.in/@skcrypto/IVxHqfGNnk3?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=skcrypto"></link><title>Как установить aztec ноду на ubuntu 22.04</title><published>2025-05-03T20:19:23.547Z</published><updated>2025-09-22T11:31:26.667Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/34/20/3420c18f-2e6a-4933-b7a5-fdc16db87047.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/08/ea/08ea444d-6908-4f46-9490-9a867925472c.png&quot;&gt;Покупаем VPS (требования)
8 ядер СPU
16 GB of RAM
100+ Mb/s internet
1000 GB of free storage 
я предпочитаю https://contabo.com/  или на xorek.cloud просто докупив память до 1 TB</summary><content type="html">
  &lt;p id=&quot;39IK&quot;&gt;Покупаем VPS &lt;em&gt;(требования)&lt;/em&gt;&lt;br /&gt;8 ядер СPU&lt;br /&gt;16 GB of RAM&lt;br /&gt;100+ Mb/s internet&lt;br /&gt;1000 GB of free storage &lt;br /&gt;я предпочитаю &lt;a href=&quot;https://contabo.com/&quot; target=&quot;_blank&quot;&gt;https://contabo.com/&lt;/a&gt;  или на &lt;a href=&quot;https://xorek.cloud/?from=11437&quot; target=&quot;_blank&quot;&gt;xorek.cloud &lt;/a&gt;просто докупив память до 1 TB&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;rhT1&quot; data-align=&quot;center&quot;&gt;Подготовка&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;3t3P&quot;&gt;Нам понадобиться кошелек Метамаск, который нужно пополнить более чем на 2 ETH в сети Sepolia testnet &lt;br /&gt;Краны:&lt;/p&gt;
  &lt;ul id=&quot;5qtL&quot;&gt;
    &lt;li id=&quot;WsQw&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://sepoliafaucet.com/&quot; target=&quot;_blank&quot;&gt;https://sepoliafaucet.com&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;X3QA&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://infura.io/faucet/sepolia&quot; target=&quot;_blank&quot;&gt;https://infura.io/faucet/sepolia&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;lZ3c&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://faucet-sepolia.rockx.com/&quot; target=&quot;_blank&quot;&gt;https://faucet-sepolia.rockx.com&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;oUyL&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://access.rockx.com/faucet-sepolia&quot; target=&quot;_blank&quot;&gt;https://access.rockx.com/faucet-sepolia&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;4nF8&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://faucetlink.to/sepolia&quot; target=&quot;_blank&quot;&gt;https://faucetlink.to/sepolia&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;uTKY&quot;&gt;&lt;a href=&quot;https://sepolia-faucet.pk910.de&quot; target=&quot;_blank&quot;&gt;https://sepolia-faucet.pk910.de&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;A3oh&quot;&gt;Так же нам понадобиться индивидуальные RPC Sepolia testnet и RPC Sepolia testnet beacon &lt;/p&gt;
  &lt;ul id=&quot;JQgG&quot;&gt;
    &lt;li id=&quot;CHqh&quot;&gt;RPC Sepolia можно взять на &lt;a href=&quot;https://dashboard.alchemy.com/chains&quot; target=&quot;_blank&quot;&gt;https://dashboard.alchemy.com/chains&lt;/a&gt; или &lt;a href=&quot;https://www.ankr.com/rpc&quot; target=&quot;_blank&quot;&gt;https://www.ankr.com/rpc&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;4yvW&quot;&gt;RPC Sepolia testnet beacon можно взять на &lt;a href=&quot;https://console.chainstack.com/&quot; target=&quot;_blank&quot;&gt;https://console.chainstack.com/&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ywV9&quot;&gt;Регистрируемся по почте и запрашиваем адрес RPC для двух сетей &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;TyCv&quot; data-align=&quot;center&quot;&gt;Устанавливаем ноду&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;RQd8&quot;&gt;Заходим на наш VPS root+пароль&lt;/p&gt;
  &lt;h2 id=&quot;BEcQ&quot;&gt;🔧 Устанавливаем необходимые утилиты:&lt;/h2&gt;
  &lt;pre id=&quot;qpmR&quot;&gt;curl -fsSL https://get.docker.com -o get-docker.sh&lt;/pre&gt;
  &lt;pre id=&quot;us7z&quot;&gt;sh get-docker.sh&lt;/pre&gt;
  &lt;pre id=&quot;pIhU&quot;&gt;sudo usermod -aG docker $USER&lt;/pre&gt;
  &lt;pre id=&quot;VQoz&quot;&gt;newgrp docker&lt;/pre&gt;
  &lt;pre id=&quot;uK3A&quot;&gt;docker --version&lt;/pre&gt;
  &lt;pre id=&quot;yXMC&quot;&gt;apt update &amp;amp;&amp;amp; sudo apt install -y curl screen net-tools psmisc jq ufw nano&lt;/pre&gt;
  &lt;h2 id=&quot;GX03&quot;&gt;📦 Установка AZTEC CLI:&lt;/h2&gt;
  &lt;pre id=&quot;bjEo&quot;&gt;curl -fsSL https://install.aztec.network | bash&lt;/pre&gt;
  &lt;pre id=&quot;Zi8p&quot;&gt;export PATH=&amp;quot;$HOME/.aztec/bin:$PATH&amp;quot;&lt;/pre&gt;
  &lt;pre id=&quot;vmOB&quot;&gt;echo &amp;#x27;export PATH=&amp;quot;$HOME/.aztec/bin:$PATH&amp;quot;&amp;#x27; &amp;gt;&amp;gt; ~/.bashrc&lt;/pre&gt;
  &lt;pre id=&quot;VtJg&quot;&gt;source ~/.bashrc&lt;/pre&gt;
  &lt;h2 id=&quot;d0C6&quot;&gt;🔄 Обновление до последней версии testnet:&lt;/h2&gt;
  &lt;pre id=&quot;4XYK&quot;&gt;aztec-up alpha-testnet&lt;/pre&gt;
  &lt;p id=&quot;6YHv&quot;&gt;⚙️ Настройка параметров:&lt;/p&gt;
  &lt;pre id=&quot;5Y9w&quot;&gt;IP=$(curl -s https://api.ipify.org)&lt;/pre&gt;
  &lt;pre id=&quot;T8A3&quot;&gt;L1_RPC_URL=&amp;quot;ВАШ SEPOLIA RPC&amp;quot;&lt;/pre&gt;
  &lt;pre id=&quot;yvUw&quot;&gt;L1_CONSENSUS_URL=&amp;quot;ВАШ SEPOLIA Beacon&amp;quot;&lt;/pre&gt;
  &lt;pre id=&quot;QPp9&quot;&gt;VALIDATOR_PRIVATE_KEY=&amp;quot;ВАШ_ПРИВАТНЫЙ_КЛЮЧ_...&amp;quot;&lt;/pre&gt;
  &lt;pre id=&quot;TcAE&quot;&gt;COINBASE_ADDRESS=&amp;quot;ВАШ_АДРЕС_0x...&amp;quot;&lt;/pre&gt;
  &lt;h2 id=&quot;8EtA&quot;&gt;7. 📟 Создаtv файл запуска:&lt;/h2&gt;
  &lt;pre id=&quot;a27U&quot;&gt;cat &amp;gt; $HOME/start_aztec_node.sh &amp;lt;&amp;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&lt;/pre&gt;
  &lt;h2 id=&quot;XnlY&quot;&gt;8. ▶️ Запуск ноды:&lt;/h2&gt;
  &lt;pre id=&quot;ZPGG&quot;&gt;screen -S aztec&lt;/pre&gt;
  &lt;pre id=&quot;8wyQ&quot;&gt;./start_aztec_node.sh&lt;/pre&gt;
  &lt;p id=&quot;9wd3&quot;&gt;Видим вот такие логи значит началась синхронизация&lt;/p&gt;
  &lt;figure id=&quot;NfVE&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/08/ea/08ea444d-6908-4f46-9490-9a867925472c.png&quot; width=&quot;1589&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lS8k&quot;&gt;Ждем 10 минут отправляемся в дискорд на канал&lt;code&gt;#operators | start-here&lt;/code&gt; &lt;/p&gt;
  &lt;p id=&quot;hB1H&quot;&gt;находим свежий пост с данными нам интересен &lt;strong&gt;Proven block&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;uK0F&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5e/f7/5ef730d1-83c0-4e4d-9a31-77f5a14f7bf3.png&quot; width=&quot;428&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;GeOy&quot;&gt;Возвращаемся на сервер получаем номер блока который должен совпадать с &lt;strong&gt;Proven блоком&lt;/strong&gt; в дискорде (значение динамическое)&lt;/p&gt;
  &lt;pre id=&quot;d2gZ&quot;&gt;curl -s -X POST -H &amp;#x27;Content-Type: application/json&amp;#x27; -d &amp;#x27;{&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;method&amp;quot;:&amp;quot;node_getL2Tips&amp;quot;,&amp;quot;params&amp;quot;:[],&amp;quot;id&amp;quot;:67}&amp;#x27; http://localhost:8080 | jq -r &amp;#x27;.result.proven.number&amp;#x27;&lt;/pre&gt;
  &lt;pre id=&quot;2KcC&quot;&gt;или
bash &amp;lt;(curl -s https://raw.githubusercontent.com/cerberus-node/aztec-network/refs/heads/main/sync-check.sh)&lt;/pre&gt;
  &lt;figure id=&quot;tc01&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ae/b8/aeb8adc5-4a0c-4270-a1ec-a2f257912cbb.png&quot; width=&quot;1533&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;t5NM&quot;&gt;В следующей команде заменяем block-number на полученный номер блока &lt;/p&gt;
  &lt;pre id=&quot;PVyI&quot;&gt;curl -s -X POST -H &amp;#x27;Content-Type: application/json&amp;#x27; -d &amp;#x27;{&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;method&amp;quot;:&amp;quot;node_getArchiveSiblingPath&amp;quot;,&amp;quot;params&amp;quot;:[&amp;quot;block-number&amp;quot;,&amp;quot;block-number&amp;quot;],&amp;quot;id&amp;quot;:67}&amp;#x27; http://localhost:8080 | jq -r &amp;quot;.result&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;uK3I&quot;&gt;получаем вывод proof &lt;/p&gt;
  &lt;h2 id=&quot;bSnM&quot;&gt;8. 📟Получение роли Apprentice в Discord&lt;/h2&gt;
  &lt;p id=&quot;rGNl&quot;&gt;После запуска и синхронизации узла вы можете получить роль Apprentice в Discord-сервере Aztec&lt;/p&gt;
  &lt;ol id=&quot;TJ5X&quot;&gt;
    &lt;li id=&quot;b4u5&quot;&gt;Перейдите в канал &lt;code&gt;#operators | start-here&lt;/code&gt; &lt;/li&gt;
    &lt;li id=&quot;eFin&quot;&gt;Выполните команду &lt;code&gt;/operator start&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;TXBK&quot;&gt;Вас попросят ввести:&lt;/li&gt;
    &lt;ul id=&quot;hvta&quot;&gt;
      &lt;li id=&quot;pttT&quot;&gt;&lt;strong&gt;Address&lt;/strong&gt;: ваш адрес валидатора (например, &lt;code&gt;0x72977488379a24F140139972b3b06bD873Aa0d45&lt;/code&gt;).&lt;/li&gt;
      &lt;li id=&quot;uA4Z&quot;&gt;&lt;strong&gt;Block-number&lt;/strong&gt;: номер последнего подтверждённого блока (полученный ранее).&lt;/li&gt;
      &lt;li id=&quot;zJWc&quot;&gt;&lt;strong&gt;Proof&lt;/strong&gt;: доказательство синхронизации, которое мы дак же получили&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;h2 id=&quot;edns&quot;&gt;&lt;strong&gt;9.  Регистрация в качестве валидатора&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;K0Es&quot;&gt;После полной синхронизации узла вы можете зарегистрироваться в качестве валидатора, выполнив следующую команду:&lt;/p&gt;
  &lt;pre id=&quot;YITs&quot;&gt;aztec add-l1-validator \
  --l1-rpc-urls ВАШ RPC Sepolia \
  --private-key ВАШ_ПРИВАТНЫЙ_КЛЮЧ_.. \
  --attester ВАШ_АДРЕС_0x... \
  --proposer-eoa ВАШ_АДРЕС_0x... \
  --staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \
  --l1-chain-id 11155111
&lt;/pre&gt;
  &lt;p id=&quot;5SgX&quot;&gt;&lt;br /&gt;При попытке зарегистрироваться в качестве валидатора вы можете увидеть ошибку типа ValidatorQuotaFilledUntil, что означает, что дневная квота достигнута — преобразуйте предоставленную временную метку Unix в местное время, чтобы узнать, когда вы можете снова попытаться зарегистрироваться в качестве валидатора.&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;lSy3&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e5/53/e5539717-9241-4f19-9f73-a867c13bff9c.png&quot; width=&quot;627&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;H0os&quot; data-align=&quot;center&quot;&gt;ОБНОВЛЯЕМ НОДУ&lt;/p&gt;
  &lt;/section&gt;
  &lt;h4 id=&quot;TI4v&quot;&gt; 1. Останови текущую ноду:&lt;/h4&gt;
  &lt;p id=&quot;jfKc&quot;&gt;Если она запущена в &lt;code&gt;screen&lt;/code&gt;&lt;/p&gt;
  &lt;pre id=&quot;1tSu&quot;&gt;screen -r aztec&lt;/pre&gt;
  &lt;p id=&quot;024V&quot;&gt;И останови сочетанием &lt;code&gt;Ctrl+C&lt;/code&gt;, потом выйди:&lt;/p&gt;
  &lt;p id=&quot;FObH&quot;&gt;&lt;strong&gt;3. Обновляем ПО до новой версии:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;DdSX&quot;&gt;aztec-up latest&lt;/pre&gt;
  &lt;p id=&quot;zgVX&quot;&gt;&lt;strong&gt;4. Запусти снова:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;lidF&quot;&gt;./start_aztec_node.sh&lt;/pre&gt;
  &lt;p id=&quot;Xkp4&quot;&gt;Проверить версию&lt;/p&gt;
  &lt;pre id=&quot;LKHw&quot;&gt;aztec -V&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;d6Nu&quot; data-align=&quot;center&quot;&gt;УСТРАНЯЕМ ОШИБКИ&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;uYlb&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6e/a5/6ea55a0d-3452-482b-b436-bc1fe59d92a5.png&quot; width=&quot;735&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ZRed&quot;&gt;ОШИКА НЕХВАТКИ ПАМЯТИ &lt;br /&gt;Node.js в Aztec CLI по умолчанию использует лимит ~1.5–2 ГБ но в пике бывает 6 ГБ&lt;/p&gt;
  &lt;p id=&quot;7Isz&quot;&gt;Добавляем в файл запуска строку &lt;/p&gt;
  &lt;pre id=&quot;E5EE&quot;&gt;nano $HOME/start_aztec_node.sh&lt;/pre&gt;
  &lt;pre id=&quot;qFEE&quot;&gt;export NODE_OPTIONS=&amp;quot;--max-old-space-size=8192&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;mFf5&quot;&gt;CTRL+O -&amp;gt; ENTR -&amp;gt; CTRL+X&lt;/p&gt;
  &lt;p id=&quot;5IX4&quot;&gt;Файл запуска должен выглядеть так: &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YeMg&quot;&gt;#!/bin/bash&lt;/p&gt;
    &lt;p id=&quot;Q2OA&quot;&gt;export PATH=$PATH:$HOME/.aztec/bin&lt;br /&gt;export LOG_LEVEL=debug&lt;br /&gt;export NODE_OPTIONS=&amp;quot;--max-old-space-size=8192&amp;quot;&lt;/p&gt;
    &lt;p id=&quot;Zeik&quot;&gt;aztec start --node --archiver --sequencer \&lt;br /&gt;  --network alpha-testnet \&lt;br /&gt;  --port 8080 \&lt;br /&gt;  --l1-rpc-urls ВАШ RPC \&lt;br /&gt;  --l1-consensus-host-urls ВАШ beacon RPC \&lt;br /&gt;  --sequencer.validatorPrivateKeys Ваш приватник \&lt;br /&gt;  --sequencer.coinbase Ваш адрес \&lt;br /&gt;  --p2p.p2pIp ВАШ IP &lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;KJzY&quot; data-align=&quot;center&quot;&gt;АВТОМАТИЧЕСКОЕ ОБНОВЛЕНИЕ&lt;/p&gt;
  &lt;/section&gt;
  &lt;pre id=&quot;gjxU&quot;&gt;nano $HOME/start_aztec_node.sh&lt;/pre&gt;
  &lt;p id=&quot;h63z&quot;&gt;редактируем строку aztec start&lt;/p&gt;
  &lt;pre id=&quot;py3S&quot;&gt;aztec start --node --archiver --sequencer --auto-update config-and-version \&lt;/pre&gt;
  &lt;p id=&quot;eghu&quot;&gt;CTRL+O -&amp;gt; ENTR -&amp;gt; CTRL+X&lt;/p&gt;
  &lt;p id=&quot;MFeX&quot;&gt;Создаем run_forever.sh:&lt;/p&gt;
  &lt;pre id=&quot;TNPm&quot;&gt;nano $HOME/run_forever.sh&lt;/pre&gt;
  &lt;p id=&quot;wKa0&quot;&gt;Вставляем туда:&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;ub9y&quot;&gt;#!/bin/bash&lt;br /&gt;while true; do&lt;br /&gt;  /root/.aztec/bin/aztec-up latest&lt;br /&gt;  ./start_aztec_node.sh&lt;br /&gt;  echo &amp;quot;Node stopped. Restarting in 90 seconds...&amp;quot;&lt;br /&gt;  sleep 90&lt;br /&gt;done&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;HZ6U&quot;&gt;CTRL+O -&amp;gt; ENTR -&amp;gt; CTRL+X&lt;/p&gt;
  &lt;pre id=&quot;6I41&quot;&gt;chmod +x $HOME/run_forever.sh&lt;/pre&gt;
  &lt;p id=&quot;DqwV&quot;&gt;Теперь запуск ноды будет через команду &lt;/p&gt;
  &lt;pre id=&quot;s5GD&quot;&gt;./run_forever.sh&lt;/pre&gt;
  &lt;p id=&quot;w6sr&quot;&gt;В случае если нода автоматически обновится и остановится файл автоматически её перезапустит&lt;/p&gt;
  &lt;h2 id=&quot;tXNd&quot;&gt;Или можно сделать systemd как вам удобно&lt;/h2&gt;

</content></entry></feed>