<?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>Crypto Cowboy</title><generator>teletype.in</generator><description><![CDATA[Your cow-mate in crypto world :)

discord: @cryptocowboy8
x.com: x.com/cryptocowboyInf]]></description><image><url>https://img3.teletype.in/files/69/9a/699ab71e-f009-48f9-a169-ae0d19b79594.png</url><title>Crypto Cowboy</title><link>https://teletype.in/@cryptocowboy8</link></image><link>https://teletype.in/@cryptocowboy8?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/cryptocowboy8?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/cryptocowboy8?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sat, 24 Oct 2026 08:08:56 GMT</pubDate><lastBuildDate>Sat, 24 Oct 2026 08:08:56 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@cryptocowboy8/fM4ho5vPOzH</guid><link>https://teletype.in/@cryptocowboy8/fM4ho5vPOzH?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8</link><comments>https://teletype.in/@cryptocowboy8/fM4ho5vPOzH?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8#comments</comments><dc:creator>cryptocowboy8</dc:creator><title>Fleek Network [Installation Guide]</title><pubDate>Mon, 09 Sep 2024 16:40:21 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/f5/27/f5277ca3-62d3-4fc0-abe0-a346263fb61d.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/8e/27/8e27ae4e-a8af-4411-a4b3-471d3e7a7a72.jpeg"></img>1. Prepare Your Environment]]></description><content:encoded><![CDATA[
  <figure id="ECDe" class="m_original">
    <img src="https://img1.teletype.in/files/8e/27/8e27ae4e-a8af-4411-a4b3-471d3e7a7a72.jpeg" width="1388" />
  </figure>
  <p id="m2ax">1. <strong>Prepare Your Environment</strong></p>
  <ul id="sLke">
    <li id="vL1h"><strong>System Requirements</strong>: Ensure your server meets the basic requirements. It&#x27;s recommended to use a Linux-based system (preferably Ubuntu).</li>
    <li id="NmvB"><strong>Install Dependencies</strong>: Start by installing necessary packages:</li>
  </ul>
  <pre id="t6av">sudo apt-get update
sudo apt-get install build-essential clang pkg-config libssl-dev gcc-multilib protobuf-compiler
</pre>
  <h3 id="byTW">2. <strong>Install Rust</strong></h3>
  <ul id="697q">
    <li id="scWT"><strong>Rust Installation</strong>: Fleek Network is built using Rust, so you need to install Rust:</li>
  </ul>
  <pre id="S0Wj">curl --proto &#x27;=https&#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustup update
</pre>
  <h3 id="sfIa">3. <strong>Clone the Fleek Network Repository</strong></h3>
  <ul id="IUy4">
    <li id="Cewx"><strong>Clone the Source Code</strong>: Download the latest version of the Fleek Network node software from GitHub:</li>
  </ul>
  <pre id="uG4h">git clone -b testnet-alpha-1 https://github.com/fleek-network/lightning.git ~/fleek-network/lightning
cd ~/fleek-network/lightning
</pre>
  <h3 id="54jv">4. <strong>Build the Node</strong></h3>
  <ul id="riEn">
    <li id="o4kJ"><strong>Compile the Node</strong>: Navigate to the project directory and build the node using Rust’s package manager:</li>
  </ul>
  <pre id="nE86">cargo clean
cargo update
cargo +stable install --locked --path core/cli --features services
</pre>
  <p id="8spy"><strong>Link the Executable</strong>: To make the node command globally accessible, create a symbolic link:</p>
  <pre id="bigN">sudo ln -s &quot;$HOME/.cargo/bin/lightning-node&quot; /usr/local/bin/lgtn
</pre>
  <h3 id="iq7j">5. <strong>Configure and Run the Node</strong></h3>
  <ul id="VjSN">
    <li id="Tcr1"><strong>Node Configuration</strong>: Before starting the node, you might need to configure it using the <code>lightning.toml</code> file. The default configuration should suffice for most cases, but adjustments can be made based on your setup.</li>
    <li id="Thjm"><strong>Start the Node</strong>: Run the node using the following command:</li>
  </ul>
  <pre id="FbtP">lgtn run
</pre>
  <p id="8CsP"><strong>Opt-In to Network Participation</strong>: To participate in the network, you must opt-in:</p>
  <pre id="jYS9">lgtn opt in
</pre>
  <h3 id="jXh5">6. <strong>Monitor and Maintain the Node</strong></h3>
  <ul id="Wcs9">
    <li id="Rgat"><strong>Systemd Service</strong>: It&#x27;s advisable to manage your node using <code>systemd</code> to ensure it restarts automatically in case of failure:</li>
  </ul>
  <pre id="35T4">[Unit]
Description=Fleek Network Node
After=network.target

[Service]
Type=simple
User=your_username
ExecStart=/usr/local/bin/lgtn run
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
</pre>
  <p id="D39Y">After saving the service file, enable and start the service:</p>
  <pre id="UcUZ">sudo systemctl enable fleek-node
sudo systemctl start fleek-node
</pre>
  <h3 id="X2DI">7. <strong>Keep the Node Updated</strong></h3>
  <ul id="cs18">
    <li id="O6sR"><strong>Regular Updates</strong>: Since Fleek Network is in active development, frequently pull the latest changes from the GitHub repository and rebuild the node to ensure you&#x27;re running the latest version:</li>
  </ul>
  <pre id="6tZv">git pull origin testnet-alpha-1
