<?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>Vania Hilkovets</title><author><name>Vania Hilkovets</name></author><id>https://teletype.in/atom/vania_ls</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/vania_ls?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/vania_ls?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-28T11:56:45.642Z</updated><entry><id>vania_ls:FowLUmHar9Q</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/FowLUmHar9Q?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>Optimai cli</title><published>2026-02-10T19:59:04.518Z</published><updated>2026-02-25T16:56:32.484Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/c8/1f/c81f2b6c-ce75-4f6e-b235-cc4df7ac8b52.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/f5/d7/f5d7b10d-663f-4637-8182-ae2a0913354a.jpeg&quot;&gt;OptimAI has a limitation of up to 30 nodes running simultaneously per account. To launch each node, you need a separate Docker daemon and hardware fingerprint. Below I've provided a micro-guide on using my script for installing LXD containers on a VPS and running 30 nodes on a single server.</summary><content type="html">
  &lt;h1 id=&quot;running-30-optimai-nodes-on-a-single-vps&quot;&gt;Running 30 OptimAI Nodes on a Single VPS&lt;/h1&gt;
  &lt;p id=&quot;kDdf&quot;&gt;&lt;br /&gt;&lt;strong&gt;OptimAI has a limitation of up to 30 nodes running simultaneously per account.&lt;/strong&gt; To launch each node, you need a separate Docker daemon and hardware fingerprint. Below I&amp;#x27;ve provided a micro-guide on using my script for installing LXD containers on a VPS and running 30 nodes on a single server.&lt;/p&gt;
  &lt;p id=&quot;dNVP&quot;&gt;&lt;strong&gt; Register here:&lt;/strong&gt; &lt;a href=&quot;https://node.optimai.network/register?ref=457A7BA4&quot; target=&quot;_blank&quot;&gt;https://node.optimai.network/register?ref=457A7BA4&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;hWAF&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;Zlq0&quot;&gt;1. System Requirements&lt;/h2&gt;
  &lt;p id=&quot;pMSv&quot;&gt;To get started, we recommend a VPS with at least &lt;strong&gt;8 CPU / 32 RAM / Ubuntu 22.04&lt;/strong&gt;.&lt;/p&gt;
  &lt;ul id=&quot;ngM6&quot;&gt;
    &lt;li id=&quot;PQJh&quot;&gt;&lt;strong&gt;Lumadock&lt;/strong&gt;: &lt;a href=&quot;https://lumadock.com/aff.php?aff=107&quot; target=&quot;_blank&quot;&gt;Rent here&lt;/a&gt; &lt;em&gt;(Note: use discount promocode 10% : &lt;strong&gt;STARTNOW10 &lt;/strong&gt;)&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;bJwf&quot;&gt;&lt;strong&gt;Contabo&lt;/strong&gt;: &lt;a href=&quot;https://www.kqzyfj.com/click-101335050-13796476&quot; target=&quot;_blank&quot;&gt;Rent here&lt;/a&gt; &lt;em&gt;(Note: proof of residence may be required)&lt;/em&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;M7n8&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/33/43/334300d9-1f42-4ea8-b17d-9ad0e6118d92.jpeg&quot; width=&quot;2519&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;i4Gt&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;81TL&quot;&gt;2. Installation&lt;/h2&gt;
  &lt;p id=&quot;d1j4&quot;&gt;After launching your server, run the following command to download, set permissions, and execute the management script:&lt;/p&gt;
  &lt;pre id=&quot;zEyF&quot;&gt;wget -O lxd_optimai_manager_eng.sh https://raw.githubusercontent.com/VaniaHilkovets/optimai_lxd_cli/main/lxd_optimai_manager_eng.sh &amp;amp;&amp;amp; \
chmod +x lxd_optimai_manager_eng.sh &amp;amp;&amp;amp; \
./lxd_optimai_manager_eng.sh&lt;/pre&gt;
  &lt;figure id=&quot;VWMc&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d6/9d/d69dabe5-f977-450c-8436-332158278d0b.png&quot; width=&quot;786&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;YZYx&quot;&gt;3. Menu Overview&lt;/h2&gt;
  &lt;p id=&quot;3VWa&quot;&gt;Once the script is launched, you will see a management menu:&lt;/p&gt;
  &lt;h3 id=&quot;0OGP&quot;&gt;&lt;strong&gt;Installation and Setup&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;jt4n&quot;&gt;
    &lt;li id=&quot;F5eN&quot;&gt;&lt;strong&gt;Update System (1):&lt;/strong&gt; Updates OS packages and installs core dependencies.&lt;/li&gt;
    &lt;li id=&quot;8IhD&quot;&gt;&lt;strong&gt;Install LXD &amp;amp; Create Containers (2):&lt;/strong&gt; Configures virtualization and creates isolated containers.&lt;/li&gt;
    &lt;li id=&quot;MOOz&quot;&gt;&lt;strong&gt;Setup Docker inside Containers (3):&lt;/strong&gt; Installs the environment inside each container. &lt;strong&gt;Note:&lt;/strong&gt; This step may take a significant amount of time as it processes each node individually.&lt;/li&gt;
    &lt;li id=&quot;Z5K7&quot;&gt;&lt;strong&gt;Install CLI (4):&lt;/strong&gt; Downloads the node management tool into the containers.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;BsRP&quot;&gt;&lt;strong&gt;Node Management&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;eGdR&quot;&gt;
    &lt;li id=&quot;uUvl&quot;&gt;&lt;strong&gt;Login (5):&lt;/strong&gt; Automates authorization across selected containers.&lt;/li&gt;
    &lt;li id=&quot;ZnVv&quot;&gt;&lt;strong&gt;Start Nodes (6):&lt;/strong&gt; Launches node workflows in the background.&lt;/li&gt;
    &lt;li id=&quot;F5Yd&quot;&gt;&lt;strong&gt;Stop Nodes (7):&lt;/strong&gt; Safely terminates operations.&lt;/li&gt;
    &lt;li id=&quot;x2ED&quot;&gt;&lt;strong&gt;View Logs (8):&lt;/strong&gt; Displays real-time activity of a specific node.&lt;/li&gt;
    &lt;li id=&quot;7bnK&quot;&gt;&lt;strong&gt;Check Status (9):&lt;/strong&gt; Shows which nodes are running or stopped.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;TpyZ&quot;&gt;&lt;strong&gt;Additional Tools&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;wp1g&quot;&gt;
    &lt;li id=&quot;nj1y&quot;&gt;&lt;strong&gt;Configure SWAP (10):&lt;/strong&gt; Prevents memory exhaustion (Recommended if RAM &amp;lt; 32GB).&lt;/li&gt;
    &lt;li id=&quot;uAku&quot;&gt;&lt;strong&gt;Update CLI (11):&lt;/strong&gt; Checks for and installs the latest software version.&lt;/li&gt;
    &lt;li id=&quot;Jp9H&quot;&gt;&lt;strong&gt;Delete All Containers (12):&lt;/strong&gt; Completely wipes the system clean.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;ON4B&quot;&gt;4. Quick Start Guide&lt;/h2&gt;
  &lt;p id=&quot;S6MZ&quot;&gt;To fully set up your nodes, follow the menu options sequentially from &lt;strong&gt;1 to 6&lt;/strong&gt;.&lt;/p&gt;
  &lt;ul id=&quot;QbAn&quot;&gt;
    &lt;li id=&quot;ROEa&quot;&gt;&lt;strong&gt;Sequential Setup:&lt;/strong&gt; Complete steps 1-6 for a full installation.&lt;/li&gt;
    &lt;li id=&quot;DffS&quot;&gt;&lt;strong&gt;Incremental Installation:&lt;/strong&gt; You can install nodes in parts (e.g., set up 5, then add more later by running Option 2 again).&lt;/li&gt;
    &lt;li id=&quot;HlL5&quot;&gt;&lt;strong&gt;Scaling:&lt;/strong&gt; If you add nodes later, just follow the same sequence for the new containers.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;EUBQ&quot;&gt;Contact &amp;amp; Support&lt;/h2&gt;
  &lt;p id=&quot;oPgR&quot;&gt;If you encounter any errors, feel free to message me. Don&amp;#x27;t forget to follow for updates!&lt;/p&gt;
  &lt;ul id=&quot;H0Gg&quot;&gt;
    &lt;li id=&quot;sc9l&quot;&gt;&lt;strong&gt;Telegram Support:&lt;/strong&gt; &lt;a href=&quot;https://t.me/Vania_ls&quot; target=&quot;_blank&quot;&gt;@Vania_ls&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;JU1q&quot;&gt;&lt;strong&gt;Telegram Channel:&lt;/strong&gt; &lt;a href=&quot;https://t.me/SotochkaZela&quot; target=&quot;_blank&quot;&gt;SotochkaZela&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;5HV2&quot;&gt;&lt;strong&gt;Twitter (X):&lt;/strong&gt; &lt;a href=&quot;https://x.com/Gooszilla&quot; target=&quot;_blank&quot;&gt;@Gooszilla&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;9gP4&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;g59N&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/93/27/93270656-676b-41f9-a3e9-a71d8f29ca79.png&quot; width=&quot;1542&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;yTsi&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;gf11&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/57/3a/573aa2b9-2eca-4387-9d5a-5c8aa90340b0.png&quot; width=&quot;1345&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>vania_ls:SiY3MlHG0rQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/SiY3MlHG0rQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>Gensyn BlockAssist</title><published>2025-08-08T23:34:39.664Z</published><updated>2025-08-25T18:42:16.409Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/73/a4/73a42052-338c-4e3e-8dbf-372cb19f1bf3.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/6b/3b/6b3b2995-65ed-457a-bf69-791eeaafded1.png&quot;&gt;Требования: 
