<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>lesnik13utsa</title><author><name>lesnik13utsa</name></author><id>https://teletype.in/atom/lesnik13utsa</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/lesnik13utsa?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/lesnik13utsa?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-11-12T08:20:07.999Z</updated><entry><id>lesnik13utsa:xtULT89ZKMs</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/xtULT89ZKMs?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>Luxa</title><published>2026-11-05T18:14:32.567Z</published><updated>2026-11-11T08:41:34.284Z</updated><category term="cosmos" label="COSMOS"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;aT51&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MSV9&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;6ser&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://luxaecosystem.xyz/validator-guide&quot; target=&quot;_blank&quot;&gt;Web&lt;/a&gt; &lt;a href=&quot;https://t.me/LuxaCommunity&quot; target=&quot;_blank&quot;&gt;TG&lt;/a&gt; &lt;a href=&quot;https://github.com/luxaecosystem/luxa-chain&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wG3f&quot;&gt;&lt;u&gt;&lt;strong&gt;Details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;code&gt;luxa-1&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;8tyv&quot;&gt;Denom: &lt;code&gt;uluxa&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;eGtl&quot;&gt;Binary: &lt;code&gt;luxad&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;ZxOs&quot;&gt;Working directory: &lt;code&gt;.luxa&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;TBH3&quot;&gt;RPC: &lt;a href=&quot;https://t-luxa.rpc.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://t-luxa.rpc.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;g7qg&quot;&gt;API: &lt;a href=&quot;https://t-luxa.api.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://t-luxa.api.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;U8sr&quot;&gt;Explorer UTSA: &lt;a href=&quot;https://explorer.utsa.tech/networks/luxa-mainnet&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/networks/luxa-mainnet&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;LsKf&quot;&gt;Docs: &lt;a href=&quot;https://luxaecosystem.xyz/validator-guide&quot; target=&quot;_blank&quot;&gt;https://luxaecosystem.xyz/validator-guide&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;2UXe&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;Z8UB&quot;&gt;Обновления&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;uUoP&quot;&gt;# проверяем статус prevotes/precommits
FOLDER=.luxa

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

PORT=&amp;lt;ввести свой порт&amp;gt;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CJUj&quot;&gt;&lt;strong&gt;&lt;s&gt;UPD 🕊  (Высота обновления: )&lt;/s&gt;&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;kLB5&quot;&gt;cd $HOME/luxa-chain
mkdir -p $HOME/luxa-chain/build

git fetch --all --tags
git checkout 
GOBIN=&amp;quot;$HOME/luxa-chain/build&amp;quot; make install

$HOME/luxa-chain/build/luxad version --long | grep -e version -e commit
# version: 
# commit: 

# AFTER STOPPING THE NETWORK ON THE REQUIRED BLOCK!!!
systemctl stop luxad
mv $HOME/luxa-chain/build/luxad $HOME/go/bin/luxad
luxad version --long | grep -e version -e commit
#

systemctl restart luxad &amp;amp;&amp;amp; journalctl -u luxad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;7aEM&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;5h7B&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;bTlD&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Go&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;9mt5&quot;&gt;ver=&amp;quot;1.25.0&amp;quot; &amp;amp;&amp;amp; \
wget &amp;quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
sudo rm -rf /usr/local/go &amp;amp;&amp;amp; \
sudo tar -C /usr/local -xzf &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
rm &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&amp;quot; &amp;gt;&amp;gt; $HOME/.bash_profile &amp;amp;&amp;amp; \
source $HOME/.bash_profile &amp;amp;&amp;amp; \
go version&lt;/pre&gt;
  &lt;p id=&quot;fbMG&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;HiP6&quot;&gt;git clone https://github.com/luxaecosystem/luxa-chain &amp;amp;&amp;amp; cd luxa-chain
git checkout v1.0.0
make install
luxad version --long

# version: v1.0.0
# commit: ee7cb271c4770fa6435aec937ffe513a082998a7&lt;/pre&gt;
  &lt;p id=&quot;N5tl&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;GvL5&quot;&gt;luxad init UTSA_guide --chain-id luxa-1&lt;/pre&gt;
  &lt;p id=&quot;Qrh4&quot;&gt;&lt;strong&gt;Скачиваем Genesis&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;zgoO&quot;&gt;wget -O $HOME/.luxa/config/genesis.json &amp;quot;https://luxaecosystem.xyz/genesis.json&amp;quot;

# Проверим генезис
sha256sum ~/.luxa/config/genesis.json
#3da9b57fa81220b9af6bd78f83956116579305d6474ea08b7756d70167199fa4&lt;/pre&gt;
  &lt;p id=&quot;4cmW&quot;&gt;&lt;strong&gt;Скачиваем Addr book&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;b6bc&quot;&gt;wget -O $HOME/.luxa/config/addrbook.json &amp;quot;https://share.utsa.tech/luxa/addrbook.json&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;mZtX&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;kBZ8&quot;&gt;Настраиваем конфигурацию ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;gwfE&quot;&gt;# правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id для каждой команды CLI в client.toml
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;luxa-1\&amp;quot;/;&amp;quot; ~/.luxa/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.luxa/config/client.toml

# настраиваем минимальную цену за газ в app.toml
sed -i.bak -e &amp;quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&amp;quot;0.001uluxa\&amp;quot;/;&amp;quot; ~/.luxa/config/app.toml

# добавляем seeds/bpeers/peers в config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e &amp;quot;s/^external_address *=.*/external_address = \&amp;quot;$external_address:26656\&amp;quot;/&amp;quot; $HOME/.luxa/config/config.toml

peers=&amp;quot;c6eb98f7a65a5fd23ef5c9004d792ec9a8e0b803@51.170.130.74:26656&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.luxa/config/config.toml
seeds=&amp;quot;&amp;quot;
sed -i.bak -e &amp;quot;s/^seeds =.*/seeds = \&amp;quot;$seeds\&amp;quot;/&amp;quot; $HOME/.luxa/config/config.toml