cargo clean
cargo update
cargo +stable install --locked --path core/cli --features services
</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@cryptocowboy8/nodewithpanic</guid><link>https://teletype.in/@cryptocowboy8/nodewithpanic?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8</link><comments>https://teletype.in/@cryptocowboy8/nodewithpanic?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8#comments</comments><dc:creator>cryptocowboy8</dc:creator><title>Setting up node monitoring using Panic Bot</title><pubDate>Mon, 08 Jul 2024 09:29:29 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/c6/dc/c6dc46b3-707f-49dc-8b04-92a1d58c8380.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/03/b6/03b6aca0-19af-42f6-9a81-ad62d3e86aa3.png"></img>At some point, the number of installed nodes will exceed the allowable limit, and daily checks of their operability will turn into a routine you’ll want to get rid of. Over almost two years of node management, I’ve tried several tools, and Panic Bot from Simply VS has proven to be the most convenient to use.]]></description><content:encoded><![CDATA[
  <p id="MF78">At some point, the number of installed nodes will exceed the allowable limit, and daily checks of their operability will turn into a routine you’ll want to get rid of. Over almost two years of node management, I’ve tried several tools, and Panic Bot from Simply VS has proven to be the most convenient to use.</p>
  <p id="pc7R">In this guide, I will try to describe in detail the process of installing and configuring the bot for the following situations: missed blocks, changes in voting power, getting jailed, losing synchronization, and critical server disk space usage.</p>
  <p id="uQNp">In this guide, I will use a universal solution for monitoring multiple nodes simultaneously, so I will install the bot on a separate server. If you need to monitor only one node, all actions can be performed on the server with that node, and you can use the notes in the purple frames.</p>
  <hr />
  <hr />
  <section>
    <h3 id="nH0y" data-align="center"><strong>Content</strong></h3>
  </section>
  <ul id="vNLj">
    <li id="1j6h"><a href="#YKkF">Server preparation</a></li>
    <li id="S3Hd"><a href="#AeM4">Installation of Panic!</a></li>
    <li id="E5UZ"><a href="#qyPL">Setting up the Telegram bot</a></li>
    <li id="St0F"><a href="#wIMr">Setting up Redis</a></li>
    <li id="EeaB"><a href="#4GwT">Connecting a node to monitoring</a></li>
    <li id="gyk1"><a href="#db13">Start Panic!</a></li>
    <li id="UmfC"><a href="#XFCO">Adding nodes for monitoring</a></li>
    <li id="cQaF"><a href="#bkpf">Changing settings</a></li>
  </ul>
  <hr />
  <section>
    <h3 id="YKkF" data-align="center"><strong>Server preparation</strong></h3>
  </section>
  <p id="LQFN" data-align="right"><a href="#nH0y">Content</a></p>
  <p id="CR25">Panic! doesn&#x27;t use many resources, so it can be installed on the simplest server, such as Hetzner - CPX11.</p>
  <p id="M8Qq">Update your packages</p>
  <pre data-lang="bash" id="tX6f">sudo apt update &amp;&amp; sudo apt upgrade -y</pre>
  <p id="fpfu">Check if Python3 is installed on your server. In most distributions, Python is pre-installed</p>
  <pre id="zj5w" data-lang="bash">python3 --version</pre>
  <figure id="tg1C" class="m_original">
    <img src="https://img1.teletype.in/files/03/b6/03b6aca0-19af-42f6-9a81-ad62d3e86aa3.png" width="793" />
  </figure>
  <p id="892b">Install PIP Package Manager and Redis Database Server</p>
  <pre data-lang="bash" id="aSw0">sudo apt-get install python3-pip redis-server -y</pre>
  <p id="vHC5">Install Pipenv Packaging Tool</p>
  <pre data-lang="bash" id="hCTs">sudo pip3 install pipenv
sudo systemctl enable redis-server.service</pre>
  <hr />
  <section>
    <h3 id="AeM4" data-align="center"><strong>Installation of Panic!</strong></h3>
  </section>
  <p id="TnaZ" data-align="right"><a href="#nH0y">Content</a></p>
  <p id="GpvN">Create a new user for using Panic!</p>
  <pre data-lang="bash" id="XIkR">adduser panic --disabled-login</pre>
  <p id="4CJf">Create a folder and change access permissions</p>
  <pre data-lang="bash" id="9Xlt">mkdir /opt/panic
chown -R panic:panic /opt/panic
su panic</pre>
  <p id="BIgW">Navigate to the folder and clone the repository</p>
  <pre data-lang="bash" id="8LGR">cd /opt/panic/
git clone https://github.com/SimplyVC/panic_cosmos.git
cd panic_cosmos
git checkout master</pre>
  <p id="N4Im">Update the packages and start the Panic! setup</p>
  <pre data-lang="bash" id="4rfn">pipenv update