Ubuntu 22.04 LTS 
CPU: 8 ядер 
RAM: 32 ГБ</summary><content type="html">
  &lt;p id=&quot;DF9p&quot;&gt;Для получения роли у вас должна быть роль The swarm: &lt;a href=&quot;https://t.me/SotochkaZela/167&quot; target=&quot;_blank&quot;&gt;https://t.me/SotochkaZela/167&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;eOTo&quot;&gt;Тестировал на сервере &lt;a href=&quot;https://u1host.com/?from=1496&quot; target=&quot;_blank&quot;&gt;U1Host&lt;/a&gt; NL-7950X3D-6 (6 vCPU, 32 GB DDR5) - есть возможность арендовать на 1 день&lt;/p&gt;
  &lt;p id=&quot;T6d5&quot;&gt;Требования: Ubuntu 22.04 LTS CPU: 8 ядер RAM: 32 ГБ&lt;/p&gt;
  &lt;p id=&quot;8puU&quot;&gt;&lt;br /&gt;Войдите на сервер по SSH, выполните команду и дождитесь завершения установки VNC.&lt;/p&gt;
  &lt;pre id=&quot;RPcJ&quot;&gt;curl -L -o Vnc.sh https://raw.githubusercontent.com/VaniaHilkovets/TurboVnc/main/Vnc.sh &amp;amp;&amp;amp; chmod +x Vnc.sh &amp;amp;&amp;amp; ./Vnc.sh&lt;/pre&gt;
  &lt;p id=&quot;iHdx&quot;&gt;В конце установки вы получите пароль от VNC.&lt;br /&gt; &lt;br /&gt;Подключитесь к серверу по VNC — можно через MobaXterm.&lt;br /&gt; Укажите IP сервера, порт &lt;strong&gt;5901&lt;/strong&gt;, и введите пароль, когда программа его запросит.&lt;/p&gt;
  &lt;figure id=&quot;oLiZ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6b/3b/6b3b2995-65ed-457a-bf69-791eeaafded1.png&quot; width=&quot;1560&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Ge5y&quot;&gt;Откройте терминал и введите команду:&lt;/p&gt;
  &lt;pre id=&quot;6rMS&quot;&gt;curl -L -o BlockAssist.sh https://raw.githubusercontent.com/VaniaHilkovets/GensynFix/main/BlockAssist.sh &amp;amp;&amp;amp; chmod +x BlockAssist.sh &amp;amp;&amp;amp; ./BlockAssist.sh&lt;/pre&gt;
  &lt;figure id=&quot;N9Vp&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ec/a8/eca87ec9-9136-4186-9f8e-c2f2b34499dc.png&quot; width=&quot;1278&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;pGfj&quot;&gt;Дождитесь установки и введите следкющю команду:&lt;/p&gt;
  &lt;pre id=&quot;HaDn&quot;&gt;cd ~/blockassist &amp;amp;&amp;amp; python run.py&lt;/pre&gt;
  &lt;p id=&quot;eOm3&quot;&gt;Перейдите на &lt;a href=&quot;https://huggingface.co/settings/tokens&quot; target=&quot;_blank&quot;&gt;HuggingFace&lt;/a&gt;, создайте токен с правами &lt;code&gt;Write&lt;/code&gt; и вставьте его в терминал.&lt;/p&gt;
  &lt;p id=&quot;A9Jz&quot;&gt;Откройте барузер и перейдите по ссылке:&lt;/p&gt;
  &lt;pre id=&quot;oEAe&quot;&gt;http://localhost:3000/&lt;/pre&gt;
  &lt;p id=&quot;pcRU&quot;&gt;залогиньтесь через почту:&lt;/p&gt;
  &lt;figure id=&quot;EIou&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/19/db/19db3676-3a16-4731-a10b-6445372921d5.png&quot; width=&quot;1225&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;H3yF&quot;&gt;После того как откроються два окна Minecraft&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;TVcN&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/95/4d/954d0057-94dd-423b-9a6b-6c7ee87a2ee4.png&quot; width=&quot;1499&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;sFA1&quot;&gt;Перейдите обратно в терминал и покликайте Enter&lt;/p&gt;
  &lt;figure id=&quot;IEfa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ca/8c/ca8cbb8f-da98-42bd-81a6-692651daef8d.png&quot; width=&quot;680&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;pUS0&quot;&gt;Нажмите на терминал игры с ресурсами в инвентаре, разверните окно на весь экран и нажмите &lt;strong&gt;Enter&lt;/strong&gt;. Постройте несколько блоков, затем снова нажмите &lt;strong&gt;Enter&lt;/strong&gt; и выйдите из полноэкранного режима.&lt;/p&gt;
  &lt;figure id=&quot;26b5&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/93/64/9364e831-39b8-449a-bad9-718337d686a8.png&quot; width=&quot;1497&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;n0c3&quot;&gt;Вернитесь в консоль и несколько раз нажмите &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/p&gt;
  &lt;figure id=&quot;wyFy&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/83/0b/830b1d08-df4e-4887-8299-d03aa1893076.png&quot; width=&quot;1318&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ETMl&quot;&gt;Дождитесь, пока завершится обучение модели и в консоли появится результат.&lt;/p&gt;
  &lt;figure id=&quot;D0PH&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/31/97/3197c9e0-8426-4f20-a05f-bc12f33ece47.png&quot; width=&quot;668&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;QbOi&quot;&gt;Перейдите в свой профиль на Hugging Face и выберите загруженную модель.&lt;/p&gt;
  &lt;figure id=&quot;RoOy&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/89/ae/89aeaa7d-6476-4a13-b0cd-b623bf4eb78b.png&quot; width=&quot;1665&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kEtm&quot;&gt;Откройте файл gensyn.json в разделе &lt;strong&gt;Files and versions&lt;/strong&gt;.&lt;/p&gt;
  &lt;figure id=&quot;qdZl&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a8/71/a8712bee-3753-42bd-a4ad-7fc1b59e3033.png&quot; width=&quot;1665&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;OWHp&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c8/3e/c83e8d38-c636-49f1-be6f-a0334a80f77a.png&quot; width=&quot;1287&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;W6fY&quot;&gt;Перейдите в Discord в ветку #The swarm.&lt;/p&gt;
  &lt;p id=&quot;5JnM&quot;&gt;&lt;a href=&quot;https://discord.gg/gensyn&quot; target=&quot;_blank&quot;&gt;https://discord.gg/gensyn&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;ohEH&quot;&gt;&lt;a href=&quot;https://discord.com/channels/852932483691577395/1397908273948131500&quot; target=&quot;_blank&quot;&gt;https://discord.com/channels/852932483691577395/1397908273948131500&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;4ebP&quot;&gt;Введите команду что бы получть роль Block&lt;/p&gt;
  &lt;pre id=&quot;zAVK&quot;&gt;/block &amp;lt;eoa&amp;gt; &amp;lt;trainingID&amp;gt; &amp;lt;huggingfaceID&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;YF27&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;QkWF&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1d/ff/1dff41d1-5831-4ef1-b4c5-66404086ce91.png&quot; width=&quot;1339&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4RwH&quot;&gt;Также логинимся в &lt;a href=&quot;https://dashboard.gensyn.ai/?application=BlockAssist&quot; target=&quot;_blank&quot;&gt;дашборд &lt;/a&gt;BlockAssist и видим участие в тренировке.&lt;/p&gt;
  &lt;figure id=&quot;a6kR&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a2/de/a2de284d-7bf1-496c-ae90-58d52bc67618.png&quot; width=&quot;1413&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>vania_ls:iSax1FFN8TS</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/iSax1FFN8TS?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>NEXUS TESTNET III</title><published>2025-06-23T13:11:01.346Z</published><updated>2025-06-25T12:33:42.367Z</updated><summary type="html">Установка и запуск ноды</summary><content type="html">
  &lt;p id=&quot;NDXm&quot;&gt;&lt;strong&gt;Установка и запуск ноды&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;oye3&quot;&gt;Сборка подготовлена для Ubuntu 22.04. Выполните следующую команду для установки и запуска:&lt;/p&gt;
  &lt;pre id=&quot;Nhrl&quot;&gt;curl -L -o install.sh https://raw.githubusercontent.com/VaniaHilkovets/nexus-binaries/main/install.sh &amp;amp;&amp;amp; chmod +x install.sh &amp;amp;&amp;amp; ./install.sh
&lt;/pre&gt;
  &lt;p id=&quot;oCV2&quot;&gt;Скрипт запросит &lt;code&gt;node_id&lt;/code&gt;, который можно найти в вашем дашборде.&lt;br /&gt;А также запросит количество потоков. Можно указать от 1 до 8 в зависимости от мощности вашего сервера&lt;/p&gt;
  &lt;p id=&quot;7O5K&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;tO8t&quot;&gt;Результат установки:&lt;/h3&gt;
  &lt;ul id=&quot;72dx&quot;&gt;
    &lt;li id=&quot;CuEj&quot;&gt;Нода установится в: &lt;code&gt;/root/nexus-node&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;daWP&quot;&gt;&lt;code&gt;node_id&lt;/code&gt; сохранится в: &lt;code&gt;/root/nexus-node/node_id.txt&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;7WQA&quot;&gt;Нода запустится в tmux-сессии с именем: &lt;code&gt;nexus&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;MyaH&quot;&gt;Просмотр логов ноды&lt;/h2&gt;
  &lt;p id=&quot;pB3y&quot;&gt;Для входа в tmux-сессию выполните:&lt;/p&gt;
  &lt;pre id=&quot;viaS&quot;&gt;tmux attach -t nexus&lt;/pre&gt;
  &lt;p id=&quot;U5Me&quot;&gt;В сессии будут отображаться рабочие логи ноды.&lt;/p&gt;
  &lt;h2 id=&quot;fszW&quot;&gt;Выход из tmux с сохранением работы ноды&lt;/h2&gt;
  &lt;p id=&quot;cojj&quot;&gt;Чтобы выйти из tmux, оставив ноду работать, выполните комбинацию клавиш:&lt;/p&gt;
  &lt;pre id=&quot;relc&quot;&gt;Ctrl + B, затем D&lt;/pre&gt;
  &lt;p id=&quot;wuP4&quot;&gt;(Удерживайте &lt;code&gt;Ctrl&lt;/code&gt;, нажмите &lt;code&gt;B&lt;/code&gt;, отпустите, затем нажмите &lt;code&gt;D&lt;/code&gt;.)&lt;/p&gt;
  &lt;h2 id=&quot;hEqT&quot;&gt;Перезапуск ноды внутри tmux&lt;/h2&gt;
  &lt;ol id=&quot;fhPI&quot;&gt;
    &lt;li id=&quot;GLiz&quot;&gt;Войдите в tmux-сессию:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;NRBi&quot;&gt;tmux attach -t nexus&lt;/pre&gt;
  &lt;ol id=&quot;2avN&quot;&gt;
    &lt;li id=&quot;14Dv&quot;&gt;Остановите ноду (если требуется):&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;WIPm&quot;&gt;Ctrl + C&lt;/pre&gt;
  &lt;ol id=&quot;Ow5n&quot;&gt;
    &lt;li id=&quot;wgoo&quot;&gt;Перезапустите ноду:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;ZvR1&quot;&gt;cd /root/nexus-node &amp;amp;&amp;amp; ./nexus-network start --node-id $(cat node_id.txt)&lt;/pre&gt;
  &lt;ol id=&quot;zi4f&quot;&gt;
    &lt;li id=&quot;sXUG&quot;&gt;Выйдите из tmux, оставив ноду работать:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;LHqM&quot;&gt;Ctrl + B, затем D&lt;/pre&gt;
  &lt;p id=&quot;jofM&quot;&gt;&lt;/p&gt;
  &lt;h1 id=&quot;lg6s&quot;&gt;Изменение NodeID&lt;/h1&gt;
  &lt;p id=&quot;93lh&quot;&gt;Для изменения node_id выполните:&lt;/p&gt;
  &lt;pre id=&quot;AHDf&quot;&gt;nano /root/nexus-node/node_id.txt&lt;/pre&gt;
  &lt;p id=&quot;UMhb&quot;&gt;После редактирования сохраните изменения, нажав:&lt;/p&gt;
  &lt;pre id=&quot;MiUY&quot;&gt;Ctrl + X, затем Y, затем Enter&lt;/pre&gt;
  &lt;p id=&quot;kO3M&quot;&gt;Перезапустите ноду:&lt;/p&gt;
  &lt;pre id=&quot;O9vt&quot;&gt;tmux kill-session -t nexus 2&amp;gt;/dev/null || true &amp;amp;&amp;amp; tmux new-session -s nexus &amp;#x27;cd /root/nexus-node &amp;amp;&amp;amp; ./nexus-network start --node-id $(cat /root/nexus-node/node_id.txt)&amp;#x27;
