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

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

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

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

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@vania_ls/x9GdonE2Jg6</guid><link>https://teletype.in/@vania_ls/x9GdonE2Jg6?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls</link><comments>https://teletype.in/@vania_ls/x9GdonE2Jg6?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls#comments</comments><dc:creator>vania_ls</dc:creator><title>AZTEC</title><pubDate>Fri, 02 May 2025 12:49:10 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/ef/2c/ef2cc0c9-e27f-47e6-bfcc-c7496da5822e.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/a0/2d/a02d2483-2e31-40fa-b576-74314ff17ac3.png"></img>Системные требования]]></description><content:encoded><![CDATA[
  <p id="oZUg">Системные требования</p>
  <ul id="XHbI">
    <li id="27gF">CPU: 8 ядер</li>
    <li id="aA3y">RAM: 16 GB</li>
    <li id="NYn9">Ubuntu 22.04</li>
    <li id="AWuE">SSD: &gt;100 GB<br /></li>
  </ul>
  <p id="7YzX"><strong>Установка зависимостей</strong></p>
  <pre id="0AQJ">sudo apt update &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
</pre>
  <p id="KvFm"><strong>Docker</strong> </p>
  <pre id="2RgE">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 &quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release &amp;&amp; echo $VERSION_CODENAME) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