pipenv run python run_setup.py</pre>
  <figure id="IcFg" class="m_original">
    <img src="https://img4.teletype.in/files/7b/e4/7be463c5-5a51-4c94-b52c-b92d88a33020.png" width="1177" />
  </figure>
  <p id="DeKi">Enter a unique identifier for notifications. For example, your moniker</p>
  <hr />
  <section>
    <h3 id="qyPL" data-align="center"><strong>Setting up the Telegram bot</strong></h3>
  </section>
  <p id="2jJP" data-align="right"><a href="#nH0y"><strong>Content</strong></a></p>
  <p id="Zp5c">Setting up Telegram notifications by pressing Y</p>
  <figure id="FLkh" class="m_original">
    <img src="https://img3.teletype.in/files/ae/19/ae19e0a7-3057-43d4-af12-dd24ad770f33.png" width="1001" />
  </figure>
  <p id="ybsw">Next, we need to enter the API token. To obtain it, follow these steps:</p>
  <section>
    <ul id="kAr4">
      <li id="vq47">Open Telegram.</li>
      <li id="Rj1W">In the search bar, type @BotFather, select the bot, and press Start.</li>
      <li id="hyd2">Use the command /newbot to create a new bot. Enter the bot&#x27;s name and username. The username must end with &quot;bot&quot; (for example, tRDM_bot). After this, BotFather will send a message with a link to your bot and an API token. Copy the API token and save it in a notepad.</li>
      <li id="4cxs">Follow the link to your bot&#x27;s chat and press Start.</li>
      <li id="ZzEi">Go to the link api.telegram.org/bot&lt;token&gt;/getUpdates, replacing &lt;token&gt; with the API token of your bot from the previous step. Copy the ID and save it in a notepad.</li>
    </ul>
  </section>
  <p id="bZQe">Now that we have the bot, API token, and chat ID, let&#x27;s return to the terminal and continue setting up Panic!</p>
  <section>
    <ul id="asnG">
      <li id="Jveg">Paste the API token and press Enter.</li>
      <li id="EXE9">Paste the chat ID and press Enter.</li>
      <li id="5VVG">Press Y to test notifications. Go to Telegram and check for the notification. If set up correctly, you&#x27;ll receive a message saying &quot;Test Alert&quot;.</li>
      <li id="hp2a">Press Y again to confirm that the notification was received.</li>
    </ul>
  </section>
  <figure id="x6pV" class="m_original">
    <img src="https://img3.teletype.in/files/eb/7f/eb7ff938-ec59-473f-b8cf-c6228307de96.png" width="1186" />
  </figure>
  <p id="cqNW">Next, Panic! will ask if other notifications are needed (email, phone calls, or periodic alerts). Since we are setting up only the Telegram bot, respond with &quot;n&quot; to all three requests.</p>
  <figure id="GPck" class="m_original">
    <img src="https://img1.teletype.in/files/cb/30/cb302d01-793d-41b7-b0df-d0381e382924.png" width="1064" />
  </figure>
  <p id="PAnG">Setting up commands for the Telegram bot.</p>
  <section>
    <ul id="hZLp">
      <li id="7LOg">Press Y.</li>
      <li id="WpIq">Paste the API token and press Enter.</li>
      <li id="chCe">Paste the chat ID and press Enter.</li>
      <li id="M3BU">Press Y to test bot commands.</li>
      <li id="p9uq">Go to your Telegram bot and enter the command /ping. A successful response should be &quot;PONG!&quot;.</li>
      <li id="31eZ">Press Y again to confirm that the command was executed successfully.</li>
    </ul>
  </section>
  <figure id="LEtX" class="m_original">
    <img src="https://img2.teletype.in/files/de/3f/de3f9ec9-ddbe-4231-b780-3728d5475bac.png" width="1184" />
  </figure>
  <hr />
  <section>
    <h3 id="wIMr" data-align="center"><strong>Setting up Redis</strong></h3>
  </section>
  <p id="oxnC" data-align="right"><a href="#nH0y">Content</a></p>
  <p id="hYT6">To configure Redis, we will use the default values:</p>
  <ul id="CXuW">
    <li id="QH5n">Redis host IP: localhost </li>
    <li id="f3oB">Redis host port: 6379 </li>
    <li id="EljR">Redis password: none </li>
    <li id="rX6t">Press Y and then Enter three times.</li>
  </ul>
  <p id="HiWw">Test Redis functionality by pressing Y.</p>
  <figure id="e4Ot" class="m_original">
    <img src="https://img2.teletype.in/files/d3/8a/d38ae8ce-80fe-4592-be3a-06f41cf435b9.png" width="1313" />
  </figure>
  <hr />
  <section>
    <h3 id="4GwT" data-align="center">Connecting a node to monitoring</h3>
  </section>
  <p id="C709" data-align="right"><a href="#nH0y">Content</a></p>
  <p id="YRED">Navigate to the server with the node you want to connect to the bot and make changes to the configuration file. For example, I&#x27;ll use the Haqq node. For connecting to other nodes, use your path to the configuration file </p>
  <p id="s5Cm">(usually - $HOME/.project_name/config/config.toml).</p>
  <pre id="bh2H" data-lang="bash">nano ~/.haqqd/config/config.toml</pre>
  <p id="lpgV">In the &quot;TCP or UNIX socket address for the RPC server to listen on&quot; block, change the value of &quot;laddr&quot;.</p>
  <pre data-lang="bash" id="CtWd">laddr = &quot;tcp://0.0.0.0:26657&quot;</pre>
  <p id="f1jT">Save with: <strong>Ctrl + X</strong> &gt; <strong>Y</strong> &gt; <strong>Enter</strong></p>
  <section>
    <p id="mYbp">If Panic! and Redis are installed on the same server as the node, leave it unchanged</p>
    <pre data-lang="bash" id="9t3Y">laddr = &quot;tcp://127.0.0.1:26657&quot;</pre>
  </section>
  <p id="dEWv">Reload node</p>
  <pre data-lang="bash" id="tdP3">sudo systemctl restart haqq</pre>
  <p id="XH0m">Make these changes to the configuration files of all nodes you want to monitor.</p>
  <p id="no9Z"><strong>Return to the Panic! server!</strong></p>
  <p id="i8va">Enter the node&#x27;s name and RPC URL in the format <a href="http://NODE_IP:26657" target="_blank">http://NODE_IP:26657</a>, confirm that the node is a validator. Additionally, you can add other nodes right away, but we will do that later.</p>
  <figure id="d4v7" class="m_original">
    <img src="https://img4.teletype.in/files/b7/1e/b71e63ec-f729-4b6f-a6fb-85d1642f3e42.png" width="1296" />
  </figure>
  <p id="cJO3">Also, skip setting up <strong>GitHub </strong>updates. We will do this a bit later..</p>
  <hr />
  <section>
    <h3 id="db13" data-align="center">Start Panic!</h3>
  </section>
  <p id="l6tV" data-align="right"><a href="#nH0y">Content</a></p>
  <p id="kzmo">Creating a service file</p>
  <pre data-lang="bash" id="fv40">printf &quot;[Unit]