&lt;/pre&gt;

</content></entry><entry><id>vania_ls:wlvoLuuqmdk</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/wlvoLuuqmdk?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>Vast.ai</title><published>2025-05-17T10:41:42.500Z</published><updated>2026-01-04T15:03:11.672Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/57/4f/574f0111-2aae-46ef-8976-526f411a5d48.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/58/66/5866bca3-7ece-422e-8d00-4aa7f2be2bb7.png&quot;&gt;Открываем командную строку (CMD) и вводим следующую команду:</summary><content type="html">
  &lt;p id=&quot;UZEu&quot;&gt;Открываем командную строку (CMD) и вводим следующую команду:&lt;/p&gt;
  &lt;pre id=&quot;opeU&quot;&gt;ssh-keygen -t rsa -b 4096 -C &amp;quot;ваш_email@example.com&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;a2r3&quot;&gt;Нажимаем Enter несколько раз, оставляя путь и пароль по умолчанию, пока не появится сообщение о успешном создании ключа.&lt;/p&gt;
  &lt;figure id=&quot;juPF&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/58/66/5866bca3-7ece-422e-8d00-4aa7f2be2bb7.png&quot; width=&quot;1139&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;QEgm&quot;&gt;После генерации ключей обратите внимание на путь, указанный в выводе — туда была сохранена пара ключей.&lt;/p&gt;
  &lt;p id=&quot;vTTY&quot;&gt;Переходим по этому пути, и вы увидите два файла:&lt;/p&gt;
  &lt;ul id=&quot;HwgI&quot;&gt;
    &lt;li id=&quot;Kh6t&quot;&gt;&lt;code&gt;id_rsa&lt;/code&gt; — приватный ключ (его &lt;strong&gt;никому не показываем&lt;/strong&gt;)&lt;/li&gt;
    &lt;li id=&quot;Ssx3&quot;&gt;&lt;code&gt;id_rsa.pub&lt;/code&gt; — публичный ключ&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;E2rD&quot;&gt;Откройте файл &lt;code&gt;id_rsa.pub&lt;/code&gt; с помощью Блокнота, скопируйте &lt;strong&gt;весь текст&lt;/strong&gt; — он вам пригодится для добавления ключа на сервер.&lt;/p&gt;
  &lt;figure id=&quot;2htq&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6e/43/6e43ed8c-688b-473b-aa3c-17d662b8a943.png&quot; width=&quot;1012&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gMHl&quot;&gt;Регистрируемся: https://cloud.vast.ai/?ref_id=185335&lt;br /&gt;&lt;br /&gt;Переходим во вкладку &lt;strong&gt;SSH Keys&lt;/strong&gt; на платформе и нажимаем +&lt;strong&gt;New &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Xbmj&quot;&gt;Вставляем туда ранее скопированный публичный ключ из файла &lt;code&gt;id_rsa.pub&lt;/code&gt; и сохраняем.&lt;/p&gt;
  &lt;figure id=&quot;NT5T&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f4/72/f472864c-837a-4c05-9be1-6c28fd819e2a.png&quot; width=&quot;955&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;L84w&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;wDOk&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7c/54/7c54bbf0-bd90-4190-afc0-a5ee83ca57c3.png&quot; width=&quot;959.5&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;jiFu&quot;&gt;Переходим во вкладку &lt;strong&gt;поиска машин&lt;/strong&gt; и нажимаем кнопку &lt;strong&gt;RENT&lt;/strong&gt; напротив подходящего сервера.&lt;/p&gt;
  &lt;figure id=&quot;9PLx&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/21/02/2102cc73-bb97-4374-adb7-800ddf18e1a2.png&quot; width=&quot;916.2255434782609&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7PEi&quot;&gt;Далее переходим во вкладку &lt;strong&gt;Instances&lt;/strong&gt; — здесь отобразится ваш арендованный сервер. Ожидаем завершения установки — обычно это занимает несколько минут.&lt;/p&gt;
  &lt;figure id=&quot;qzbj&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/94/cf/94cf555f-cb47-4c4e-8ab2-1f061d24c5e8.png&quot; width=&quot;963&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;cYF1&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/80/08/8008db9a-75dd-4a61-b35e-697bfa436e0d.png&quot; width=&quot;967.9999999999999&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;RNHT&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5b/05/5b057f2a-e75d-4929-9964-0655ebd5df23.png&quot; width=&quot;973.9999999999999&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;BMh0&quot;&gt;Переходим в &lt;strong&gt;MobaXterm&lt;/strong&gt;, создаём новую SSH-сессию. Вводим IP, порт и имя пользователя.&lt;/p&gt;
  &lt;p id=&quot;fNx5&quot;&gt;Внизу включаем опцию &lt;strong&gt;Use private key&lt;/strong&gt; Переходим по пути, где находится второй файл из пары ключей — &lt;code&gt;id_rsa&lt;/code&gt;, указываем его как приватный ключ для подключения и жмем ок.&lt;/p&gt;
  &lt;figure id=&quot;STWV&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7b/57/7b5725ae-e762-4f07-8cec-d56c10be2589.png&quot; width=&quot;929&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;XjhL&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e1/6e/e16e72a4-8cc2-4a88-bf62-3a8a5f9c14c5.png&quot; width=&quot;942.1840490797546&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;yhK6&quot;&gt;После этого вы успешно подключаетесь к серверу — откроется консоль с удалённым доступом.&lt;/p&gt;
  &lt;figure id=&quot;25WE&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/60/65/6065c5b8-b12d-471a-b894-3f0b14c221cf.png&quot; width=&quot;951.9999999999999&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>vania_ls:x9GdonE2Jg6</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/x9GdonE2Jg6?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>AZTEC</title><published>2025-05-02T12:49:10.824Z</published><updated>2025-05-07T14:31:32.455Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/ef/2c/ef2cc0c9-e27f-47e6-bfcc-c7496da5822e.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/a0/2d/a02d2483-2e31-40fa-b576-74314ff17ac3.png&quot;&gt;Системные требования</summary><content type="html">
  &lt;p id=&quot;oZUg&quot;&gt;Системные требования&lt;/p&gt;
  &lt;ul id=&quot;XHbI&quot;&gt;
    &lt;li id=&quot;27gF&quot;&gt;CPU: 8 ядер&lt;/li&gt;
    &lt;li id=&quot;aA3y&quot;&gt;RAM: 16 GB&lt;/li&gt;
    &lt;li id=&quot;NYn9&quot;&gt;Ubuntu 22.04&lt;/li&gt;
    &lt;li id=&quot;AWuE&quot;&gt;SSD: &amp;gt;100 GB&lt;br /&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;7YzX&quot;&gt;&lt;strong&gt;Установка зависимостей&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;0AQJ&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y
sudo apt install -y curl iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli libgbm1 pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip
&lt;/pre&gt;
  &lt;p id=&quot;KvFm&quot;&gt;&lt;strong&gt;Docker&lt;/strong&gt; &lt;/p&gt;
  &lt;pre id=&quot;2RgE&quot;&gt;for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /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 $(. /etc/os-release &amp;amp;&amp;amp; echo $VERSION_CODENAME) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null