# настраиваем фильтрацию &amp;quot;плохих&amp;quot; peers
sed -i -e &amp;quot;s/^filter_peers *=.*/filter_peers = \&amp;quot;true\&amp;quot;/&amp;quot; $HOME/.luxa/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;OUjU&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Настраиваем прунинг в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;vQio&quot;&gt;pruning=&amp;quot;custom&amp;quot;
pruning_keep_recent=&amp;quot;1000&amp;quot;
pruning_interval=&amp;quot;100&amp;quot;
sed -i -e &amp;quot;s/^pruning *=.*/pruning = \&amp;quot;$pruning\&amp;quot;/&amp;quot; $HOME/.luxa/config/app.toml
sed -i -e &amp;quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&amp;quot;$pruning_keep_recent\&amp;quot;/&amp;quot; $HOME/.luxa/config/app.toml
sed -i -e &amp;quot;s/^pruning-interval *=.*/pruning-interval = \&amp;quot;$pruning_interval\&amp;quot;/&amp;quot; $HOME/.luxa/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;dGeO&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Выкл индексацию в&lt;code&gt;config.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;viO0&quot;&gt;indexer=&amp;quot;null&amp;quot;
sed -i -e &amp;quot;s/^indexer *=.*/indexer = \&amp;quot;$indexer\&amp;quot;/&amp;quot; $HOME/.luxa/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;UDzq&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Wtll&quot;&gt;snapshot_interval=1000
sed -i.bak -e &amp;quot;s/^snapshot-interval *=.*/snapshot-interval = \&amp;quot;$snapshot_interval\&amp;quot;/&amp;quot; ~/.luxa/config/app.toml&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;5cMj&quot;&gt;State sync&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;yPRy&quot;&gt;systemctl stop luxad
luxad comet unsafe-reset-all --home $HOME/.luxa --keep-addr-book&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;QRrS&quot;&gt;# add peer
peers=&amp;quot;4d27a8c6cfb9bdc53ce476c9216a4d76cabc8472@144.76.29.90:56656&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.luxa/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;SlaD&quot;&gt;SNAP_RPC=https://t-luxa.rpc.utsa.tech:443

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100)); \
TRUST_HASH=$(curl -s &amp;quot;$SNAP_RPC/block?height=$BLOCK_HEIGHT&amp;quot; | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -E &amp;quot;s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$SNAP_RPC,$SNAP_RPC\&amp;quot;| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$TRUST_HASH\&amp;quot;| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;\&amp;quot;|&amp;quot; $HOME/.luxa/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;juS1&quot;&gt;systemctl restart luxad &amp;amp;&amp;amp; journalctl -u luxad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AwrS&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Ma1m&quot;&gt;tee /etc/systemd/system/luxad.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=luxad
After=network-online.target

[Service]
User=$USER
ExecStart=$(which luxad) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;uAka&quot;&gt;systemctl daemon-reload
systemctl enable luxad
systemctl restart luxad &amp;amp;&amp;amp; journalctl -u luxad -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;P3nc&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;XUYq&quot;&gt;# создать кошелек
luxad keys add &amp;lt;name_wallet&amp;gt;

# восстановить кошелек (после команды вставить seed)
luxad keys add &amp;lt;name_wallet&amp;gt; --recover&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить seed !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;bzRd&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;&lt;strong&gt;Создаем валидатора&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;mV7B&quot;&gt;После того как Вы создали свой кошелек и Ваша нода синхронизировалась перейдите на сайт проекта и ознакомьтесь с дальнейшими шагами по получению токенов - &lt;a href=&quot;https://luxaecosystem.xyz/validator-guide&quot; target=&quot;_blank&quot;&gt;https://luxaecosystem.xyz/validator-guide&lt;/a&gt; &lt;br /&gt;Внимательно ознакомьтесь с инструкцией - Вам обязательно нужен будет аккаунт &lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;MWne&quot;&gt;&lt;strong&gt;1. Получаем свой pubkey&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;MMmO&quot;&gt;luxad comet show-validator
#&lt;/pre&gt;
  &lt;p id=&quot;dJQ2&quot;&gt;&lt;strong&gt;2. Создаем validator.json&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;ewBW&quot;&gt;nano $HOME/.luxa/validator.json&lt;/pre&gt;
  &lt;p id=&quot;Zuj7&quot;&gt;&lt;strong&gt;3. Вставляем наш конфиг&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;AT4j&quot;&gt;{
  &amp;quot;pubkey&amp;quot;: {&amp;quot;@type&amp;quot;:&amp;quot;/cosmos.crypto.ed25519.PubKey&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;&amp;lt;from: luxad comet show-validator&amp;gt;&amp;quot;},
  &amp;quot;amount&amp;quot;: &amp;quot;5000000uluxa&amp;quot;,
  &amp;quot;moniker&amp;quot;: &amp;quot;UTSA-guide&amp;quot;,
  &amp;quot;identity&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;website&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;security&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;details&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;commission-rate&amp;quot;: &amp;quot;0.10&amp;quot;,
  &amp;quot;commission-max-rate&amp;quot;: &amp;quot;0.20&amp;quot;,
  &amp;quot;commission-max-change-rate&amp;quot;: &amp;quot;0.01&amp;quot;,
  &amp;quot;min-self-delegation&amp;quot;: &amp;quot;1&amp;quot;
}&lt;/pre&gt;
  &lt;p id=&quot;mN0J&quot;&gt;&lt;strong&gt;4. Отправляем транзакцию&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;sjxl&quot;&gt;luxad tx staking create-validator $HOME/.luxa/validator.json --from &amp;lt;wallet_name&amp;gt; --chain-id luxa-1 --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa -y&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kj2D&quot;&gt;&lt;strong&gt;Не забываем сохранить priv_validator_key.json !!!&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;VBzA&quot;&gt;Подробнее о создании/редактировании валидатора можно почитать &lt;a href=&quot;/@lesnik13utsa/RPLJpWXIoDQ&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;hyQ3&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;5LiR&quot;&gt;# проверить логи
sudo journalctl -u luxad -f -o cat
# проверить статус
curl localhost:$PORT/status | jq
# проверить баланс
luxad q bank balances &amp;lt;address&amp;gt;
# проверить pubkey валидатора
luxad tendermint show-validator
# проверить валидатора
luxad query staking validator &amp;lt;valoper_address&amp;gt;
luxad query staking validators --limit 1000000 -o json | jq &amp;#x27;.validators[] | select(.description.moniker==&amp;quot;&amp;lt;name_moniker&amp;gt;&amp;quot;)&amp;#x27; | jq
# проверка информации по TX_HASH
luxad query tx &amp;lt;TX_HASH&amp;gt;
# параметры сети
luxad q staking params
luxad q slashing params
# проверить сколько блоков пропущено валидатором и с какого блока актив
luxad q slashing signing-info $(luxad tendermint show-validator)
# проверить slashing
luxad q slashing signing-info $(luxad tendermint show-validator)
# узнать транзакцию создания валидатора (заменить свой valoper_address)
luxad query txs --events=&amp;#x27;create_validator.validator=&amp;lt;your_valoper_address&amp;gt;&amp;#x27; -o=json | jq .txs[0].txhash -r&lt;/pre&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;DE7N&quot;&gt;# собрать комиссионные + реварды
luxad tx distribution withdraw-rewards &amp;lt;valoper_address&amp;gt; --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa --commission -y

# заделегировать себе в стейк еще (так отправляется 1 монетa)
luxad tx staking delegate &amp;lt;valoper_address&amp;gt; 1000000uluxa --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa -y

# ределегирование на другого валидатора
luxad tx staking redelegate &amp;lt;src-validator-addr&amp;gt; &amp;lt;dst-validator-addr&amp;gt; 1000000uluxa --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa -y

# unbond 
luxad tx staking unbond &amp;lt;addr_valoper&amp;gt; 1000000uluxa --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa -y

# отправить монеты на другой адрес
luxad tx send &amp;lt;name_wallet&amp;gt; &amp;lt;address&amp;gt; 1000000uluxa --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa -y

# выбраться из тюрьмы
luxad tx slashing unjail --from &amp;lt;name_wallet --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa -y&lt;/pre&gt;
  &lt;p id=&quot;zl2g&quot;&gt;&lt;strong&gt;Работа с кошельками&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Yi8e&quot;&gt;# вывести список кошельков
luxad keys list

# показать ключ аккаунта
luxad keys show &amp;lt;name_wallet&amp;gt; --bech acc

# показать ключ валидатора
luxad keys show &amp;lt;name_wallet&amp;gt; --bech val

# показать ключ консенсуса
luxad keys show &amp;lt;name_wallet&amp;gt; --bech cons

# показать поддерживаемые адреса
luxad debug addr &amp;lt;cosmos1h&amp;gt;

# запрос учетной записи
luxad q auth account $(luxad keys show &amp;lt;name_wallet&amp;gt; -a) -o text

# удалить кошелек
luxad keys delete &amp;lt;name_wallet&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;En9i&quot;&gt;systemctl stop luxad &amp;amp;&amp;amp; \
systemctl disable luxad &amp;amp;&amp;amp; \
rm /etc/systemd/system/luxad.service &amp;amp;&amp;amp; \
systemctl daemon-reload &amp;amp;&amp;amp; \
cd $HOME &amp;amp;&amp;amp; \
rm -rf .luxa luxa-chain &amp;amp;&amp;amp; \
rm -rf $(which luxad)&lt;/pre&gt;
  &lt;p id=&quot;fYh0&quot;&gt;&lt;strong&gt;ГОВЕРНАНС&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Vhkc&quot;&gt;# список proposals
luxad q gov proposals

# посмотреть результат голосования
luxad q gov proposals --voter &amp;lt;ADDRESS&amp;gt;

# проголосовать за предложение 
luxad tx gov vote 1 yes --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa

# внести депозит в предложение
luxad tx gov deposit 1 1000000uluxa --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa

# создать предложение
luxad tx gov submit-proposal --title=&amp;quot;Randomly reward&amp;quot; --description=&amp;quot;Reward 10 testnet participants who completed more than 3 tasks&amp;quot; --type=&amp;quot;Text&amp;quot; --deposit=&amp;quot;11000000uluxa&amp;quot; --from=&amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.5 --gas-prices 0.0025uluxa&lt;/pre&gt;
  &lt;p id=&quot;chat-messages-932182862663389245&quot;&gt;&lt;strong&gt;Peers and RPC&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;zzCv&quot;&gt;FOLDER=&amp;quot;.luxa&amp;quot;

NODE_ID=$(luxad comet show-node-id --home $HOME/$FOLDER)
PORT=$(sed -n &amp;#x27;/^\[p2p\]/,/^\[/p&amp;#x27; $HOME/$FOLDER/config/config.toml | grep &amp;#x27;^laddr&amp;#x27; | grep -oE &amp;#x27;:[0-9]+&amp;#x27; | tr -d &amp;#x27;:&amp;#x27;)
IP=$(curl -4 -s https://api.ipify.org)

echo &amp;quot;${NODE_ID}@${IP}:${PORT}&amp;quot;

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

# проверка количества пиров
PORT=
curl -s http://localhost:$PORT/net_info | jq -r &amp;#x27;.result.peers[] | &amp;quot;\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(&amp;quot;:&amp;quot;)[2])&amp;quot;&amp;#x27; | wc -l

# cписок моникеров подключенных пиров
curl -s http://localhost:$PORT/net_info | jq &amp;#x27;.result.peers[].node_info.moniker&amp;#x27;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;

# check prevote of your validator
curl -s localhost:$PORT/consensus_state -s | grep $(curl -s localhost:26657/status | jq -r .result.validator_info.address[:12])&lt;/pre&gt;
  &lt;figure id=&quot;cY95&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:LBkUp-9LZl7</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/LBkUp-9LZl7?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>Luggom</title><published>2026-10-28T16:37:35.631Z</published><updated>2026-10-30T18:36:51.035Z</updated><category term="cosmos" label="COSMOS"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;aT51&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MSV9&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;6ser&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://luggom.com/?utm_source=chatgpt.com&quot; target=&quot;_blank&quot;&gt;Web&lt;/a&gt; &lt;a href=&quot;https://t.me/+XRWgwPwvz4hkOTJh&quot; target=&quot;_blank&quot;&gt;TG&lt;/a&gt; &lt;a href=&quot;https://github.com/Luggom/Luggom/blob/main/TESTNET/VALIDATORS.en.md&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wG3f&quot;&gt;&lt;u&gt;&lt;strong&gt;Details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;code&gt;luggom-test&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;8tyv&quot;&gt;Denom: &lt;code&gt;uluggom&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;eGtl&quot;&gt;Binary: &lt;code&gt;luggomd&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;ZxOs&quot;&gt;Working directory: &lt;code&gt;.luggom&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;TBH3&quot;&gt;RPC: &lt;/li&gt;
    &lt;li id=&quot;g7qg&quot;&gt;API: &lt;/li&gt;
    &lt;li id=&quot;U8sr&quot;&gt;Explorer UTSA: &lt;a href=&quot;https://explorer.utsa.tech/networks/luggom-testnet&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/networks/luggom-testnet&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;XieL&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;Z8UB&quot;&gt;Обновления&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;hsA2&quot;&gt;# проверяем статус prevotes/precommits
FOLDER=.luggom

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

PORT=&amp;lt;ввести свой порт&amp;gt;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CJUj&quot;&gt;&lt;strong&gt;UPD 🕊 testnet-2026-10-29 (Высота обновления: 140000)&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;UsAU&quot;&gt;cd $HOME/Luggom
mkdir -p $HOME/Luggom/build

git fetch --all --tags
git checkout testnet-2026-10-29
GOBIN=&amp;quot;$HOME/Luggom/build&amp;quot; make install

$HOME/Luggom/build/luggomd version --long | grep -e version -e commit
# version: testnet-2026-10-29
# commit: 985e586341cc81ea5d267f0ef8c0d48e43f5204a

# AFTER STOPPING THE NETWORK ON THE REQUIRED BLOCK!!!
systemctl stop luggomd
mv $HOME/Luggom/build/luggomd $HOME/go/bin/luggomd
luggomd version --long | grep -e version -e commit
#

systemctl restart luggomd &amp;amp;&amp;amp; journalctl -u luggomd -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;qbTm&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;36R8&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;NY95&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Go&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;e3QZ&quot;&gt;ver=&amp;quot;1.23.12&amp;quot; &amp;amp;&amp;amp; \
wget &amp;quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
sudo rm -rf /usr/local/go &amp;amp;&amp;amp; \
sudo tar -C /usr/local -xzf &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
rm &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&amp;quot; &amp;gt;&amp;gt; $HOME/.bash_profile &amp;amp;&amp;amp; \
source $HOME/.bash_profile &amp;amp;&amp;amp; \
go version&lt;/pre&gt;
  &lt;p id=&quot;jx1h&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;bPaO&quot;&gt;git clone --branch testnet-2026-10-29 --depth 1 https://github.com/Luggom/Luggom
cd Luggom

go mod download
go mod verify
make install

luggomd version --long
# version: testnet-2026-10-29
# commit: 985e586341cc81ea5d267f0ef8c0d48e43f5204a&lt;/pre&gt;
  &lt;p id=&quot;N5tl&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;jxN1&quot;&gt;luggomd init UTSA_guide --chain-id luggom-test&lt;/pre&gt;
  &lt;p id=&quot;Qrh4&quot;&gt;&lt;strong&gt;Скачиваем Genesis&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;k3HR&quot;&gt;wget -O $HOME/.luggom/config/genesis.json &amp;quot;https://luggom.com/downloads/genesis.json&amp;quot;

# Проверим генезис
sha256sum ~/.luggom/config/genesis.json
#27a0c15b71bf2e8c8efa96eaefbf0393eca1a52428ffb18c0306336b1fdece88&lt;/pre&gt;
  &lt;p id=&quot;4cmW&quot;&gt;&lt;strong&gt;Скачиваем Addr book&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;nKV9&quot;&gt;#wget -O $HOME/.luggom/config/addrbook.json &amp;quot;https://share103.utsa.tech/luggom/addrbook.json&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;43qn&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;kBZ8&quot;&gt;Настраиваем конфигурацию ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;iPC2&quot;&gt;# правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id для каждой команды CLI в client.toml
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;luggom-test\&amp;quot;/;&amp;quot; ~/.luggom/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.luggom/config/client.toml

# настраиваем минимальную цену за газ в app.toml
sed -i.bak -e &amp;quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&amp;quot;1uluggom\&amp;quot;/;&amp;quot; ~/.luggom/config/app.toml

# добавляем seeds/bpeers/peers в config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e &amp;quot;s/^external_address *=.*/external_address = \&amp;quot;$external_address:26656\&amp;quot;/&amp;quot; $HOME/.luggom/config/config.toml

peers=&amp;quot;1530baa7b3a07e0cab8dc81c9c08fccc51a47471@62.146.183.122:26656&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.luggom/config/config.toml
seeds=&amp;quot;1530baa7b3a07e0cab8dc81c9c08fccc51a47471@62.146.183.122:26656&amp;quot;
sed -i.bak -e &amp;quot;s/^seeds =.*/seeds = \&amp;quot;$seeds\&amp;quot;/&amp;quot; $HOME/.luggom/config/config.toml

# настраиваем фильтрацию &amp;quot;плохих&amp;quot; peers
sed -i -e &amp;quot;s/^filter_peers *=.*/filter_peers = \&amp;quot;true\&amp;quot;/&amp;quot; $HOME/.luggom/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;OUjU&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Настраиваем прунинг в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;dLjO&quot;&gt;pruning=&amp;quot;custom&amp;quot;
pruning_keep_recent=&amp;quot;1000&amp;quot;
pruning_interval=&amp;quot;100&amp;quot;
sed -i -e &amp;quot;s/^pruning *=.*/pruning = \&amp;quot;$pruning\&amp;quot;/&amp;quot; $HOME/.luggom/config/app.toml
sed -i -e &amp;quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&amp;quot;$pruning_keep_recent\&amp;quot;/&amp;quot; $HOME/.luggom/config/app.toml
sed -i -e &amp;quot;s/^pruning-interval *=.*/pruning-interval = \&amp;quot;$pruning_interval\&amp;quot;/&amp;quot; $HOME/.luggom/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;dGeO&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Выкл индексацию в&lt;code&gt;config.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;RP6x&quot;&gt;indexer=&amp;quot;null&amp;quot;
sed -i -e &amp;quot;s/^indexer *=.*/indexer = \&amp;quot;$indexer\&amp;quot;/&amp;quot; $HOME/.luggom/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;UDzq&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;2vP1&quot;&gt;snapshot_interval=1000
sed -i.bak -e &amp;quot;s/^snapshot-interval *=.*/snapshot-interval = \&amp;quot;$snapshot_interval\&amp;quot;/&amp;quot; ~/.luggom/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;VlCR&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;5cMj&quot;&gt;State sync&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;RTNh&quot;&gt;systemctl stop luggomd
luggomd comet unsafe-reset-all --home $HOME/.luggom --keep-addr-book&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;Qzzi&quot;&gt;# add peer
peers=&amp;quot;&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.luggom/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;87JR&quot;&gt;SNAP_RPC=https://rpc.luggom.com:443

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100)); \
TRUST_HASH=$(curl -s &amp;quot;$SNAP_RPC/block?height=$BLOCK_HEIGHT&amp;quot; | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -E &amp;quot;s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$SNAP_RPC,$SNAP_RPC\&amp;quot;| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$TRUST_HASH\&amp;quot;| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;\&amp;quot;|&amp;quot; $HOME/.luggom/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;oV8N&quot;&gt;systemctl restart luggomd &amp;amp;&amp;amp; journalctl -u luggomd -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AwrS&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;lh2Z&quot;&gt;tee /etc/systemd/system/luggomd.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=luggomd
After=network-online.target

[Service]
User=$USER
ExecStart=$(which luggomd) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Szaj&quot;&gt;systemctl daemon-reload
systemctl enable luggomd
systemctl restart luggomd &amp;amp;&amp;amp; journalctl -u luggomd -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;P3nc&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;qcF7&quot;&gt;# создать кошелек
luggomd keys add &amp;lt;name_wallet&amp;gt;

# восстановить кошелек (после команды вставить seed)
luggomd keys add &amp;lt;name_wallet&amp;gt; --recover&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить seed !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;U45W&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;&lt;strong&gt;Создаем валидатора&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;mV7B&quot;&gt;&lt;strong&gt;1. Получаем свой pubkey&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;VQFt&quot;&gt;luggomd comet show-validator
#&lt;/pre&gt;
  &lt;p id=&quot;dJQ2&quot;&gt;&lt;strong&gt;2. Создаем validator.json&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;SFJA&quot;&gt;nano $HOME/.luggom/validator.json&lt;/pre&gt;
  &lt;p id=&quot;Zuj7&quot;&gt;&lt;strong&gt;3. Вставляем наш конфиг&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;e9nC&quot;&gt;{
  &amp;quot;pubkey&amp;quot;: {&amp;quot;@type&amp;quot;:&amp;quot;/cosmos.crypto.ed25519.PubKey&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;&amp;lt;from: luggomd comet show-validator&amp;gt;&amp;quot;},
  &amp;quot;amount&amp;quot;: &amp;quot;200000000000000000000uluggom&amp;quot;,
  &amp;quot;moniker&amp;quot;: &amp;quot;UTSA-guide&amp;quot;,
  &amp;quot;identity&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;website&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;security&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;details&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;commission-rate&amp;quot;: &amp;quot;0.05&amp;quot;,
  &amp;quot;commission-max-rate&amp;quot;: &amp;quot;0.20&amp;quot;,
  &amp;quot;commission-max-change-rate&amp;quot;: &amp;quot;0.01&amp;quot;,
  &amp;quot;min-self-delegation&amp;quot;: &amp;quot;1&amp;quot;
}&lt;/pre&gt;
  &lt;p id=&quot;mN0J&quot;&gt;&lt;strong&gt;4. Отправляем транзакцию&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;YdxT&quot;&gt;luggomd tx staking create-validator $HOME/.luggom/validator.json --from &amp;lt;wallet_name&amp;gt; --chain-id luggom-test --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom -y&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kj2D&quot;&gt;&lt;strong&gt;Не забываем сохранить priv_validator_key.json !!!&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;VBzA&quot;&gt;Подробнее о создании/редактировании валидатора можно почитать &lt;a href=&quot;/@lesnik13utsa/RPLJpWXIoDQ&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;OZpu&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;pogI&quot;&gt;# проверить логи
sudo journalctl -u luggomd -f -o cat
# проверить статус
curl localhost:$PORT/status | jq
# проверить баланс
luggomd q bank balances &amp;lt;address&amp;gt;
# проверить pubkey валидатора
luggomd tendermint show-validator
# проверить валидатора
luggomd query staking validator &amp;lt;valoper_address&amp;gt;
luggomd query staking validators --limit 1000000 -o json | jq &amp;#x27;.validators[] | select(.description.moniker==&amp;quot;&amp;lt;name_moniker&amp;gt;&amp;quot;)&amp;#x27; | jq
# проверка информации по TX_HASH
luggomd query tx &amp;lt;TX_HASH&amp;gt;
# параметры сети
luggomd q staking params
luggomd q slashing params
# проверить сколько блоков пропущено валидатором и с какого блока актив
luggomd q slashing signing-info $(luggomd tendermint show-validator)
# проверить slashing
luggomd q slashing signing-info $(luggomd tendermint show-validator)
# узнать транзакцию создания валидатора (заменить свой valoper_address)
luggomd query txs --events=&amp;#x27;create_validator.validator=&amp;lt;your_valoper_address&amp;gt;&amp;#x27; -o=json | jq .txs[0].txhash -r&lt;/pre&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;O7TC&quot;&gt;# собрать комиссионные + реварды
luggomd tx distribution withdraw-rewards &amp;lt;valoper_address&amp;gt; --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom --commission -y

# заделегировать себе в стейк еще (так отправляется 1 монетa)
luggomd tx staking delegate &amp;lt;valoper_address&amp;gt; 1000000000000000000uluggom --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom -y

# ределегирование на другого валидатора
luggomd tx staking redelegate &amp;lt;src-validator-addr&amp;gt; &amp;lt;dst-validator-addr&amp;gt; 1000000000000000000uluggom --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom -y

# unbond 
luggomd tx staking unbond &amp;lt;addr_valoper&amp;gt; 1000000000000000000uluggom --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom -y

# отправить монеты на другой адрес
luggomd tx send &amp;lt;name_wallet&amp;gt; &amp;lt;address&amp;gt; 1000000000000000000uluggom --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom -y

# выбраться из тюрьмы
luggomd tx slashing unjail --from &amp;lt;name_wallet --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom -y&lt;/pre&gt;
  &lt;p id=&quot;zl2g&quot;&gt;&lt;strong&gt;Работа с кошельками&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;WvoB&quot;&gt;# вывести список кошельков
luggomd keys list

# показать ключ аккаунта
luggomd keys show &amp;lt;name_wallet&amp;gt; --bech acc

# показать ключ валидатора
luggomd keys show &amp;lt;name_wallet&amp;gt; --bech val

# показать ключ консенсуса
luggomd keys show &amp;lt;name_wallet&amp;gt; --bech cons

# показать поддерживаемые адреса
luggomd debug addr &amp;lt;cosmos1h&amp;gt;

# запрос учетной записи
luggomd q auth account $(luggomd keys show &amp;lt;name_wallet&amp;gt; -a) -o text

# удалить кошелек
luggomd keys delete &amp;lt;name_wallet&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;SAUh&quot;&gt;systemctl stop luggomd &amp;amp;&amp;amp; \
systemctl disable luggomd &amp;amp;&amp;amp; \
rm /etc/systemd/system/luggomd.service &amp;amp;&amp;amp; \
systemctl daemon-reload &amp;amp;&amp;amp; \
cd $HOME &amp;amp;&amp;amp; \
rm -rf .luggom Luggom &amp;amp;&amp;amp; \
rm -rf $(which luggomd)&lt;/pre&gt;
  &lt;p id=&quot;fYh0&quot;&gt;&lt;strong&gt;ГОВЕРНАНС&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;tSrc&quot;&gt;# список proposals
luggomd q gov proposals

# посмотреть результат голосования
luggomd q gov proposals --voter &amp;lt;ADDRESS&amp;gt;

# проголосовать за предложение 
luggomd tx gov vote 1 yes --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom

# внести депозит в предложение
luggomd tx gov deposit 1 1000000uluggom --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom

# создать предложение
luggomd tx gov submit-proposal --title=&amp;quot;Randomly reward&amp;quot; --description=&amp;quot;Reward 10 testnet participants who completed more than 3 tasks&amp;quot; --type=&amp;quot;Text&amp;quot; --deposit=&amp;quot;11000000uluggom&amp;quot; --from=&amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --gas-prices 1uluggom&lt;/pre&gt;
  &lt;p id=&quot;chat-messages-932182862663389245&quot;&gt;&lt;strong&gt;Peers and RPC&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;MwUR&quot;&gt;FOLDER=&amp;quot;.luggom&amp;quot;

NODE_ID=$(luggomd comet show-node-id --home $HOME/$FOLDER)
PORT=$(sed -n &amp;#x27;/^\[p2p\]/,/^\[/p&amp;#x27; $HOME/$FOLDER/config/config.toml | grep &amp;#x27;^laddr&amp;#x27; | grep -oE &amp;#x27;:[0-9]+&amp;#x27; | tr -d &amp;#x27;:&amp;#x27;)
IP=$(curl -4 -s https://api.ipify.org)

echo &amp;quot;${NODE_ID}@${IP}:${PORT}&amp;quot;

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

# проверка количества пиров
PORT=
curl -s http://localhost:$PORT/net_info | jq -r &amp;#x27;.result.peers[] | &amp;quot;\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(&amp;quot;:&amp;quot;)[2])&amp;quot;&amp;#x27; | wc -l

# cписок моникеров подключенных пиров
curl -s http://localhost:$PORT/net_info | jq &amp;#x27;.result.peers[].node_info.moniker&amp;#x27;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;

# check prevote of your validator
curl -s localhost:$PORT/consensus_state -s | grep $(curl -s localhost:26657/status | jq -r .result.validator_info.address[:12])&lt;/pre&gt;
  &lt;figure id=&quot;cY95&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:qx3pV0iZayQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/qx3pV0iZayQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>DOLI</title><published>2026-10-06T14:38:04.605Z</published><updated>2026-11-09T22:58:27.295Z</updated><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/50/3f/503fd008-7f53-4e29-b0c9-ec3d3f6edb56.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;Tl2T&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/50/3f/503fd008-7f53-4e29-b0c9-ec3d3f6edb56.png&quot; width=&quot;767&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ZYLq&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;D2wo&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://doli.network/?utm_source=chatgpt.com&quot; target=&quot;_blank&quot;&gt;Web&lt;/a&gt; &lt;a href=&quot;https://discord.gg/uGzCvxGYC&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt; &lt;a href=&quot;https://github.com/doli-network/doli&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sHgA&quot;&gt;&lt;u&gt;&lt;strong&gt;Details:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;code&gt;mainnet&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;y1Cr&quot;&gt;Block time:     &lt;code&gt;~10 sec&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;Gnj3&quot;&gt;Epoch:          &lt;code&gt;360 blocks / ~1 hour&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;YCwq&quot;&gt;P2P:            &lt;code&gt;30300 TCP&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;bTO3&quot;&gt;Discv5:         &lt;code&gt;30301 UDP&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;lwSj&quot;&gt;RPC:            &lt;code&gt;8500&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;Eyg6&quot;&gt;Metrics:        &lt;code&gt;9000&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;s2hN&quot;&gt;Bond:           &lt;code&gt;10 DOLI&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;KGk8&quot;&gt;Max bonds:      &lt;code&gt;3000&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;uTZ8&quot;&gt;Explorer: https://explorer.doli.network/network.html &lt;a href=&quot;https://explorer.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;SXTn&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;DzGL&quot;&gt;&lt;strong&gt;DOLI - независимый Layer 1 блокчейн на Rust с собственной моделью Proof of Time.&lt;/strong&gt; Вместо соревнования по вычислительной мощности или размеру стейка сеть использует последовательные вычисления как доказательство того, что прошло реальное время, а блоки создаются по детерминированному расписанию&lt;/p&gt;
  &lt;p id=&quot;Mwba&quot;&gt;Сеть работает на UTXO-модели, без EVM и универсальных smart contracts. Токены, NFT, AMM, lending и другие функции реализованы как нативные типы транзакций на уровне протокола&lt;/p&gt;
  &lt;p id=&quot;QKg2&quot;&gt;Награды собираются в общий пул и раз в epoch распределяются между активными producers пропорционально количеству bonds. Один bond в mainnet = &lt;strong&gt;10 DOLI&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;lvko&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;Z8UB&quot;&gt;Обновления&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CJUj&quot;&gt;&lt;strong&gt;UPD 🕊  v6.46.2&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;mMXT&quot;&gt;&lt;strong&gt;Height 🕊 &lt;/strong&gt;&lt;/p&gt;
    &lt;pre id=&quot;aL95&quot; data-lang=&quot;bash&quot;&gt;systemctl stop doli

cd $HOME/doli
git fetch --all --tags
git checkout v6.46.2
cargo build --release -p doli-node -p doli-cli

cp $HOME/doli/target/release/doli-node /usr/local/bin/doli-node
cp $HOME/doli/target/release/doli /usr/local/bin/doli
chmod +x /usr/local/bin/doli-node /usr/local/bin/doli

doli-node --version
doli --version

systemctl restart doli &amp;amp;&amp;amp; journalctl -u doli -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wOSW&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;5ehJ&quot;&gt;Минимальные официальные требования невысокие - producer guide указывает 2 CPU, 2 GB RAM и 20 GB SSD как минимальную конфигурацию&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Qszg&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install -y git curl wget jq build-essential pkg-config libssl-dev libgmp-dev librocksdb-dev protobuf-compiler

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;R1pG&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Rust&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;gAm3&quot; data-lang=&quot;bash&quot;&gt;curl --proto &amp;#x27;=https&amp;#x27; --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

rustc --version
cargo --version&lt;/pre&gt;
  &lt;p id=&quot;mNRu&quot;&gt;&lt;strong&gt;UFW&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;Vkqi&quot; data-lang=&quot;bash&quot;&gt;ufw allow 30300/tcp
ufw allow 30301/udp&lt;/pre&gt;
  &lt;p id=&quot;sw67&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;7x2A&quot;&gt;cd 
git clone https://github.com/doli-network/doli &amp;amp;&amp;amp; cd $HOME/doli
git checkout v6.46.2
git pull
grep &amp;#x27;^version&amp;#x27; Cargo.toml | head -1
# version = &amp;quot;6.46.2&amp;quot;

cargo build --release -p doli-node -p doli-cli

cp $HOME/doli/target/release/doli-node /usr/local/bin/doli-node
cp $HOME/doli/target/release/doli /usr/local/bin/doli
chmod +x /usr/local/bin/doli-node /usr/local/bin/doli

doli-node --version
doli --version
# doli-node 6.46.2 (328ac1da)
# doli 6.46.2 (328ac1da)&lt;/pre&gt;
  &lt;p id=&quot;yhbJ&quot;&gt;&lt;strong&gt;Инициализируем data directory&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;GDuE&quot; data-lang=&quot;bash&quot;&gt;mkdir -p $HOME/.doli/mainnet
doli-node --network mainnet --data-dir $HOME/.doli/mainnet init&lt;/pre&gt;
  &lt;p id=&quot;fHaA&quot;&gt;&lt;strong&gt;Создаем кошелек&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;QAKO&quot; data-lang=&quot;bash&quot;&gt;doli -w $HOME/.doli/mainnet/wallet.json init

# восстановить кошелек
doli -w $HOME/.doli/mainnet/wallet.json --network mainnet restore&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;F6MI&quot;&gt;&lt;strong&gt;Не забываем сохранить seed и файлы кошелька!!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;BBmw&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;76hd&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;TsSp&quot; data-lang=&quot;bash&quot;&gt;SERVER_IP=$(curl -4 -s ifconfig.me); USER_NAME=$(id -un); HOME_DIR=$HOME; sudo tee /etc/systemd/system/doli.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=DOLI Mainnet Producer
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=${USER_NAME}
ExecStart=/usr/local/bin/doli-node \
  --network mainnet \
  --data-dir ${HOME_DIR}/.doli/mainnet \
  --log-level info \
  run \
  --producer \
  --producer-key ${HOME_DIR}/.doli/mainnet/wallet.json \
  --p2p-port 30300 \
  --discv5-port 30301 \
  --external-address /ip4/${SERVER_IP}/tcp/30300 \
  --rpc-port 8500 \
  --metrics-port 9000 \
  --bootstrap /dns4/seed1.doli.network/tcp/30300 \
  --bootstrap /dns4/seed2.doli.network/tcp/30300 \
  --bootstrap /dns4/seed3.doli.network/tcp/30300

Restart=always
RestartSec=10
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre id=&quot;kyG7&quot; data-lang=&quot;bash&quot;&gt;systemctl daemon-reload
systemctl enable doli
systemctl start doli &amp;amp;&amp;amp; journalctl -u doli -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;DA66&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;Регистрация producer&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ySwq&quot;&gt;Для регистрации producer необходим минимум &lt;code&gt;1 bond = 10 DOLI&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NCdC&quot;&gt;10.000001 DOLI получаем через faucet. Этого хватает на один bond и комиссию регистрации. Faucet предоставляется один раз на человека и предназначен для нового пустого адреса&lt;/p&gt;
  &lt;p id=&quot;UrBa&quot;&gt;Заходим в Discord и выполняем:&lt;/p&gt;
  &lt;pre id=&quot;2Yg0&quot;&gt;/faucet&lt;/pre&gt;
  &lt;p id=&quot;LI53&quot;&gt;Бот выдаст приватную ссылку перейдя по которой следуем инструкциям&lt;/p&gt;
  &lt;p id=&quot;ryta&quot;&gt;&lt;strong&gt;Регистрируемся в качестве Producer&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;WxPA&quot;&gt;doli -w $HOME/.doli/mainnet/wallet.json \
  --rpc http://127.0.0.1:8500 \
  --network mainnet \
  producer register --bonds 1&lt;/pre&gt;
  &lt;p id=&quot;ECPL&quot;&gt;Регистрация применяется не мгновенно - изменение producer set происходит на границе следующего epoch&lt;/p&gt;
  &lt;pre id=&quot;ZT9o&quot;&gt;# проверка регистрации
doli -w $HOME/.doli/mainnet/wallet.json \
  --rpc http://127.0.0.1:8500 \
  --network mainnet \
  producer status&lt;/pre&gt;
  &lt;p id=&quot;QFdQ&quot;&gt;&lt;strong&gt;Регистрируем имя Producer&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Dktw&quot;&gt;После регистрации producer можно привязать читаемое имя&lt;/p&gt;
  &lt;p id=&quot;uq3G&quot;&gt;&lt;a href=&quot;https://doli.network/register.html&quot; target=&quot;_blank&quot;&gt;https://doli.network/register.html&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;ekBF&quot;&gt;Страница сформирует challenge, который необходимо подписать своим producer wallet&lt;/p&gt;
  &lt;p id=&quot;Sj8z&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;arKX&quot;&gt;# проверка chain
doli --rpc http://127.0.0.1:8500 --network mainnet chain

# проверка network
curl -s -X POST http://127.0.0.1:8500 -H &amp;quot;Content-Type: application/json&amp;quot; -d &amp;#x27;{&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;method&amp;quot;:&amp;quot;getNetworkInfo&amp;quot;,&amp;quot;params&amp;quot;:{},&amp;quot;id&amp;quot;:1}&amp;#x27; | jq

# проверка wallet
doli -w $HOME/.doli/mainnet/wallet.json --network mainnet info

# проверка balance
doli -w $HOME/.doli/mainnet/wallet.json --rpc http://127.0.0.1:8500 balance

# добавить bond
doli -w $HOME/.doli/mainnet/wallet.json \
  --rpc http://127.0.0.1:8500 \
  --network mainnet \
  producer add-bond --count 10&lt;/pre&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;wO89&quot;&gt;doli -w $HOME/.doli/mainnet/wallet.json \
  --rpc http://127.0.0.1:8500 \
  --network mainnet \
  send &amp;lt;ADDRESS&amp;gt; &amp;lt;AMOUNT&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;V5Fy&quot; data-lang=&quot;bash&quot;&gt;systemctl stop doli
systemctl disable doli
rm -f /etc/systemd/system/doli.service
systemctl daemon-reload

cd
rm -rf doli .doli
rm -f /usr/local/bin/doli
rm -f /usr/local/bin/doli-node&lt;/pre&gt;
  &lt;p id=&quot;mwDE&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;a5BW&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.media/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:5gAx-5RmEOD</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/5gAx-5RmEOD?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>Worrell</title><published>2026-09-08T21:57:33.427Z</published><updated>2026-10-28T21:18:27.683Z</updated><category term="cosmos" label="COSMOS"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;aT51&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MSV9&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;6ser&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://worrellchain.com/#features&quot; target=&quot;_blank&quot;&gt;Web&lt;/a&gt; Discord &lt;a href=&quot;https://github.com/worrellchain/worrell&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wG3f&quot;&gt;&lt;u&gt;&lt;strong&gt;Details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;code&gt;worrell-testnet-1&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;8tyv&quot;&gt;Denom: &lt;code&gt;uworrell&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;eGtl&quot;&gt;Binary: &lt;code&gt;worrelld&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;ZxOs&quot;&gt;Working directory: &lt;code&gt;.worrell&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;TBH3&quot;&gt;RPC: &lt;a href=&quot;https://t-worrell.rpc.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://t-worrell.rpc.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;g7qg&quot;&gt;API: &lt;a href=&quot;https://t-worrell.api.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://t-worrell.api.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;U8sr&quot;&gt;Explorer UTSA: &lt;a href=&quot;https://explorer.utsa.tech/networks/worrell-testnet&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/networks/worrell-testnet&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;eVLL&quot;&gt;Docs: &lt;a href=&quot;https://github.com/worrellchain/worrell&quot; target=&quot;_blank&quot;&gt;https://github.com/worrellchain/worrell&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;46qA&quot;&gt;Faucet: &lt;code&gt;curl -X POST &lt;a href=&quot;http://164.68.98.186:4500&quot; target=&quot;_blank&quot;&gt;http://164.68.98.186:4500&lt;/a&gt; \&lt;br /&gt; -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt; -d &amp;#x27;{&amp;quot;address&amp;quot;:&amp;quot;worrell1...&amp;quot;}&amp;#x27;&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;93EO&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;bbA4&quot;&gt;Подача Gentx - testnet 2&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Wg0M&quot;&gt;&lt;strong&gt;Устанавливаем бинарные файлы&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;hztH&quot;&gt;git clone https://github.com/worrellchain/worrell &amp;amp;&amp;amp; cd worrell
git checkout v0.2.0
make install

worrelld version --long
# version: v0.2.0
# commit: 5523bf67c81e40587d06a67fb14af9bf278e4ab1&lt;/pre&gt;
    &lt;p id=&quot;QvAY&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;uMHc&quot;&gt;worrelld init &amp;lt;moniker&amp;gt; --chain-id worrell-testnet-2 --default-denom uworrell
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;worrell-testnet-2\&amp;quot;/;&amp;quot; ~/.worrell/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.worrell/config/client.toml

wget -O $HOME/.worrell/config/genesis.json &amp;quot;https://raw.githubusercontent.com/worrellchain/networks/refs/heads/main/worrell-testnet-2/pre-genesis.json&amp;quot;

sha256sum ~/.worrell/config/genesis.json
#f5231dc924c762bdbe5aa0605ed6472288c9b71f4b175015e0559edccdd96b94&lt;/pre&gt;
    &lt;p id=&quot;MRBV&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;JTCp&quot;&gt;worrelld keys add &amp;lt;name_wallet&amp;gt; --keyring-backend os
#worrelld keys add &amp;lt;name_wallet&amp;gt; --recover --keyring-backend os

worrelld keys show &amp;lt;name_wallet&amp;gt; --bech val --keyring-backend os
# &lt;/pre&gt;
    &lt;p id=&quot;Muuf&quot;&gt;&lt;strong&gt;Добавляем учетную запись в свой локальный файл genesis с заданной суммой и ключом, которые вы только что создали&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;Ue0e&quot;&gt;worrelld genesis add-genesis-account &amp;lt;ADDR&amp;gt; 500000000uworrell&lt;/pre&gt;
    &lt;p id=&quot;ILb1&quot;&gt;&lt;strong&gt;Создаем Gentx (предварительно меняем под себя к примеру в блокноте)&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;oaNs&quot;&gt;worrelld genesis gentx &amp;lt;name_wallet&amp;gt; 495000000uworrell \
  --chain-id worrell-testnet-2 \
  --moniker &amp;quot;&amp;lt;moniker&amp;gt;&amp;quot; \
  --commission-rate 0.05 \
  --commission-max-rate 0.20 \
  --commission-max-change-rate 0.01 \
  --min-self-delegation 1000000 \
  --ip &amp;lt;your public IP&amp;gt; \
  --p2p-port 26656
# optional: --website &amp;quot;https://...&amp;quot; --details &amp;quot;...&amp;quot; --identity &amp;lt;keybase id&amp;gt;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;jFhl&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;buDE&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;Z8UB&quot;&gt;Обновления&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;qHfJ&quot;&gt;# проверяем статус prevotes/precommits
FOLDER=.worrell

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

PORT=&amp;lt;ввести свой порт&amp;gt;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CJUj&quot;&gt;&lt;strong&gt;UPD 🕊 v0.1.3 (Высота обновления: 1186000)&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;atEH&quot;&gt;cd $HOME/worrell
mkdir -p $HOME/worrell/build
git pull
git checkout v0.1.3
GOTOOLCHAIN=go1.26.5 GOBIN=$HOME/worrell/build make install

$HOME/worrell/build/worrelld version --long | grep -e version -e commit
# version: v0.1.3
# commit: a914f444004df7514ee909c4fa2e66a942059ca6

# AFTER STOPPING THE NETWORK ON THE REQUIRED BLOCK!!!
systemctl stop worrelld
mv $HOME/worrell/build/worrelld $HOME/go/bin/worrelld
worrelld version --long | grep -e version -e commit
#

systemctl restart worrelld &amp;amp;&amp;amp; journalctl -u worrelld -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;R3CB&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;KFGd&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;wcM7&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;FLF2&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Go&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;UgzP&quot;&gt;ver=&amp;quot;1.24.5&amp;quot; &amp;amp;&amp;amp; \
wget &amp;quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
sudo rm -rf /usr/local/go &amp;amp;&amp;amp; \
sudo tar -C /usr/local -xzf &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
rm &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&amp;quot; &amp;gt;&amp;gt; $HOME/.bash_profile &amp;amp;&amp;amp; \
source $HOME/.bash_profile &amp;amp;&amp;amp; \
go version&lt;/pre&gt;
  &lt;p id=&quot;jvum&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;3UzC&quot;&gt;git clone https://github.com/worrellchain/worrell &amp;amp;&amp;amp; cd worrell
git checkout v0.1.3
make install

worrelld version --long
# version: v0.1.3
# commit: a914f444004df7514ee909c4fa2e66a942059ca6&lt;/pre&gt;
  &lt;p id=&quot;N5tl&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;7dR3&quot;&gt;worrelld init UTSA_guide --chain-id worrell-testnet-1&lt;/pre&gt;
  &lt;p id=&quot;Qrh4&quot;&gt;&lt;strong&gt;Скачиваем Genesis&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;2U8T&quot;&gt;wget -O $HOME/.worrell/config/genesis.json &amp;quot;https://raw.githubusercontent.com/worrellchain/networks/refs/heads/main/worrell-testnet-1/genesis.json&amp;quot;

# Проверим генезис
sha256sum ~/.worrell/config/genesis.json
#a81c507b12ba0678c3172394ff4bb03e1c3db60050cc5568c127a24ec19378fd&lt;/pre&gt;
  &lt;p id=&quot;4cmW&quot;&gt;&lt;strong&gt;Скачиваем Addr book&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;d2w3&quot;&gt;wget -O $HOME/.worrell/config/addrbook.json &amp;quot;https://share103.utsa.tech/worrell/addrbook.json&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;haeO&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;kBZ8&quot;&gt;Настраиваем конфигурацию ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;cXuq&quot;&gt;# правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id для каждой команды CLI в client.toml
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;worrell-testnet-1\&amp;quot;/;&amp;quot; ~/.worrell/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.worrell/config/client.toml

# настраиваем минимальную цену за газ в app.toml
sed -i.bak -e &amp;quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&amp;quot;0.025uworrell\&amp;quot;/;&amp;quot; ~/.worrell/config/app.toml

# добавляем seeds/bpeers/peers в config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e &amp;quot;s/^external_address *=.*/external_address = \&amp;quot;$external_address:26656\&amp;quot;/&amp;quot; $HOME/.worrell/config/config.toml

peers=&amp;quot;bb9164c1bd9ed9ff2c0fd9e09b23285698e231de@164.68.98.186:26656,40128ea31b1cfb5d4b24fc9e32ee0c468586c983@worrell-testnet-peer.itrocket.net:12656&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.worrell/config/config.toml
seeds=&amp;quot;&amp;quot;
sed -i.bak -e &amp;quot;s/^seeds =.*/seeds = \&amp;quot;$seeds\&amp;quot;/&amp;quot; $HOME/.worrell/config/config.toml

# настраиваем фильтрацию &amp;quot;плохих&amp;quot; peers
sed -i -e &amp;quot;s/^filter_peers *=.*/filter_peers = \&amp;quot;true\&amp;quot;/&amp;quot; $HOME/.worrell/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;OUjU&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Настраиваем прунинг в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;ivF3&quot;&gt;pruning=&amp;quot;custom&amp;quot;
pruning_keep_recent=&amp;quot;1000&amp;quot;
pruning_interval=&amp;quot;100&amp;quot;
sed -i -e &amp;quot;s/^pruning *=.*/pruning = \&amp;quot;$pruning\&amp;quot;/&amp;quot; $HOME/.worrell/config/app.toml
sed -i -e &amp;quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&amp;quot;$pruning_keep_recent\&amp;quot;/&amp;quot; $HOME/.worrell/config/app.toml
sed -i -e &amp;quot;s/^pruning-interval *=.*/pruning-interval = \&amp;quot;$pruning_interval\&amp;quot;/&amp;quot; $HOME/.worrell/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;dGeO&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Выкл индексацию в&lt;code&gt;config.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;9rBU&quot;&gt;indexer=&amp;quot;null&amp;quot;
sed -i -e &amp;quot;s/^indexer *=.*/indexer = \&amp;quot;$indexer\&amp;quot;/&amp;quot; $HOME/.worrell/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;UDzq&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;CrWz&quot;&gt;snapshot_interval=1000
sed -i.bak -e &amp;quot;s/^snapshot-interval *=.*/snapshot-interval = \&amp;quot;$snapshot_interval\&amp;quot;/&amp;quot; ~/.worrell/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;7d9c&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;5cMj&quot;&gt;State sync&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;SWz9&quot;&gt;systemctl stop worrelld
worrelld comet unsafe-reset-all --home $HOME/.worrell --keep-addr-book&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;T3By&quot;&gt;# add peer
peers=&amp;quot;0c9230beae58f3c1926ae6f61d8ecaafe1242a9b@65.21.136.112:56656&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.worrell/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;iiAp&quot;&gt;SNAP_RPC=https://t-worrell.rpc.utsa.tech:443

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100)); \
TRUST_HASH=$(curl -s &amp;quot;$SNAP_RPC/block?height=$BLOCK_HEIGHT&amp;quot; | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -E &amp;quot;s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$SNAP_RPC,$SNAP_RPC\&amp;quot;| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$TRUST_HASH\&amp;quot;| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;\&amp;quot;|&amp;quot; $HOME/.worrell/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;7UYn&quot;&gt;systemctl restart worrelld &amp;amp;&amp;amp; journalctl -u worrelld -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AwrS&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Hq7Z&quot;&gt;tee /etc/systemd/system/worrelld.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=worrelld
After=network-online.target

[Service]
User=$USER
ExecStart=$(which worrelld) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Yj4z&quot;&gt;systemctl daemon-reload
systemctl enable worrelld
systemctl restart worrelld &amp;amp;&amp;amp; journalctl -u worrelld -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;P3nc&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;uvIV&quot;&gt;# создать кошелек
worrelld keys add &amp;lt;name_wallet&amp;gt;

# восстановить кошелек (после команды вставить seed)
worrelld keys add &amp;lt;name_wallet&amp;gt; --recover&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить seed !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;TyKL&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;&lt;strong&gt;Создаем валидатора&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;mV7B&quot;&gt;&lt;strong&gt;1. Получаем свой pubkey&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;iJu3&quot;&gt;worrelld comet show-validator
#&lt;/pre&gt;
  &lt;p id=&quot;dJQ2&quot;&gt;&lt;strong&gt;2. Создаем validator.json&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;BCBb&quot;&gt;nano $HOME/.worrell/validator.json&lt;/pre&gt;
  &lt;p id=&quot;Zuj7&quot;&gt;&lt;strong&gt;3. Вставляем наш конфиг&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;SGaN&quot;&gt;{
  &amp;quot;pubkey&amp;quot;: {&amp;quot;@type&amp;quot;:&amp;quot;/cosmos.crypto.ed25519.PubKey&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;&amp;lt;from: worrelld comet show-validator&amp;gt;&amp;quot;},
  &amp;quot;amount&amp;quot;: &amp;quot;1000000uworrell&amp;quot;,
  &amp;quot;moniker&amp;quot;: &amp;quot;community-1&amp;quot;,
  &amp;quot;identity&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;website&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;security&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;details&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;commission-rate&amp;quot;: &amp;quot;0.10&amp;quot;,
  &amp;quot;commission-max-rate&amp;quot;: &amp;quot;0.20&amp;quot;,
  &amp;quot;commission-max-change-rate&amp;quot;: &amp;quot;0.01&amp;quot;,
  &amp;quot;min-self-delegation&amp;quot;: &amp;quot;1&amp;quot;
}&lt;/pre&gt;
  &lt;p id=&quot;mN0J&quot;&gt;&lt;strong&gt;4. Отправляем транзакцию&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;ewbJ&quot;&gt;worrelld tx staking create-validator $HOME/.worrell/validator.json \
  --from &amp;lt;wallet_name&amp;gt; --chain-id worrell-testnet-1 --gas auto --gas-adjustment 1.3 --fees 20000uworrell -y&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kj2D&quot;&gt;&lt;strong&gt;Не забываем сохранить priv_validator_key.json !!!&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;VBzA&quot;&gt;Подробнее о создании/редактировании валидатора можно почитать &lt;a href=&quot;/@lesnik13utsa/RPLJpWXIoDQ&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;c6h5&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;To2G&quot;&gt;# проверить логи
sudo journalctl -u worrelld -f -o cat
# проверить статус
curl localhost:$PORT/status | jq
# проверить баланс
worrelld q bank balances &amp;lt;address&amp;gt;
# проверить pubkey валидатора
worrelld tendermint show-validator
# проверить валидатора
worrelld query staking validator &amp;lt;valoper_address&amp;gt;
worrelld query staking validators --limit 1000000 -o json | jq &amp;#x27;.validators[] | select(.description.moniker==&amp;quot;&amp;lt;name_moniker&amp;gt;&amp;quot;)&amp;#x27; | jq
# проверка информации по TX_HASH
worrelld query tx &amp;lt;TX_HASH&amp;gt;
# параметры сети
worrelld q staking params
worrelld q slashing params
# проверить сколько блоков пропущено валидатором и с какого блока актив
worrelld q slashing signing-info $(worrelld tendermint show-validator)
# проверить slashing
worrelld q slashing signing-info $(worrelld tendermint show-validator)
# узнать транзакцию создания валидатора (заменить свой valoper_address)
worrelld query txs --events=&amp;#x27;create_validator.validator=&amp;lt;your_valoper_address&amp;gt;&amp;#x27; -o=json | jq .txs[0].txhash -r&lt;/pre&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;fliD&quot;&gt;# собрать комиссионные + реварды
worrelld tx distribution withdraw-rewards &amp;lt;valoper_address&amp;gt; --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --fees 20000uworrell --commission -y

# заделегировать себе в стейк еще (так отправляется 1 монетa)
worrelld tx staking delegate &amp;lt;valoper_address&amp;gt; 1000000000000000000uworrell --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --fees 20000uworrell -y

# ределегирование на другого валидатора
worrelld tx staking redelegate &amp;lt;src-validator-addr&amp;gt; &amp;lt;dst-validator-addr&amp;gt; 1000000000000000000uworrell --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --fees 20000uworrell -y

# unbond 
worrelld tx staking unbond &amp;lt;addr_valoper&amp;gt; 1000000000000000000uworrell --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --fees 20000uworrell -y

# отправить монеты на другой адрес
worrelld tx send &amp;lt;name_wallet&amp;gt; &amp;lt;address&amp;gt; 1000000000000000000uworrell --gas auto --gas-adjustment 1.3 --fees 20000uworrell -y

# выбраться из тюрьмы
worrelld tx slashing unjail --from &amp;lt;name_wallet --gas auto --gas-adjustment 1.3 --fees 20000uworrell -y&lt;/pre&gt;
  &lt;p id=&quot;zl2g&quot;&gt;&lt;strong&gt;Работа с кошельками&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;2AGz&quot;&gt;# вывести список кошельков
worrelld keys list

# показать ключ аккаунта
worrelld keys show &amp;lt;name_wallet&amp;gt; --bech acc

# показать ключ валидатора
worrelld keys show &amp;lt;name_wallet&amp;gt; --bech val

# показать ключ консенсуса
worrelld keys show &amp;lt;name_wallet&amp;gt; --bech cons

# показать поддерживаемые адреса
worrelld debug addr &amp;lt;cosmos1h&amp;gt;

# запрос учетной записи
worrelld q auth account $(worrelld keys show &amp;lt;name_wallet&amp;gt; -a) -o text

# удалить кошелек
worrelld keys delete &amp;lt;name_wallet&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;1bwa&quot;&gt;systemctl stop worrelld &amp;amp;&amp;amp; \
systemctl disable worrelld &amp;amp;&amp;amp; \
rm /etc/systemd/system/worrelld.service &amp;amp;&amp;amp; \
systemctl daemon-reload &amp;amp;&amp;amp; \
cd $HOME &amp;amp;&amp;amp; \
rm -rf .worrell worrell &amp;amp;&amp;amp; \
rm -rf $(which worrelld)&lt;/pre&gt;
  &lt;p id=&quot;fYh0&quot;&gt;&lt;strong&gt;ГОВЕРНАНС&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Tm9Z&quot;&gt;# список proposals
worrelld q gov proposals

# посмотреть результат голосования
worrelld q gov proposals --voter &amp;lt;ADDRESS&amp;gt;

# проголосовать за предложение 
worrelld tx gov vote 1 yes --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --fees 20000uworrell

# внести депозит в предложение
worrelld tx gov deposit 1 1000000uworrell --from &amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --fees 20000uworrell

# создать предложение
worrelld tx gov submit-proposal --title=&amp;quot;Randomly reward&amp;quot; --description=&amp;quot;Reward 10 testnet participants who completed more than 3 tasks&amp;quot; --type=&amp;quot;Text&amp;quot; --deposit=&amp;quot;11000000uworrell&amp;quot; --from=&amp;lt;name_wallet&amp;gt; --gas auto --gas-adjustment 1.3 --fees 20000uworrell&lt;/pre&gt;
  &lt;p id=&quot;chat-messages-932182862663389245&quot;&gt;&lt;strong&gt;Peers and RPC&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;PAxS&quot;&gt;FOLDER=&amp;quot;.worrell&amp;quot;

NODE_ID=$(worrelld comet show-node-id --home $HOME/$FOLDER)
PORT=$(sed -n &amp;#x27;/^\[p2p\]/,/^\[/p&amp;#x27; $HOME/$FOLDER/config/config.toml | grep &amp;#x27;^laddr&amp;#x27; | grep -oE &amp;#x27;:[0-9]+&amp;#x27; | tr -d &amp;#x27;:&amp;#x27;)
IP=$(curl -4 -s https://api.ipify.org)

echo &amp;quot;${NODE_ID}@${IP}:${PORT}&amp;quot;

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

# проверка количества пиров
PORT=
curl -s http://localhost:$PORT/net_info | jq -r &amp;#x27;.result.peers[] | &amp;quot;\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(&amp;quot;:&amp;quot;)[2])&amp;quot;&amp;#x27; | wc -l

# cписок моникеров подключенных пиров
curl -s http://localhost:$PORT/net_info | jq &amp;#x27;.result.peers[].node_info.moniker&amp;#x27;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;

# check prevote of your validator
curl -s localhost:$PORT/consensus_state -s | grep $(curl -s localhost:26657/status | jq -r .result.validator_info.address[:12])&lt;/pre&gt;
  &lt;figure id=&quot;cY95&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:RD3eEH50Zdv</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/RD3eEH50Zdv?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>Limonata</title><published>2026-07-03T12:39:59.918Z</published><updated>2026-10-01T13:22:11.404Z</updated><category term="cosmos" label="COSMOS"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;aT51&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MSV9&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;6ser&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://limonata.xyz/&quot; target=&quot;_blank&quot;&gt;Web&lt;/a&gt; &lt;a href=&quot;https://discord.gg/PauX77usMS&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt; &lt;a href=&quot;https://github.com/Limonata-Blockchain/limonata&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wG3f&quot;&gt;&lt;u&gt;&lt;strong&gt;Details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;code&gt;limonata_10777-1&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;8tyv&quot;&gt;Denom: &lt;code&gt;aLIMO&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;eGtl&quot;&gt;Binary: &lt;code&gt;limonatad&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;ZxOs&quot;&gt;Working directory: &lt;code&gt;.evmd&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;TBH3&quot;&gt;RPC: &lt;a href=&quot;https://t-limonata.rpc.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://t-limonata.rpc.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;g7qg&quot;&gt;API: &lt;a href=&quot;https://t-limonata.api.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://t-limonata.api.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;1UaE&quot;&gt;Explorer: &lt;a href=&quot;https://explorer.utsa.tech/networks/limonata-testnet&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/networks/limonata-testnet&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;46qA&quot;&gt;Faucet: &lt;a href=&quot;https://faucet.limonata.xyz/&quot; target=&quot;_blank&quot;&gt;https://faucet.limonata.xyz/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;MpzD&quot;&gt;Docs: &lt;a href=&quot;https://limonata.xyz/VALIDATOR.md&quot; target=&quot;_blank&quot;&gt;https://limonata.xyz/VALIDATOR.md&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;YKVy&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;Z8UB&quot;&gt;Обновления&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;vxu1&quot;&gt;# проверяем статус prevotes/precommits
FOLDER=.evmd

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

PORT=&amp;lt;ввести свой порт&amp;gt;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CJUj&quot;&gt;&lt;strong&gt;&lt;s&gt;UPD 🕊 v limonata-testnet-v0.2.0 (Высота обновления: 766558)&lt;/s&gt;&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;ScSc&quot;&gt;cd $HOME/limonata
git pull
git checkout limonata-testnet-v0.2.0
make build

$HOME/limonata/build/evmd version --long | grep -e version -e commit
# version: limonata-testnet-v0.2.0
# commit: c49c08915bd3f8aecce8d874094fff5dcd04ac62

# AFTER STOPPING THE NETWORK ON THE REQUIRED BLOCK!!!
systemctl stop limonatad
mv $HOME/limonata/build/evmd $HOME/go/bin/limonatad
limonatad version --long | grep -e version -e commit
#

systemctl restart limonatad &amp;amp;&amp;amp; journalctl -u limonatad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;S44p&quot;&gt;&lt;strong&gt;&lt;s&gt;UPD 🕊 v limonata-testnet-v0.3.4 (Высота обновления: 998735)&lt;/s&gt;&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;YxyW&quot;&gt;cd $HOME/limonata
git pull
git checkout limonata-v0.3.4
make build

$HOME/limonata/build/evmd version --long | grep -e version -e commit
# version: limonata-v0.3.4
# commit: 77fc357ffe8d790191e52fefc6a91418e61ef298

# AFTER STOPPING THE NETWORK ON THE REQUIRED BLOCK!!!
systemctl stop limonatad
mv $HOME/limonata/build/evmd $HOME/go/bin/limonatad
limonatad version --long | grep -e version -e commit
#

systemctl restart limonatad &amp;amp;&amp;amp; journalctl -u limonatad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;R3CB&quot;&gt;&lt;strong&gt;&lt;s&gt;UPD 🕊 v limonata-testnet-v0.3.5 (Высота обновления: 1270000)&lt;/s&gt;&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;ypHR&quot;&gt;cd $HOME/limonata
git pull
git checkout limonata-v0.3.5
make build

$HOME/limonata/build/evmd version --long | grep -e version -e commit
# version: limonata-v0.3.5
# commit: d6df6bb5c9c26a291e78ae61b5d9f1d48ae8760c

# AFTER STOPPING THE NETWORK ON THE REQUIRED BLOCK!!!
systemctl stop limonatad
mv $HOME/limonata/build/evmd $HOME/go/bin/limonatad
limonatad version --long | grep -e version -e commit
#

systemctl restart limonatad &amp;amp;&amp;amp; journalctl -u limonatad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;RqzZ&quot;&gt;&lt;strong&gt;UPD 🕊 v limonata-testnet-v0.3.6 (Высота обновления: 1650000)&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;S2rO&quot;&gt;git pull
git checkout limonata-v0.3.6
make build

$HOME/limonata/build/evmd version --long | grep -e version -e commit
# version: limonata-v0.3.6
# commit: effa377d673fc6f0fb307a78ca54e037e53060f7

# AFTER STOPPING THE NETWORK ON THE REQUIRED BLOCK!!!
systemctl stop limonatad
mv $HOME/limonata/build/evmd $HOME/go/bin/limonatad
limonatad version --long | grep -e version -e commit
#

systemctl restart limonatad &amp;amp;&amp;amp; journalctl -u limonatad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;vaFu&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;M6dl&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;VKae&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Go&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;tgBk&quot;&gt;ver=&amp;quot;1.24.5&amp;quot; &amp;amp;&amp;amp; \
wget &amp;quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
sudo rm -rf /usr/local/go &amp;amp;&amp;amp; \
sudo tar -C /usr/local -xzf &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
rm &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&amp;quot; &amp;gt;&amp;gt; $HOME/.bash_profile &amp;amp;&amp;amp; \
source $HOME/.bash_profile &amp;amp;&amp;amp; \
go version&lt;/pre&gt;
  &lt;p id=&quot;QomX&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;R3b4&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/Limonata-Blockchain/limonata.git &amp;amp;&amp;amp; cd limonata
git checkout limonata-v0.3.6
make install
mv $HOME/go/bin/evmd $HOME/go/bin/limonatad

limonatad version --long
# version: limonata-v0.3.6
# commit: effa377d673fc6f0fb307a78ca54e037e53060f7&lt;/pre&gt;
  &lt;p id=&quot;N5tl&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;QED1&quot;&gt;limonatad init UTSA_guide --chain-id limonata_10777-1&lt;/pre&gt;
  &lt;p id=&quot;Qrh4&quot;&gt;&lt;strong&gt;Скачиваем Genesis&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;XbMz&quot;&gt;#wget -O $HOME/.evmd/config/genesis.json &amp;quot;&amp;quot;
curl -s https://limonata.xyz/genesis.json -o $HOME/.evmd/config/genesis.json

# Проверим генезис
sha256sum ~/.evmd/config/genesis.json
#bb76a6d8abbb1bdeaa41d92811066b16bd6a48f58f7136e3fcb71226b6af4569&lt;/pre&gt;
  &lt;p id=&quot;4cmW&quot;&gt;&lt;strong&gt;Скачиваем Addr book&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;K85r&quot;&gt;wget -O $HOME/.evmd/config/addrbook.json &amp;quot;https://share101.utsa.tech/limonata/addrbook.json&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;gE2x&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;kBZ8&quot;&gt;Настраиваем конфигурацию ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;IqPu&quot;&gt;# правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id для каждой команды CLI в client.toml
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;limonata_10777-1\&amp;quot;/;&amp;quot; ~/.evmd/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.evmd/config/client.toml

# настраиваем минимальную цену за газ в app.toml
sed -i.bak -e &amp;quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&amp;quot;0aLIMO\&amp;quot;/;&amp;quot; ~/.evmd/config/app.toml

# добавляем seeds/bpeers/peers в config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e &amp;quot;s/^external_address *=.*/external_address = \&amp;quot;$external_address:26656\&amp;quot;/&amp;quot; $HOME/.evmd/config/config.toml

peers=&amp;quot;14673dfbd8efff7eed0a97880efde1d0a54da948@195.201.160.23:19156&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.evmd/config/config.toml
seeds=&amp;quot;&amp;quot;
sed -i.bak -e &amp;quot;s/^seeds =.*/seeds = \&amp;quot;$seeds\&amp;quot;/&amp;quot; $HOME/.evmd/config/config.toml

# настраиваем фильтрацию &amp;quot;плохих&amp;quot; peers
sed -i -e &amp;quot;s/^filter_peers *=.*/filter_peers = \&amp;quot;true\&amp;quot;/&amp;quot; $HOME/.evmd/config/config.toml&lt;/pre&gt;
  &lt;pre id=&quot;bbgC&quot; data-lang=&quot;bash&quot;&gt;sed -i -E &amp;quot;s|type = \&amp;quot;.*\&amp;quot;|type = \&amp;quot;app\&amp;quot;|g&amp;quot; $HOME/.evmd/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;OUjU&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Настраиваем прунинг в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Xefk&quot;&gt;pruning=&amp;quot;custom&amp;quot;
pruning_keep_recent=&amp;quot;1000&amp;quot;
pruning_interval=&amp;quot;100&amp;quot;
sed -i -e &amp;quot;s/^pruning *=.*/pruning = \&amp;quot;$pruning\&amp;quot;/&amp;quot; $HOME/.evmd/config/app.toml
sed -i -e &amp;quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&amp;quot;$pruning_keep_recent\&amp;quot;/&amp;quot; $HOME/.evmd/config/app.toml
sed -i -e &amp;quot;s/^pruning-interval *=.*/pruning-interval = \&amp;quot;$pruning_interval\&amp;quot;/&amp;quot; $HOME/.evmd/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;dGeO&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Выкл индексацию в&lt;code&gt;config.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;CS2p&quot;&gt;indexer=&amp;quot;null&amp;quot;
sed -i -e &amp;quot;s/^indexer *=.*/indexer = \&amp;quot;$indexer\&amp;quot;/&amp;quot; $HOME/.evmd/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;UDzq&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;5psY&quot;&gt;snapshot_interval=1000
sed -i.bak -e &amp;quot;s/^snapshot-interval *=.*/snapshot-interval = \&amp;quot;$snapshot_interval\&amp;quot;/&amp;quot; ~/.evmd/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;xC8x&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;5cMj&quot;&gt;State sync&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre id=&quot;EGR9&quot; data-lang=&quot;bash&quot;&gt;systemctl stop limonatad
limonatad comet unsafe-reset-all --home $HOME/.evmd --keep-addr-book&lt;/pre&gt;
    &lt;pre id=&quot;NtUY&quot; data-lang=&quot;bash&quot;&gt;# add peer
peers=&amp;quot;4bcab578e66bee865dbcf8fc046bab8f21546b13@65.108.206.118:60856&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.evmd/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;Br1Z&quot;&gt;SNAP_RPC=https://t-limonata.rpc.utsa.tech:443

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100)); \
TRUST_HASH=$(curl -s &amp;quot;$SNAP_RPC/block?height=$BLOCK_HEIGHT&amp;quot; | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -E &amp;quot;s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$SNAP_RPC,$SNAP_RPC\&amp;quot;| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$TRUST_HASH\&amp;quot;| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;\&amp;quot;|&amp;quot; $HOME/.evmd/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;Jkon&quot;&gt;systemctl restart limonatad &amp;amp;&amp;amp; journalctl -u limonatad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AwrS&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;uDxp&quot;&gt;tee /etc/systemd/system/limonatad.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=limonatad
After=network-online.target

[Service]
User=$USER
ExecStart=$(which limonatad) start --chain-id limonata_10777-1 --evm.evm-chain-id 10777 --minimum-gas-prices 0aLIMO
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;YTEP&quot;&gt;systemctl daemon-reload
systemctl enable limonatad
systemctl restart limonatad &amp;amp;&amp;amp; journalctl -u limonatad -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;P3nc&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;8cPq&quot;&gt;# создать кошелек
limonatad keys add &amp;lt;name_wallet&amp;gt;

# восстановить кошелек (после команды вставить seed)
limonatad keys add &amp;lt;name_wallet&amp;gt; --recover&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить seed !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;cCbD&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;&lt;strong&gt;Создаем валидатора&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;mV7B&quot;&gt;&lt;strong&gt;1. Получаем свой pubkey&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;5Lzo&quot; data-lang=&quot;bash&quot;&gt;limonatad comet show-validator
#&lt;/pre&gt;
  &lt;p id=&quot;dJQ2&quot;&gt;&lt;strong&gt;2. Создаем validator.json&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;su1C&quot; data-lang=&quot;bash&quot;&gt;nano $HOME/.evmd/validator.json&lt;/pre&gt;
  &lt;p id=&quot;Zuj7&quot;&gt;&lt;strong&gt;3. Вставляем наш конфиг&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;RAh5&quot; data-lang=&quot;bash&quot;&gt;{
  &amp;quot;pubkey&amp;quot;: {&amp;quot;@type&amp;quot;:&amp;quot;/cosmos.crypto.ed25519.PubKey&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;&amp;lt;from: limonatad comet show-validator&amp;gt;&amp;quot;},
  &amp;quot;amount&amp;quot;: &amp;quot;1000000000000000000aLIMO&amp;quot;,
  &amp;quot;moniker&amp;quot;: &amp;quot;community-1&amp;quot;,
  &amp;quot;identity&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;website&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;security&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;details&amp;quot;: &amp;quot;&amp;quot;,
  &amp;quot;commission-rate&amp;quot;: &amp;quot;0.10&amp;quot;,
  &amp;quot;commission-max-rate&amp;quot;: &amp;quot;0.20&amp;quot;,
  &amp;quot;commission-max-change-rate&amp;quot;: &amp;quot;0.01&amp;quot;,
  &amp;quot;min-self-delegation&amp;quot;: &amp;quot;1&amp;quot;
}&lt;/pre&gt;
  &lt;p id=&quot;mN0J&quot;&gt;&lt;strong&gt;4. Отправляем транзакцию&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;hd9O&quot; data-lang=&quot;bash&quot;&gt;limonatad tx staking create-validator $HOME/.evmd/validator.json \
  --from &amp;lt;wallet_name&amp;gt; --chain-id limonata_10777-1 --gas auto --gas-adjustment 1.3 --fees 200000000000000aLIMO -y&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kj2D&quot;&gt;&lt;strong&gt;Не забываем сохранить priv_validator_key.json !!!&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;VBzA&quot;&gt;Подробнее о создании/редактировании валидатора можно почитать &lt;a href=&quot;/@lesnik13utsa/RPLJpWXIoDQ&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;8Wg2&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;XosD&quot;&gt;# проверить логи
sudo journalctl -u limonatad -f -o cat
# проверить статус
curl localhost:$PORT/status | jq
# проверить баланс
limonatad q bank balances &amp;lt;address&amp;gt;
# проверить pubkey валидатора
limonatad tendermint show-validator
# проверить валидатора
limonatad query staking validator &amp;lt;valoper_address&amp;gt;
limonatad query staking validators --limit 1000000 -o json | jq &amp;#x27;.validators[] | select(.description.moniker==&amp;quot;&amp;lt;name_moniker&amp;gt;&amp;quot;)&amp;#x27; | jq
# проверка информации по TX_HASH
limonatad query tx &amp;lt;TX_HASH&amp;gt;
# параметры сети
limonatad q staking params
limonatad q slashing params
# проверить сколько блоков пропущено валидатором и с какого блока актив
limonatad q slashing signing-info $(limonatad tendermint show-validator)
# проверить slashing
limonatad q slashing signing-info $(limonatad tendermint show-validator)
# узнать транзакцию создания валидатора (заменить свой valoper_address)
limonatad query txs --events=&amp;#x27;create_validator.validator=&amp;lt;your_valoper_address&amp;gt;&amp;#x27; -o=json | jq .txs[0].txhash -r&lt;/pre&gt;
  &lt;p id=&quot;18kY&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;yXqB&quot;&gt;# собрать комиссионные + реварды
limonatad tx distribution withdraw-rewards &amp;lt;valoper_address&amp;gt; --from &amp;lt;name_wallet&amp;gt; --fees 200000000000000aLIMO --commission -y

# заделегировать себе в стейк еще (так отправляется 1 монетa)
limonatad tx staking delegate &amp;lt;valoper_address&amp;gt; 1000000000000000000aLIMO --from &amp;lt;name_wallet&amp;gt; --fees 200000000000000aLIMO -y

# ределегирование на другого валидатора
limonatad tx staking redelegate &amp;lt;src-validator-addr&amp;gt; &amp;lt;dst-validator-addr&amp;gt; 1000000000000000000aLIMO --from &amp;lt;name_wallet&amp;gt; --fees 200000000000000aLIMO -y

# unbond 
limonatad tx staking unbond &amp;lt;addr_valoper&amp;gt; 1000000000000000000aLIMO --from &amp;lt;name_wallet&amp;gt; --fees 200000000000000aLIMO -y

# отправить монеты на другой адрес
limonatad tx send &amp;lt;name_wallet&amp;gt; &amp;lt;address&amp;gt; 1000000000000000000aLIMO --fees 200000000000000aLIMO -y

# выбраться из тюрьмы
limonatad tx slashing unjail --from &amp;lt;name_wallet --fees 200000000000000aLIMO -y&lt;/pre&gt;
  &lt;p id=&quot;zl2g&quot;&gt;&lt;strong&gt;Работа с кошельками&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;RlAT&quot;&gt;# вывести список кошельков
limonatad keys list

# показать ключ аккаунта
limonatad keys show &amp;lt;name_wallet&amp;gt; --bech acc

# показать ключ валидатора
limonatad keys show &amp;lt;name_wallet&amp;gt; --bech val

# показать ключ консенсуса
limonatad keys show &amp;lt;name_wallet&amp;gt; --bech cons

# показать поддерживаемые адреса
limonatad debug addr &amp;lt;cosmos1h&amp;gt;

# запрос учетной записи
limonatad q auth account $(limonatad keys show &amp;lt;name_wallet&amp;gt; -a) -o text

# удалить кошелек
limonatad keys delete &amp;lt;name_wallet&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;atYF&quot;&gt;systemctl stop limonatad &amp;amp;&amp;amp; \
systemctl disable limonatad &amp;amp;&amp;amp; \
rm /etc/systemd/system/limonatad.service &amp;amp;&amp;amp; \
systemctl daemon-reload &amp;amp;&amp;amp; \
cd $HOME &amp;amp;&amp;amp; \
rm -rf .evmd limonata &amp;amp;&amp;amp; \
rm -rf $(which limonatad)&lt;/pre&gt;
  &lt;p id=&quot;fYh0&quot;&gt;&lt;strong&gt;ГОВЕРНАНС&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;2sYb&quot;&gt;# список proposals
limonatad q gov proposals

# посмотреть результат голосования
limonatad q gov proposals --voter &amp;lt;ADDRESS&amp;gt;

# проголосовать за предложение 
limonatad tx gov vote 1 yes --from &amp;lt;name_wallet&amp;gt; --fees 200000000000000aLIMO

# внести депозит в предложение
limonatad tx gov deposit 1 1000000aLIMO --from &amp;lt;name_wallet&amp;gt; --fees 200000000000000aLIMO

# создать предложение
limonatad tx gov submit-proposal --title=&amp;quot;Randomly reward&amp;quot; --description=&amp;quot;Reward 10 testnet participants who completed more than 3 tasks&amp;quot; --type=&amp;quot;Text&amp;quot; --deposit=&amp;quot;11000000aLIMO&amp;quot; --from=&amp;lt;name_wallet&amp;gt; --fees 200000000000000aLIMO&lt;/pre&gt;
  &lt;p id=&quot;chat-messages-932182862663389245&quot;&gt;&lt;strong&gt;Peers and RPC&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;F13i&quot;&gt;FOLDER=&amp;quot;.evmd&amp;quot;

NODE_ID=$(limonatad comet show-node-id --home $HOME/$FOLDER)
PORT=$(sed -n &amp;#x27;/^\[p2p\]/,/^\[/p&amp;#x27; $HOME/$FOLDER/config/config.toml | grep &amp;#x27;^laddr&amp;#x27; | grep -oE &amp;#x27;:[0-9]+&amp;#x27; | tr -d &amp;#x27;:&amp;#x27;)
IP=$(curl -4 -s https://api.ipify.org)

echo &amp;quot;${NODE_ID}@${IP}:${PORT}&amp;quot;

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

# проверка количества пиров
PORT=
curl -s http://localhost:$PORT/net_info | jq -r &amp;#x27;.result.peers[] | &amp;quot;\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(&amp;quot;:&amp;quot;)[2])&amp;quot;&amp;#x27; | wc -l

# cписок моникеров подключенных пиров
curl -s http://localhost:$PORT/net_info | jq &amp;#x27;.result.peers[].node_info.moniker&amp;#x27;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;

# check prevote of your validator
curl -s localhost:$PORT/consensus_state -s | grep $(curl -s localhost:26657/status | jq -r .result.validator_info.address[:12])&lt;/pre&gt;
  &lt;figure id=&quot;cY95&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:65wu7A2kPfo</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/65wu7A2kPfo?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>Gno.land</title><published>2026-06-24T16:35:12.267Z</published><updated>2026-09-26T21:09:26.137Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.media/files/ae/13/ae13fe67-8591-40f0-bae3-2f2985c9a094.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.media/files/ad/70/ad70ccde-69bf-41aa-afad-852b3aabf948.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;cdBg&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.media/files/ad/70/ad70ccde-69bf-41aa-afad-852b3aabf948.png&quot; width=&quot;706&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1C2W&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;D2wo&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Web &lt;a href=&quot;https://discord.gg/R9AQT44ggc&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt; &lt;a href=&quot;https://github.com/gnolang/gno/blob/chain/test13/misc/deployments/test13.gno.land/VALIDATOR.md&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sHgA&quot;&gt;&lt;u&gt;&lt;strong&gt;Testnet details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;strong&gt;&lt;code&gt;gnoland-1&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;K3qF&quot;&gt;Valopers: &lt;a href=&quot;https://gno.land/r/gnops/valopers&quot; target=&quot;_blank&quot;&gt;https://gno.land/r/gnops/valopers&lt;/a&gt; &lt;/li&gt;
    &lt;li id=&quot;uTZ8&quot;&gt;Explorer: &lt;a href=&quot;https://explorer.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;U7qm&quot;&gt;​TG bot: @UTSAGNOBot&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;3pkG&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;Z8UB&quot;&gt;Обновления&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CJUj&quot;&gt;&lt;strong&gt;&lt;s&gt;UPD 🕊 &lt;code&gt;00417a1be97b9a311d9669ae7aa9585b277ee594&lt;/code&gt; &lt;/s&gt;&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;mMXT&quot;&gt;&lt;strong&gt;&lt;s&gt;Height 🕊 &lt;code&gt;113000&lt;/code&gt;&lt;/s&gt;&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;BFW6&quot;&gt;systemctl stop gnoland

cd $HOME/gno
git fetch origin
git checkout 00417a1be97b9a311d9669ae7aa9585b277ee594

make -C gno.land install.gnoland install.gnokey

gnoland version
# gnoland version: HEAD.3436+00417a1be

systemctl restart gnoland &amp;amp;&amp;amp; journalctl -u gnoland -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;rujU&quot;&gt;&lt;strong&gt;UPD 🕊  &lt;/strong&gt;&lt;code&gt;e75fef82c02876a4df92ad6e325c5479b9532168&lt;/code&gt;&lt;/p&gt;
    &lt;p id=&quot;H490&quot;&gt;&lt;strong&gt;Height 🕊 &lt;code&gt;162200&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;hCPI&quot;&gt;systemctl stop gnoland

cd $HOME/gno
git fetch origin
git checkout e75fef82c02876a4df92ad6e325c5479b9532168

make -C gno.land install.gnoland install.gnokey

gnoland version
# gnoland version: v1.5.0
# gnoland version: HEAD.3444+e75fef82c

systemctl restart gnoland &amp;amp;&amp;amp; journalctl -u gnoland -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Ysif&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Tt60&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;2NDo&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;6mkD&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Go&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;jMhe&quot;&gt;ver=&amp;quot;1.26.2&amp;quot; &amp;amp;&amp;amp; \
wget &amp;quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
sudo rm -rf /usr/local/go &amp;amp;&amp;amp; \
sudo tar -C /usr/local -xzf &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
rm &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&amp;quot; &amp;gt;&amp;gt; $HOME/.bash_profile &amp;amp;&amp;amp; \
source $HOME/.bash_profile &amp;amp;&amp;amp; \
go version&lt;/pre&gt;
  &lt;p id=&quot;XU8v&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;3dE4&quot;&gt;git clone https://github.com/gnolang/gno &amp;amp;&amp;amp; cd $HOME/gno
git checkout e75fef82c02876a4df92ad6e325c5479b9532168

make -C gno.land install.gnoland install.gnokey
gnoland version
# gnoland version: v1.5.0
# gnoland version: HEAD.3444+e75fef82c
gnokey --help&lt;/pre&gt;
  &lt;p id=&quot;vp48&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;h4uw&quot;&gt;gnoland config init
gnoland secrets init&lt;/pre&gt;
  &lt;p id=&quot;Qrh4&quot;&gt;&lt;strong&gt;Скачиваем Genesis&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;KoEt&quot;&gt;wget -O $HOME/gno/gnoland-data/config/genesis.json &amp;quot;https://github.com/gnolang/gno/releases/download/chain/mainnet/genesis.json&amp;quot;

shasum -a 256 $HOME/gno/gnoland-data/config/genesis.json
# ea22691003130eae3ba975b7d16460706b5d75ce6c04ae82c0c4faeab7de91f0&lt;/pre&gt;
  &lt;p id=&quot;4cmW&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;kBZ8&quot;&gt;Настраиваем конфигурацию ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;ohaO&quot;&gt;gnoland config set moniker &amp;quot;&amp;lt;moniker&amp;gt;&amp;quot;
SERVER_IP=$(curl -4 -s ifconfig.me)
gnoland config set p2p.external_address &amp;quot;$SERVER_IP:26656&amp;quot;
gnoland config set p2p.pex true

# persistent peers (required)
# gnoland config set p2p.seeds g1ypcgv5auk2rsgltjmcc6wa7m3kaudp6ag2v4n7@seed.gnoland-1.gno.aviaone.com:10299
gnoland config set p2p.persistent_peers &amp;quot;g15rcv5yqef3kvnmueqvkyw8y05sd40jz9p3n5su@seed-1.gno.land:26656,g1ck2yeyvvnpl92237gcea0z68jx07a4nnyvuaan@seed-2.gno.land:26656&amp;quot;

# consensus settings
gnoland config set application.prune_strategy syncable
gnoland config set consensus.timeout_commit 3s
gnoland config set consensus.peer_gossip_sleep_duration 10ms
gnoland config set p2p.flush_throttle_timeout 10ms

# performance
gnoland config set mempool.size 10000

# проверим
nano /root/gno/gnoland-data/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;O78h&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;N1Bw&quot;&gt;&lt;strong&gt;Snapshot&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;yPUl&quot; data-align=&quot;center&quot;&gt;time: &lt;strong&gt;every 6 hours&lt;/strong&gt; |db_backend:&lt;strong&gt; pebbledb&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;SP72&quot; data-align=&quot;center&quot;&gt;🌐 &lt;a href=&quot;https://share.utsa.tech/gno_main/&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;https://share.utsa.tech/gno_main/&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;Hh6u&quot;&gt;# останавливаем ноду
systemctl stop gnoland 2&amp;gt;/dev/null || pkill -f &amp;quot;gnoland start&amp;quot; 2&amp;gt;/dev/null || true

# очищаем старую базу данных
rm -rf ~/gno/gnoland-data/db ~/gno/gnoland-data/wal

# скачиваем snapshot
curl -o - -L https://share.utsa.tech/gno_main/gno.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/gno/gnoland-data/&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;76hd&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;DqYL&quot;&gt;tee /etc/systemd/system/gnoland.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=Gnoland
After=network-online.target
Wants=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/gno
Environment=GNOROOT=$HOME/gno
Environment=HOME=$HOME
ExecStart=$(which gnoland) start \
  --chainid gnoland-1 \
  --genesis $HOME/gno/gnoland-data/config/genesis.json \
  --log-level info \
  --skip-genesis-sig-verification
Restart=on-failure
RestartSec=5s
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=gnoland

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;oN7s&quot;&gt;systemctl daemon-reload
systemctl enable gnoland
systemctl restart gnoland &amp;amp;&amp;amp; journalctl -u gnoland -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;P3nc&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;P7IF&quot;&gt;# создать кошелек. Кошелек создастся по пути $HOME/.config/gno/data/keys.db/
gnokey add &amp;lt;name_wallet&amp;gt;

# восстановить кошелек
gnokey add &amp;lt;name_wallet&amp;gt; --recover

# получить адрес вашего оператора:
gnokey list&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить seed !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;jskm&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;Регистрируемся в качестве кандидата в валидаторы&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;2tHV&quot;&gt;⚠️ Gnoland использует систему &lt;strong&gt;регистрации валидаторов на основе GovDAO&lt;/strong&gt;. Регистрация делает Вас только кандидатом. Член GovDAO должен создать и передать предложение о включении Вас в список активных валидаторов&lt;/p&gt;
  &lt;p id=&quot;gJC6&quot;&gt;&lt;strong&gt;Получите открытый ключ вашего Валидатора (gpub1...)&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;6kTp&quot; data-lang=&quot;bash&quot;&gt;cd $HOME/gno &amp;amp;&amp;amp; gnoland secrets get validator_key
#{
#  &amp;quot;address&amp;quot;: &amp;quot;g1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;,
#  &amp;quot;pub_key&amp;quot;: &amp;quot;gpub1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;
#}&lt;/pre&gt;
  &lt;p id=&quot;4YiU&quot;&gt;⚠️ В тестнете  для регистрации используется только &lt;code&gt;pub_key&lt;/code&gt;  &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;JouZ&quot;&gt;Здесь &lt;code&gt;address&lt;/code&gt; это адрес ключа консенсуса, &lt;strong&gt;не используйте его&lt;/strong&gt; в качестве адреса оператора. Вместо этого используйте адрес своего кошелька из &lt;code&gt;gnokey list&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AH8J&quot;&gt;&lt;strong&gt;Зададим переменные&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;FnuP&quot;&gt;Добавьте все необходимые данные&lt;/p&gt;
  &lt;pre id=&quot;kb3H&quot;&gt;MONIKER=&amp;quot;moniker&amp;quot;

read -r -d &amp;#x27;&amp;#x27; DESCRIPTION &amp;lt;&amp;lt;&amp;#x27;EOF&amp;#x27;
**Validator Name:** XXX

**Networks We Are Currently Validating:**

- XXX
- XXX
- XXX

**Total AuM:**

- ~$1M across all networks

**Links to Our Digital Presence:**

- Website: XXX
- GitHub: XXX
- X/Twitter: XXX

**Contact Details:**

- Email: XXX
- Telegram: XXX
- Discord: XXX

**Why We Are Interested in Validating on gno.land:**

XXX

**Contributions &amp;amp; Plans:**

XXX
EOF

SERVER_TYPE=&amp;quot;data-center&amp;quot;
# OPERATOR_ADDRESS можно посмотреть через gnokey list
OPERATOR_ADDRESS=&amp;quot;XXX&amp;quot;
CONSENSUS_PUBKEY=$(gnoland secrets get validator_key | grep &amp;#x27;pub_key&amp;#x27; | awk &amp;#x27;{print $2}&amp;#x27; | tr -d &amp;#x27;&amp;quot;&amp;#x27;)
KEY_NAME=&amp;quot;XXX&amp;quot;
REMOTE=&amp;quot;https://rpc.gno.land&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;UzfU&quot;&gt;&lt;strong&gt;Проверим переменные&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;XNE9&quot;&gt;echo &amp;quot;$MONIKER&amp;quot;; echo &amp;quot;$DESCRIPTION&amp;quot;; echo &amp;quot;$SERVER_TYPE&amp;quot;; echo &amp;quot;$OPERATOR_ADDRESS&amp;quot;; echo &amp;quot;$CONSENSUS_PUBKEY&amp;quot;; echo &amp;quot;$KEY_NAME&amp;quot;; echo &amp;quot;$REMOTE&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;FZYr&quot;&gt;&lt;strong&gt;Отправить заявку на регистрацию в Validator&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;5GdT&quot; data-lang=&quot;bash&quot;&gt;gnokey maketx call --pkgpath gno.land/r/gnops/valopers --func Register --args &amp;quot;$MONIKER&amp;quot; --args &amp;quot;$DESCRIPTION&amp;quot; --args &amp;quot;$SERVER_TYPE&amp;quot; --args &amp;quot;$OPERATOR_ADDRESS&amp;quot; --args &amp;quot;$CONSENSUS_PUBKEY&amp;quot; --gas-fee 1000000ugnot --gas-wanted 50000000 --chainid gnoland-1 --remote &amp;quot;$REMOTE&amp;quot; --broadcast &amp;quot;$KEY_NAME&amp;quot;&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kj2D&quot;&gt;&lt;strong&gt;Не забываем сохранить файлы консенсуса и кошелек !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;NvOW&quot;&gt;ℹ️ После успешной транзакции вы можете просмотреть свой профиль по ссылке:&lt;br /&gt;&lt;a href=&quot;https://gno.land/r/gnops/valopers&quot; target=&quot;_blank&quot;&gt;https://gno.land/r/gnops/valopers&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;YyTy&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;nZ42&quot;&gt;# проверка синхронизации
curl -s http://127.0.0.1:26657/status | jq &amp;#x27;.result.sync_info&amp;#x27;

# проверка пиров
curl -s http://127.0.0.1:26657/net_info | jq &amp;#x27;.result.n_peers, .result.peers[]?.node_info.moniker&amp;#x27;

# проверка статуса
curl -s http://127.0.0.1:26657/status | jq

# проверка адреса Node consensus key
cd /root/gno &amp;amp;&amp;amp; gnoland secrets get validator_key

# сравнение высоты с RPC
watch -n 5 &amp;#x27;LOCAL_JSON=$(curl -s http://127.0.0.1:26657/status); REMOTE_JSON=$(curl -s https://rpc.gno.land/status); LOCAL=$(echo &amp;quot;$LOCAL_JSON&amp;quot; | jq -r &amp;quot;.result.sync_info.latest_block_height // 0&amp;quot;); REMOTE=$(echo &amp;quot;$REMOTE_JSON&amp;quot; | jq -r &amp;quot;.result.sync_info.latest_block_height // 0&amp;quot;); CATCHING=$(echo &amp;quot;$LOCAL_JSON&amp;quot; | jq -r &amp;quot;.result.sync_info.catching_up&amp;quot;); DIFF=$((REMOTE-LOCAL)); echo &amp;quot;Local height:  $LOCAL&amp;quot;; echo &amp;quot;Remote height: $REMOTE&amp;quot;; echo &amp;quot;Diff:          $DIFF&amp;quot;; echo &amp;quot;Catching up:   $CATCHING&amp;quot;&amp;#x27;&lt;/pre&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;bm8n&quot; data-lang=&quot;bash&quot;&gt;gnokey maketx send \
  -send &amp;quot;1000000ugnot&amp;quot; \
  -to &amp;quot;RECIPIENT_ADDRESS&amp;quot; \
  -gas-fee 1000000ugnot \
  -gas-wanted 10000000 \
  -broadcast \
  -chainid &amp;quot;gnoland-1&amp;quot; \
  -remote &amp;quot;https://rpc.gno.land&amp;quot; \
  wallet&lt;/pre&gt;
  &lt;p id=&quot;zl2g&quot;&gt;&lt;strong&gt;Работа с кошельками&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;wd8B&quot;&gt;# создать кошелек. Кошелек создастся по пути $HOME/.config/gno/data/keys.db/
gnokey add &amp;lt;name_wallet&amp;gt;

# восстановить кошелек
gnokey add &amp;lt;name_wallet&amp;gt; --recover

# получить адрес вашего оператора:
gnok&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;8xdA&quot;&gt;systemctl stop gnoland &amp;amp;&amp;amp; \
systemctl disable gnoland &amp;amp;&amp;amp; \
rm /etc/systemd/system/gnoland.service &amp;amp;&amp;amp; \
systemctl daemon-reload

cd $HOME
rm -rf gno&lt;/pre&gt;
  &lt;p id=&quot;2mon&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;a5BW&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.media/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:TUxVv0fAl51</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/TUxVv0fAl51?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>NexaRail</title><published>2026-05-28T14:23:31.158Z</published><updated>2026-10-10T23:32:04.229Z</updated><category term="cosmos" label="COSMOS"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;aT51&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MSV9&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;6ser&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Web &lt;a href=&quot;https://discord.gg/Vda9T6J7eu&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt; &lt;a href=&quot;https://github.com/Bookings-cpu/nexarail&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;wG3f&quot;&gt;&lt;u&gt;&lt;strong&gt;Details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;code&gt;nexarail-mainnet-2&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;8tyv&quot;&gt;Denom: &lt;code&gt;unxrl&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;eGtl&quot;&gt;Binary: &lt;code&gt;nexaraild&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;ZxOs&quot;&gt;Working directory: &lt;code&gt;.nexarail&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;TBH3&quot;&gt;RPC: &lt;a href=&quot;https://m-nexarail.rpc.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://m-nexarail.rpc.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;g7qg&quot;&gt;API: &lt;a href=&quot;https://m-nexarail.api.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://m-nexarail.api.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;1UaE&quot;&gt;Explorers: &lt;a href=&quot;https://explorer.utsa.tech/networks/nexarail-mainnet&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/networks/nexarail-mainnet&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;MpzD&quot;&gt;Docs: &lt;/li&gt;
  &lt;/ul&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;bbA4&quot;&gt;&lt;s&gt;Подача Gentx - mainnet&lt;/s&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Wg0M&quot;&gt;&lt;strong&gt;Устанавливаем бинарные файлы&lt;/strong&gt;&lt;/p&gt;
    &lt;pre id=&quot;NNYS&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/Bookings-cpu/nexarail &amp;amp;&amp;amp; cd nexarail
wget https://github.com/Bookings-cpu/nexarail/releases/download/mainnet-genesis-nexarail-mainnet-2/nexaraild-linux-amd64
cp $HOME/nexarail/nexaraild-linux-amd64 $HOME/go/bin/nexaraild
chmod +x $HOME/go/bin/nexaraild

nexaraild version

nexaraild version
# ABCI: 1.0.0
# BlockProtocol: 11
# P2PProtocol: 8
# Tendermint: 0.37.16


sha256sum $HOME/go/bin/nexaraild
# 9106bf11cbd9e4b316678f4002aacbb82127ad0fbd81b36e005b4fc4fa895fdf&lt;/pre&gt;
    &lt;p id=&quot;QvAY&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;cIdr&quot;&gt;nexaraild init &amp;lt;moniker&amp;gt; --chain-id nexarail-mainnet-2
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;nexarail-mainnet-2\&amp;quot;/;&amp;quot; ~/.nexarail/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.nexarail/config/client.toml&lt;/pre&gt;
    &lt;p id=&quot;MRBV&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;UA2s&quot;&gt;nexaraild keys add &amp;lt;name_wallet&amp;gt; --keyring-backend os
#nexaraild keys add &amp;lt;name_wallet&amp;gt; --recover --keyring-backend os

nexaraild keys show &amp;lt;name_wallet&amp;gt; --bech val --keyring-backend os
# &lt;/pre&gt;
    &lt;p id=&quot;Muuf&quot;&gt;&lt;strong&gt;Добавляем учетную запись в свой локальный файл genesis с заданной суммой и ключом, которые вы только что создали&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;7QT9&quot;&gt;nexaraild add-genesis-account &amp;lt;ADDR&amp;gt; 7142857142857unxrl&lt;/pre&gt;
    &lt;p id=&quot;ILb1&quot;&gt;&lt;strong&gt;Создаем Gentx (предварительно меняем под себя к примеру в блокноте)&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;XrQO&quot;&gt;nexaraild gentx &amp;lt;name_wallet&amp;gt; 7000000000000unxrl \
  --chain-id &amp;quot;nexarail-mainnet-2&amp;quot; \
  --commission-rate &amp;quot;0.10&amp;quot; \
  --commission-max-rate &amp;quot;0.20&amp;quot; \
  --commission-max-change-rate &amp;quot;0.01&amp;quot; \
  --pubkey $(nexaraild tendermint show-validator) \
  --moniker &amp;quot;&amp;lt;moniker&amp;gt;&amp;quot; \
  --keyring-backend &amp;quot;os&amp;quot; \
  --min-self-delegation &amp;quot;1000000&amp;quot;&lt;/pre&gt;
    &lt;p id=&quot;HABn&quot;&gt;&lt;strong&gt;sha 256&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;ImH9&quot;&gt;shasum -a 256 &amp;quot;$HOME/.nexarail/config/gentx/gentx-&amp;quot;*.json&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;BZZS&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;4TlU&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;Z8UB&quot;&gt;Обновления&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;lN9u&quot;&gt;&lt;strong&gt;UPD 🕊 on v0.1.1-mainnet2-fundsafety (Update Height: 990000)&lt;/strong&gt;&lt;/p&gt;
    &lt;pre id=&quot;k0m7&quot; data-lang=&quot;bash&quot;&gt;cd $HOME/nexarail
mkdir -p $HOME/nexarail/build

wget -O $HOME/nexarail/build/nexaraild &amp;quot;https://github.com/Bookings-cpu/nexarail/releases/download/v0.1.1-mainnet2-fundsafety/nexaraild-linux-amd64&amp;quot;
chmod +x $HOME/nexarail/build/nexaraild
$HOME/nexarail/build/nexaraild version
# version: ABCI: 1.0.0

sha256sum $HOME/nexarail/build/nexaraild
# 068aee2853e452a055de2b4082259ff4ccf42573362310f609f22940399b26ca

# AFTER STOPPING THE NETWORK ON THE REQUIRED BLOCK!!!
systemctl stop nexaraild
mv $HOME/nexarail/build/nexaraild $HOME/go/bin/nexaraild
nexaraild version
#
sha256sum $HOME/go/bin/nexaraild
#

systemctl restart nexaraild &amp;amp;&amp;amp; journalctl -u nexaraild -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;s2Z7&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;pqtx&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;rxIc&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;CKbO&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Go&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;sror&quot;&gt;ver=&amp;quot;1.22.13&amp;quot; &amp;amp;&amp;amp; \
wget &amp;quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
sudo rm -rf /usr/local/go &amp;amp;&amp;amp; \
sudo tar -C /usr/local -xzf &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
rm &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&amp;quot; &amp;gt;&amp;gt; $HOME/.bash_profile &amp;amp;&amp;amp; \
source $HOME/.bash_profile &amp;amp;&amp;amp; \
go version&lt;/pre&gt;
  &lt;p id=&quot;XeHU&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;E1xP&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/Bookings-cpu/nexarail &amp;amp;&amp;amp; cd nexarail
wget -O $HOME/go/bin/nexaraild &amp;quot;https://github.com/Bookings-cpu/nexarail/releases/download/v0.1.1-mainnet2-fundsafety/nexaraild-linux-amd64&amp;quot;
chmod +x $HOME/go/bin/nexaraild

nexaraild version
# ABCI: 1.0.0

sha256sum $HOME/go/bin/nexaraild
# 068aee2853e452a055de2b4082259ff4ccf42573362310f609f22940399b26ca&lt;/pre&gt;
  &lt;p id=&quot;N5tl&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;tahD&quot;&gt;nexaraild init UTSA_guide --chain-id nexarail-mainnet-2&lt;/pre&gt;
  &lt;p id=&quot;Qrh4&quot;&gt;&lt;strong&gt;Скачиваем Genesis&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Uc4T&quot;&gt;wget -O $HOME/.nexarail/config/genesis.json &amp;quot;https://github.com/Bookings-cpu/nexarail/releases/download/mainnet-genesis-nexarail-mainnet-2/genesis.json&amp;quot;

# Проверим генезис
sha256sum ~/.nexarail/config/genesis.json
#d2d6933fbdf2fed1727c9906dfb41024871c3c20636a6b366ae8414d5af54d62&lt;/pre&gt;
  &lt;p id=&quot;4cmW&quot;&gt;&lt;strong&gt;Скачиваем Addr book&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;kutA&quot;&gt;#wget -O $HOME/.nexarail/config/addrbook.json &amp;quot;https://share.utsa.tech/nexarail/addrbook.json&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;I4QJ&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;kBZ8&quot;&gt;Настраиваем конфигурацию ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;kFcN&quot;&gt;# правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id для каждой команды CLI в client.toml
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;nexarail-mainnet-2\&amp;quot;/;&amp;quot; ~/.nexarail/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.nexarail/config/client.toml

# настраиваем минимальную цену за газ в app.toml
sed -i.bak -e &amp;quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&amp;quot;0.025unxrl\&amp;quot;/;&amp;quot; ~/.nexarail/config/app.toml

# добавляем seeds/bpeers/peers в config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e &amp;quot;s/^external_address *=.*/external_address = \&amp;quot;$external_address:26656\&amp;quot;/&amp;quot; $HOME/.nexarail/config/config.toml

peers=&amp;quot;1af9139d59677cc42ff2924c89f9cf9e0c980246@5.161.85.160:26656,d91372d5918d870c7861a2eb3e99b90d7c5882ca@5.161.103.203:26656,8776e496483fefbbc4dc17749f5ec80ab121fe2c@5.161.99.76:26656,45668d1ae375f39fce47dfa96e76db7946da7188@5.161.94.47:26656,bbd2b07264da053541128a0677540bc95bf415c6@5.161.72.48:26656&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.nexarail/config/config.toml
seeds=&amp;quot;&amp;quot;
sed -i.bak -e &amp;quot;s/^seeds =.*/seeds = \&amp;quot;$seeds\&amp;quot;/&amp;quot; $HOME/.nexarail/config/config.toml

# настраиваем фильтрацию &amp;quot;плохих&amp;quot; peers
sed -i -e &amp;quot;s/^filter_peers *=.*/filter_peers = \&amp;quot;true\&amp;quot;/&amp;quot; $HOME/.nexarail/config/config.toml&lt;/pre&gt;
  &lt;pre id=&quot;FSPG&quot; data-lang=&quot;bash&quot;&gt;sed -i &amp;#x27;s/^timeout_commit = .*/timeout_commit = &amp;quot;1400ms&amp;quot;/&amp;#x27; $HOME/.nexarail/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;SO7e&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;dSpB&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Настраиваем прунинг в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Xqx0&quot;&gt;pruning=&amp;quot;custom&amp;quot;
pruning_keep_recent=&amp;quot;100&amp;quot;
pruning_interval=&amp;quot;100&amp;quot;
sed -i -e &amp;quot;s/^pruning *=.*/pruning = \&amp;quot;$pruning\&amp;quot;/&amp;quot; $HOME/.nexarail/config/app.toml
sed -i -e &amp;quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&amp;quot;$pruning_keep_recent\&amp;quot;/&amp;quot; $HOME/.nexarail/config/app.toml
sed -i -e &amp;quot;s/^pruning-interval *=.*/pruning-interval = \&amp;quot;$pruning_interval\&amp;quot;/&amp;quot; $HOME/.nexarail/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;dGeO&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Выкл индексацию в&lt;code&gt;config.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;iMn7&quot;&gt;indexer=&amp;quot;null&amp;quot;
sed -i -e &amp;quot;s/^indexer *=.*/indexer = \&amp;quot;$indexer\&amp;quot;/&amp;quot; $HOME/.nexarail/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;UDzq&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Y635&quot;&gt;snapshot_interval=1000
sed -i.bak -e &amp;quot;s/^snapshot-interval *=.*/snapshot-interval = \&amp;quot;$snapshot_interval\&amp;quot;/&amp;quot; ~/.nexarail/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;pRGv&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;5cMj&quot;&gt;State sync&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;dRW3&quot;&gt;# add peer
peers=&amp;quot;&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.nexarail/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;aCRd&quot;&gt;SNAP_RPC=https://m-nexarail.rpc.utsa.tech:443

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100)); \
TRUST_HASH=$(curl -s &amp;quot;$SNAP_RPC/block?height=$BLOCK_HEIGHT&amp;quot; | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -E &amp;quot;s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$SNAP_RPC,$SNAP_RPC\&amp;quot;| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$TRUST_HASH\&amp;quot;| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;\&amp;quot;|&amp;quot; $HOME/.nexarail/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;bVEo&quot;&gt;systemctl restart nexaraild &amp;amp;&amp;amp; journalctl -u nexaraild -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;N1Bw&quot;&gt;&lt;strong&gt;&lt;s&gt;Snapshots&lt;/s&gt;&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;yPUl&quot; data-align=&quot;center&quot;&gt;&lt;s&gt;time: &lt;strong&gt;every 24 hours&lt;/strong&gt; &lt;strong&gt;| &lt;/strong&gt;indexer:&lt;strong&gt; kv | &lt;/strong&gt;pruning:&lt;strong&gt; 1000/100&lt;/strong&gt;&lt;/s&gt;&lt;/p&gt;
    &lt;p id=&quot;SP72&quot; data-align=&quot;center&quot;&gt;&lt;s&gt;🌐 &lt;a href=&quot;https://share102.utsa.tech/xrpl/&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;https://share.utsa.tech/nexarail/&lt;/strong&gt;&lt;/a&gt;&lt;/s&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;V9E2&quot;&gt;cd $HOME
systemctl stop nexaraild

cp $HOME/.nexarail/data/priv_validator_state.json $HOME/.nexarail/priv_validator_state.json.backup

# удаляем старую базу данных
rm -rf $HOME/.nexarail/data/{application.db,evidence.db,snapshots,tx_index.db,blockstore.db,state.db,cs.wal}

# скачиваем snapshot
curl -o - -L https://share.utsa.tech/nexarail/nexarail.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.nexarail/

mv $HOME/.nexarail/priv_validator_state.json.backup $HOME/.nexarail/data/priv_validator_state.json

systemctl restart nexaraild &amp;amp;&amp;amp; journalctl -u nexaraild -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AwrS&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;PuIw&quot;&gt;tee /etc/systemd/system/nexaraild.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=nexaraild
After=network-online.target

[Service]
User=$USER
ExecStart=$(which nexaraild) start --home /root/.nexarail --minimum-gas-prices 0.025unxrl
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;nNCS&quot;&gt;systemctl daemon-reload
systemctl enable nexaraild
systemctl restart nexaraild &amp;amp;&amp;amp; journalctl -u nexaraild -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;P3nc&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;JV1g&quot;&gt;# создать кошелек
nexaraild keys add &amp;lt;name_wallet&amp;gt; --key-type eth_secp256k1 --keyring-backend os

# восстановить кошелек (после команды вставить seed)
nexaraild keys add &amp;lt;name_wallet&amp;gt; --key-type eth_secp256k1 --recover --keyring-backend os&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить seed !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ljQx&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;&lt;strong&gt;Создаем валидатора&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;JZb3&quot;&gt;&lt;/p&gt;
  &lt;pre id=&quot;Qsoq&quot; data-lang=&quot;bash&quot;&gt;nexaraild tx staking create-validator \
  --amount=1000000unxrl \
  --pubkey=$(nexaraild tendermint show-validator) \
  --moniker=&amp;quot;&amp;lt;your moniker&amp;gt;&amp;quot; \
  --chain-id=nexarail-testnet-1 \
  --commission-rate=&amp;quot;0.10&amp;quot; \
  --commission-max-rate=&amp;quot;0.20&amp;quot; \
  --commission-max-change-rate=&amp;quot;0.01&amp;quot; \
  --min-self-delegation=&amp;quot;1&amp;quot; \
  --gas=auto --gas-adjustment=1.4 --gas-prices=0.025unxrl \
  --from=&amp;lt;wallet-name&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;xemm&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kj2D&quot;&gt;&lt;strong&gt;Не забываем сохранить priv_validator_key.json !!!&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;VBzA&quot;&gt;Подробнее о создании/редактировании валидатора можно почитать &lt;a href=&quot;/@lesnik13utsa/RPLJpWXIoDQ&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;UhO2&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;SKfn&quot;&gt;# проверить логи
sudo journalctl -u nexaraild -f -o cat
# проверить статус
curl localhost:$PORT/status | jq
# проверить баланс
nexaraild q bank balances &amp;lt;address&amp;gt;
# проверить pubkey валидатора
nexaraild tendermint show-validator
# проверить валидатора
nexaraild query staking validator &amp;lt;valoper_address&amp;gt;
nexaraild query staking validators --limit 1000000 -o json | jq &amp;#x27;.validators[] | select(.description.moniker==&amp;quot;&amp;lt;name_moniker&amp;gt;&amp;quot;)&amp;#x27; | jq
# проверка информации по TX_HASH
nexaraild query tx &amp;lt;TX_HASH&amp;gt;
# параметры сети
nexaraild q staking params
nexaraild q slashing params
# проверить сколько блоков пропущено валидатором и с какого блока актив
nexaraild q slashing signing-info $(nexaraild tendermint show-validator)
# проверить slashing
nexaraild q slashing signing-info $(nexaraild tendermint show-validator)
# узнать транзакцию создания валидатора (заменить свой valoper_address)
nexaraild query txs --events=&amp;#x27;create_validator.validator=&amp;lt;your_valoper_address&amp;gt;&amp;#x27; -o=json | jq .txs[0].txhash -r&lt;/pre&gt;
  &lt;pre id=&quot;SKfn&quot; data-lang=&quot;bash&quot;&gt;# просмотр активного сета
nexaraild query tendermint-validator-set \
  --limit 1000 \
  -o json | jq -r &amp;#x27;
.validators[]
| &amp;quot;\(.address) power=\(.voting_power) proposer_priority=\(.proposer_priority)&amp;quot;
&amp;#x27;&lt;/pre&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Wu4U&quot;&gt;# собрать комиссионные + реварды
nexaraild tx distribution withdraw-rewards &amp;lt;valoper_address&amp;gt; --from &amp;lt;name_wallet&amp;gt; --keyring-backend os --fees 5000unxrl --commission -y

# заделегировать себе в стейк еще (так отправляется 1 монетa)
nexaraild tx staking delegate &amp;lt;valoper_address&amp;gt; 1000000unxrl --from &amp;lt;name_wallet&amp;gt; --keyring-backend os --fees 5000unxrl -y

# ределегирование на другого валидатора
nexaraild tx staking redelegate &amp;lt;src-validator-addr&amp;gt; &amp;lt;dst-validator-addr&amp;gt; 1000000unxrl --from &amp;lt;name_wallet&amp;gt; --keyring-backend os --fees 5000unxrl -y

# unbond 
nexaraild tx staking unbond &amp;lt;addr_valoper&amp;gt; 1000000unxrl --from &amp;lt;name_wallet&amp;gt; --keyring-backend os --fees 5000unxrl -y

# отправить монеты на другой адрес
nexaraild tx send &amp;lt;name_wallet&amp;gt; &amp;lt;address&amp;gt; 1000000unxrl --keyring-backend os --fees 5000unxrl -y

# выбраться из тюрьмы
nexaraild tx slashing unjail --from &amp;lt;name_wallet&amp;gt; --keyring-backend os --fees 5000unxrl -y&lt;/pre&gt;
  &lt;p id=&quot;zl2g&quot;&gt;&lt;strong&gt;Работа с кошельками&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;a0XS&quot;&gt;# вывести список кошельков
nexaraild keys list

# показать ключ аккаунта
nexaraild keys show &amp;lt;name_wallet&amp;gt; --bech acc

# показать ключ валидатора
nexaraild keys show &amp;lt;name_wallet&amp;gt; --bech val

# показать ключ консенсуса
nexaraild keys show &amp;lt;name_wallet&amp;gt; --bech cons

# запрос учетной записи
nexaraild q auth account $(nexaraild keys show &amp;lt;name_wallet&amp;gt; -a) -o text

# удалить кошелек
nexaraild keys delete &amp;lt;name_wallet&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;1SJS&quot;&gt;systemctl stop nexaraild &amp;amp;&amp;amp; \
systemctl disable nexaraild &amp;amp;&amp;amp; \
rm /etc/systemd/system/nexaraild.service &amp;amp;&amp;amp; \
systemctl daemon-reload &amp;amp;&amp;amp; \
cd $HOME &amp;amp;&amp;amp; \
rm -rf .nexarail nexarail &amp;amp;&amp;amp; \
rm -rf $(which nexaraild)&lt;/pre&gt;
  &lt;p id=&quot;fYh0&quot;&gt;&lt;strong&gt;ГОВЕРНАНС&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;PB7j&quot;&gt;# список proposals
nexaraild q gov proposals

# посмотреть результат голосования
nexaraild q gov proposals --voter &amp;lt;ADDRESS&amp;gt;

# проголосовать за предложение 
nexaraild tx gov vote 1 yes --from &amp;lt;name_wallet&amp;gt; --fees 500unxrl

# внести депозит в предложение
nexaraild tx gov deposit 1 1000000unxrl --from &amp;lt;name_wallet&amp;gt; --fees 5000unxrl

# создать предложение
nexaraild tx gov submit-proposal --title=&amp;quot;Randomly reward&amp;quot; --description=&amp;quot;Reward 10 testnet participants who completed more than 3 tasks&amp;quot; --type=&amp;quot;Text&amp;quot; --deposit=&amp;quot;11000000unxrl&amp;quot; --from=&amp;lt;name_wallet&amp;gt; --fees 5000unxrl&lt;/pre&gt;
  &lt;p id=&quot;chat-messages-932182862663389245&quot;&gt;&lt;strong&gt;Peers and RPC&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;CakA&quot;&gt;FOLDER=.nexarail

# узнать свой peer
PORTR=$(grep -A 3 &amp;quot;\[p2p\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;) &amp;amp;&amp;amp; \
echo $(nexaraild tendermint show-node-id)@$(wget -qO- eth0.me)$PORTR

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

# проверка количества пиров
PORT=
curl -s http://localhost:$PORT/net_info | jq -r &amp;#x27;.result.peers[] | &amp;quot;\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(&amp;quot;:&amp;quot;)[2])&amp;quot;&amp;#x27; | wc -l

# cписок моникеров подключенных пиров
curl -s http://localhost:$PORT/net_info | jq &amp;#x27;.result.peers[].node_info.moniker&amp;#x27;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;

# check prevote of your validator
curl -s localhost:$PORT/consensus_state -s | grep $(curl -s localhost:26657/status | jq -r .result.validator_info.address[:12])&lt;/pre&gt;
  &lt;figure id=&quot;cY95&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:hvsi2rPThn4</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/hvsi2rPThn4?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>Logos</title><published>2026-05-21T18:13:03.748Z</published><updated>2026-05-24T05:50:49.138Z</updated><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/c3/cb/c3cb8e82-c4db-47e9-a1e1-4f9fd1d8e26e.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;p7jS&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c3/cb/c3cb8e82-c4db-47e9-a1e1-4f9fd1d8e26e.png&quot; width=&quot;950&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;head&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;D2wo&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://logos.co/&quot; target=&quot;_blank&quot;&gt;Web&lt;/a&gt; &lt;a href=&quot;https://discord.gg/jeQeCBPKzy&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt; &lt;a href=&quot;https://github.com/logos-blockchain/logos-blockchain/releases&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sHgA&quot;&gt;&lt;u&gt;&lt;strong&gt;Testnet details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;OnH1&quot;&gt;Working directory: &lt;code&gt;logos&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;pEU9&quot;&gt;Explorer: &lt;a href=&quot;https://testnet.blockchain.logos.co/web/explorer/&quot; target=&quot;_blank&quot;&gt;https://testnet.blockchain.logos.co/web/explorer/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;Vg9G&quot;&gt;Explorer: &lt;a href=&quot;https://logosblocks.noders.services/&quot; target=&quot;_blank&quot;&gt;https://logosblocks.noders.services/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;TbzR&quot;&gt;Info: &lt;a href=&quot;https://devnet.blockchain.logos.co/web/&quot; target=&quot;_blank&quot;&gt;https://devnet.blockchain.logos.co/web/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;Erhj&quot;&gt;Faucet: &lt;a href=&quot;https://testnet.blockchain.logos.co/web/faucet/&quot; target=&quot;_blank&quot;&gt;https://testnet.blockchain.logos.co/web/faucet/&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;4x6c&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;8l8t&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;RUST&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;Py20&quot; data-lang=&quot;bash&quot;&gt;curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env

rustup --version
rustc --version
cargo --version&lt;/pre&gt;
  &lt;p id=&quot;3Zsg&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Uuw1&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;5o7y&quot;&gt;&lt;strong&gt;Скачиваем схемы&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;zdwA&quot; data-lang=&quot;bash&quot;&gt;wget https://github.com/logos-blockchain/logos-blockchain/releases/download/0.1.2/logos-blockchain-circuits-v0.4.2-linux-x86_64.tar.gz
tar -xzf logos-blockchain-circuits-v0.4.2-linux-x86_64.tar.gz
rm logos-blockchain-circuits-v0.4.2-linux-x86_64.tar.gz&lt;/pre&gt;
  &lt;p id=&quot;DAzZ&quot;&gt;По умолчанию узел ищет файлы схем в &lt;code&gt;~/.logos-blockchain-circuits&lt;/code&gt;&lt;/p&gt;
  &lt;pre id=&quot;0Q8r&quot; data-lang=&quot;bash&quot;&gt;mv logos-blockchain-circuits-*/ ~/.logos-blockchain-circuits&lt;/pre&gt;
  &lt;p id=&quot;oITX&quot;&gt;&lt;strong&gt;Устанавливаем бинарники ubuntu 22.04&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;YUSp&quot;&gt;cd
mkdir -p logos &amp;amp;&amp;amp; cd logos&lt;/pre&gt;
  &lt;pre id=&quot;0Mov&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/logos-blockchain/logos-blockchain.git
cd logos-blockchain
git fetch --tags
git checkout 0.1.2
cargo build -p logos-blockchain-node --release
./target/release/logos-blockchain-node --version
#logos-blockchain-node 0.1.2
#commit:  05f84a55 (tag 0.1.2)

mv ./target/release/logos-blockchain-node /root/logos
cd /root/logos&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;oGCq&quot;&gt;Для ubuntu 24.04 можно скачать бинарник &lt;/p&gt;
    &lt;pre id=&quot;ucE0&quot; data-lang=&quot;bash&quot;&gt;wget https://github.com/logos-blockchain/logos-blockchain/releases/download/0.1.2/logos-blockchain-node-linux-x86_64-0.1.2.tar.gz
tar -xzf logos-blockchain-node-linux-x86_64-0.1.2.tar.gz
rm logos-blockchain-node-linux-x86_64-0.1.2.tar.gz
chmod +x ./logos-blockchain-node
./logos-blockchain-node --version
# logos-blockchain-node 0.1.2
# commit:  05f84a5 (tag 0.1.2)&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;1rM5&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;19u8&quot;&gt;Нода разделяет конфигурацию на два уровня. Конфигурация развертывания содержит общесетевые параметры, такие как настройки консенсуса и начальное состояние (по умолчанию используется встроенное развертывание «devnet»). Пользовательская конфигурация содержит индивидуальные настройки узла, такие как криптографические ключи, порты и адреса одноранговых узлов. Подкоманда init генерирует пользовательскую конфигурацию со свежими криптографическими ключами, автоматически определяет ваш публичный IP-адрес с помощью протокола идентификации libp2p и записывает результат в файл user_config.yaml&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;O1oM&quot;&gt;./logos-blockchain-node init \
    -p /ip4/65.109.51.37/udp/3000/quic-v1/p2p/12D3KooWFrouXfmrR4nsLMtE7wu15DoMJ6VtoUtHinREZCvbWHar \
    -p /ip4/65.109.51.37/udp/3001/quic-v1/p2p/12D3KooWJRGau8M1rjT7R5e4YYsgdFhsMX35nRDtMwCDjxQkXAHz \
    -p /ip4/65.109.51.37/udp/3002/quic-v1/p2p/12D3KooWQXJavMDTRscjauFSgVAB1VLB6Rzpy2uY5SU9Tk7927tb \
    -p /ip4/65.109.51.37/udp/3003/quic-v1/p2p/12D3KooWSQc7CcGtvWDPF1yCbBthFnQjprfCVHmfmNDUrSmqQsU1&lt;/pre&gt;
  &lt;p id=&quot;AwrS&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;8asY&quot;&gt;tee /etc/systemd/system/logos-node.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=Logos Blockchain Node
After=network-online.target
Wants=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/logos
ExecStart=$HOME/logos/logos-blockchain-node /root/logos/user_config.yaml

Restart=always
RestartSec=10

LimitNOFILE=65535

Environment=RUST_BACKTRACE=1
Environment=LOG_BACKEND=stdout
#Environment=LOG_LEVEL=INFO

StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;fHZX&quot;&gt;systemctl daemon-reload
systemctl enable logos-node
systemctl restart logos-node &amp;amp;&amp;amp; journalctl -u logos-node -f -o cat&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить user_config.yaml&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;4Axk&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;VkBH&quot;&gt;Найдите ключи, связанные с вашим узлом и запросите токены с faucet на любой ключ из &lt;code&gt;known_keys&lt;/code&gt;. В настоящее время faucet работает не идеально - следите за обновлениями в discord&lt;/p&gt;
  &lt;pre id=&quot;VExx&quot; data-lang=&quot;bash&quot;&gt;grep -A3 known_keys $HOME/logos/user_config.yaml&lt;/pre&gt;
  &lt;p id=&quot;1F3p&quot;&gt;Проверьте баланс&lt;/p&gt;
  &lt;pre id=&quot;NQTR&quot; data-lang=&quot;bash&quot;&gt;curl -s http://localhost:8080/wallet/&amp;lt;your-chosen-key&amp;gt;/balance | jq .&lt;/pre&gt;
  &lt;p id=&quot;EZTb&quot;&gt;Ваши токены будут доступны для консенсуса через 3,5 часа. Убедитесь, что Ваша нода участвует в процессе, проверив, что &lt;code&gt;mode&lt;/code&gt; остается &lt;code&gt;Online&lt;/code&gt; и &lt;code&gt;height&lt;/code&gt; продолжает расти&lt;/p&gt;
  &lt;p id=&quot;zXL2&quot;&gt;Предложение блока является вероятностным. Ваша нода не будет предлагать блок в каждом временном интервале; участие зависит от количества стейка&lt;/p&gt;
  &lt;p id=&quot;Gjj8&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Yyr5&quot;&gt;# Посмотреть ключ для faucet
grep -A3 known_keys $HOME/logos/user_config.yaml
# проверить баланс
curl -w &amp;quot;\n&amp;quot; http://localhost:8080/wallet/&amp;lt;key&amp;gt;/balance
# Проверить peers
curl -s http://127.0.0.1:8080/network/info | jq .
# Проверить состояние синхронизации
curl -s http://127.0.0.1:8080/cryptarchia/info | jq .&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Uj03&quot;&gt;systemctl stop logos-node
systemctl disable logos-node

cd
rm -r logos
rm -r .logos-blockchain-circuits&lt;/pre&gt;
  &lt;figure id=&quot;cY95&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:N1yIMX2HtYy</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/N1yIMX2HtYy?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>La Tanda Chain</title><published>2026-03-25T11:59:53.128Z</published><updated>2026-10-01T13:21:04.329Z</updated><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;S1KG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;head&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;D2wo&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;&lt;a href=&quot;https://n8n.latanda.online/chain/&quot; target=&quot;_blank&quot;&gt;Web&lt;/a&gt; &lt;a href=&quot;https://discord.gg/Ve9M2ZSYC2&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt; &lt;a href=&quot;https://github.com/INDIGOAZUL?tab=repositories&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sHgA&quot;&gt;&lt;u&gt;&lt;strong&gt;Testnet details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;code&gt;latanda-testnet-1&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;8tyv&quot;&gt;Denom stake: &lt;code&gt;ultd&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;SZWc&quot;&gt;Binary: &lt;code&gt;latandad&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;OnH1&quot;&gt;Working directory: &lt;code&gt;.latanda&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;AdcU&quot;&gt;RPC: &lt;a href=&quot;https://t-latanda.rpc.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://t-latanda.rpc.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;LaYP&quot;&gt;API: &lt;a href=&quot;https://t-latanda.api.utsa.tech/&quot; target=&quot;_blank&quot;&gt;https://t-latanda.api.utsa.tech/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;pEU9&quot;&gt;Explorer: &lt;a href=&quot;https://explorer.utsa.tech/networks/latanda-testnet&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/networks/latanda-testnet&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;ZvSO&quot;&gt;Docs: &lt;a href=&quot;https://n8n.latanda.online/chain/#recursos&quot; target=&quot;_blank&quot;&gt;https://n8n.latanda.online/chain/#recursos&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;Erhj&quot;&gt;Faucet: просить токены в дискорде&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;4x6c&quot;&gt;La Tanda - это блокчейн-проект, который переносит классическую модель “сберегательных кругов” (tanda/ROSCA) в цифровой формат: участники объединяются в группы и по очереди получают общий пул средств. Идея сама по себе рабочая и используется во многих странах, однако роль блокчейна и токена в этой модели мне не до конца очевидна&lt;/p&gt;
  &lt;p id=&quot;43do&quot;&gt;Тестовая сеть только запустилась и судя по дорожной карте валидаторы будут добавляться частями - &lt;a href=&quot;https://n8n.latanda.online/chain/#roadmap&quot; target=&quot;_blank&quot;&gt;https://n8n.latanda.online/chain/#roadmap&lt;/a&gt;  &lt;/p&gt;
  &lt;p id=&quot;T2gv&quot;&gt;Заходить в валидаторы имеет смысл только без лишних ожиданий и затрат&lt;/p&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;d9Ov&quot;&gt;# проверяем статус prevotes/precommits
FOLDER=.latanda

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

PORT=&amp;lt;ввести свой порт&amp;gt;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CJUj&quot;&gt;&lt;strong&gt;UPD 🕊 v (Высота обновления: )&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;gctM&quot;&gt;cd $HOME/latanda-build
wget -q https://latanda.online/chain/latanda-chain-source.tar.gz
tar -xzf latanda-chain-source.tar.gz

go mod tidy
go build -o latandad ./cmd/latandad

$HOME/latanda-build/bin/latandad version --long | grep -e version -e commit
# version: 
# commit: 

# # ПОСЛЕ ОСТАНОВКИ СЕТИ НА НУЖНОМ БЛОКЕ!!!
systemctl stop latandad
mv latandad $(which latandad)
latandad version --long | grep -e version -e commit
#

systemctl restart latandad &amp;amp;&amp;amp; journalctl -u latandad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;gctM&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;n0vj&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;TWGp&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Go&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;K30V&quot;&gt;ver=&amp;quot;1.21.13&amp;quot; &amp;amp;&amp;amp; \
wget &amp;quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
sudo rm -rf /usr/local/go &amp;amp;&amp;amp; \
sudo tar -C /usr/local -xzf &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
rm &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&amp;quot; &amp;gt;&amp;gt; $HOME/.bash_profile &amp;amp;&amp;amp; \
source $HOME/.bash_profile &amp;amp;&amp;amp; \
go version&lt;/pre&gt;
  &lt;p id=&quot;j3bM&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;9sYS&quot;&gt;mkdir -p $HOME/latanda-build &amp;amp;&amp;amp; cd $HOME/latanda-build

wget -q https://latanda.online/chain/latanda-chain-source.tar.gz
tar -xzf latanda-chain-source.tar.gz

go mod tidy
go build -o latandad ./cmd/latandad

mv latandad $HOME/go/bin/

latandad version --long | grep -e version -e commit
# version: &amp;quot;&amp;quot;
# commit: &amp;quot;&amp;quot; &lt;/pre&gt;
  &lt;p id=&quot;vp48&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;1EGv&quot;&gt;latandad init UTSA_guide --chain-id latanda-testnet-1 --default-denom ultd&lt;/pre&gt;
  &lt;p id=&quot;Qrh4&quot;&gt;&lt;strong&gt;Скачиваем Genesis&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;rQ2e&quot;&gt;wget -O $HOME/.latanda/config/genesis.json &amp;quot;https://latanda.online/chain/genesis.json&amp;quot;

# Проверим генезис
sha256sum ~/.latanda/config/genesis.json
# 98fc9871d6a3b7b12b3f7fcaa1ca3303ffcfad0f209d61355975a15069ac3907&lt;/pre&gt;
  &lt;p id=&quot;4cmW&quot;&gt;&lt;strong&gt;Скачиваем Addr book&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;IucL&quot;&gt;wget -O $HOME/.latanda/config/addrbook.json &amp;quot;https://share101.utsa.tech/latanda/addrbook.json&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;WQhY&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;kBZ8&quot;&gt;Настраиваем конфигурацию ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;rXOk&quot;&gt;# правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id для каждой команды CLI в client.toml
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;latanda-testnet-1\&amp;quot;/;&amp;quot; ~/.latanda/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.latanda/config/client.toml

# настраиваем минимальную цену за газ в app.toml
sed -i.bak -e &amp;quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&amp;quot;0.001ultd\&amp;quot;/;&amp;quot; ~/.latanda/config/app.toml

# добавляем seeds/bpeers/peers в config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e &amp;quot;s/^external_address *=.*/external_address = \&amp;quot;$external_address:26656\&amp;quot;/&amp;quot; $HOME/.latanda/config/config.toml

peers=&amp;quot;483a8110c3cd93c8dd3801d935151e98656f5b67@168.231.67.201:26656&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.latanda/config/config.toml
seeds=&amp;quot;&amp;quot;
sed -i.bak -e &amp;quot;s/^seeds =.*/seeds = \&amp;quot;$seeds\&amp;quot;/&amp;quot; $HOME/.latanda/config/config.toml

# настраиваем фильтрацию &amp;quot;плохих&amp;quot; peers
sed -i -e &amp;quot;s/^filter_peers *=.*/filter_peers = \&amp;quot;true\&amp;quot;/&amp;quot; $HOME/.latanda/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;QI2Z&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Настраиваем прунинг в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Aprq&quot;&gt;pruning=&amp;quot;custom&amp;quot;
pruning_keep_recent=&amp;quot;1000&amp;quot;
pruning_interval=&amp;quot;10&amp;quot;
sed -i -e &amp;quot;s/^pruning *=.*/pruning = \&amp;quot;$pruning\&amp;quot;/&amp;quot; $HOME/.latanda/config/app.toml
sed -i -e &amp;quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&amp;quot;$pruning_keep_recent\&amp;quot;/&amp;quot; $HOME/.latanda/config/app.toml
sed -i -e &amp;quot;s/^pruning-interval *=.*/pruning-interval = \&amp;quot;$pruning_interval\&amp;quot;/&amp;quot; $HOME/.latanda/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;dGeO&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Выкл индексацию в&lt;code&gt;config.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;07j7&quot;&gt;indexer=&amp;quot;null&amp;quot;
sed -i -e &amp;quot;s/^indexer *=.*/indexer = \&amp;quot;$indexer\&amp;quot;/&amp;quot; $HOME/.latanda/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;UDzq&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Hutq&quot;&gt;snapshot_interval=1000
sed -i.bak -e &amp;quot;s/^snapshot-interval *=.*/snapshot-interval = \&amp;quot;$snapshot_interval\&amp;quot;/&amp;quot; ~/.latanda/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;Hu7v&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;5cMj&quot;&gt;State sync&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;ffLz&quot;&gt;# add peer
peers=&amp;quot;d6217d85d3747ebbfbf75898bd4407da567f5291@65.108.206.118:60556&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.latanda/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;HU7h&quot;&gt;SNAP_RPC=https://t-latanda.rpc.utsa.tech:443

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100)); \
TRUST_HASH=$(curl -s &amp;quot;$SNAP_RPC/block?height=$BLOCK_HEIGHT&amp;quot; | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -E &amp;quot;s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$SNAP_RPC,$SNAP_RPC\&amp;quot;| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$TRUST_HASH\&amp;quot;| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;\&amp;quot;|&amp;quot; $HOME/.latanda/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;OF8l&quot;&gt;systemctl restart latandad &amp;amp;&amp;amp; journalctl -u latandad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;fuhu&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;N1Bw&quot;&gt;&lt;strong&gt;&lt;s&gt;Snapshots&lt;/s&gt;&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;yPUl&quot; data-align=&quot;center&quot;&gt;&lt;s&gt;time: &lt;strong&gt;every 24 hours&lt;/strong&gt; &lt;strong&gt;| &lt;/strong&gt;indexer:&lt;strong&gt; kv | &lt;/strong&gt;pruning:&lt;strong&gt; 100/10&lt;/strong&gt;&lt;/s&gt;&lt;/p&gt;
    &lt;p id=&quot;SP72&quot; data-align=&quot;center&quot;&gt;&lt;s&gt;🌐&lt;/s&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;o0h8&quot;&gt;cd $HOME
systemctl stop latandad

cp $HOME/.latanda/data/priv_validator_state.json $HOME/.latanda/priv_validator_state.json.backup

# удаляем старую базу данных
rm -rf $HOME/.latanda/data/{application.db,evidence.db,snapshots,tx_index.db,blockstore.db,state.db,cs.wal}

# скачиваем snapshot
curl -o - -L https://server-4.net/testnet/latanda/latanda_2026-03-20_11888537_snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.latanda/

mv $HOME/.latanda/priv_validator_state.json.backup $HOME/.latanda/data/priv_validator_state.json

systemctl restart latandad &amp;amp;&amp;amp; journalctl -u latandad -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AwrS&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;I8Os&quot;&gt;tee /etc/systemd/system/latandad.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=latandad
After=network-online.target
Wants=network-online.target

[Service]
User=$USER
ExecStart=$(which latandad) start --home $HOME/.latanda
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;P7os&quot;&gt;systemctl daemon-reload
systemctl enable latandad
systemctl restart latandad &amp;amp;&amp;amp; journalctl -u latandad -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;P3nc&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;xgZg&quot;&gt;# создать кошелек
latandad keys add &amp;lt;name_wallet&amp;gt; --keyring-backend os

# восстановить кошелек (после команды вставить seed)
latandad keys add &amp;lt;name_wallet&amp;gt; --recover --keyring-backend os&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить seed !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;rltT&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;&lt;strong&gt;Создаем валидатора&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;asq2&quot;&gt;1. Получаем свой pubkey&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;nd0a&quot;&gt;latandad comet show-validator&lt;/pre&gt;
  &lt;p id=&quot;ywEz&quot;&gt;2. Создаем validator.json&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;jo3m&quot;&gt;nano $HOME/.latanda/validator.json&lt;/pre&gt;
  &lt;p id=&quot;qdbf&quot;&gt;3. Вставляем наш конфиг&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;JFIW&quot;&gt;{
    &amp;quot;pubkey&amp;quot;: {&amp;quot;@type&amp;quot;:&amp;quot;/cosmos.crypto.ed25519.PubKey&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;c+EuycPpudgiyVl6guYODKveo=&amp;quot;},
    &amp;quot;amount&amp;quot;: &amp;quot;1100000000000000000ultd&amp;quot;,
    &amp;quot;moniker&amp;quot;: &amp;quot;yourmoniker&amp;quot;,
    &amp;quot;identity&amp;quot;: &amp;quot;optional identity signature (ex. UPort or Keybase)&amp;quot;,
    &amp;quot;website&amp;quot;: &amp;quot;validator&amp;#x27;s (optional) website&amp;quot;,
    &amp;quot;security&amp;quot;: &amp;quot;validator&amp;#x27;s (optional) security contact email&amp;quot;,
    &amp;quot;details&amp;quot;: &amp;quot;validator&amp;#x27;s (optional) details&amp;quot;,
    &amp;quot;commission-rate&amp;quot;: &amp;quot;0.1&amp;quot;,
    &amp;quot;commission-max-rate&amp;quot;: &amp;quot;0.2&amp;quot;,
    &amp;quot;commission-max-change-rate&amp;quot;: &amp;quot;0.01&amp;quot;,
    &amp;quot;min-self-delegation&amp;quot;: &amp;quot;1&amp;quot;
}&lt;/pre&gt;
  &lt;p id=&quot;KCoo&quot;&gt;4. Отправляем транзакцию&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;x15y&quot;&gt;latandad tx staking create-validator $HOME/.latanda/validator.json \
    --from=&amp;lt;name_wallet&amp;gt; \
    --chain-id=latanda-testnet-1 \
    --fees 5000ultd -y&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kj2D&quot;&gt;&lt;strong&gt;Не забываем сохранить priv_validator_key.json !!!&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;VBzA&quot;&gt;Подробнее о создании/редактировании валидатора можно почитать &lt;a href=&quot;/@lesnik13utsa/RPLJpWXIoDQ&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;3Ilq&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Vgbg&quot;&gt;# проверить логи
sudo journalctl -u latandad -f -o cat
# проверить статус
curl localhost:$PORT/status | jq
# проверить баланс
latandad q bank balances &amp;lt;address&amp;gt;
# проверить pubkey валидатора
latandad tendermint show-validator
# проверить валидатора
latandad query staking validator &amp;lt;valoper_address&amp;gt;
latandad query staking validators --limit 1000000 -o json | jq &amp;#x27;.validators[] | select(.description.moniker==&amp;quot;&amp;lt;name_moniker&amp;gt;&amp;quot;)&amp;#x27; | jq
# проверка информации по TX_HASH
latandad query tx &amp;lt;TX_HASH&amp;gt;
# параметры сети
latandad q staking params
latandad q slashing params
# проверить сколько блоков пропущено валидатором и с какого блока актив
latandad q slashing signing-info $(latandad tendermint show-validator)
# проверить slashing
latandad q slashing signing-info $(latandad tendermint show-validator)
# узнать транзакцию создания валидатора (заменить свой valoper_address)
latandad query txs --events=&amp;#x27;create_validator.validator=&amp;lt;your_valoper_address&amp;gt;&amp;#x27; -o=json | jq .txs[0].txhash -r
# просмотр активного сета
latandad query staking validators -o json \
| jq -r &amp;#x27;.validators[] 
 | select(.status==&amp;quot;BOND_STATUS_BONDED&amp;quot;) 
 | &amp;quot;\(.tokens) \(.operator_address) \(.description.moniker)&amp;quot;&amp;#x27; \
| sort -gr | nl
# просмотр неактивного сета
latandad query staking validators -o json \
| jq -r &amp;#x27;.validators[] 
  | select(.status!=&amp;quot;BOND_STATUS_BONDED&amp;quot;) 
  | &amp;quot;\(.tokens) \(.operator_address) \(.description.moniker) \(.status)&amp;quot;&amp;#x27; \
| sort -gr | nl&lt;/pre&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;DwKX&quot;&gt;# собрать комиссионные + реварды
latandad tx distribution withdraw-rewards &amp;lt;valoper_address&amp;gt; --from &amp;lt;name_wallet&amp;gt; --fees 5000ultd --gas auto --gas-adjustment 1.5 --commission -y

# заделегировать себе в стейк еще (так отправляется 1 монетa)
latandad tx staking delegate &amp;lt;valoper_address&amp;gt; 1000000ultd --from &amp;lt;name_wallet&amp;gt; --fees 5000ultd --gas auto --gas-adjustment 1.5 -y

# ределегирование на другого валидатора
latandad tx staking redelegate &amp;lt;src-validator-addr&amp;gt; &amp;lt;dst-validator-addr&amp;gt; 1000000ultd --from &amp;lt;name_wallet&amp;gt; --fees 5000ultd --gas auto --gas-adjustment 1.5 -y

# unbond 
latandad tx staking unbond &amp;lt;addr_valoper&amp;gt; 1000000ultd --from &amp;lt;name_wallet&amp;gt; --fees 5000ultd --gas auto --gas-adjustment 1.5 -y

# отправить монеты на другой адрес
latandad tx bank send &amp;lt;name_wallet&amp;gt; &amp;lt;address&amp;gt; 1000000ultd --fees 5000ultd --gas auto --gas-adjustment 1.5 -y

# выбраться из тюрьмы
latandad tx slashing unjail --from &amp;lt;name_wallet&amp;gt; --fees 5000ultd --gas auto --gas-adjustment 1.5 -y&lt;/pre&gt;
  &lt;p id=&quot;zl2g&quot;&gt;&lt;strong&gt;Работа с кошельками&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;gSNW&quot;&gt;# вывести список кошельков
latandad keys list

# показать ключ аккаунта
latandad keys show &amp;lt;name_wallet&amp;gt; --bech acc

# показать ключ валидатора
latandad keys show &amp;lt;name_wallet&amp;gt; --bech val

# показать ключ консенсуса
latandad keys show &amp;lt;name_wallet&amp;gt; --bech cons

# запрос учетной записи
latandad q auth account $(latandad keys show &amp;lt;name_wallet&amp;gt; -a) -o text

# удалить кошелек
latandad keys delete &amp;lt;name_wallet&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;Ojqs&quot;&gt;systemctl stop latandad &amp;amp;&amp;amp; \
systemctl disable latandad &amp;amp;&amp;amp; \
rm /etc/systemd/system/latandad.service &amp;amp;&amp;amp; \
systemctl daemon-reload &amp;amp;&amp;amp; \
cd $HOME &amp;amp;&amp;amp; \
rm -rf .latanda latanda-build &amp;amp;&amp;amp; \
rm -rf $(which latandad)&lt;/pre&gt;
  &lt;p id=&quot;fYh0&quot;&gt;&lt;strong&gt;ГОВЕРНАНС&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;8njc&quot;&gt;# список proposals
latandad q gov proposals

# посмотреть результат голосования
latandad q gov proposals --voter &amp;lt;ADDRESS&amp;gt;

# проголосовать за предложение 
latandad tx gov vote 1 yes --from &amp;lt;name_wallet&amp;gt; --fees 5000ultd --gas auto --gas-adjustment 1.5

# внести депозит в предложение
latandad tx gov deposit 1 1000000ultd --from &amp;lt;name_wallet&amp;gt; --fees 5000ultd --gas auto --gas-adjustment 1.5

# создать предложение
latandad tx gov submit-proposal --title=&amp;quot;Randomly reward&amp;quot; --description=&amp;quot;Reward 10 testnet participants who completed more than 3 tasks&amp;quot; --type=&amp;quot;Text&amp;quot; --deposit=&amp;quot;11000000ultd&amp;quot; --from=&amp;lt;name_wallet&amp;gt; --fees 328408000000000ultd --gas auto --gas-adjustment 1.5&lt;/pre&gt;
  &lt;p id=&quot;chat-messages-932182862663389245&quot;&gt;&lt;strong&gt;Peers and RPC&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;zfCY&quot;&gt;FOLDER=.latanda

# узнать свой peer
PORTR=$(grep -A 3 &amp;quot;\[p2p\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;) &amp;amp;&amp;amp; \
echo $(latandad tendermint show-node-id)@$(wget -qO- eth0.me)$PORTR

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

# проверка количества пиров
PORT=
curl -s http://localhost:$PORT/net_info | jq -r &amp;#x27;.result.peers[] | &amp;quot;\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(&amp;quot;:&amp;quot;)[2])&amp;quot;&amp;#x27; | wc -l

# cписок моникеров подключенных пиров
curl -s http://localhost:$PORT/net_info | jq &amp;#x27;.result.peers[].node_info.moniker&amp;#x27;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;

# check prevote of your validator
curl -s localhost:$PORT/consensus_state -s | grep $(curl -s localhost:26657/status | jq -r .result.validator_info.address[:12])&lt;/pre&gt;
  &lt;figure id=&quot;cY95&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

</content></entry><entry><id>lesnik13utsa:QsAfh2BLcPW</id><link rel="alternate" type="text/html" href="https://teletype.in/@lesnik13utsa/QsAfh2BLcPW?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=lesnik13utsa"></link><title>Push chain</title><published>2026-03-20T15:52:01.179Z</published><updated>2026-10-01T13:22:59.067Z</updated><summary type="html">&lt;img src=&quot;https://img3.teletype.media/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot;&gt;UTSA validator</summary><content type="html">
  &lt;figure id=&quot;S1KG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.media/files/ac/6e/ac6e1e0d-defd-49a8-a013-982f0a502db0.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;head&quot; data-align=&quot;center&quot;&gt;🪓 &lt;a href=&quot;https://t.me/utsa_channel&quot; target=&quot;_blank&quot;&gt;Telegram канал UTSA&lt;/a&gt; 🪓 &lt;a href=&quot;https://t.me/utsa_chat&quot; target=&quot;_blank&quot;&gt;Telegram чат UTSA&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;D2wo&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Web &lt;a href=&quot;https://discord.gg/S26j3f5aqb&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt; &lt;a href=&quot;https://github.com/xrplevm/node&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sHgA&quot;&gt;&lt;u&gt;&lt;strong&gt;Testnet details&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;ul id=&quot;2h1F&quot;&gt;
    &lt;li id=&quot;ED8t&quot;&gt;Network Chain ID: &lt;code&gt;push_42101-1&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;8tyv&quot;&gt;Denom stake: &lt;code&gt;upc&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;SZWc&quot;&gt;Binary: &lt;code&gt;pchaind&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;OnH1&quot;&gt;Working directory: &lt;code&gt;.pchain&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;AdcU&quot;&gt;RPC: &lt;/li&gt;
    &lt;li id=&quot;LaYP&quot;&gt;API: &lt;/li&gt;
    &lt;li id=&quot;W5Z0&quot;&gt;Explorer: &lt;a href=&quot;https://explorer.utsa.tech/networks/push-testnet&quot; target=&quot;_blank&quot;&gt;https://explorer.utsa.tech/networks/push-testnet&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;ZvSO&quot;&gt;Docs: &lt;a href=&quot;https://push.org/blog/what-are-universal-executor-accounts/&quot; target=&quot;_blank&quot;&gt;https://push.org/blog/what-are-universal-executor-accounts/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;Erhj&quot;&gt;Faucet: &lt;a href=&quot;https://faucet.push.org/&quot; target=&quot;_blank&quot;&gt;https://faucet.push.org/&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;a4qB&quot;&gt;# проверяем статус prevotes/precommits
FOLDER=.pchain

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

PORT=&amp;lt;ввести свой порт&amp;gt;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;71Nl&quot;&gt;&lt;strong&gt;UPD 🕊 v0.0.48(Высота обновления: )&lt;/strong&gt;&lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;bIuU&quot;&gt;cd $HOME/push
wget https://github.com/pushchain/push-chain-node/releases/download/v0.0.48/push-chain_0.0.48_linux_amd64.tar.gz
tar -xzf push-chain_0.0.48_linux_amd64.tar.gz

$HOME/push/bin/pchaind version --long | grep -e version -e commit
# version: v0.0.48
# commit: f8432c7dc9dd612d30694dc414e465d0a6b73de2


# # ПОСЛЕ ОСТАНОВКИ СЕТИ НА НУЖНОМ БЛОКЕ!!!
systemctl stop pchaind
mv $HOME/push/bin/pchaind $(which pchaind)
pchaind version --long | grep -e version -e commit
#

systemctl restart pchaind &amp;amp;&amp;amp; journalctl -u pchaind -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;xCWh&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;mz8R&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;6FkE&quot;&gt;Подготовка сервера&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;0fEz&quot;&gt;# обновляем репозитории
apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

# проверяем работу жестких дисков
curl -sL yabs.sh | bash -s — -ig

# проверяем работу интернета
curl -sL yabs.sh | bash -s — -fg&lt;/pre&gt;
  &lt;p id=&quot;M4EP&quot;&gt;&lt;strong&gt;File2Ban&lt;/strong&gt; - подробнее &lt;a href=&quot;https://www.linuxshop.ru/articles/a26710798-nastroyka_fail2ban&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;XE2C&quot;&gt;# устанавливаем и копируем конфиг, который будет иметь больший приоритет
apt install fail2ban -y &amp;amp;&amp;amp; \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local &amp;amp;&amp;amp; \
nano /etc/fail2ban/jail.local
# раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 &amp;lt;ip&amp;gt;
systemctl restart fail2ban

# проверяем status 
systemctl status fail2ban
# проверяем, какие jails активны (по умолчанию только sshd)
fail2ban-client status
# проверяем статистику по sshd
fail2ban-client status sshd
# смотрим логи
tail /var/log/fail2ban.log
# останавливаем работу и удаляем с автозагрузки
#systemctl stop fail2ban &amp;amp;&amp;amp; systemctl disable fail2ban&lt;/pre&gt;
  &lt;p id=&quot;eKUj&quot;&gt;&lt;strong&gt;Устанавливаем Go&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;dmsi&quot;&gt;ver=&amp;quot;1.21.13&amp;quot; &amp;amp;&amp;amp; \
wget &amp;quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
sudo rm -rf /usr/local/go &amp;amp;&amp;amp; \
sudo tar -C /usr/local -xzf &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
rm &amp;quot;go$ver.linux-amd64.tar.gz&amp;quot; &amp;amp;&amp;amp; \
echo &amp;quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&amp;quot; &amp;gt;&amp;gt; $HOME/.bash_profile &amp;amp;&amp;amp; \
source $HOME/.bash_profile &amp;amp;&amp;amp; \
go version&lt;/pre&gt;
  &lt;p id=&quot;9uF1&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1b58&quot;&gt;Новая установка ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;z8pZ&quot;&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;ВАЖНО &lt;/strong&gt;— в командах ниже все, что в &lt;strong&gt;&amp;lt;&amp;gt;&lt;/strong&gt; меняем на свое значение и убираем сами&lt;strong&gt; &amp;lt;&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;sjXD&quot;&gt;&lt;strong&gt;Устанавливаем бинарники&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;3qNg&quot;&gt;mkdir -p $HOME/push &amp;amp;&amp;amp; cd push&lt;/pre&gt;
  &lt;pre id=&quot;PvCI&quot; data-lang=&quot;bash&quot;&gt;wget https://github.com/pushchain/push-chain-node/releases/download/v0.0.48/push-chain_0.0.48_linux_amd64.tar.gz
tar -xzf push-chain_0.0.48_linux_amd64.tar.gz

$HOME/push/bin/pchaind version --long | grep -e version -e commit
# version: v0.0.48
# commit: f8432c7dc9dd612d30694dc414e465d0a6b73de2&lt;/pre&gt;
  &lt;p id=&quot;vp48&quot;&gt;&lt;strong&gt;Инициализируем ноду, чтобы создать необходимые файлы конфигурации&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;fChA&quot;&gt;pchaind init UTSA_guide --chain-id push_42101-1&lt;/pre&gt;
  &lt;p id=&quot;Qrh4&quot;&gt;&lt;strong&gt;Скачиваем Genesis&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;WSRY&quot;&gt;wget -O $HOME/.pchain/config/genesis.json &amp;quot;https://server-4.itrocket.net/testnet/push/genesis.json&amp;quot;

# Проверим генезис
sha256sum ~/.pchain/config/genesis.json
# 03d96497db1320323e0ff755895a3e4b3d2311cbd39ff11141a1a939b29ebafd&lt;/pre&gt;
  &lt;p id=&quot;4cmW&quot;&gt;&lt;strong&gt;Скачиваем Addr book&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;i3Bu&quot;&gt;wget -O $HOME/.pchain/config/addrbook.json &amp;quot;https://server-4.itrocket.net/testnet/push/addrbook.json&amp;quot;&lt;/pre&gt;
  &lt;p id=&quot;FJ1g&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;kBZ8&quot;&gt;Настраиваем конфигурацию ноды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;OfPM&quot;&gt;# правим конфиг, благодаря чему мы можем больше не использовать флаг chain-id для каждой команды CLI в client.toml
sed -i.bak -e &amp;quot;s/^chain-id *=.*/chain-id = \&amp;quot;push_42101-1\&amp;quot;/;&amp;quot; ~/.pchain/config/client.toml
sed -i.bak -e &amp;quot;s/^keyring-backend *=.*/keyring-backend = \&amp;quot;os\&amp;quot;/;&amp;quot; ~/.pchain/config/client.toml

# настраиваем минимальную цену за газ в app.toml
sed -i.bak -e &amp;quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&amp;quot;1000000000upc\&amp;quot;/;&amp;quot; ~/.pchain/config/app.toml

# добавляем seeds/bpeers/peers в config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e &amp;quot;s/^external_address *=.*/external_address = \&amp;quot;$external_address:26656\&amp;quot;/&amp;quot; $HOME/.pchain/config/config.toml

peers=&amp;quot;1160dc307b84b47e430cc23a4cb266d4d767e233@push-testnet-peer.itrocket.net:30656,6531c80081c30afe3c4adb57c57721d16a3a405c@148.113.178.57:26656,eb8cb47982ef27450349e28a4dcaaf74f6ffcfc7@35.238.92.210:26656,80f6c4720cd46ba6d8b3af798d48b7b35edc022f@82.27.2.100:26656&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.pchain/config/config.toml
seeds=&amp;quot;a8d3377ef5f091980a425b84380655865c0f2320@push-testnet-seed.itrocket.net:30656&amp;quot;
sed -i.bak -e &amp;quot;s/^seeds =.*/seeds = \&amp;quot;$seeds\&amp;quot;/&amp;quot; $HOME/.pchain/config/config.toml

# настраиваем фильтрацию &amp;quot;плохих&amp;quot; peers
sed -i -e &amp;quot;s/^filter_peers *=.*/filter_peers = \&amp;quot;true\&amp;quot;/&amp;quot; $HOME/.pchain/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;QI2Z&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Настраиваем прунинг в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;mo4p&quot;&gt;pruning=&amp;quot;custom&amp;quot;
pruning_keep_recent=&amp;quot;100&amp;quot;
pruning_interval=&amp;quot;10&amp;quot;
sed -i -e &amp;quot;s/^pruning *=.*/pruning = \&amp;quot;$pruning\&amp;quot;/&amp;quot; $HOME/.pchain/config/app.toml
sed -i -e &amp;quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&amp;quot;$pruning_keep_recent\&amp;quot;/&amp;quot; $HOME/.pchain/config/app.toml
sed -i -e &amp;quot;s/^pruning-interval *=.*/pruning-interval = \&amp;quot;$pruning_interval\&amp;quot;/&amp;quot; $HOME/.pchain/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;dGeO&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Выкл индексацию в&lt;code&gt;config.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;822g&quot;&gt;indexer=&amp;quot;null&amp;quot;
sed -i -e &amp;quot;s/^indexer *=.*/indexer = \&amp;quot;$indexer\&amp;quot;/&amp;quot; $HOME/.pchain/config/config.toml&lt;/pre&gt;
  &lt;p id=&quot;UDzq&quot;&gt;&lt;strong&gt;(ОПЦИОНАЛЬНО) Вкл/выкл снэпшоты в&lt;code&gt;app.toml&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;kg4Z&quot;&gt;snapshot_interval=1000
sed -i.bak -e &amp;quot;s/^snapshot-interval *=.*/snapshot-interval = \&amp;quot;$snapshot_interval\&amp;quot;/&amp;quot; ~/.pchain/config/app.toml&lt;/pre&gt;
  &lt;p id=&quot;OPPr&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;5cMj&quot;&gt;State sync&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;RpSy&quot;&gt;# add peer
peers=&amp;quot;&amp;quot;
sed -i.bak -e &amp;quot;s/^persistent_peers *=.*/persistent_peers = \&amp;quot;$peers\&amp;quot;/&amp;quot; $HOME/.pchain/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;mX4u&quot;&gt;SNAP_RPC=https://t-push.rpc.utsa.tech:443

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100)); \
TRUST_HASH=$(curl -s &amp;quot;$SNAP_RPC/block?height=$BLOCK_HEIGHT&amp;quot; | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -E &amp;quot;s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$SNAP_RPC,$SNAP_RPC\&amp;quot;| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;$TRUST_HASH\&amp;quot;| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\&amp;quot;\&amp;quot;|&amp;quot; $HOME/.pchain/config/config.toml&lt;/pre&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;VnbZ&quot;&gt;systemctl restart pchaind &amp;amp;&amp;amp; journalctl -u pchaind -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;flhL&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;N1Bw&quot;&gt;&lt;strong&gt;Snapshots&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;yPUl&quot; data-align=&quot;center&quot;&gt;time: &lt;strong&gt;every 24 hours&lt;/strong&gt; &lt;strong&gt;| &lt;/strong&gt;indexer:&lt;strong&gt; kv | &lt;/strong&gt;pruning:&lt;strong&gt; 100/10&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;SP72&quot; data-align=&quot;center&quot;&gt;🌐 &lt;/p&gt;
    &lt;pre data-lang=&quot;bash&quot; id=&quot;gJIR&quot;&gt;cd $HOME
systemctl stop pchaind

cp $HOME/.pchain/data/priv_validator_state.json $HOME/.pchain/priv_validator_state.json.backup

# удаляем старую базу данных
pchaind tendermint unsafe-reset-all --home ~/.pchain/ --keep-addr-book

# скачиваем snapshot
curl -o - -L https://server-4.itrocket.net/testnet/push/push_2026-03-28_12390963_snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.pchain/

mv $HOME/.pchain/priv_validator_state.json.backup $HOME/.pchain/data/priv_validator_state.json

systemctl restart pchaind &amp;amp;&amp;amp; journalctl -u pchaind -f -o cat&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AwrS&quot;&gt;&lt;strong&gt;Создаем сервисный файл&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;7piT&quot;&gt;tee /etc/systemd/system/pchaind.service &amp;gt; /dev/null &amp;lt;&amp;lt;EOF
[Unit]
Description=pchaind
After=network-online.target

[Service]
User=$USER
ExecStart=$(which pchaind) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF&lt;/pre&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;XdEm&quot;&gt;systemctl daemon-reload
systemctl enable pchaind
systemctl restart pchaind &amp;amp;&amp;amp; journalctl -u pchaind -f -o cat&lt;/pre&gt;
  &lt;p id=&quot;P3nc&quot;&gt;&lt;strong&gt;Создаем или восстанавливаем кошелек и сохраняем вывод&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;krES&quot;&gt;# создать кошелек
pchaind keys add &amp;lt;name_wallet&amp;gt; --keyring-backend os

# восстановить кошелек (после команды вставить seed)
pchaind keys add &amp;lt;name_wallet&amp;gt; --recover --keyring-backend os&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;YLko&quot;&gt;&lt;strong&gt;Не забываем сохранить seed !!!&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;9PHt&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;sBaD&quot;&gt;&lt;strong&gt;Создаем валидатора&lt;/strong&gt;&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;asq2&quot;&gt;1. Получаем свой pubkey&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;IRGL&quot;&gt;pchaind comet show-validator&lt;/pre&gt;
  &lt;p id=&quot;ywEz&quot;&gt;2. Создаем validator.json&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;3z4h&quot;&gt;nano $HOME/.pchain/validator.json&lt;/pre&gt;
  &lt;p id=&quot;qdbf&quot;&gt;3. Вставляем наш конфиг&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;ilD4&quot;&gt;{
    &amp;quot;pubkey&amp;quot;: {&amp;quot;@type&amp;quot;:&amp;quot;/cosmos.crypto.ed25519.PubKey&amp;quot;,&amp;quot;key&amp;quot;:&amp;quot;c+EuycPpudgiyVl6guYODKveo=&amp;quot;},
    &amp;quot;amount&amp;quot;: &amp;quot;1100000000000000000upc&amp;quot;,
    &amp;quot;moniker&amp;quot;: &amp;quot;yourmoniker&amp;quot;,
    &amp;quot;identity&amp;quot;: &amp;quot;optional identity signature (ex. UPort or Keybase)&amp;quot;,
    &amp;quot;website&amp;quot;: &amp;quot;validator&amp;#x27;s (optional) website&amp;quot;,
    &amp;quot;security&amp;quot;: &amp;quot;validator&amp;#x27;s (optional) security contact email&amp;quot;,
    &amp;quot;details&amp;quot;: &amp;quot;validator&amp;#x27;s (optional) details&amp;quot;,
    &amp;quot;commission-rate&amp;quot;: &amp;quot;0.1&amp;quot;,
    &amp;quot;commission-max-rate&amp;quot;: &amp;quot;0.2&amp;quot;,
    &amp;quot;commission-max-change-rate&amp;quot;: &amp;quot;0.01&amp;quot;,
    &amp;quot;min-self-delegation&amp;quot;: &amp;quot;1&amp;quot;
}&lt;/pre&gt;
  &lt;p id=&quot;KCoo&quot;&gt;4. Отправляем транзакцию&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;kXWH&quot;&gt;pchaind tx staking create-validator $HOME/.pchain/validator.json \
    --from=&amp;lt;name_wallet&amp;gt; \
    --chain-id=push_42101-1 \
    --fees 111333000000000upc --gas auto --gas-adjustment 1.5 -y &lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kj2D&quot;&gt;&lt;strong&gt;Не забываем сохранить priv_validator_key.json !!!&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;VBzA&quot;&gt;Подробнее о создании/редактировании валидатора можно почитать &lt;a href=&quot;/@lesnik13utsa/RPLJpWXIoDQ&quot;&gt;здесь&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;EB3T&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;1eUH&quot;&gt;Полезные команды&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Fuvu&quot;&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;8cmz&quot;&gt;# проверить логи
sudo journalctl -u pchaind -f -o cat
# проверить статус
curl localhost:$PORT/status | jq
# проверить баланс
pchaind q bank balances &amp;lt;address&amp;gt;
# проверить pubkey валидатора
pchaind tendermint show-validator
# проверить валидатора
pchaind query staking validator &amp;lt;valoper_address&amp;gt;
pchaind query staking validators --limit 1000000 -o json | jq &amp;#x27;.validators[] | select(.description.moniker==&amp;quot;&amp;lt;name_moniker&amp;gt;&amp;quot;)&amp;#x27; | jq
# проверка информации по TX_HASH
pchaind query tx &amp;lt;TX_HASH&amp;gt;
# параметры сети
pchaind q staking params
pchaind q slashing params
# проверить сколько блоков пропущено валидатором и с какого блока актив
pchaind q slashing signing-info $(pchaind tendermint show-validator)
# проверить slashing
pchaind q slashing signing-info $(pchaind tendermint show-validator)
# узнать транзакцию создания валидатора (заменить свой valoper_address)
pchaind query txs --events=&amp;#x27;create_validator.validator=&amp;lt;your_valoper_address&amp;gt;&amp;#x27; -o=json | jq .txs[0].txhash -r
# просмотр активного сета
pchaind q staking validators -o json --limit=1000 \
| jq &amp;#x27;.validators[] | select(.status==&amp;quot;BOND_STATUS_BONDED&amp;quot;)&amp;#x27; \
| jq -r &amp;#x27;.tokens + &amp;quot; - &amp;quot; + .description.moniker&amp;#x27; \
| sort -gr | nl
# просмотр неактивного сета
pchaind q staking validators -o json --limit=1000 \
| jq &amp;#x27;.validators[] | select(.status==&amp;quot;BOND_STATUS_UNBONDED&amp;quot;)&amp;#x27; \
| jq -r &amp;#x27;.tokens + &amp;quot; - &amp;quot; + .description.moniker&amp;#x27; \
| sort -gr | nl&lt;/pre&gt;
  &lt;p id=&quot;nXYz&quot;&gt;&lt;strong&gt;Транзакции&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;t0NV&quot;&gt;# собрать комиссионные + реварды
pchaind tx distribution withdraw-rewards &amp;lt;valoper_address&amp;gt; --from &amp;lt;name_wallet&amp;gt; --fees 328408000000000upc --gas auto --gas-adjustment 1.5 --commission -y

# заделегировать себе в стейк еще (так отправляется 1 монетa)
pchaind tx staking delegate &amp;lt;valoper_address&amp;gt; 1000000upc --from &amp;lt;name_wallet&amp;gt; --fees 328408000000000upc --gas auto --gas-adjustment 1.5 -y

# ределегирование на другого валидатора
pchaind tx staking redelegate &amp;lt;src-validator-addr&amp;gt; &amp;lt;dst-validator-addr&amp;gt; 1000000upc --from &amp;lt;name_wallet&amp;gt; --fees 328408000000000upc --gas auto --gas-adjustment 1.5 -y

# unbond 
pchaind tx staking unbond &amp;lt;addr_valoper&amp;gt; 1000000upc --from &amp;lt;name_wallet&amp;gt; --fees 328408000000000upc --gas auto --gas-adjustment 1.5 -y

# отправить монеты на другой адрес
pchaind tx bank send &amp;lt;name_wallet&amp;gt; &amp;lt;address&amp;gt; 1000000upc --fees 328408000000000upc --gas auto --gas-adjustment 1.5 -y

# выбраться из тюрьмы
pchaind tx slashing unjail --from &amp;lt;name_wallet&amp;gt; --fees 328408000000000upc --gas auto --gas-adjustment 1.5 -y&lt;/pre&gt;
  &lt;p id=&quot;zl2g&quot;&gt;&lt;strong&gt;Работа с кошельками&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;4jhj&quot;&gt;# вывести список кошельков
pchaind keys list

# показать ключ аккаунта
pchaind keys show &amp;lt;name_wallet&amp;gt; --bech acc

# показать ключ валидатора
pchaind keys show &amp;lt;name_wallet&amp;gt; --bech val

# показать ключ консенсуса
pchaind keys show &amp;lt;name_wallet&amp;gt; --bech cons

# запрос учетной записи
pchaind q auth account $(pchaind keys show &amp;lt;name_wallet&amp;gt; -a) -o text

# удалить кошелек
pchaind keys delete &amp;lt;name_wallet&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Qfld&quot;&gt;&lt;strong&gt;Удалить ноду&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;897n&quot;&gt;systemctl stop pchaind &amp;amp;&amp;amp; \
systemctl disable pchaind &amp;amp;&amp;amp; \
rm /etc/systemd/system/pchaind.service &amp;amp;&amp;amp; \
systemctl daemon-reload &amp;amp;&amp;amp; \
cd $HOME &amp;amp;&amp;amp; \
rm -rf .pchain push &amp;amp;&amp;amp; \
rm -rf $(which pchaind)&lt;/pre&gt;
  &lt;p id=&quot;fYh0&quot;&gt;&lt;strong&gt;ГОВЕРНАНС&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;lqzu&quot;&gt;# список proposals
pchaind q gov proposals

# посмотреть результат голосования
pchaind q gov proposals --voter &amp;lt;ADDRESS&amp;gt;

# проголосовать за предложение 
pchaind tx gov vote 1 yes --from &amp;lt;name_wallet&amp;gt; --fees 328408000000000upc --gas auto --gas-adjustment 1.5

# внести депозит в предложение
pchaind tx gov deposit 1 1000000upc --from &amp;lt;name_wallet&amp;gt; --fees 328408000000000upc --gas auto --gas-adjustment 1.5

# создать предложение
pchaind tx gov submit-proposal --title=&amp;quot;Randomly reward&amp;quot; --description=&amp;quot;Reward 10 testnet participants who completed more than 3 tasks&amp;quot; --type=&amp;quot;Text&amp;quot; --deposit=&amp;quot;11000000upc&amp;quot; --from=&amp;lt;name_wallet&amp;gt; --fees 328408000000000upc --gas auto --gas-adjustment 1.5&lt;/pre&gt;
  &lt;p id=&quot;chat-messages-932182862663389245&quot;&gt;&lt;strong&gt;Peers and RPC&lt;/strong&gt;&lt;/p&gt;
  &lt;pre data-lang=&quot;bash&quot; id=&quot;nAKm&quot;&gt;FOLDER=.pchain

# узнать свой peer
PORTR=$(grep -A 3 &amp;quot;\[p2p\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;) &amp;amp;&amp;amp; \
echo $(pchaind tendermint show-node-id)@$(wget -qO- eth0.me)$PORTR

# узнать порт RPC
echo -e &amp;quot;\033[0;32m$(grep -A 3 &amp;quot;\[rpc\]&amp;quot; ~/$FOLDER/config/config.toml | egrep -o &amp;quot;:[0-9]+&amp;quot;)\033[0m&amp;quot;

# проверка количества пиров
PORT=
curl -s http://localhost:$PORT/net_info | jq -r &amp;#x27;.result.peers[] | &amp;quot;\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(&amp;quot;:&amp;quot;)[2])&amp;quot;&amp;#x27; | wc -l

# cписок моникеров подключенных пиров
curl -s http://localhost:$PORT/net_info | jq &amp;#x27;.result.peers[].node_info.moniker&amp;#x27;

# Проверка prevotes/precommits. Пригодится при обновах
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].prevotes_bit_array&amp;#x27; &amp;amp;&amp;amp; \
curl -s localhost:$PORT/consensus_state | jq &amp;#x27;.result.round_state.height_vote_set[0].precommits_bit_array&amp;#x27;

# check prevote of your validator
curl -s localhost:$PORT/consensus_state -s | grep $(curl -s localhost:26657/status | jq -r .result.validator_info.address[:12])&lt;/pre&gt;
  &lt;figure id=&quot;cY95&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.media/files/e9/28/e92895ca-f71d-497c-9fd2-2e7eeedd5303.png&quot; width=&quot;278&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

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