Description=P.A.N.I.C.
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
User=panic
TimeoutStopSec=90s
WorkingDirectory=/opt/panic/panic_cosmos
ExecStart=/usr/local/bin/pipenv run python /opt/panic/panic_cosmos/run_alerter.py

[Install]
WantedBy=multi-user.target&quot; &gt; /etc/systemd/system/panic.service</pre>
  <p id="SGbz">Start the service and check the logs</p>
  <pre data-lang="bash" id="Z2ph">sudo systemctl daemon-reload
sudo systemctl enable panic
sudo systemctl start panic
sudo journalctl -u panic -f</pre>
  <figure id="ZeCq" class="m_original">
    <img src="https://img1.teletype.in/files/c1/10/c110470c-d68d-499c-8bdc-677dfa4379ca.png" width="937" />
  </figure>
  <hr />
  <section>
    <h3 id="XFCO" data-align="center">Adding nodes for monitoring</h3>
  </section>
  <p id="5enX" data-align="right"><a href="#nH0y">Content</a></p>
  <p id="aCmC">On the server with the node you want to connect to the bot, make changes to the configuration file.</p>
  <pre data-lang="bash" id="6x3x">nano ~/.&lt;node_name&gt;/config/config.toml
#or another path to config.toml</pre>
  <p id="dCHI">In the &quot;TCP or UNIX socket address for the RPC server to listen on&quot; block, change the value of <strong>laddr</strong></p>
  <pre data-lang="bash" id="l8lQ">laddr = &quot;tcp://0.0.0.0:26657&quot;</pre>
  <p id="1hCs">Save with: <strong>Ctrl + X</strong> &gt; <strong>Y</strong> &gt; <strong>Enter</strong></p>
  <p id="nLVD">Reload node</p>
  <pre data-lang="bash" id="Oay1">sudo systemctl restart haqq</pre>
  <p id="8HHr"><strong>Return to the Panic! server</strong>. Edit the file user_config_nodes.ini</p>
  <pre data-lang="bash" id="5mc1">nano /opt/panic/panic_cosmos/config/user_config_nodes.ini</pre>
  <p id="7R69">Copy all existing lines and paste them below. Modify the number, name, and URL. Save the changes.</p>
  <figure id="oknU" class="m_original">
    <img src="https://img4.teletype.in/files/b6/8f/b68f5cbb-2769-44a3-a0d7-0adee6b555a9.png" width="881" />
  </figure>
  <p id="5zQi">Reload Panic! bot</p>
  <pre data-lang="bash" id="fjB1">sudo systemctl restart panic