sudo apt update -y &amp;amp;&amp;amp; sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker &amp;amp;&amp;amp; sudo systemctl restart docker&lt;/pre&gt;
  &lt;p id=&quot;CcUh&quot;&gt;&lt;strong&gt;Необходимые URL&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;86hs&quot;&gt;Для запуска Aztec Sequencer Node нужны два URL:&lt;/p&gt;
  &lt;ul id=&quot;xUi8&quot;&gt;
    &lt;li id=&quot;4CoI&quot;&gt;&lt;strong&gt;Sepolia RPC&lt;/strong&gt; — получить можно, например, на &lt;a href=&quot;https://blockpi.io&quot; target=&quot;_blank&quot;&gt;BlockPi&lt;/a&gt;, &lt;a href=&quot;https://alchemy.com&quot; target=&quot;_blank&quot;&gt;Alchemy&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;2pGs&quot;&gt;&lt;strong&gt;Sepolia BEACON RPC&lt;/strong&gt;  — получить можно, например, на: &lt;a href=&quot;http://blockpi.io&quot; target=&quot;_blank&quot;&gt;blockpi.io&lt;/a&gt; &lt;a href=&quot;https://drpc.org/&quot; target=&quot;_blank&quot;&gt;drpc.org/&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;pSmn&quot;&gt;Также &lt;strong&gt;необходимо пополнить&lt;/strong&gt; ваш адрес EVM тестовым ETH Sepolia&lt;/p&gt;
  &lt;p id=&quot;j1Xk&quot;&gt;&lt;strong&gt;Установка и обновление Aztec&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;S0Qg&quot;&gt;bash &amp;lt;(curl -fsSL https://raw.githubusercontent.com/VaniaHilkovets/AZTEC/main/aztec.sh)&lt;/pre&gt;
  &lt;p id=&quot;Tojo&quot;&gt;Введите ваш приватный ключ. адрес, ваши RPC URL и айпи сервера.&lt;/p&gt;
  &lt;p id=&quot;m9RN&quot;&gt;Ждем пока пройдет синхронизация&lt;/p&gt;
  &lt;hr /&gt;
  &lt;figure id=&quot;aRGt&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e2/69/e26978a6-dbab-44c4-9c22-30854aa97e6e.png&quot; width=&quot;1571&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kp22&quot;&gt;&lt;strong&gt;Нормальные логи после синхронизации:&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;yHnL&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ca/7d/ca7d61a9-e892-4079-98fd-d2d2fd013e38.png&quot; width=&quot;1611&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;5Iwv&quot;&gt;Нажмите &lt;code&gt;Ctrl + c&lt;/code&gt;,  что бы выйти из логов&lt;/p&gt;
  &lt;p id=&quot;bTC2&quot;&gt;&lt;strong&gt;&lt;br /&gt;Получаем номер последнего проверенного блока:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;zNNB&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;quot;.result.proven.number&amp;quot;&lt;/pre&gt;
  &lt;figure id=&quot;Yidy&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/60/83/608357c1-dbfa-457f-83b4-62401b804ff8.png&quot; width=&quot;758&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;cG7l&quot;&gt;Запомните полученное число — это &lt;code&gt;BLOCK_NUMBER&lt;/code&gt;, он понадобится в следующем шаге.&lt;/p&gt;
  &lt;p id=&quot;Vxp6&quot;&gt;&lt;strong&gt;Получаем архивное подтверждение:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;YjyW&quot;&gt;Замените &lt;code&gt;BLOCK_NUMBER&lt;/code&gt; на число из предыдущего шага (в двух местах):&lt;/p&gt;
  &lt;pre id=&quot;MtNR&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&lt;/pre&gt;
  &lt;figure id=&quot;1iFW&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6d/8b/6d8b761c-e291-4da1-9501-3b5ee2679261.png&quot; width=&quot;1622&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2lBV&quot;&gt;Скопируйте результат &lt;strong&gt;полностью&lt;/strong&gt; — это длинная строка в формате &lt;strong&gt;base64&lt;/strong&gt;.&lt;br /&gt; Не добавляйте пробелов или переносов строк.&lt;/p&gt;
  &lt;p id=&quot;2aQb&quot;&gt;Перейдите в Discord-сервер Aztec: &lt;a href=&quot;https://discord.gg/aztec&quot; target=&quot;_blank&quot;&gt;https://discord.gg/aztec&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;3UNC&quot;&gt;Откройте ветку &lt;code&gt;#operators | start-here&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;oA6E&quot;&gt;Введите команду:&lt;/p&gt;
  &lt;pre id=&quot;QPwU&quot;&gt;/operator start&lt;/pre&gt;
  &lt;p id=&quot;VDoJ&quot;&gt;&lt;/p&gt;
  &lt;ol id=&quot;wNmv&quot;&gt;
    &lt;li id=&quot;Oq2X&quot;&gt;Заполните поля:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;ul id=&quot;5WdY&quot;&gt;
    &lt;li id=&quot;HSxR&quot;&gt;&lt;strong&gt;address&lt;/strong&gt; — ваш публичный EVM-адрес&lt;/li&gt;
    &lt;li id=&quot;2MbG&quot;&gt;&lt;strong&gt;block-number&lt;/strong&gt; — номер&lt;strong&gt; последнего проверенного блока&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;qq48&quot;&gt;&lt;strong&gt;proof&lt;/strong&gt; — строка base64&lt;/li&gt;
  &lt;/ul&gt;
  &lt;ol id=&quot;ytfc&quot;&gt;
    &lt;li id=&quot;RJT8&quot;&gt;Нажмите &lt;strong&gt;Enter&lt;/strong&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;OfCV&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b4/de/b4de7ccb-18c0-422e-80ad-fddb82af3c82.png&quot; width=&quot;836&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lcB6&quot;&gt;Если вы получили подтверждение — значит, всё сделано правильно!&lt;/p&gt;
  &lt;p id=&quot;fAmh&quot;&gt;&lt;strong&gt;Регистрация валидатора:&lt;/strong&gt;&lt;br /&gt;Замените &lt;code&gt;SEPOLIA-RPC-URL&lt;/code&gt;, &lt;code&gt;YOUR-PRIVATE-KEY&lt;/code&gt;, &lt;code&gt;YOUR-VALIDATOR-ADDRESS&lt;/code&gt; на реальные значения а затем выполните эту команду.&lt;/p&gt;
  &lt;pre id=&quot;7LoL&quot;&gt;aztec add-l1-validator \
  --l1-rpc-urls RPC_URL \
  --private-key your-private-key \
  --attester your-validator-address \
  --proposer-eoa your-validator-address \
  --staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \
  --l1-chain-id 11155111&lt;/pre&gt;
  &lt;p id=&quot;VJNX&quot;&gt;Если видим такую ошибку:&lt;/p&gt;
  &lt;figure id=&quot;KJF4&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/23/52/23526ce2-fa1e-4b17-9843-88cb7364c9b6.png&quot; width=&quot;1289&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hOnn&quot;&gt;Это значит, что &lt;strong&gt;на сегодня достигнут лимит добавления новых валидаторов&lt;/strong&gt; — их может быть зарегистрировано только ограниченное количество в сутки&lt;br /&gt;&lt;/p&gt;
  &lt;p id=&quot;V4Ya&quot;&gt;Если полистать вверх то мы увидим ошибку&lt;code&gt;ValidatorQuotaFilledUntil(1746236580)&lt;/code&gt; которая указывает, &lt;strong&gt;до какого времени нельзя добавлять новых валидаторов&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;8vzO&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6b/f1/6bf1825f-9171-456e-bd69-1a6a48217909.png&quot; width=&quot;879&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fPOp&quot;&gt;Это Unix-время (в секундах), которое можно преобразовать в обычную дату, например:&lt;/p&gt;
  &lt;pre id=&quot;C9vy&quot;&gt;date -d @1746236580&lt;/pre&gt;
  &lt;figure id=&quot;c50E&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/06/e8/06e8d549-83cd-4d17-9309-23fd6280388f.png&quot; width=&quot;398&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;iWiS&quot;&gt;Это значит что нужно пробовать зарегистрировать валидатора после этой даты!&lt;/p&gt;
  &lt;p id=&quot;zEyC&quot;&gt;&lt;br /&gt;Снова посмотреть логи :&lt;/p&gt;
  &lt;pre id=&quot;aZxe&quot;&gt;docker logs -f aztec-node&lt;/pre&gt;

</content></entry><entry><id>vania_ls:tbRLavy6ZeC</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/tbRLavy6ZeC?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>Biconomy</title><published>2025-04-08T18:32:04.744Z</published><updated>2025-04-09T11:42:45.986Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/1f/cb/1fcbdd25-bebb-40fb-aea0-d24b453cb9dd.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/7c/9a/7c9a95f0-4064-48da-9d69-7f05422b7b30.png&quot;&gt;Зарегистрируйтесь на BlockPI и создайте RPC-эндпоинты для нужных сетей</summary><content type="html">
  &lt;p id=&quot;424s&quot;&gt;&lt;strong&gt;Зарегистрируйтесь на BlockPI&lt;/strong&gt; и создайте RPC-эндпоинты для нужных сетей&lt;/p&gt;
  &lt;p id=&quot;MdOy&quot;&gt;&lt;a href=&quot;https://dashboard.blockpi.io/&quot; target=&quot;_blank&quot;&gt;https://dashboard.blockpi.io/&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;FPQY&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7c/9a/7c9a95f0-4064-48da-9d69-7f05422b7b30.png&quot; width=&quot;1717&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RKs5&quot;&gt;Откройте терминал и выполните команды:&lt;/p&gt;
  &lt;pre id=&quot;k0A2&quot;&gt;apt update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; apt install -y curl git ufw nano &amp;amp;&amp;amp; curl -fsSL https://get.docker.com | sh &amp;amp;&amp;amp; curl -L &amp;quot;https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose &amp;amp;&amp;amp; chmod +x /usr/local/bin/docker-compose &amp;amp;&amp;amp; docker -v &amp;amp;&amp;amp; docker compose version&lt;/pre&gt;
  &lt;pre id=&quot;dkKE&quot;&gt;git clone https://github.com/bcnmy/mee-node-deployment&lt;/pre&gt;
  &lt;p id=&quot;Tf92&quot;&gt;&lt;br /&gt;Откройте файлы сетей и пропишите свои RPC-эндпоинты.&lt;br /&gt;Редактируйте каждый файл по очереди командой:&lt;/p&gt;
  &lt;pre id=&quot;8RYE&quot;&gt;nano /root/mee-node-deployment/chains-testnet/1.json

nano /root/mee-node-deployment/chains-testnet/11155111.json

nano /root/mee-node-deployment/chains-testnet/11155420.json

nano /root/mee-node-deployment/chains-testnet/421614.json

nano /root/mee-node-deployment/chains-testnet/84532.json&lt;/pre&gt;
  &lt;p id=&quot;iWvt&quot;&gt;Сохраните: &lt;code&gt;Ctrl + X&lt;/code&gt; → &lt;code&gt;Y&lt;/code&gt; → &lt;code&gt;Enter&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;Пример для ефириум майннет:&lt;/p&gt;
  &lt;figure id=&quot;oUHV&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/96/09/96097f84-2370-48c8-93e1-9010688a951b.png&quot; width=&quot;800&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;PjOK&quot;&gt;&lt;strong&gt;Пополните адрес EVM тестовыми токенами :&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Убедитесь, что ваш EVM-адрес (адрес из приватного ключа) &lt;strong&gt;имеет тестовые ETH&lt;/strong&gt; в следующих сетях:&lt;/p&gt;
  &lt;ul id=&quot;i8KN&quot;&gt;
    &lt;li id=&quot;OMyP&quot;&gt;Ethereum Sepolia&lt;/li&gt;
    &lt;li id=&quot;wMgp&quot;&gt;Optimism Sepolia&lt;/li&gt;
    &lt;li id=&quot;i6Ce&quot;&gt;Arbitrum Sepolia&lt;/li&gt;
    &lt;li id=&quot;dq3x&quot;&gt;Base Sepolia&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Nmww&quot;&gt;&lt;br /&gt;Вставьте свой EVM-приватный ключ:&lt;br /&gt;Найдите строку с &lt;code&gt;KEY=&lt;/code&gt; и вставьте свой приватный ключ в формате &lt;code&gt;0x...&lt;/code&gt;:&lt;/p&gt;
  &lt;pre id=&quot;Fl0e&quot;&gt;nano /root/mee-node-deployment/docker-compose.yml&lt;/pre&gt;
  &lt;figure id=&quot;9Jac&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a9/a8/a9a8a983-0d42-4453-9b2c-11c9df8fa2f0.png&quot; width=&quot;922&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;t0MM&quot;&gt;Сохраните: &lt;code&gt;Ctrl + X&lt;/code&gt; → &lt;code&gt;Y&lt;/code&gt; → &lt;code&gt;Enter&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;Перейдите в папку с нодой и запустите:&lt;/p&gt;
  &lt;pre id=&quot;gX3m&quot;&gt;cd /root/mee-node-deployment/&lt;/pre&gt;
  &lt;pre id=&quot;bRNI&quot;&gt;docker compose up -d&lt;/pre&gt;
  &lt;pre id=&quot;8pQx&quot;&gt;docker compose logs -f node&lt;/pre&gt;
  &lt;p id=&quot;kNpp&quot;&gt;Пример корректных логов:&lt;/p&gt;
  &lt;figure id=&quot;fDmY&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/62/48/62480c70-79b4-44c4-a1e8-467b5d79b5e0.png&quot; width=&quot;1356&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;rkG1&quot;&gt;Откройте в браузере:&lt;/h3&gt;
  &lt;p id=&quot;5hqU&quot;&gt;&lt;strong&gt;Основной адрес:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;Feq7&quot;&gt;http://&amp;lt;твой_IP&amp;gt;:3000&lt;/pre&gt;
  &lt;figure id=&quot;9OST&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2b/20/2b20a505-b607-40cf-8763-76cfc3a78050.png&quot; width=&quot;1065&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;sUri&quot;&gt;&lt;strong&gt;Статус ноды:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;uROg&quot;&gt;http://&amp;lt;твой_IP&amp;gt;:3000/v3/info&lt;/pre&gt;
  &lt;figure id=&quot;qVvM&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/30/4b/304b763f-e126-493d-b654-80c714d9038a.png&quot; width=&quot;1065&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;Gson&quot;&gt;Отправьте ссылку в Discord&lt;/h3&gt;
  &lt;p id=&quot;2eo5&quot;&gt;Перейди в ветку &lt;code&gt;#node-url&lt;/code&gt; в Discord:&lt;/p&gt;
  &lt;p id=&quot;cKj2&quot;&gt;&lt;a href=&quot;https://discord.gg/4bkj55dv&quot; target=&quot;_blank&quot;&gt;https://discord.gg/4bkj55dv&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;3y89&quot;&gt;И отправь туда адрес вашей ноды:&lt;/p&gt;
  &lt;pre id=&quot;UzkC&quot;&gt;http://&amp;lt;твой_IP&amp;gt;:3000&lt;/pre&gt;
  &lt;p id=&quot;XqiH&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;CwpL&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;XOic&quot;&gt;Оставляйте комментарии и подписывайтесь на мой &lt;strong&gt;Telegram-канал&lt;/strong&gt;, где я отвечаю на любые ваши вопросы:&lt;br /&gt;👉 &lt;a href=&quot;https://t.me/SotochkaZela&quot; target=&quot;_blank&quot;&gt;https://t.me/SotochkaZela&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>vania_ls:xvRXZu-0ili</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/xvRXZu-0ili?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>Gensyn</title><published>2025-04-01T02:28:21.686Z</published><updated>2025-07-19T09:07:55.541Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/7c/16/7c160ec8-469a-4871-bda4-16ac76bdbbed.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/da/50/da50f3bb-fbf5-462a-92ed-675e6cf4f7e2.png&quot;&gt;После запуска нода попросит зайти по URL (http://localhost:3000) для логина.</summary><content type="html">
  &lt;h3 id=&quot;HIdx&quot;&gt;Gensyn RL-Swarm Node  (Linux VPS)&lt;/h3&gt;
  &lt;h3 id=&quot;gbSX&quot;&gt;Установка всех необходимых компонентов:&lt;/h3&gt;
  &lt;pre id=&quot;QtiU&quot;&gt;# Обновление системыsudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y &amp;amp;&amp;amp; \
sudo apt purge -y nodejs npm libnode* nodejs-doc &amp;amp;&amp;amp; \
sudo rm -rf /usr/{lib,local/lib}/node_modules /usr/{bin,local/bin}/{node,npm} &amp;amp;&amp;amp; \
sudo apt clean &amp;amp;&amp;amp; sudo apt update &amp;amp;&amp;amp; \
sudo apt install -y curl wget git build-essential python3 python3-pip python3-venv python3.10-dev screen &amp;amp;&amp;amp; \
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &amp;amp;&amp;amp; \
sudo apt install -y nodejs &amp;amp;&amp;amp; \
sudo npm install -g yarn@1.22.22 esbuild next &amp;amp;&amp;amp; \
pip install --upgrade jinja2 &amp;amp;&amp;amp; \
node -v &amp;amp;&amp;amp; npm -v &amp;amp;&amp;amp; yarn -v
rade jinja2

#   ЕСЛИ У ВАС ЕСТЬ GPU !!!

#  Установка CUDA Toolkit 12.4
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt install -y cuda-toolkit-12-4

#  Экспорт переменных окружения CUDA
echo &amp;#x27;export CUDA_HOME=/usr/local/cuda&amp;#x27; &amp;gt;&amp;gt; ~/.bashrc
echo &amp;#x27;export PATH=$CUDA_HOME/bin:$PATH&amp;#x27; &amp;gt;&amp;gt; ~/.bashrc
echo &amp;#x27;export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH&amp;#x27; &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;xnMn&quot;&gt;Скачиваем ноду:&lt;/h3&gt;
  &lt;pre id=&quot;aYyG&quot;&gt;
git clone https://github.com/VaniaHilkovets/GensynFix.git &amp;amp;&amp;amp; cd GensynFix &amp;amp;&amp;amp; chmod +x run_rl_swarm.sh
&lt;/pre&gt;
  &lt;h3 id=&quot;zEF3&quot;&gt;Запуск в screen:&lt;/h3&gt;
  &lt;pre id=&quot;fmjj&quot;&gt;screen -S gensyn

./run_rl_swarm.sh&lt;/pre&gt;
  &lt;figure id=&quot;wJN3&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/da/50/da50f3bb-fbf5-462a-92ed-675e6cf4f7e2.png&quot; width=&quot;1621&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;imxk&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;dIJm&quot;&gt;&lt;strong&gt;Если вы на сервере (а не на PC) и не можете зайти на localhost:3000 — используем Serveo&lt;/strong&gt;&lt;/p&gt;
  &lt;h3 id=&quot;gylp&quot;&gt;Откройте новую вкладку терминала, не закрывая старую &lt;br /&gt;&lt;/h3&gt;
  &lt;pre id=&quot;7UV9&quot;&gt;ssh -o StrictHostKeyChecking=no -R 80:localhost:3000 nokey@localhost.run&lt;/pre&gt;
  &lt;p id=&quot;sDHs&quot;&gt;Скопируйте ссылку и вставьте в браузер&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;vhJG&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d5/29/d529d6f3-b218-4b86-bcf5-c092784c853e.png&quot; width=&quot;1080&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ZrhM&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;2XVB&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;q1HH&quot;&gt;  Войдите через Google/почту&lt;/p&gt;
  &lt;figure id=&quot;W4DB&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b8/ae/b8aebca5-b452-4d08-91a5-7e19bd432ab7.png&quot; width=&quot;1076&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;yrTF&quot;&gt;&lt;br /&gt;После успешного входа — возвращаемся в SSH-терминал.&lt;br /&gt; Когда появится вопрос:&lt;/p&gt;
  &lt;p id=&quot;pIri&quot;&gt;&lt;strong&gt;Would you like to push models you train in the RL swarm to the Hugging Face Hub? [y/N]&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;jmxz&quot;&gt;— ответьте &lt;strong&gt;&lt;code&gt;N&lt;/code&gt;&lt;/strong&gt; и нажмите Enter.&lt;/p&gt;
  &lt;p id=&quot;lLmj&quot;&gt;После этого автоматически продолжится установка и тестирование ноды.&lt;br /&gt; В консоли появится информация, включая имя вашей ноды (выделено зелёным цветом).&lt;/p&gt;
  &lt;figure id=&quot;9ua8&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2f/1b/2f1bd130-1c4c-4b45-89af-9cb582fa77a0.png&quot; width=&quot;1503&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qHrG&quot;&gt;&lt;strong&gt;Процесс тестирования может занять несколько часов.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;bLkl&quot;&gt;&lt;strong&gt;После завершения&lt;/strong&gt; вы сможете найти свою ноду в общем дашборде по адресу:&lt;/p&gt;
  &lt;p id=&quot;Q8Bl&quot;&gt; &lt;a href=&quot;https://dashboard.gensyn.ai/&quot; target=&quot;_blank&quot;&gt;https://dashboard.gensyn.ai/&lt;/a&gt; &lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;DVI2&quot;&gt;Выход из screen (RL-Swarm остается в фоне):&lt;/p&gt;
  &lt;pre id=&quot;87re&quot;&gt;Ctrl + A, затем D&lt;/pre&gt;
  &lt;p id=&quot;IQ1h&quot;&gt;Снова зайти в screen:&lt;/p&gt;
  &lt;pre id=&quot;NZFd&quot;&gt;screen -r gensyn&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;hqNz&quot;&gt;&lt;/h3&gt;
  &lt;p id=&quot;zAOJ&quot;&gt;&lt;strong&gt;&lt;br /&gt;ОШИБКИ:&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;EEIq&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/14/ff/14ff1276-7641-4506-be2f-bad8a7b760cb.png&quot; width=&quot;490&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Q2M6&quot;&gt;Решение:&lt;/p&gt;
  &lt;pre id=&quot;ygSC&quot;&gt;ln -s /usr/bin/python3 /usr/bin/python&lt;/pre&gt;
  &lt;p id=&quot;vvKP&quot;&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;ZBJH&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e6/37/e6371cb5-3944-4f0a-a1ba-8aefa5cf0f37.png&quot; width=&quot;1049&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;BgbF&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;VqjX&quot;&gt;Решение:&lt;/p&gt;
  &lt;pre id=&quot;VmVP&quot;&gt;pip install -U trl&lt;/pre&gt;
  &lt;p id=&quot;ma60&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Оставляйте комментарии и подписывайтесь на мой &lt;strong&gt;Telegram-канал&lt;/strong&gt;, где я отвечаю на любые ваши вопросы:&lt;br /&gt;👉 &lt;a href=&quot;https://t.me/SotochkaZela&quot; target=&quot;_blank&quot;&gt;https://t.me/SotochkaZela&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>vania_ls:6TRcr9J4dUX</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/6TRcr9J4dUX?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>Dria</title><published>2025-03-21T17:29:38.010Z</published><updated>2025-04-03T00:42:19.620Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/99/3c/993c38c5-5376-47ba-95c0-30fb1f2b218e.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/f1/7f/f17f5ade-6f1a-468b-90aa-dd10dd56004b.png&quot;&gt;Установим зависимости</summary><content type="html">
  &lt;p id=&quot;KbJw&quot;&gt; Установим зависимости&lt;/p&gt;
  &lt;p id=&quot;SJLy&quot;&gt;Открываем терминал и выполняем:&lt;/p&gt;
  &lt;pre id=&quot;DeWl&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install -y curl git make jq build-essential gcc unzip wget lz4 aria2 tmux&lt;/pre&gt;
  &lt;p id=&quot;kDps&quot;&gt;Скачаем и установим ноду Dria&lt;/p&gt;
  &lt;pre id=&quot;mMWw&quot;&gt;curl -fsSL https://dria.co/launcher | bash&lt;/pre&gt;
  &lt;p id=&quot;F8wJ&quot;&gt; Установим Ollama&lt;/p&gt;
  &lt;pre id=&quot;LJoX&quot;&gt;curl -fsSL https://ollama.com/install.sh | sh&lt;/pre&gt;
  &lt;figure id=&quot;cL1O&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f1/7f/f17f5ade-6f1a-468b-90aa-dd10dd56004b.png&quot; width=&quot;1112&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;c70p&quot;&gt; &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Запускаем ноду&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;pre id=&quot;thqY&quot;&gt;tmux&lt;/pre&gt;
  &lt;pre id=&quot;XxfP&quot;&gt;dkn-compute-launcher start&lt;/pre&gt;
  &lt;p id=&quot;C2SP&quot;&gt;&lt;br /&gt;&lt;strong&gt;Вставляем приватный ключ EVM&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;JKOm&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a9/57/a957a198-ca6b-48bc-904f-e38570f0aec5.png&quot; width=&quot;1121&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;QCoK&quot;&gt;Далее нужно выбрать модель.&lt;br /&gt; &lt;br /&gt;Для серверов &lt;strong&gt;без GPU&lt;/strong&gt; рекомендуется выбирать &lt;strong&gt;лёгкую модель&lt;/strong&gt;, которая при этом &lt;strong&gt;получает задания&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;tOie&quot;&gt;Посмотреть доступные модели можно на главной странице:&lt;br /&gt;  &lt;a href=&quot;https://dria.co/edge-ai&quot; target=&quot;_blank&quot;&gt;https://dria.co/edge-ai&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;xOqG&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/34/a5/34a5006c-b33b-4b29-9c05-f5fe6aab9a82.png&quot; width=&quot;945&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;sLdv&quot;&gt;На данный момент для сервера без GPU я использую модель: &lt;strong&gt;gemini-1.5-flash&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;6Jz9&quot;&gt;В меню выбираем пункт &lt;strong&gt;Gemini&lt;/strong&gt;, а затем — нужные модели из списка.&lt;/p&gt;
  &lt;figure id=&quot;FZEQ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e7/05/e705f1d0-450f-4e84-8b37-2e47ff51fb6f.png&quot; width=&quot;1104&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;H7af&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4b/d5/4bd56397-5609-42ef-a377-134a26b232af.png&quot; width=&quot;1196&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Lxdz&quot;&gt;Нажимаем &lt;strong&gt;пробел (Space)возле нужных моделей&lt;/strong&gt;, затем &lt;strong&gt;Enter&lt;/strong&gt;.&lt;br /&gt;&lt;/p&gt;
  &lt;p id=&quot;1mi0&quot;&gt;Я выбрал три модели: &lt;strong&gt;gemini-1.5-flash&lt;/strong&gt;, &lt;strong&gt;gemini-1.5-pro&lt;/strong&gt; и &lt;strong&gt;gemini-2.0-flash&lt;/strong&gt; — сервер 8CPU отлично справляется с их запуском.&lt;/p&gt;
  &lt;p id=&quot;KC4N&quot;&gt;&lt;br /&gt;После этого система начнёт запрашивать &lt;strong&gt;API-ключи от различных сервисов&lt;/strong&gt; — их перечень зависит от выбранной вами модели.&lt;/p&gt;
  &lt;p id=&quot;z0a8&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;vOrf&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/12/a9/12a9c68c-58da-49d3-bdbf-67c351f540c5.png&quot; width=&quot;1119&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;anOw&quot;&gt;Взять их можно тут:&lt;br /&gt;&lt;/p&gt;
  &lt;p id=&quot;HJXl&quot;&gt;JINA - &lt;a href=&quot;https://jina.ai/api-dashboard/key-manager&quot; target=&quot;_blank&quot;&gt;https://jina.ai/api-dashboard/key-manager&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;XNwr&quot;&gt;Serper - &lt;a href=&quot;https://serper.dev/dashboard&quot; target=&quot;_blank&quot;&gt;https://serper.dev/dashboard&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;RpWa&quot;&gt;Gemini - &lt;a href=&quot;https://aistudio.google.com/app/apikey&quot; target=&quot;_blank&quot;&gt;https://aistudio.google.com/app/apikey&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;CB0K&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;hUni&quot;&gt;Далее начнётся тестирование модели и её запуск.&lt;/p&gt;
  &lt;p id=&quot;JXpu&quot;&gt;Если вашему серверу хватит ресурсов, нода успешно запустится, и вы увидите логи в терминале.&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;zIVa&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8d/24/8d241546-e4ca-4771-9de3-1137c391a5ea.png&quot; width=&quot;1590&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;8zrt&quot;&gt;Спустя некоторое время в дашборде начнут отображаться начисленные поинты.&lt;/p&gt;
  &lt;figure id=&quot;NyKq&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/98/17/9817d860-411f-4c30-903b-03642f487cc2.png&quot; width=&quot;1862&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;AVVY&quot;&gt;Если у вас мощный сервер, вы можете запускать сразу несколько моделей — это увеличит количество получаемых заданий и, соответственно, поинтов.&lt;br /&gt; &lt;br /&gt;Например, модель &lt;strong&gt;&lt;code&gt;qwen2.5:7b-instruct-fp16&lt;/code&gt;&lt;/strong&gt; требует &lt;strong&gt;GPU с 16 ГБ видеопамяти&lt;/strong&gt;, но при этом обрабатывает около 70% всех заданий в сети и приносит больше поинтов.&lt;/p&gt;
  &lt;p id=&quot;PjhZ&quot;&gt;&lt;br /&gt;&lt;br /&gt;Оставляйте комментарии и подписывайтесь на мой &lt;strong&gt;Telegram-канал&lt;/strong&gt;, где я отвечаю на любые ваши вопросы:&lt;br /&gt;👉 &lt;a href=&quot;https://t.me/SotochkaZela&quot; target=&quot;_blank&quot;&gt;https://t.me/SotochkaZela&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>vania_ls:deQbgReLAOv1</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/deQbgReLAOv1?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>LayerEdge</title><published>2025-03-19T20:46:24.767Z</published><updated>2025-03-21T21:49:30.338Z</updated><summary type="html">Ниже — тот же гайд, но команды разбиты на блоки кода, чтобы можно было удобно копировать и вставлять в терминал.</summary><content type="html">
  &lt;hr /&gt;
  &lt;h2 id=&quot;nDow&quot;&gt;Установка LayerEdge Light Node (локальный Merkle Service)&lt;/h2&gt;
  &lt;h3 id=&quot;7ehX&quot;&gt;1. Установка зависимостей&lt;/h3&gt;
  &lt;pre id=&quot;baqW&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y
sudo apt install -y build-essential curl wget git pkg-config libssl-dev net-tools
&lt;/pre&gt;
  &lt;h4 id=&quot;IiYU&quot;&gt;Установка Go (пример: 1.23.1)&lt;/h4&gt;
  &lt;pre id=&quot;oz09&quot;&gt;wget https://golang.org/dl/go1.23.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.23.1.linux-amd64.tar.gz
echo &amp;#x27;export PATH=$PATH:/usr/local/go/bin&amp;#x27; &amp;gt;&amp;gt; ~/.bashrc
echo &amp;#x27;export GOPATH=$HOME/go&amp;#x27; &amp;gt;&amp;gt; ~/.bashrc
echo &amp;#x27;export PATH=$PATH:$GOPATH/bin&amp;#x27; &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc
go version
&lt;/pre&gt;
  &lt;h4 id=&quot;oWFD&quot;&gt;Установка Rust&lt;/h4&gt;
  &lt;pre id=&quot;EAbN&quot;&gt;curl --proto &amp;#x27;=https&amp;#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source ~/.cargo/env
rustup --version
rustc --version
&lt;/pre&gt;
  &lt;h4 id=&quot;embo&quot;&gt;Установка Risc0 Toolchain&lt;/h4&gt;
  &lt;pre id=&quot;zo7G&quot;&gt;curl -L https://risczero.com/install | bash &amp;amp;&amp;amp; rzup install
&lt;/pre&gt;
  &lt;figure id=&quot;ydo3&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/da/7f/da7f4a5f-7ff2-43bf-acee-6c1225608dd4.png&quot; width=&quot;688&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;EpAI&quot;&gt;Если ошибка то вводим эту команду &lt;/p&gt;
  &lt;pre id=&quot;WiE4&quot;&gt;source &amp;quot;/root/.bashrc&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;QDuN&quot;&gt; и устанавливаем еще раз.&lt;/p&gt;
  &lt;pre id=&quot;bmuu&quot;&gt;curl -L https://risczero.com/install | bash &amp;amp;&amp;amp; rzup install&lt;/pre&gt;
  &lt;p id=&quot;LjNr&quot;&gt;&lt;br /&gt;2. Клонируем Light Node&lt;/p&gt;
  &lt;pre id=&quot;Wvyr&quot;&gt;git clone https://github.com/Layer-Edge/light-node.git
cd light-node
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;qLU2&quot;&gt;3. Создаём файл &lt;code&gt;.env&lt;/code&gt;&lt;/h3&gt;
  &lt;pre id=&quot;UdFJ&quot;&gt;nano .env
&lt;/pre&gt;
  &lt;p id=&quot;AOp3&quot;&gt;Вставьте в файл (локальный Merkle Service):&lt;br /&gt;&lt;strong&gt;Замените приватный ключ на свой &lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;L8A4&quot;&gt;GRPC_URL=grpc.testnet.layeredge.io:9090
CONTRACT_ADDR=cosmos1ufs3tlq4umljk0qfe8k5ya0x6hpavn897u2cnf9k0en9jr7qarqqt56709
ZK_PROVER_URL=http://127.0.0.1:3001
API_REQUEST_TIMEOUT=100
POINTS_API=http://127.0.0.1:8080
PRIVATE_KEY=&amp;#x27;ВАШ_ПРИВАТНЫЙ_КЛЮЧ_БЕЗ_0x&amp;#x27;
&lt;/pre&gt;
  &lt;p id=&quot;zaWq&quot;&gt;Сохраните (&lt;code&gt;Ctrl+O&lt;/code&gt;, Enter) и выйдите (&lt;code&gt;Ctrl+X&lt;/code&gt;), затем:&lt;/p&gt;
  &lt;pre id=&quot;bXGK&quot;&gt;apt install dos2unix
chmod 600 .env
dos2unix .env
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;WWnE&quot;&gt;4. Запуск локального Merkle Service&lt;/p&gt;
  &lt;pre id=&quot;T3Dp&quot;&gt;apt install tmux
tmux&lt;/pre&gt;
  &lt;p id=&quot;KqRL&quot;&gt;Запускаем merkle и ждем пока установиться.&lt;/p&gt;
  &lt;pre id=&quot;ts6l&quot;&gt;cd risc0-merkle-service
cargo build &amp;amp;&amp;amp; cargo run &amp;gt; ../merkle.log 2&amp;gt;&amp;amp;1 &amp;amp;
cd ..
&lt;/pre&gt;
  &lt;p id=&quot;Jv9y&quot;&gt;Жмем ентер если остановились логи.&lt;br /&gt;Вводим команду и сверяем с скриншотом&lt;/p&gt;
  &lt;pre id=&quot;o5Fo&quot;&gt;netstat -tulnp | grep 3001&lt;/pre&gt;
  &lt;figure id=&quot;mqym&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/60/47/60475ebf-6f30-4989-8361-85fae6b8c362.png&quot; width=&quot;895&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;8Auz&quot;&gt;5. Сборка и запуск ноды&lt;/h3&gt;
  &lt;pre id=&quot;QuyS&quot;&gt;cd ~/light-node
go mod tidy
go build
env $(cat .env | xargs) ./light-node &amp;gt; node.log 2&amp;gt;&amp;amp;1 &amp;amp;

tail -f /root/light-node/node.log&lt;/pre&gt;
  &lt;p id=&quot;bG7h&quot;&gt;Если нода успешно запустится, в &lt;code&gt;node.log&lt;/code&gt; будет строка &lt;code&gt;Worker 1 is running...&lt;/code&gt;.&lt;br /&gt;&lt;strong&gt;Копируем айди ноды и сохраняем себе.&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;ivcQ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c4/a0/c4a04915-140d-4830-ad90-ff646e81c2b0.png&quot; width=&quot;899&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;XnAk&quot;&gt;6. Управление&lt;/h3&gt;
  &lt;p id=&quot;Mtmm&quot;&gt;&lt;strong&gt;Остановить ноду:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;srwF&quot;&gt;pkill -9 -f light-node
&lt;/pre&gt;
  &lt;p id=&quot;vFhY&quot;&gt;&lt;strong&gt;Остановить Merkle Service:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;abTc&quot;&gt;pkill -f &amp;quot;cargo run&amp;quot;
pkill -f &amp;quot;target/debug/host&amp;quot;
&lt;/pre&gt;
  &lt;p id=&quot;pX10&quot;&gt;&lt;strong&gt;Что бы посмотреть логи ноды:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;GA6f&quot;&gt;tail -f /root/light-node/merkle.log&lt;/pre&gt;
  &lt;figure id=&quot;S2Fs&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/16/ac1622e6-c751-438d-8758-1ea41600ff59.png&quot; width=&quot;1297&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TInT&quot;&gt;tail -f /root/light-node/node.log&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;pejb&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/09/74/09749148-e5f1-471b-baa1-4e911c651f56.png&quot; width=&quot;1524&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;GzwC&quot;&gt;Ошибки это нормально на данный момент.&lt;/p&gt;
  &lt;p id=&quot;jSJu&quot;&gt;Пробуем привязать айди ноды на сайте.&lt;/p&gt;
  &lt;figure id=&quot;HfHS&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/49/94/49948c28-6660-4255-8429-e4bf2c448d32.png&quot; width=&quot;842&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qHDU&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;5i0D&quot;&gt;Вводим команду в браузере что бы увидеть поинты которые нафармила нода.&lt;br /&gt;&lt;/p&gt;
  &lt;pre id=&quot;cZsI&quot;&gt;https://light-node.layeredge.io/api/cli-node/points/адрес&lt;/pre&gt;

</content></entry><entry><id>vania_ls:jziZL0_jy3n</id><link rel="alternate" type="text/html" href="https://teletype.in/@vania_ls/jziZL0_jy3n?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=vania_ls"></link><title>Nexus</title><published>2025-02-18T22:47:12.677Z</published><updated>2025-02-20T19:41:41.946Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/fa/a4/faa489d9-ecb3-4a82-a1e1-d595cbca72e3.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ed/1c/ed1c5fab-2959-4f07-a8b7-acaac1836c76.png&quot;&gt;Заходим на сервер, вводим следующую команду и ждём, пока установятся зависимости:</summary><content type="html">
  &lt;p id=&quot;b685&quot;&gt;Заходим на сервер, вводим следующую команду и ждём, пока установятся зависимости:&lt;/p&gt;
  &lt;pre id=&quot;nHu5&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y &amp;amp;&amp;amp; \
sudo apt install -y tmux nano build-essential pkg-config libssl-dev git-all unzip &amp;amp;&amp;amp; \
curl --proto &amp;#x27;=https&amp;#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y &amp;amp;&amp;amp; \
source $HOME/.cargo/env &amp;amp;&amp;amp; \
cargo --version &amp;amp;&amp;amp; \
rustup target add riscv32i-unknown-none-elf &amp;amp;&amp;amp; \
sudo apt remove -y protobuf-compiler &amp;amp;&amp;amp; \
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v25.2/protoc-25.2-linux-x86_64.zip &amp;amp;&amp;amp; \
unzip protoc-25.2-linux-x86_64.zip -d $HOME/.local &amp;amp;&amp;amp; \
export PATH=&amp;quot;$HOME/.local/bin:$PATH&amp;quot; &amp;amp;&amp;amp; \
protoc --version
&lt;/pre&gt;
  &lt;p id=&quot;BMcs&quot;&gt;Вводим следующую команду и ждём 10 минут, пока нода установится:&lt;/p&gt;
  &lt;pre id=&quot;8h10&quot;&gt;curl https://cli.nexus.xyz/ | sh&lt;/pre&gt;
  &lt;p id=&quot;pEk5&quot;&gt;&lt;br /&gt;&lt;br /&gt;если получаем ошибку:&lt;/p&gt;
  &lt;figure id=&quot;pB7w&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ed/1c/ed1c5fab-2959-4f07-a8b7-acaac1836c76.png&quot; width=&quot;925&quot; /&gt;
  &lt;/figure&gt;
  &lt;pre id=&quot;zm6Z&quot;&gt;nano $HOME/.nexus/network-api/clients/cli/src/setup.rs&lt;/pre&gt;
  &lt;p id=&quot;4tZH&quot;&gt;Зажимаем Ctrl+K что бы удалить все строки.&lt;br /&gt;&lt;br /&gt;Копируем и вставляем новый код:&lt;br /&gt;&lt;/p&gt;
  &lt;pre id=&quot;y2oG&quot;&gt;use colored::Colorize;
use directories::ProjectDirs;
use serde::{Deserialize, Serialize};
use std::fs;

// Update the import path to use the proto module
// use crate::config;
// use crate::orchestrator_client::OrchestratorClient;

pub enum SetupResult {
    Anonymous,
    Connected(String), // String could be the public key or other connection info
    Invalid,
}

#[derive(Serialize, Deserialize)]
pub struct UserConfig {
    pub node_id: String,
    pub user_id: Option&amp;lt;String&amp;gt;,
}

// fn save_user_config(user_id: &amp;amp;str, node_id: &amp;amp;str) -&amp;gt; std::io::Result&amp;lt;()&amp;gt; {
//     let proj_dirs =
//         ProjectDirs::from(&amp;quot;xyz&amp;quot;, &amp;quot;nexus&amp;quot;, &amp;quot;cli&amp;quot;).expect(&amp;quot;Failed to determine config directory&amp;quot;);

//     let config_dir = proj_dirs.config_dir();
//     fs::create_dir_all(config_dir)?;

//     let config_path = config_dir.join(&amp;quot;user.json&amp;quot;);
//     let config = UserConfig {
//         user_id: Some(user_id.to_string()),
//         node_id: node_id.to_string(),
//     };

//     fs::write(&amp;amp;config_path, serde_json::to_string_pretty(&amp;amp;config)?)?;

//     //print the user config was saved properly
//     println!(&amp;quot;User ID: {}&amp;quot;, user_id);
//     println!(&amp;quot;Node ID: {}&amp;quot;, node_id);
//     println!(&amp;quot;User config saved to: {}&amp;quot;, config_path.to_string_lossy());

//     Ok(())
// }

//function that takes a node_id and saves it to the user config
fn save_node_id(node_id: &amp;amp;str) -&amp;gt; std::io::Result&amp;lt;()&amp;gt; {
    let proj_dirs =
        ProjectDirs::from(&amp;quot;xyz&amp;quot;, &amp;quot;nexus&amp;quot;, &amp;quot;cli&amp;quot;).expect(&amp;quot;Failed to determine config directory&amp;quot;);
//
let config_dir = proj_dirs.config_dir();
fs::create_dir_all(config_dir)?;
//
    let config_path = proj_dirs.config_dir().join(&amp;quot;user.json&amp;quot;);
    let config = UserConfig {
        node_id: node_id.to_string(),
        user_id: None,
    };

    fs::write(&amp;amp;config_path, serde_json::to_string_pretty(&amp;amp;config)?)?;

    Ok(())
}

pub async fn run_initial_setup() -&amp;gt; SetupResult {
    //check if there is a user config file
    let proj_dirs =
        ProjectDirs::from(&amp;quot;xyz&amp;quot;, &amp;quot;nexus&amp;quot;, &amp;quot;cli&amp;quot;).expect(&amp;quot;Failed to determine config directory&amp;quot;);
    let config_path = proj_dirs.config_dir().join(&amp;quot;user.json&amp;quot;);
    if config_path.exists() {
        println!(&amp;quot;\nThis node is already connected to an account&amp;quot;);

        //ask the user if they want to use the existing config
        println!(&amp;quot;Do you want to use the existing user account? (y/n)&amp;quot;);
        let mut use_existing_config = String::new();
        std::io::stdin()
            .read_line(&amp;amp;mut use_existing_config)
            .unwrap();
        let use_existing_config = use_existing_config.trim();
        if use_existing_config == &amp;quot;y&amp;quot; {
            match fs::read_to_string(&amp;amp;config_path) {
                Ok(content) =&amp;gt; match serde_json::from_str::&amp;lt;UserConfig&amp;gt;(&amp;amp;content) {
                    Ok(user_config) =&amp;gt; {
                        println!(&amp;quot;\nUsing existing node ID: {}&amp;quot;, user_config.node_id);
                        return SetupResult::Connected(user_config.node_id);
                    }
                    Err(e) =&amp;gt; {
                        println!(&amp;quot;{}&amp;quot;, format!(&amp;quot;Failed to parse config file: {}&amp;quot;, e).red());
                        return SetupResult::Invalid;
                    }
                },
                Err(e) =&amp;gt; {
                    println!(&amp;quot;{}&amp;quot;, format!(&amp;quot;Failed to read config file: {}&amp;quot;, e).red());
                    return SetupResult::Invalid;
                }
            }
        } else {
            println!(&amp;quot;Ignoring existing user account...&amp;quot;);
        }
    }

    println!(&amp;quot;\nThis node is not connected to any account.\n&amp;quot;);
    println!(&amp;quot;[1] Enter &amp;#x27;1&amp;#x27; to start proving without earning NEX&amp;quot;);
    println!(&amp;quot;[2] Enter &amp;#x27;2&amp;#x27; to start earning NEX by connecting adding your node ID&amp;quot;);

    let mut option = String::new();
    std::io::stdin().read_line(&amp;amp;mut option).unwrap();
    let option = option.trim();

    //if no config file exists, ask the user to enter their email
    match option {
        &amp;quot;1&amp;quot; =&amp;gt; {
            println!(&amp;quot;You chose option 1\n&amp;quot;);
            SetupResult::Anonymous
        }
        &amp;quot;2&amp;quot; =&amp;gt; {
            println!(
                &amp;quot;\n===== {} =====\n&amp;quot;,
                &amp;quot;Adding your node ID to the CLI&amp;quot;
                    .bold()
                    .underline()
                    .bright_cyan()
            );
            println!(&amp;quot;You chose to start earning NEX by connecting your node ID\n&amp;quot;);
            println!(&amp;quot;If you don&amp;#x27;t have a node ID, you can get it by following these steps:\n&amp;quot;);
            println!(&amp;quot;1. Go to https://app.nexus.xyz/nodes&amp;quot;);
            println!(&amp;quot;2. Sign in&amp;quot;);
            println!(&amp;quot;3. Click on the &amp;#x27;+ Add Node&amp;#x27; button&amp;quot;);
            println!(&amp;quot;4. Select &amp;#x27;Add CLI node&amp;#x27;&amp;quot;);
            println!(&amp;quot;5. You will be given a node ID to add to this CLI&amp;quot;);
            println!(&amp;quot;6. Enter the node ID into the terminal below:\n&amp;quot;);

            let node_id = get_node_id_from_user();
            match save_node_id(&amp;amp;node_id) {
                Ok(_) =&amp;gt; SetupResult::Connected(node_id),
                Err(e) =&amp;gt; {
                    println!(&amp;quot;{}&amp;quot;, format!(&amp;quot;Failed to save node ID: {}&amp;quot;, e).red());
                    SetupResult::Invalid
                }
            }
        }
        _ =&amp;gt; {
            println!(&amp;quot;Invalid option&amp;quot;);
            SetupResult::Invalid
        }
    }
}

pub fn clear_user_config() -&amp;gt; std::io::Result&amp;lt;()&amp;gt; {
    let proj_dirs =
        ProjectDirs::from(&amp;quot;xyz&amp;quot;, &amp;quot;nexus&amp;quot;, &amp;quot;cli&amp;quot;).expect(&amp;quot;Failed to determine config directory&amp;quot;);
    let config_path = proj_dirs.config_dir().join(&amp;quot;user.json&amp;quot;);
    if config_path.exists() {
        fs::remove_file(config_path)?;
    }
    Ok(())
}

fn get_node_id_from_user() -&amp;gt; String {
    println!(&amp;quot;{}&amp;quot;, &amp;quot;Please enter your node ID:&amp;quot;.green());
    let mut node_id = String::new();
    std::io::stdin()
        .read_line(&amp;amp;mut node_id)
        .expect(&amp;quot;Failed to read node ID&amp;quot;);
    node_id.trim().to_string()
}
&lt;/pre&gt;
  &lt;p id=&quot;AGVQ&quot;&gt;&lt;strong&gt;Сохраняем изменения в редакторе&lt;/strong&gt;&lt;br /&gt;Нажмите комбинацию клавиш &lt;strong&gt;CTRL+X&lt;/strong&gt;, затем &lt;strong&gt;Y&lt;/strong&gt; и &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;nz4m&quot;&gt;&lt;strong&gt;Запускаем ноду&lt;/strong&gt;&lt;br /&gt;Перейдите в директорию и запустите ноду:&lt;/p&gt;
  &lt;pre id=&quot;dfDu&quot;&gt;cd /root/.nexus/network-api/clients/cli/&lt;/pre&gt;
  &lt;pre id=&quot;etRo&quot;&gt;cargo run --release -- --start --beta
&lt;/pre&gt;
  &lt;figure id=&quot;Kho1&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0c/f5/0cf54f92-cfbf-4c33-ac34-ce0a5fd0293f.png&quot; width=&quot;1170&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;KXp5&quot;&gt;&lt;strong&gt;Привязка ID&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Если ошибок нет, выберите опцию &lt;strong&gt;2&lt;/strong&gt;, введите свой ID и нажмите &lt;strong&gt;Enter&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Важно: ID для каждой ноды должен быть уникальным.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;tJd2&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Если после этого снова возникает ошибка:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;Lltb&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/83/9a/839a404a-c00f-465f-ba7e-26cf97eb90a9.png&quot; width=&quot;824&quot; /&gt;
  &lt;/figure&gt;
  &lt;pre id=&quot;uzzx&quot;&gt;rustup target add riscv32i-unknown-none-elf
&lt;/pre&gt;
  &lt;pre id=&quot;VwR6&quot;&gt;tmux new-session -s nexus&lt;/pre&gt;
  &lt;pre id=&quot;GrS6&quot;&gt;cargo run --release -- --start --beta&lt;/pre&gt;
  &lt;p id=&quot;BRRf&quot;&gt;&lt;strong&gt;Вибираем Y&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;kvgT&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fe/dc/fedc5cc7-be9f-4f10-9f5a-37bc92967cc6.png&quot; width=&quot;1059&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;D2vv&quot;&gt;Если видим такие логи, значит нода работает.&lt;/p&gt;
  &lt;p id=&quot;KylK&quot;&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Всем спасибо, подпишитесь на мой телеграм канал, там больше новых гайдов! &lt;a href=&quot;https://t.me/SotochkaZela&quot; target=&quot;_blank&quot;&gt;https://t.me/SotochkaZela&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

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