sudo apt update -y &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; sudo systemctl restart docker</pre>
  <p id="CcUh"><strong>Необходимые URL</strong></p>
  <p id="86hs">Для запуска Aztec Sequencer Node нужны два URL:</p>
  <ul id="xUi8">
    <li id="4CoI"><strong>Sepolia RPC</strong> — получить можно, например, на <a href="https://blockpi.io" target="_blank">BlockPi</a>, <a href="https://alchemy.com" target="_blank">Alchemy</a></li>
    <li id="2pGs"><strong>Sepolia BEACON RPC</strong>  — получить можно, например, на: <a href="http://blockpi.io" target="_blank">blockpi.io</a> <a href="https://drpc.org/" target="_blank">drpc.org/</a></li>
  </ul>
  <p id="pSmn">Также <strong>необходимо пополнить</strong> ваш адрес EVM тестовым ETH Sepolia</p>
  <p id="j1Xk"><strong>Установка и обновление Aztec</strong></p>
  <pre id="S0Qg">bash &lt;(curl -fsSL https://raw.githubusercontent.com/VaniaHilkovets/AZTEC/main/aztec.sh)</pre>
  <p id="Tojo">Введите ваш приватный ключ. адрес, ваши RPC URL и айпи сервера.</p>
  <p id="m9RN">Ждем пока пройдет синхронизация</p>
  <hr />
  <figure id="aRGt" class="m_column">
    <img src="https://img3.teletype.in/files/e2/69/e26978a6-dbab-44c4-9c22-30854aa97e6e.png" width="1571" />
  </figure>
  <p id="kp22"><strong>Нормальные логи после синхронизации:</strong></p>
  <figure id="yHnL" class="m_column">
    <img src="https://img1.teletype.in/files/ca/7d/ca7d61a9-e892-4079-98fd-d2d2fd013e38.png" width="1611" />
  </figure>
  <p id="5Iwv">Нажмите <code>Ctrl + c</code>,  что бы выйти из логов</p>
  <p id="bTC2"><strong><br />Получаем номер последнего проверенного блока:</strong></p>
  <pre id="zNNB">curl -s -X POST -H &#x27;Content-Type: application/json&#x27; \
-d &#x27;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;method&quot;:&quot;node_getL2Tips&quot;,&quot;params&quot;:[],&quot;id&quot;:67}&#x27; \
http://localhost:8080 | jq -r &quot;.result.proven.number&quot;</pre>
  <figure id="Yidy" class="m_column">
    <img src="https://img3.teletype.in/files/60/83/608357c1-dbfa-457f-83b4-62401b804ff8.png" width="758" />
  </figure>
  <p id="cG7l">Запомните полученное число — это <code>BLOCK_NUMBER</code>, он понадобится в следующем шаге.</p>
  <p id="Vxp6"><strong>Получаем архивное подтверждение:</strong></p>
  <p id="YjyW">Замените <code>BLOCK_NUMBER</code> на число из предыдущего шага (в двух местах):</p>
  <pre id="MtNR">curl -s -X POST -H &#x27;Content-Type: application/json&#x27; \
-d &#x27;{&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;method&quot;:&quot;node_getArchiveSiblingPath&quot;,&quot;params&quot;:[&quot;BLOCK_NUMBER&quot;,&quot;BLOCK_NUMBER&quot;],&quot;id&quot;:67}&#x27; \
http://localhost:8080</pre>
  <figure id="1iFW" class="m_column">
    <img src="https://img3.teletype.in/files/6d/8b/6d8b761c-e291-4da1-9501-3b5ee2679261.png" width="1622" />
  </figure>
  <p id="2lBV">Скопируйте результат <strong>полностью</strong> — это длинная строка в формате <strong>base64</strong>.<br /> Не добавляйте пробелов или переносов строк.</p>
  <p id="2aQb">Перейдите в Discord-сервер Aztec: <a href="https://discord.gg/aztec" target="_blank">https://discord.gg/aztec</a></p>
  <p id="3UNC">Откройте ветку <code>#operators | start-here</code></p>
  <p id="oA6E">Введите команду:</p>
  <pre id="QPwU">/operator start</pre>
  <p id="VDoJ"></p>
  <ol id="wNmv">
    <li id="Oq2X">Заполните поля:</li>
  </ol>
  <ul id="5WdY">
    <li id="HSxR"><strong>address</strong> — ваш публичный EVM-адрес</li>
    <li id="2MbG"><strong>block-number</strong> — номер<strong> последнего проверенного блока</strong></li>
    <li id="qq48"><strong>proof</strong> — строка base64</li>
  </ul>
  <ol id="ytfc">
    <li id="RJT8">Нажмите <strong>Enter</strong></li>
  </ol>
  <figure id="OfCV" class="m_column">
    <img src="https://img4.teletype.in/files/b4/de/b4de7ccb-18c0-422e-80ad-fddb82af3c82.png" width="836" />
  </figure>
  <p id="lcB6">Если вы получили подтверждение — значит, всё сделано правильно!</p>
  <p id="fAmh"><strong>Регистрация валидатора:</strong><br />Замените <code>SEPOLIA-RPC-URL</code>, <code>YOUR-PRIVATE-KEY</code>, <code>YOUR-VALIDATOR-ADDRESS</code> на реальные значения а затем выполните эту команду.</p>
  <pre id="7LoL">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</pre>
  <p id="VJNX">Если видим такую ошибку:</p>
  <figure id="KJF4" class="m_column">
    <img src="https://img3.teletype.in/files/23/52/23526ce2-fa1e-4b17-9843-88cb7364c9b6.png" width="1289" />
  </figure>
  <p id="hOnn">Это значит, что <strong>на сегодня достигнут лимит добавления новых валидаторов</strong> — их может быть зарегистрировано только ограниченное количество в сутки<br /></p>
  <p id="V4Ya">Если полистать вверх то мы увидим ошибку<code>ValidatorQuotaFilledUntil(1746236580)</code> которая указывает, <strong>до какого времени нельзя добавлять новых валидаторов</strong></p>
  <figure id="8vzO" class="m_column">
    <img src="https://img3.teletype.in/files/6b/f1/6bf1825f-9171-456e-bd69-1a6a48217909.png" width="879" />
  </figure>
  <p id="fPOp">Это Unix-время (в секундах), которое можно преобразовать в обычную дату, например:</p>
  <pre id="C9vy">date -d @1746236580</pre>
  <figure id="c50E" class="m_original">
    <img src="https://img1.teletype.in/files/06/e8/06e8d549-83cd-4d17-9309-23fd6280388f.png" width="398" />
  </figure>
  <p id="iWiS">Это значит что нужно пробовать зарегистрировать валидатора после этой даты!</p>
  <p id="zEyC"><br />Снова посмотреть логи :</p>
  <pre id="aZxe">docker logs -f aztec-node</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@vania_ls/tbRLavy6ZeC</guid><link>https://teletype.in/@vania_ls/tbRLavy6ZeC?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls</link><comments>https://teletype.in/@vania_ls/tbRLavy6ZeC?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls#comments</comments><dc:creator>vania_ls</dc:creator><title>Biconomy</title><pubDate>Tue, 08 Apr 2025 18:32:04 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/1f/cb/1fcbdd25-bebb-40fb-aea0-d24b453cb9dd.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/7c/9a/7c9a95f0-4064-48da-9d69-7f05422b7b30.png"></img>Зарегистрируйтесь на BlockPI и создайте RPC-эндпоинты для нужных сетей]]></description><content:encoded><![CDATA[
  <p id="424s"><strong>Зарегистрируйтесь на BlockPI</strong> и создайте RPC-эндпоинты для нужных сетей</p>
  <p id="MdOy"><a href="https://dashboard.blockpi.io/" target="_blank">https://dashboard.blockpi.io/</a></p>
  <figure id="FPQY" class="m_column">
    <img src="https://img4.teletype.in/files/7c/9a/7c9a95f0-4064-48da-9d69-7f05422b7b30.png" width="1717" />
  </figure>
  <p id="RKs5">Откройте терминал и выполните команды:</p>
  <pre id="k0A2">apt update &amp;&amp; apt upgrade -y &amp;&amp; apt install -y curl git ufw nano &amp;&amp; curl -fsSL https://get.docker.com | sh &amp;&amp; curl -L &quot;https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose &amp;&amp; chmod +x /usr/local/bin/docker-compose &amp;&amp; docker -v &amp;&amp; docker compose version</pre>
  <pre id="dkKE">git clone https://github.com/bcnmy/mee-node-deployment</pre>
  <p id="Tf92"><br />Откройте файлы сетей и пропишите свои RPC-эндпоинты.<br />Редактируйте каждый файл по очереди командой:</p>
  <pre id="8RYE">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</pre>
  <p id="iWvt">Сохраните: <code>Ctrl + X</code> → <code>Y</code> → <code>Enter<br /><br /></code>Пример для ефириум майннет:</p>
  <figure id="oUHV" class="m_column">
    <img src="https://img2.teletype.in/files/96/09/96097f84-2370-48c8-93e1-9010688a951b.png" width="800" />
  </figure>
  <p id="PjOK"><strong>Пополните адрес EVM тестовыми токенами :</strong><br /><br />Убедитесь, что ваш EVM-адрес (адрес из приватного ключа) <strong>имеет тестовые ETH</strong> в следующих сетях:</p>
  <ul id="i8KN">
    <li id="OMyP">Ethereum Sepolia</li>
    <li id="wMgp">Optimism Sepolia</li>
    <li id="i6Ce">Arbitrum Sepolia</li>
    <li id="dq3x">Base Sepolia</li>
  </ul>
  <p id="Nmww"><br />Вставьте свой EVM-приватный ключ:<br />Найдите строку с <code>KEY=</code> и вставьте свой приватный ключ в формате <code>0x...</code>:</p>
  <pre id="Fl0e">nano /root/mee-node-deployment/docker-compose.yml</pre>
  <figure id="9Jac" class="m_column">
    <img src="https://img3.teletype.in/files/a9/a8/a9a8a983-0d42-4453-9b2c-11c9df8fa2f0.png" width="922" />
  </figure>
  <p id="t0MM">Сохраните: <code>Ctrl + X</code> → <code>Y</code> → <code>Enter<br /><br /></code>Перейдите в папку с нодой и запустите:</p>
  <pre id="gX3m">cd /root/mee-node-deployment/</pre>
  <pre id="bRNI">docker compose up -d</pre>
  <pre id="8pQx">docker compose logs -f node</pre>
  <p id="kNpp">Пример корректных логов:</p>
  <figure id="fDmY" class="m_column">
    <img src="https://img3.teletype.in/files/62/48/62480c70-79b4-44c4-a1e8-467b5d79b5e0.png" width="1356" />
  </figure>
  <hr />
  <h3 id="rkG1">Откройте в браузере:</h3>
  <p id="5hqU"><strong>Основной адрес:</strong></p>
  <pre id="Feq7">http://&lt;твой_IP&gt;:3000</pre>
  <figure id="9OST" class="m_column">
    <img src="https://img3.teletype.in/files/2b/20/2b20a505-b607-40cf-8763-76cfc3a78050.png" width="1065" />
  </figure>
  <p id="sUri"><strong>Статус ноды:</strong></p>
  <pre id="uROg">http://&lt;твой_IP&gt;:3000/v3/info</pre>
  <figure id="qVvM" class="m_column">
    <img src="https://img4.teletype.in/files/30/4b/304b763f-e126-493d-b654-80c714d9038a.png" width="1065" />
  </figure>
  <hr />
  <h3 id="Gson">Отправьте ссылку в Discord</h3>
  <p id="2eo5">Перейди в ветку <code>#node-url</code> в Discord:</p>
  <p id="cKj2"><a href="https://discord.gg/4bkj55dv" target="_blank">https://discord.gg/4bkj55dv</a></p>
  <p id="3y89">И отправь туда адрес вашей ноды:</p>
  <pre id="UzkC">http://&lt;твой_IP&gt;:3000</pre>
  <p id="XqiH"></p>
  <p id="CwpL"></p>
  <p id="XOic">Оставляйте комментарии и подписывайтесь на мой <strong>Telegram-канал</strong>, где я отвечаю на любые ваши вопросы:<br />👉 <a href="https://t.me/SotochkaZela" target="_blank">https://t.me/SotochkaZela</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@vania_ls/xvRXZu-0ili</guid><link>https://teletype.in/@vania_ls/xvRXZu-0ili?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls</link><comments>https://teletype.in/@vania_ls/xvRXZu-0ili?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls#comments</comments><dc:creator>vania_ls</dc:creator><title>Gensyn</title><pubDate>Tue, 01 Apr 2025 02:28:21 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/7c/16/7c160ec8-469a-4871-bda4-16ac76bdbbed.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/da/50/da50f3bb-fbf5-462a-92ed-675e6cf4f7e2.png"></img>После запуска нода попросит зайти по URL (http://localhost:3000) для логина.]]></description><content:encoded><![CDATA[
  <h3 id="HIdx">Gensyn RL-Swarm Node  (Linux VPS)</h3>
  <h3 id="gbSX">Установка всех необходимых компонентов:</h3>
  <pre id="QtiU"># Обновление системыsudo apt update &amp;&amp; sudo apt upgrade -y &amp;&amp; \
sudo apt purge -y nodejs npm libnode* nodejs-doc &amp;&amp; \
sudo rm -rf /usr/{lib,local/lib}/node_modules /usr/{bin,local/bin}/{node,npm} &amp;&amp; \
sudo apt clean &amp;&amp; sudo apt update &amp;&amp; \
sudo apt install -y curl wget git build-essential python3 python3-pip python3-venv python3.10-dev screen &amp;&amp; \
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &amp;&amp; \
sudo apt install -y nodejs &amp;&amp; \
sudo npm install -g yarn@1.22.22 esbuild next &amp;&amp; \
pip install --upgrade jinja2 &amp;&amp; \
node -v &amp;&amp; npm -v &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 &#x27;export CUDA_HOME=/usr/local/cuda&#x27; &gt;&gt; ~/.bashrc
echo &#x27;export PATH=$CUDA_HOME/bin:$PATH&#x27; &gt;&gt; ~/.bashrc
echo &#x27;export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH&#x27; &gt;&gt; ~/.bashrc
source ~/.bashrc
</pre>
  <hr />
  <h3 id="xnMn">Скачиваем ноду:</h3>
  <pre id="aYyG">
git clone https://github.com/VaniaHilkovets/GensynFix.git &amp;&amp; cd GensynFix &amp;&amp; chmod +x run_rl_swarm.sh
</pre>
  <h3 id="zEF3">Запуск в screen:</h3>
  <pre id="fmjj">screen -S gensyn

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

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

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@vania_ls/deQbgReLAOv1</guid><link>https://teletype.in/@vania_ls/deQbgReLAOv1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls</link><comments>https://teletype.in/@vania_ls/deQbgReLAOv1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls#comments</comments><dc:creator>vania_ls</dc:creator><title>LayerEdge</title><pubDate>Wed, 19 Mar 2025 20:46:24 GMT</pubDate><description><![CDATA[Ниже — тот же гайд, но команды разбиты на блоки кода, чтобы можно было удобно копировать и вставлять в терминал.]]></description><content:encoded><![CDATA[
  <hr />
  <h2 id="nDow">Установка LayerEdge Light Node (локальный Merkle Service)</h2>
  <h3 id="7ehX">1. Установка зависимостей</h3>
  <pre id="baqW">sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt install -y build-essential curl wget git pkg-config libssl-dev net-tools
</pre>
  <h4 id="IiYU">Установка Go (пример: 1.23.1)</h4>
  <pre id="oz09">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 &#x27;export PATH=$PATH:/usr/local/go/bin&#x27; &gt;&gt; ~/.bashrc
echo &#x27;export GOPATH=$HOME/go&#x27; &gt;&gt; ~/.bashrc
echo &#x27;export PATH=$PATH:$GOPATH/bin&#x27; &gt;&gt; ~/.bashrc
source ~/.bashrc
go version
</pre>
  <h4 id="oWFD">Установка Rust</h4>
  <pre id="EAbN">curl --proto &#x27;=https&#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source ~/.cargo/env
rustup --version
rustc --version
</pre>
  <h4 id="embo">Установка Risc0 Toolchain</h4>
  <pre id="zo7G">curl -L https://risczero.com/install | bash &amp;&amp; rzup install
</pre>
  <figure id="ydo3" class="m_original">
    <img src="https://img2.teletype.in/files/da/7f/da7f4a5f-7ff2-43bf-acee-6c1225608dd4.png" width="688" />
  </figure>
  <p id="EpAI">Если ошибка то вводим эту команду </p>
  <pre id="WiE4">source &quot;/root/.bashrc&quot;</pre>
  <p id="QDuN"> и устанавливаем еще раз.</p>
  <pre id="bmuu">curl -L https://risczero.com/install | bash &amp;&amp; rzup install</pre>
  <p id="LjNr"><br />2. Клонируем Light Node</p>
  <pre id="Wvyr">git clone https://github.com/Layer-Edge/light-node.git
cd light-node
</pre>
  <hr />
  <h3 id="qLU2">3. Создаём файл <code>.env</code></h3>
  <pre id="UdFJ">nano .env
</pre>
  <p id="AOp3">Вставьте в файл (локальный Merkle Service):<br /><strong>Замените приватный ключ на свой </strong></p>
  <pre id="L8A4">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=&#x27;ВАШ_ПРИВАТНЫЙ_КЛЮЧ_БЕЗ_0x&#x27;
</pre>
  <p id="zaWq">Сохраните (<code>Ctrl+O</code>, Enter) и выйдите (<code>Ctrl+X</code>), затем:</p>
  <pre id="bXGK">apt install dos2unix
chmod 600 .env
dos2unix .env
</pre>
  <hr />
  <p id="WWnE">4. Запуск локального Merkle Service</p>
  <pre id="T3Dp">apt install tmux
tmux</pre>
  <p id="KqRL">Запускаем merkle и ждем пока установиться.</p>
  <pre id="ts6l">cd risc0-merkle-service
cargo build &amp;&amp; cargo run &gt; ../merkle.log 2&gt;&amp;1 &amp;
cd ..
</pre>
  <p id="Jv9y">Жмем ентер если остановились логи.<br />Вводим команду и сверяем с скриншотом</p>
  <pre id="o5Fo">netstat -tulnp | grep 3001</pre>
  <figure id="mqym" class="m_column">
    <img src="https://img3.teletype.in/files/60/47/60475ebf-6f30-4989-8361-85fae6b8c362.png" width="895" />
  </figure>
  <hr />
  <h3 id="8Auz">5. Сборка и запуск ноды</h3>
  <pre id="QuyS">cd ~/light-node
go mod tidy
go build
env $(cat .env | xargs) ./light-node &gt; node.log 2&gt;&amp;1 &amp;

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

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@vania_ls/jziZL0_jy3n</guid><link>https://teletype.in/@vania_ls/jziZL0_jy3n?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls</link><comments>https://teletype.in/@vania_ls/jziZL0_jy3n?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=vania_ls#comments</comments><dc:creator>vania_ls</dc:creator><title>Nexus</title><pubDate>Tue, 18 Feb 2025 22:47:12 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/fa/a4/faa489d9-ecb3-4a82-a1e1-d595cbca72e3.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/ed/1c/ed1c5fab-2959-4f07-a8b7-acaac1836c76.png"></img>Заходим на сервер, вводим следующую команду и ждём, пока установятся зависимости:]]></description><content:encoded><![CDATA[
  <p id="b685">Заходим на сервер, вводим следующую команду и ждём, пока установятся зависимости:</p>
  <pre id="nHu5">sudo apt update &amp;&amp; sudo apt upgrade -y &amp;&amp; \
sudo apt install -y tmux nano build-essential pkg-config libssl-dev git-all unzip &amp;&amp; \
curl --proto &#x27;=https&#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y &amp;&amp; \
source $HOME/.cargo/env &amp;&amp; \
cargo --version &amp;&amp; \
rustup target add riscv32i-unknown-none-elf &amp;&amp; \
sudo apt remove -y protobuf-compiler &amp;&amp; \
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v25.2/protoc-25.2-linux-x86_64.zip &amp;&amp; \
unzip protoc-25.2-linux-x86_64.zip -d $HOME/.local &amp;&amp; \
export PATH=&quot;$HOME/.local/bin:$PATH&quot; &amp;&amp; \
protoc --version
</pre>
  <p id="BMcs">Вводим следующую команду и ждём 10 минут, пока нода установится:</p>
  <pre id="8h10">curl https://cli.nexus.xyz/ | sh</pre>
  <p id="pEk5"><br /><br />если получаем ошибку:</p>
  <figure id="pB7w" class="m_column">
    <img src="https://img3.teletype.in/files/ed/1c/ed1c5fab-2959-4f07-a8b7-acaac1836c76.png" width="925" />
  </figure>
  <pre id="zm6Z">nano $HOME/.nexus/network-api/clients/cli/src/setup.rs</pre>
  <p id="4tZH">Зажимаем Ctrl+K что бы удалить все строки.<br /><br />Копируем и вставляем новый код:<br /></p>
  <pre id="y2oG">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&lt;String&gt;,
}

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

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

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

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

//     //print the user config was saved properly
//     println!(&quot;User ID: {}&quot;, user_id);
//     println!(&quot;Node ID: {}&quot;, node_id);
//     println!(&quot;User config saved to: {}&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;str) -&gt; std::io::Result&lt;()&gt; {
    let proj_dirs =
        ProjectDirs::from(&quot;xyz&quot;, &quot;nexus&quot;, &quot;cli&quot;).expect(&quot;Failed to determine config directory&quot;);
//
let config_dir = proj_dirs.config_dir();
fs::create_dir_all(config_dir)?;
//
    let config_path = proj_dirs.config_dir().join(&quot;user.json&quot;);
    let config = UserConfig {
        node_id: node_id.to_string(),
        user_id: None,
    };

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

    Ok(())
}

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

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

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

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

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

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

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

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

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