sudo journalctl -u panic -f</pre>
  <p id="xBdg">Check to ensure that the second node appears in the logs.</p>
  <figure id="5SVk" class="m_original">
    <img src="https://img2.teletype.in/files/95/67/9567260c-5be5-421d-b637-240206d3d190.png" width="1232" />
  </figure>
  <p id="Lpmo">Repeat the procedure for all remaining nodes you are maintaining.</p>
  <section>
    <p id="AN07">For additional verification, you can briefly stop the node (exercise caution here; only proceed if you are sure you can reconnect afterward or if you won&#x27;t get jailed).</p>
    <p id="D0PG">The bot will react as follows:</p>
    <figure id="A2us" class="m_original">
      <img src="https://img3.teletype.in/files/a7/01/a701286a-ec69-455b-b938-92462d74316f.png" width="948" />
    </figure>
  </section>
  <hr />
  <section>
    <h3 id="bkpf" data-align="center"><strong>Changing settings</strong></h3>
  </section>
  <p id="YWwA" data-align="right"><a href="#nH0y">Content</a></p>
  <p id="wwnU">To change the settings of the bot (API token, Redis password, etc.) and to enable email notifications, edit the file user_config_main.ini.</p>
  <pre data-lang="bash" id="KcAw">nano /opt/panic/panic_cosmos/config/user_config_main.ini</pre>
  <p id="bXYr">To configure notifications for changes in GitHub repositories, edit the file user_config_repos.ini.</p>
  <pre data-lang="bash" id="JqIw">nano /opt/panic/panic_cosmos/config/user_config_repos.in</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@cryptocowboy8/PEBlRQouVI4</guid><link>https://teletype.in/@cryptocowboy8/PEBlRQouVI4?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8</link><comments>https://teletype.in/@cryptocowboy8/PEBlRQouVI4?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8#comments</comments><dc:creator>cryptocowboy8</dc:creator><title>0g Labs node [Installation guide]</title><pubDate>Fri, 05 Jul 2024 14:56:13 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/c3/7d/c37d663b-9b03-4573-87c1-28ecabf69b0a.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/1e/9d/1e9d8a55-f951-488a-906f-79a0c5455f11.png"></img>Note: In order to become an active validator, you need to have more ua0gi tokens bonded than the last validator ordered by the tokens bonded (or the validator set to not be full) as well as have at least 1000000ua0gi bonded.]]></description><content:encoded><![CDATA[
  <figure id="7daF" class="m_retina">
    <img src="https://img2.teletype.in/files/1e/9d/1e9d8a55-f951-488a-906f-79a0c5455f11.png" width="800" />
  </figure>
  <p id="M17z">Note: In order to become an active validator, you need to have more <code>ua0gi</code> tokens bonded than the last validator ordered by the tokens bonded (or the validator set to not be full) as well as have at least <code>1000000ua0gi</code> bonded.</p>
  <h4 id="installation">Installation</h4>
  <p id="EdnI">Use our installation script, specify a name for your node and wait for the installation to complete.</p>
  <p id="Azvn">Copy</p>
  <pre id="yE8D" data-lang="bash">wget -q -O 0g.sh https://api.nodes.guru/0g.sh &amp;&amp; sudo chmod +x 0g.sh &amp;&amp; ./0g.sh &amp;&amp; source $HOME/.bash_profile</pre>
  <p id="EYJf">Create a wallet, don’t forget to save the mnemonic:</p>
  <p id="51EG">Copy</p>
  <pre id="iDgM" data-lang="bash">0gchaind keys add wallet --eth</pre>
  <p id="Rq8f">If you already have a wallet, you can recover with:</p>
  <p id="V3eL">Copy</p>
  <pre id="FoDw" data-lang="bash">0gchaind keys add wallet --recover --eth</pre>
  <p id="zpsV">If you want to get the public address which starts with <code>0x</code>, you could first run the following command to get your key’s private key. Then import the returned private key to a wallet (Metamask for example) to get the public address.</p>
  <p id="aroo">Copy</p>
  <pre id="QcCE" data-lang="bash">0gchaind keys unsafe-export-eth-key wallet</pre>
  <p id="BwSv">Request tokens at the <a href="https://faucet.0g.ai/" target="_blank">faucet</a>. After full synchronization, check the balance, if everything is okay, proceed to create a validator.</p>
  <p id="Xtyo">Copy</p>
  <pre id="ZlYS" data-lang="bash">0gchaind q bank balances $(0gchaind keys show wallet -a)</pre>
  <p id="Ybcm">You can also check your balance in our <a href="https://testnet.0g.explorers.guru/" target="_blank">explorer</a>.</p>
  <p id="ETKG">Create a validator:</p>
  <p id="tuQi">Copy</p>
  <pre id="yXrK" data-lang="bash">0gchaind tx staking create-validator \  --amount=1000000ua0gi \  --pubkey=$(0gchaind tendermint show-validator) \  --moniker=&quot;$VALIDATOR&quot; \  --chain-id=&quot;zgtendermint_16600-2&quot; \  --commission-rate=&quot;0.10&quot; \  --commission-max-rate=&quot;0.20&quot; \  --commission-max-change-rate=&quot;0.01&quot; \  --min-self-delegation=&quot;1&quot; \  --gas=auto \  --gas-adjustment=1 \  --from=wallet -y</pre>
  <h4 id="additional">Additional</h4>
  <p id="fZjq">View logs</p>
  <p id="7mNu">Copy</p>
  <pre id="92Oc" data-lang="bash">sudo journalctl -u 0g -f</pre>
  <p id="Eomd">Restart node:</p>
  <p id="GfB3">Copy</p>
  <pre id="D12c" data-lang="bash">sudo systemctl restart 0g</pre>
  <p id="3TSp">Check node status:</p>
  <p id="64R6">Copy</p>
  <pre id="ubJe" data-lang="bash">curl localhost:26657/status</pre>
  <p id="INPg">Find out if the node is synchronized, if the result is false – it means the node is synchronized</p>
  <p id="5QOA">Copy</p>
  <pre id="kO8k" data-lang="bash">curl -s localhost:26657/status | jq .result.sync_info.catching_up</pre>
  <p id="sk72">Find out your valoper address:</p>
  <p id="Y4wn">Copy</p>
  <pre id="aHBS" data-lang="bash">0gchaind keys show wallet --bech val -a</pre>
  <p id="6jK9">Delegate tokens (to increase your stake delegate to your valoper address):</p>
  <p id="viBu">Copy</p>
  <pre id="7GOQ" data-lang="bash">0gchaind tx staking delegate YOUR_VALOPER_ADDRESS 1000000ua0gi --from wallet --chain-id zgtendermint_16600-2 --gas=&quot;500000&quot; --gas-prices=&quot;50ua0gi&quot;</pre>
  <p id="d6za">Remove node:</p>
  <p id="oyfi">Copy</p>
  <pre id="UhX8" data-lang="bash">sudo systemctl stop 0gsudo systemctl disable 0gsudo rm -rf $(which 0gchaind) $HOME/.0gchain</pre>
  <p id="QYNL"></p>
  <h2 id="x3mj">That&#x27;s it! Congrats!</h2>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@cryptocowboy8/node_enthusiasts</guid><link>https://teletype.in/@cryptocowboy8/node_enthusiasts?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8</link><comments>https://teletype.in/@cryptocowboy8/node_enthusiasts?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cryptocowboy8#comments</comments><dc:creator>cryptocowboy8</dc:creator><title>Linux: A Dictionary for Node Enthusiasts</title><pubDate>Thu, 04 Jul 2024 15:01:54 GMT</pubDate><description><![CDATA[<img src="https://img2.teletype.in/files/52/fd/52fda65d-6438-4d73-abc9-09d896c49b8c.png"></img>In this article, I have compiled the main commands, utilities, and scripts of Linux that are actively used in the installation and monitoring of nodes. This section will be continuously updated, and I hope it will one day become a true encyclopedia.]]></description><content:encoded><![CDATA[
  <p id="Q2jz">In this article, I have compiled the main commands, utilities, and scripts of Linux that are actively used in the installation and monitoring of nodes. This section will be continuously updated, and I hope it will one day become a true encyclopedia.</p>
  <hr />
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="ZaB3" data-align="center"><strong>Table of Contents</strong></h2>
  </section>
  <ul id="T7OJ">
    <li id="98zn"><a href="#ZyWc">Basic Commands</a></li>
    <li id="1G4H"><a href="#JbgR">Useful utilities</a></li>
    <li id="ppyA"><a href="#4DUa">Packages</a></li>
    <li id="fhvQ"><a href="#CmxA">Programming languages</a></li>
    <li id="7GWu"><a href="#1niD">Running programs using <strong>screen</strong></a></li>
  </ul>
  <hr />
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h3 id="ZyWc" data-align="center"><strong>Basic Commands</strong></h3>
  </section>
  <p id="yX4K" data-align="right"><strong><a href="#ZaB3">Content</a></strong></p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="07Oy">sudo</h2>
    <p id="vInw">The <strong>sudo </strong>(SuperUser DO) command allows you to perform tasks that require administrator or root privileges. It is mainly used for installing and updating packages, starting services, and viewing logs.</p>
    <pre data-lang="bash" id="LLrX">sudo apt-get install git 
# command installs the git package with administrator privileges.</pre>
  </section>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="5TQa">cd</h2>
    <p id="JCBt">The <strong>cd</strong> (change directory) command is used for navigating through files and directories. It is used either with the specified path to the desired directory/subdirectory or without a specified path to move to the HOME folder.</p>
    <p id="hkIl"><strong>Important</strong>! The Linux shell is case-sensitive. It is necessary to enter directory names exactly.</p>
    <pre data-lang="bash" id="BmGH">cd /usr/bin #navigate to the subdirectory /bin in the /usr directory.

cd #go to HOME catalogue</pre>
  </section>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="yYPA">cp</h2>
    <p id="9cHw">The <strong>cp</strong> (copy) command allows you to copy a file from the current directory to another directory.</p>
    <pre data-lang="bash" id="tjPJ">cp addrbook.json /home/config 
# Creates a copy of addrbook.json from the current directory in the directory /home/config.</pre>
  </section>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="drXu">mv</h2>
    <p id="mEub">The <strong>mv</strong> (move) command moves a file from the current directory to another directory. The <strong>mv</strong> command is similar to the <strong>cp</strong> command, except that it deletes the file in the current directory after moving it. Additionally, the <code>mv</code> command can be used to rename files.</p>
    <pre data-lang="bash" id="9Bym">mv addrbook.json /home/config
# moves addrbook.json from the current directory to the directory /home/config.

mv old_name.txt new_name.txt
# renames the file old_name.txt to new_name.txt.  </pre>
  </section>
  <section>
    <h2 id="lNud">mkdir</h2>
    <p id="c9t7">The <strong>mkdir</strong> (make directory) command creates a new directory.</p>
    <pre data-lang="bash" id="7lzo">mkdir Backup
# creates a subdirectory Backup in the current directory</pre>
  </section>
  <section>
    <h2 id="443Y">rm</h2>
    <p id="QaRe">The <strong>rm</strong> command is used to delete files. To delete directories, you need to use the recursive option <code>-r</code> with the <code>rm</code> command. Additionally, some files and directories cannot be deleted immediately due to read-only file access permissions. They need to be forcefully deleted using the <code>-f</code> option.</p>
    <p id="xdB9"><strong>Important</strong>! Be cautious with this command and always verify which directory you are in. It deletes everything and cannot be undone.</p>
    <pre data-lang="bash" id="E3dS">rm addrbook.json
#deleting a file that is not write-protected

rm -f addrbook.json
#deleting a file that is write-protected</pre>
    <pre data-lang="bash" id="rS2Q">rm -r config
#deleting a directory that is not write-protected.

rm -rf config 
#deleting a directory that is write-protected</pre>
  </section>
  <section>
    <h2 id="OR5l">top</h2>
    <p id="dJo1">The <strong>top </strong>command allows you to view a list of running processes along with their CPU usage percentage, memory usage, and other useful parameters. Monitoring system resource usage is very useful. This way, you can determine which process needs to be terminated because it is consuming too many resources.</p>
    <pre id="Byl5" data-lang="bash">top</pre>
  </section>
  <section>
    <h2 id="hsiO">df</h2>
    <p id="v5Xv">The <strong>df</strong> (disk free) command displays used and free disk space, which is very useful for monitoring &quot;hungry&quot; nodes.</p>
    <pre id="S7Rc" data-lang="bash">df
#report on the used disk space in kilobytes
df -m
#report on the used disk space in megabytes</pre>
  </section>
  <section>
    <h2 id="H8uQ">grep</h2>
    <p id="DjKd"><strong>grep</strong> is a command used for searching by query. It displays lines containing the requested word or phrase.</p>
    <p id="UIft">During node installation and monitoring, the <code>grep</code> command is primarily used to search specific logs for keywords.</p>
    <pre data-lang="bash" id="PqBJ">sudo journalctl -u evmosd -f |grep block
#command to search for lines containing the word &quot;block&quot; in the logs of the Evmos node

grep peers config.toml
#command to search for lines containing the word &quot;peers&quot; in the file addrbook.json.   </pre>
  </section>
  <section>
    <h2 id="OaDQ">wget</h2>
    <p id="abeS">Using the <strong>wget</strong> command, you can download any file from the internet to your server. To do this, after the command, you need to enter the link to the file you want to download.</p>
    <pre data-lang="bash" id="ILki">wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz
# command to download GO</pre>
  </section>
  <section>
    <h2 id="JaRB"><strong>tar</strong></h2>
    <p id="kK8K">The <strong>tar</strong> command is used for archiving and extracting multiple files. The <code>tar</code> command has many features, but in 99% of cases, it is used to extract downloaded archives.</p>
    <p id="fovD">Extraction is specified with the <strong>-x</strong> key. The <strong>-f</strong> key is used to specify the filename. The <strong>-z</strong> key is used to extract files compressed with <strong>gzip </strong>(files with the extension *.tar.gz). To visually display the progress of the process, you can add the <strong>-v</strong> key. These keys can be combined.</p>
    <p id="2suV">By default, the archive is extracted into the current directory. To change the extraction location, use the <strong>-C</strong> key.</p>
    <pre data-lang="bash" id="lDJq">tar -xzf go1.17.5.linux-amd64.tar.gz
#extracting an archive into the current directory 
tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz
#extracting an archive into the directory /usr/local</pre>
  </section>
  <section>
    <h2 id="yb7z"><strong>chmod</strong></h2>
    <p id="NWB1">The <strong>chmod</strong> (change mode) command is used to change permissions for reading (<strong>r</strong>), writing (<strong>w</strong>), and executing (<strong>x </strong>and <strong>s </strong>for executing as superuser) files and directories. These permissions can be set for three categories of users: <strong>u </strong>- the file owner, <strong>g </strong>- the file&#x27;s group, <strong>o</strong> - all other users.</p>
    <p id="5BzF">Actions can be indicated with the symbols &quot;<strong>+</strong>&quot; - to enable or &quot;<strong>-</strong>&quot; - to disable.</p>
    <pre data-lang="bash" id="hEZa">chmod u+x file.sh #allow execution for the owner

chmod +x file.sh #allow execution for everyone

chmod ug+w file.sh #allow write permission for the owner and group

chmod ugo+rwx file.sh #allow all permissions for everyone</pre>
  </section>
  <section>
    <h2 id="vlYb"><strong>echo</strong></h2>
    <p id="t4Mc">The <strong>echo </strong>command outputs text to stdout (standard output). The <strong>&gt;&gt;</strong> operator appends stdout to a file. There is also the <strong>&gt;</strong> operator, which will create a file if it does not exist and output text there or overwrite an existing file.</p>
    <pre id="Ji89" data-lang="bash">echo Nick &gt;&gt; nickname.txt
# appends the text &quot;Nick&quot; to the file nickname.txt
echo &quot;export NICKNAME=&quot;Nick&quot;&quot; &gt;&gt; ~/.bash_profile
# adds a variable to the system environment</pre>
  </section>
  <section>
    <h2 id="QjP4">&amp;&amp;</h2>
    <p id="1C11">The double ampersand <strong>&amp;&amp;</strong> is a control operator that allows executing multiple commands sequentially.</p>
    <p id="w957"><strong>Important</strong>! Monitor the execution of commands. The subsequent command will not execute if the preceding command terminates with an error.</p>
    <p id="tNJP">sudo apt update &amp;&amp; sudo apt install curl<br />#update packages and then install the <code>curl</code> package<br /></p>
  </section>
  <hr />
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h3 id="JbgR" data-align="center">Useful utilities</h3>
  </section>
  <p id="SoFn" data-align="right"><strong><a href="#ZaB3">Content</a></strong></p>
  <section>
    <h2 id="TC3H">curl</h2>
  </section>
  <section>
    <h2 id="ecI1">nano</h2>
  </section>
  <section>
    <h2 id="lrBR">apt-get</h2>
  </section>
  <section>
    <h2 id="nX6G">ufw</h2>
  </section>
  <section>
    <h2 id="NCNE">ccze</h2>
  </section>
  <hr />
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h3 id="4DUa" data-align="center">Packages</h3>
  </section>
  <p id="sPle" data-align="right"><strong><a href="#ZaB3">Content</a></strong></p>
  <section>
    <h2 id="bmfB">make</h2>
    <p id="SyXy">Used for compiling and managing a set of applications and files from source code. This allows developers to use the terminal to install and build various programs. It also manages and reduces the time required for compilation. It is included in the meta-package <strong>build-essentials</strong>.</p>
    <p id="wMoW">The main goal of <strong>make</strong> is to break down a large program into smaller parts and determine if it needs to be recompiled. It also provides important instructions for their recompilation. The <strong>make</strong> command is used to execute a makefile, which is a unique file containing shell commands that we write to ensure the project works.</p>
    <p id="Vqe7">To install the <strong>make </strong>package, use the command:</p>
    <pre data-lang="bash" id="S7wm">sudo apt install make</pre>
  </section>
  <section>
    <h2 id="3gSO">build-essential</h2>
  </section>
  <section>
    <h2 id="I0ai">jq</h2>
  </section>
  <section>
    <h2 id="6H4P">pkg-config</h2>
  </section>
  <section>
    <h2 id="pF8g">gcc</h2>
  </section>
  <section>
    <h2 id="2kCw">libssl-dev</h2>
  </section>
  <section>
    <h2 id="MzJ0">cmake</h2>
  </section>
  <section>
    <h2 id="VnsF">libclang-dev</h2>
  </section>
  <hr />
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h3 id="CmxA" data-align="center">Programming languages</h3>
  </section>
  <p id="ALKA" data-align="right"><strong><a href="#ZaB3">Content</a></strong></p>
  <p id="2p47">This section provides commands for installing various programming languages commonly used by developers of crypto projects, necessary for the proper installation and operation of nodes.</p>
  <section>
    <h2 id="fy4L">GO</h2>
    <p id="mDEZ">The <strong>Go </strong>language is a compiled statically typed programming language developed by Google.</p>
    <p id="zvgK">Installation of <strong>Go</strong>, version 1.18.4:</p>
    <pre data-lang="bash" id="ApUi">wget https://go.dev/dl/go1.18.4.linux-amd64.tar.gz; \
rm -rv /usr/local/go; \
tar -C /usr/local -xzf go1.18.4.linux-amd64.tar.gz &amp;&amp; \
rm -v go1.18.4.linux-amd64.tar.gz &amp;&amp; \
echo &quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&quot; &gt;&gt; ~/.bash_profile &amp;&amp; \
source ~/.bash_profile &amp;&amp; \
go version</pre>
  </section>
  <section>
    <h2 id="CkAK">RUST</h2>
    <p id="l83q"><strong>Rust </strong>is a multi-paradigm compiled general-purpose programming language that combines functional and procedural programming paradigms with an object system based on traits.</p>
    <pre data-lang="bash" id="7yB2"># installing necessary packages
sudo apt install curl build-essential gcc make -y
# downloading the Rust installation script
curl --proto &#x27;=https&#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh
</pre>
    <p id="25eB">Select option 1) to continue installation (default).</p>
    <figure id="VSBn" class="m_original">
      <img src="https://img2.teletype.in/files/52/fd/52fda65d-6438-4d73-abc9-09d896c49b8c.png" width="703" />
    </figure>
    <pre data-lang="bash" id="kVB5"># activate the Rust environment for the current shell
source ~/.profile
source ~/.cargo/env
# install nightly
rustup toolchain install nightly
rustup default nightly</pre>
  </section>
  <hr />
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h3 id="1niD" data-align="center">Running programs using <strong>screen</strong></h3>
  </section>
  <p id="FL2r" data-align="right"><strong><a href="#ZaB3">Content</a></strong></p>
  <p id="0nvy">If you need to run a program in the background, you can use <strong>screen</strong>. Screen is a utility that allows you to run applications in the background. This utility is useful because you can start any process and disconnect from the SSH session, and the process will continue to run.</p>
  <p id="oFua">Installation of <strong>screen</strong>:</p>
  <pre data-lang="bash" id="pQ1z">sudo apt-get install screen </pre>
  <p id="iizB">To create a new session (terminal), you use the <strong>-S</strong> flag.</p>
  <pre id="Swyb">screen -S &lt;programm_name&gt; </pre>
  <p id="vCmf">To detach and return to the main terminal use the key combination <strong>Ctrl+A+D</strong></p>
  <p id="25bw">To attach to an existing session use the <strong>-x</strong> flag</p>
  <pre data-lang="bash" id="Ozbc">screen -x &lt;programm_name&gt;</pre>
  <p id="JnQz">You can view the list of running terminals with the command</p>
  <pre id="t0mJ">screen -ls</pre>
  <p id="gMpX">To stop and remove a terminal, use the combination <strong>Ctrl + D</strong></p>
  <hr />
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h3 id="2uXJ" data-align="center">CryptoCowboy</h3>
    <p id="cxh9" data-align="center"><a href="https://x.com/cryptocowboyInf" target="_blank">x.com</a> | <a href="https://discord.com/users/846847163785936957" target="_blank">Discord</a></p>
  </section>

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