<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>itrocket</title><generator>teletype.in</generator><description><![CDATA[itrocket]]></description><image><url>https://img4.teletype.in/files/f5/34/f5346531-9367-4b26-83cc-e34626d56dde.png</url><title>itrocket</title><link>https://teletype.in/@itrocket</link></image><link>https://teletype.in/@itrocket?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itrocket</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/itrocket?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/itrocket?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Thu, 16 Apr 2026 04:20:10 GMT</pubDate><lastBuildDate>Thu, 16 Apr 2026 04:20:10 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@itrocket/VYyiokum1pR</guid><link>https://teletype.in/@itrocket/VYyiokum1pR?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itrocket</link><comments>https://teletype.in/@itrocket/VYyiokum1pR?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itrocket#comments</comments><dc:creator>itrocket</dc:creator><title>Quicksilver, как застейкать токены?</title><pubDate>Sat, 17 Dec 2022 12:57:27 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/be/fa/beface9b-a872-4f08-b225-a5b215a67bcf.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/22/fe/22fe4406-365a-451e-853f-5bfba6195457.jpeg"></img>Вы можете застейкать как разлоченные так и залоченные токены]]></description><content:encoded><![CDATA[
  <p id="i78r">Вы можете застейкать как разлоченные так и залоченные токены</p>
  <p id="jI1R">Наш валидатор: quickvaloper1jlh8cttv96kyxu0j0r2ppv4sga6ju4uzxa3c2x</p>
  <p id="fYqt">Эксплорер: <a href="https://explorer.nodestake.top/quicksilver/staking/quickvaloper1jlh8cttv96kyxu0j0r2ppv4sga6ju4uzxa3c2x" target="_blank">https://explorer.nodestake.top/quicksilver/staking/quickvaloper1jlh8cttv96kyxu0j0r2ppv4sga6ju4uzxa3c2x</a></p>
  <h3 id="YnuK">Инструкция</h3>
  <ul id="ik0V">
    <li id="awVx">Установите <a href="https://www.keplr.app/download" target="_blank">Keplr</a>, если он у вас еще не установлен, восстановите кошелек используя мнемоническую фразу или приватный ключ</li>
    <li id="63pp">Перейдите на <a href="https://explorer.nodestake.top/quicksilver/staking/quickvaloper1jlh8cttv96kyxu0j0r2ppv4sga6ju4uzxa3c2x" target="_blank">стейкинг портал</a> и подключите кошелек</li>
  </ul>
  <p id="zZNs">Подключите кошелек</p>
  <figure id="HwnM" class="m_column">
    <img src="https://img3.teletype.in/files/22/fe/22fe4406-365a-451e-853f-5bfba6195457.jpeg" width="750" />
  </figure>
  <p id="8esf">Подтвердите подключение</p>
  <figure id="20rb" class="m_column">
    <img src="https://img2.teletype.in/files/1d/d5/1dd5b22b-fba0-45bb-b74a-e907dd5a1d6b.jpeg" width="751" />
  </figure>
  <p id="ZmhK">Выберите сеть Quicksilver, в поле Account name введите имя вашего аккаунта, к примеру Quicksilver и нажмите кнопку Next</p>
  <figure id="P7kw" class="m_column">
    <img src="https://img2.teletype.in/files/95/39/95395e96-36cf-4c52-a69a-1ad06f93a829.jpeg" width="750" />
  </figure>
  <p id="HHv7">Подтверждаем, Вы увидите адресс вашего кошелька, нажимаем Save</p>
  <figure id="hZnV" class="m_column">
    <img src="https://img3.teletype.in/files/a0/34/a0340c20-4a45-413a-b86a-70b79fb95619.jpeg" width="750" />
  </figure>
  <p id="VQQ4">Создаем аккаунт на портале</p>
  <figure id="IAjK" class="m_column">
    <img src="https://img4.teletype.in/files/3f/2d/3f2dd46c-809d-491b-83c8-3709e8451708.jpeg" width="750" />
    <figcaption>Отлично, аккаунт добавлен. </figcaption>
  </figure>
  <p id="bJ83">Теперь нужно вернуться на <a href="https://explorer.nodestake.top/quicksilver/staking/quickvaloper1jlh8cttv96kyxu0j0r2ppv4sga6ju4uzxa3c2x" target="_blank">страницу портала</a> и попытаться заделегировать</p>
  <figure id="OIjr" class="m_column">
    <img src="https://img4.teletype.in/files/fa/30/fa30f1de-7884-4a11-b72f-a80d78a8003c.jpeg" width="750" />
    <figcaption>Открываем Advanced меню</figcaption>
  </figure>
  <p id="U9i6">Обязательно открываем <strong>Advanced</strong> настройки и выставляем <strong>Fee - 0</strong>, <strong>Gas - 250k.</strong></p>
  <figure id="xLla" class="m_column">
    <img src="https://img4.teletype.in/files/78/1f/781f0c96-1fe4-4457-aa2d-ff507c1422d2.jpeg" width="750" />
  </figure>
  <p id="r2N7">Подтверждаем делегирование</p>
  <figure id="68Bs" class="m_column">
    <img src="https://img3.teletype.in/files/a8/e5/a8e5ef47-7e1b-4cbe-bb14-f346380b170b.jpeg" width="1276" />
  </figure>
  <p id="sdfy">Возможно, придётся подождать некоторое время, так как у нас транзакция с <em>0 fees</em> </p>
  <blockquote id="XkHw">Если увидите ошибку, свяжитесь со мной https://t.me/SEM3gs, отправлю немного токенов для оплаты комиссии</blockquote>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itrocket/izP1Mz41euR</guid><link>https://teletype.in/@itrocket/izP1Mz41euR?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itrocket</link><comments>https://teletype.in/@itrocket/izP1Mz41euR?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itrocket#comments</comments><dc:creator>itrocket</dc:creator><title>Uptick testnet 2.0</title><pubDate>Thu, 01 Dec 2022 10:50:06 GMT</pubDate><description><![CDATA[Update packages and Install dependencies]]></description><content:encoded><![CDATA[
  <p id="9g4F">Update packages and Install dependencies</p>
  <pre id="u5gR" data-lang="bash">sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make gcc -y</pre>
  <p id="cFyU">Replace your wallet and moniker &lt;YOUR_WALLET_NAME&gt; &lt;YOUR_MONIKER&gt; without &lt;&gt;, save and import variables into system</p>
  <pre id="RHOV" data-lang="bash">UPTICK_PORT=10
echo &quot;export UPTICK_WALLET=&quot;&lt;YOUR_WALLET_NAME&gt;&quot;&quot; &gt;&gt; $HOME/.bash_profile
echo &quot;export UPTICK_MONIKER=&quot;&lt;YOUR_MONIKER&gt;&quot;&quot; &gt;&gt; $HOME/.bash_profile
echo &quot;export UPTICK_CHAIN_ID=&quot;uptick_7000-2&quot;&quot; &gt;&gt; $HOME/.bash_profile
echo &quot;export UPTICK_PORT=&quot;${UPTICK_PORT}&quot;&quot; &gt;&gt; $HOME/.bash_profile
source $HOME/.bash_profile</pre>
  <p id="F3xc">install go</p>
  <pre id="J3K4" data-lang="bash">cd $HOME
VER=&quot;1.18.3&quot;
wget &quot;https://golang.org/dl/go$VER.linux-amd64.tar.gz&quot;
sudo tar -C /usr/local -xzf &quot;go$VER.linux-amd64.tar.gz&quot;
rm -rf  &quot;go$VER.linux-amd64.tar.gz&quot;
echo &quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&quot; &gt;&gt; $HOME/.bash_profile
source $HOME/.bash_profile
go version</pre>
  <p id="n5rY">Download and build binaries</p>
  <pre id="gVCr" data-lang="bash">cd $HOME
git clone https://github.com/UptickNetwork/uptick.git
cd uptick
git checkout v0.2.4
make install</pre>
  <p id="81Y0">Config and init app</p>
  <pre id="fNaF" data-lang="bash">uptickd config node tcp://localhost:${UPTICK_PORT}657
uptickd config chain-id $UPTICK_CHAIN_ID
uptickd init $UPTICK_MONIKER --chain-id $UPTICK_CHAIN_ID</pre>
  <p id="lodw">Download genesis</p>
  <pre id="GsTQ" data-lang="bash">wget -O $HOME/.uptickd/config/genesis.json https://raw.githubusercontent.com/UptickNetwork/uptick-testnet/main/uptick_7000-2/genesis.json</pre>
  <p id="UbyY">Set seeds and peers</p>
  <pre id="XarN" data-lang="bash">SEEDS=&quot;&quot;
PEERS=&quot;eecdfb17919e59f36e5ae6cec2c98eeeac05c0f2@peer0.testnet.uptick.network:26656,178727600b61c055d9b594995e845ee9af08aa72@peer1.testnet.uptick.network:26656,f97a75fb69d3a5fe893dca7c8d238ccc0bd66a8f@uptick-seed.p2p.brocha.in:30554,94b63fddfc78230f51aeb7ac34b9fb86bd042a77@uptick-testnet-rpc.p2p.brocha.in:30556,902a93963c96589432ee3206944cdba392ae5c2d@65.108.42.105:27656&quot;
sed -i -e &quot;s/^seeds *=.*/seeds = \&quot;$SEEDS\&quot;/; s/^persistent_peers *=.*/persistent_peers = \&quot;$PEERS\&quot;/&quot; $HOME/.uptickd/config/config.toml</pre>
  <p id="3yCc">Set gustom ports in app.toml file</p>
  <pre id="Z7tQ" data-lang="bash">sed -i.bak -e &quot;s%^address = \&quot;tcp://0.0.0.0:1317\&quot;%address = \&quot;tcp://0.0.0.0:${UPTICK_PORT}317\&quot;%;
s%^address = \&quot;:8080\&quot;%address = \&quot;:${UPTICK_PORT}080\&quot;%;
s%^address = \&quot;0.0.0.0:9090\&quot;%address = \&quot;0.0.0.0:${UPTICK_PORT}090\&quot;%; 
s%^address = \&quot;0.0.0.0:9091\&quot;%address = \&quot;0.0.0.0:${UPTICK_PORT}091\&quot;%; 
s%^address = \&quot;0.0.0.0:8545\&quot;%address = \&quot;0.0.0.0:${UPTICK_PORT}545\&quot;%; 
s%^ws-address = \&quot;0.0.0.0:8546\&quot;%ws-address = \&quot;0.0.0.0:${UPTICK_PORT}546\&quot;%&quot; $HOME/.uptickd/config/app.toml</pre>
  <p id="Y3ce">Set gustom ports in config.toml file</p>
  <pre id="vFPV" data-lang="bash">sed -i.bak -e &quot;s%^proxy_app = \&quot;tcp://127.0.0.1:26658\&quot;%proxy_app = \&quot;tcp://127.0.0.1:${UPTICK_PORT}658\&quot;%; 
s%^laddr = \&quot;tcp://127.0.0.1:26657\&quot;%laddr = \&quot;tcp://0.0.0.0:${UPTICK_PORT}657\&quot;%; 
s%^pprof_laddr = \&quot;localhost:6060\&quot;%pprof_laddr = \&quot;localhost:${UPTICK_PORT}060\&quot;%;
s%^laddr = \&quot;tcp://0.0.0.0:26656\&quot;%laddr = \&quot;tcp://0.0.0.0:${UPTICK_PORT}656\&quot;%;
s%^external_address = \&quot;\&quot;%external_address = \&quot;$(wget -qO- eth0.me):${UPTICK_PORT}656\&quot;%;
s%^prometheus_listen_addr = \&quot;:26660\&quot;%prometheus_listen_addr = \&quot;:${UPTICK_PORT}660\&quot;%&quot; $HOME/.uptickd/config/config.toml</pre>
  <p id="vFPV">Config pruning</p>
  <pre id="NdzF" data-lang="bash">sed -i -e &quot;s/^pruning *=.*/pruning = \&quot;nothing\&quot;/&quot; $HOME/.uptickd/config/app.toml
sed -i -e &quot;s/^pruning-keep-recent *=.*/pruning-keep-recent = \&quot;100\&quot;/&quot; $HOME/.uptickd/config/app.toml
sed -i -e &quot;s/^pruning-interval *=.*/pruning-interval = \&quot;50\&quot;/&quot; $HOME/.uptickd/config/app.toml</pre>
  <p id="l6TE">Set minimum gas price, enable prometheus and disable indexing</p>
  <pre id="a3HP" data-lang="bash">sed -i -e &quot;s/^minimum-gas-prices *=.*/minimum-gas-prices = \&quot;0auptick\&quot;/&quot; $HOME/.uptickd/config/app.toml
sed -i -e &quot;s/prometheus = false/prometheus = true/&quot; $HOME/.uptickd/config/config.toml
sed -i -e &quot;s/^indexer *=.*/indexer = \&quot;null\&quot;/&quot; $HOME/.uptickd/config/config.toml</pre>
  <p id="UAuO">Clean old data</p>
  <pre id="UAuO" data-lang="bash">uptickd tendermint unsafe-reset-all --home $HOME/.uptickd --keep-addr-book</pre>
  <p id="5lVV">Create Service file</p>
  <pre id="CgKo" data-lang="bash">sudo tee /etc/systemd/system/uptickd.service &gt; /dev/null &lt;&lt;EOF
[Unit]
Description=uptick
After=network-online.target

[Service]
User=$USER
ExecStart=$(which uptickd) start --home $HOME/.uptickd
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF</pre>
  <p id="XMlZ">Enable and start service</p>
  <pre id="4NoJ" data-lang="bash">sudo systemctl daemon-reload
sudo systemctl enable uptickd
sudo systemctl restart uptickd &amp;&amp; sudo journalctl -u uptickd -f</pre>
  <p id="b8QV"></p>
  <h2 id="AmYB">(OPTIONAL) State Sync</h2>
  <p id="CMuw"><strong>In order not to wait for a long synchronization, you can use our StateSync guide</strong></p>
  <p id="1Cyy">Stop the service </p>
  <pre id="goS1" data-lang="bash">sudo systemctl stop uptickd</pre>
  <p id="YOtk">Configure</p>
  <pre id="PyfL" data-lang="bash">cd $HOME peers=&quot;86f50af23369997882ca3988eabeba998b4f07cc@65.109.92.79:10656&quot; 
config=$HOME/.uptickd/config/config.toml 
SNAP_RPC=65.109.92.79:10657
sed -i.bak -e &quot;s/^persistent_peers *=.*/persistent_peers = \&quot;$peers\&quot;/&quot; $config 
sed -i.bak -e &quot;s/^snapshot-interval *=.*/snapshot-interval = \&quot;2000\&quot;/&quot; $HOME/.uptickd/config/app.toml 
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \ 
BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)); \ 
TRUST_HASH=$(curl -s &quot;$SNAP_RPC/block?height=$BLOCK_HEIGHT&quot; | jq -r .result.block_id.hash) </pre>
  <p id="cPCi">Сheck is the state sync information available</p>
  <pre id="Yvca" data-lang="bash">echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH</pre>
  <p id="IUqL">Configure the state sync</p>
  <pre id="WrFG" data-lang="bash">sed -i.bak -E &quot;s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\&quot;$SNAP_RPC,$SNAP_RPC\&quot;| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\&quot;$TRUST_HASH\&quot;| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\&quot;\&quot;|&quot; $config</pre>
  <p id="Zw25">Clean old data</p>
  <pre id="Y0FR" data-lang="bash">uptickd tendermint unsafe-reset-all --home $HOME/.uptickd --keep-addr-book</pre>
  <p id="F0rJ">Restart the service and check the log</p>
  <pre id="YOk2" data-lang="bash">sudo systemctl restart uptickd &amp;&amp; sudo journalctl -u uptickd -f</pre>
  <h2 id="gMEA"></h2>
  <h2 id="LWFe">Create wallet</h2>
  <p id="aoTo">To create a new wallet, use the following command. don’t forget to save the mnemonic</p>
  <pre id="yT5e" data-lang="bash">uptickd keys add $UPTICK_WALLET</pre>
  <p id="TuzM">(optional) To restore exexuting wallet, use the following command</p>
  <pre id="UIVc" data-lang="bash">uptickd keys add $UPTICK_WALLET --recover</pre>
  <p id="v9ik">Fund your wallet </p>
  <p id="0vFP">Before creating a validator, you need to fund your wallet, go to the <a href="https://discord.gg/9djbJV4A" target="_blank">Uptick discord server</a> and  and navigate to <strong>faucet</strong> channel</p>
  <pre id="Fmpl" data-lang="bash">$faucet &lt;YOUR_WALLET_ADDRESS&gt;</pre>
  <h3 id="UNLv">Save wallet info</h3>
  <pre id="UxVV" data-lang="bash">UPTICK_WALLET_ADDRESS=$(uptickd keys show $WALLET -a)
UPTICK_VALOPER_ADDRESS=$(uptickd keys show $WALLET --bech val -a)
echo &quot;export UPTICK_WALLET_ADDRESS=&quot;${UPTICK_WALLET_ADDRESS} &gt;&gt; $HOME/.bash_profile
echo &quot;export UPTICK_VALOPER_ADDRESS=&quot;${UPTICK_VALOPER_ADDRESS} &gt;&gt; $HOME/.bash_profile
source $HOME/.bash_profile</pre>
  <h3 id="zDe1"></h3>
  <h2 id="jBwv"><strong>Create validator</strong></h2>
  <p id="rLAL"><strong>before creating a validator, you need to check the balance and make sure that the node is synched</strong></p>
  <p id="bTMk">Check Sync status, once your node is fully synced, the output from above will say <code>false</code></p>
  <pre id="v1Xx" data-lang="bash">uptickd status 2&gt;&amp;1 | jq .SyncInfo</pre>
  <p id="G6Or">Check your balance</p>
  <pre id="eI1q" data-lang="bash">uptickd query bank balances $UPTICK_WALLET_ADDRESS</pre>
  <p id="rjub">Create validator</p>
  <pre id="HM85" data-lang="bash">uptickd tx staking create-validator \
  --amount 5000000000000000000auptick \
  --from $UPTICK_WALLET \
  --commission-max-change-rate &quot;0.01&quot; \
  --commission-max-rate &quot;0.2&quot; \
  --commission-rate &quot;0.05&quot; \
  --min-self-delegation &quot;1&quot; \
  --pubkey  $(uptickd tendermint show-validator) \
  --moniker $UPTICK_MONIKER \
  --chain-id $UPTICK_CHAIN_ID \
  --gas=auto
  </pre>
  <p id="fzuQ">You can add <code>--website</code> <code>--security-contact</code> <code>--identity</code> <code>--details</code> flags in it needed</p>
  <pre id="Mzn9" data-lang="bash"> --website &lt;YOUR_SITE_URL&gt; \
 --security-contact &lt;YOUR_CONTACT&gt; \
 --identity &lt;KEYBASE_IDENTITY&gt; \
 --details &lt;YOUR_VALIDATOR_DETAILS&gt;</pre>
  <h2 id="P1qo">Monitoring</h2>
  <p id="wKcJ">If you want to have set up a monitoring and alert system use our <a href="https://teletype.in/@itrocket/bdJAHvC_q8h" target="_blank">cosmos nodes monitoring guide with tenderduty</a></p>
  <h2 id="gthi">Security</h2>
  <p id="4IUA">To protect you keys please don&#x60;t share your privkey, mnemonic and follow a basic security rules</p>
  <h3 id="Jh2X">Set up ssh keys for authentication</h3>
  <p id="EaeQ">You can use this <a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04" target="_blank">guide</a> to configure ssh authentication and disable password authentication on your server</p>
  <h3 id="L22z">Firewall security</h3>
  <p id="YsPq">Set the default to allow outgoing connections, deny all incoming except ssh and node p2p port</p>
  <pre id="vPXG" data-lang="bash">sudo ufw default allow outgoing 
sudo ufw default deny incoming 
sudo ufw allow ssh/tcp 
sudo ufw allow ${UPTICK_PORT}656/tcp
sudo ufw enable</pre>
  <p id="8zci"></p>
  <h2 id="7yZh">Usefull commands</h2>
  <h3 id="h5QK"><strong>Service commands</strong></h3>
  <p id="qk2B">check logs</p>
  <pre id="aaxd" data-lang="bash">sudo journalctl -u uptickd -f</pre>
  <p id="fTD9">stop service</p>
  <pre id="18Lv" data-lang="bash">sudo systemctl stop uptickd</pre>
  <p id="qkTU">start service</p>
  <pre id="HZVP" data-lang="bash">sudo systemctl start uptickd</pre>
  <p id="BEkX">restart service</p>
  <pre id="0Y8F" data-lang="bash">sudo systemctl restart uptickd</pre>
  <h3 id="ff79"><strong>Wallet operation</strong></h3>
  <p id="jX7s">check balance</p>
  <pre id="d72p" data-lang="bash">uptickd query bank balances $UPTICK_WALLET_ADDRESS</pre>
  <p id="iAgC">transfer funds</p>
  <pre id="pmyS" data-lang="bash">uptickd tx bank send $UPTICK_WALLET_ADDRESS &lt;TO_UPTICK_WALLET_ADDRESS&gt; 1000000000000000000auptick --gas auto --gas-adjustment 1.3</pre>
  <p id="cASZ">lists of wallets</p>
  <pre id="94dJ" data-lang="bash">uptickd keys list</pre>
  <p id="OiOc">create a new wallet</p>
  <pre id="JQm2" data-lang="bash">uptickd keys add $UPTICK_WALLET</pre>
  <p id="doer">recover wallet</p>
  <pre id="D0Cf" data-lang="bash">uptickd keys add $UPTICK_WALLET --recover</pre>
  <p id="064E">delete wallet</p>
  <pre id="1XIR" data-lang="bash">uptickd keys delete $UPTICK_WALLET</pre>
  <h3 id="uBa6"><strong>Node information</strong></h3>
  <p id="kMXv">synch info</p>
  <pre id="ME2H" data-lang="bash">uptickd status 2&gt;&amp;1 | jq .SyncInfo</pre>
  <p id="nmKR">node status</p>
  <pre id="mmgW" data-lang="bash">curl -s localhost:${UPTICK_PORT}657/status</pre>
  <p id="ZiWw">node info</p>
  <pre id="I8kY" data-lang="bash">uptickd status 2&gt;&amp;1 | jq .NodeInfo</pre>
  <p id="SnQ0">validator info</p>
  <pre id="R20t" data-lang="bash">uptickd status 2&gt;&amp;1 | jq .ValidatorInfo</pre>
  <p id="O3me">your node peers</p>
  <pre id="Amkm" data-lang="bash">echo $(uptickd tendermint show-node-id)&#x27;@&#x27;$(curl -s ifconfig.me)&#x27;:&#x27;$(cat $HOME/.uptickd/config/config.toml | sed -n &#x27;/Address to listen for incoming connection/{n;p;}&#x27; | sed &#x27;s/.*://; s/&quot;.*//&#x27;)</pre>
  <p id="tH2o">get currently conected peers lis</p>
  <pre id="YWHR" data-lang="bash">curl -sS http://localhost:${UPTICK_PORT}657/net_info | jq -r &#x27;.result.peers[] | &quot;\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)&quot;&#x27; | awk -F &#x27;:&#x27; &#x27;{print $1&quot;:&quot;$(NF)}&#x27;</pre>
  <h3 id="n9Hn"><strong>Voting</strong></h3>
  <pre id="b4xk" data-lang="bash">uptickd tx gov vote 1 yes --from $UPTICK_WALLET --chain-id $UPTICK_CHAIN_ID</pre>
  <h3 id="B0PD"><strong>Staking, Delegation and Rewards</strong></h3>
  <p id="z1ei">Withdraw all rewards</p>
  <pre id="eWtR" data-lang="bash">uptickd tx distribution withdraw-all-rewards --from $WALLET --chain-id $UPTICK_CHAIN_ID --gas auto --gas-adjustment 1.3</pre>
  <p id="dMEF">Withdraw rewards with commision</p>
  <pre id="lom4" data-lang="bash">uptickd tx distribution withdraw-rewards $UPTICK_VALOPER_ADDRESS --from $WALLET --commission --chain-id $UPTICK_CHAIN_ID --gas auto --gas-adjustment 1.3</pre>
  <p id="AX89">Check balance </p>
  <pre data-lang="bash" id="MNmn">uptickd query bank balances $UPTICK_WALLET_ADDRESS</pre>
  <p id="y8Tm">Delegate stake</p>
  <pre id="pbeN" data-lang="bash">uptickd tx staking delegate $UPTICK_VALOPER_ADDRESS 5000000000000000000auptick --from $WALLET --chain-id $UPTICK_CHAIN_ID --gas=auto --gas-adjustment 1.3</pre>
  <p id="elZF">Redelegate stake to another validator</p>
  <pre id="SSAl" data-lang="bash">uptickd tx staking redelegate &lt;srcValidatorAddress&gt; &lt;destValidatorAddress&gt; 5000000000000000000auptick --from $WALLET --chain-id $UPTICK_CHAIN_ID --gas auto --gas-adjustment 1.3</pre>
  <h3 id="E2Js">Validator operation</h3>
  <p id="LCEK">Edit validator</p>
  <pre id="BKJI" data-lang="bash">uptickd tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=&lt;your_keybase_id&gt; \
  --website=&quot;&lt;your_website&gt;&quot; \
  --details=&quot;&lt;your_validator_description&gt;&quot; \
  --chain-id=$UPTICK_CHAIN_ID \
  --from=$WALLET</pre>
  <p id="Jojw">Validator info</p>
  <pre id="7v4Y" data-lang="bash">uptickd status 2&gt;&amp;1 | jq .ValidatorInfo</pre>
  <p id="dr89">Jailing info </p>
  <pre id="ODu9" data-lang="bash">uptickd q slashing signing-info $(uptickd tendermint show-validator)</pre>
  <p id="XUFL">Unjail validator</p>
  <pre id="kkwW" data-lang="bash">uptickd tx slashing unjail --broadcast-mode=block --from $WALLET --chain-id $UPTICK_CHAIN_ID --gas auto --gas-adjustment 1.5</pre>
  <p id="sgbX">Consensus state</p>
  <pre id="f55l" data-lang="bash">curl localhost:${UPTICK_PORT}657/consensus_state</pre>
  <h2 id="oRSf">Delete node</h2>
  <pre id="rIEZ">sudo systemctl stop uptickd
sudo systemctl disable uptickd
sudo rm -rf /etc/systemd/system/uptick*
sudo rm $(which uptickd)
sudo rm -rf $HOME/.uptickd
sudo rm -fr $HOME/uptick
sed -i &quot;/UPTICK_/d&quot; $HOME/.bash_profile</pre>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itrocket/bdJAHvC_q8h</guid><link>https://teletype.in/@itrocket/bdJAHvC_q8h?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itrocket</link><comments>https://teletype.in/@itrocket/bdJAHvC_q8h?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itrocket#comments</comments><dc:creator>itrocket</dc:creator><title>COSMOS node protecting and monitoring guide with tenderduty</title><pubDate>Sun, 16 Oct 2022 16:33:23 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/06/2f/062f0332-ced6-4f17-aaea-e977f5758e15.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/9c/f2/9cf2a127-dbad-40b3-bf59-0a03aa2ba614.jpeg"></img>Update packages and Install dependencies]]></description><content:encoded><![CDATA[
  <p id="5PUx">Update packages and Install dependencies</p>
  <pre id="Eai2">sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt install curl build-essential git wget jq make gcc tmux pkg-config libssl-dev libleveldb-dev tar -y</pre>
  <p id="THxH">Install go</p>
  <pre id="9L2E" data-lang="bash">ver=&quot;1.18.2&quot;
cd $HOME
wget &quot;https://golang.org/dl/go$ver.linux-amd64.tar.gz&quot;
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf &quot;go$ver.linux-amd64.tar.gz&quot;
rm &quot;go$ver.linux-amd64.tar.gz&quot;
echo &quot;export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin&quot; &gt;&gt; ~/.bash_profile
source ~/.bash_profile
go version</pre>
  <p id="XUFa">Install tenderduty</p>
  <pre id="uACH">cd $HOME
rm -rf tenderduty
git clone https://github.com/blockpane/tenderduty
cd tenderduty
go install
cp example-config.yml config.yml</pre>
  <p id="0dW9">Open config.yml file </p>
  <pre id="72rb">sudo nano $HOME/tenderduty/config.yml</pre>
  <p id="a8ZM">For simple monitoring without notifications, just change these in the config:</p>
  <ul id="zxRA">
    <li id="4op8"><strong>Osmosys</strong> to &lt;PROJECT_NAME&gt;</li>
    <li id="EHdu"><strong>chain_id: osmosis-1</strong> to chain_id: &lt;YOUR_CHAIN_ID&gt; </li>
    <li id="8sB6"><strong>valoper_address: osmovaloper1xxxxxxx... </strong>to valoper_address: &lt;YOUR_VALOPER_ADDRESS&gt;</li>
    <li id="OeO8"><strong>url: tcp://localhost:26657</strong> TO url: tcp://localhost:&lt;YOUR_NODE_RPC_PORT&gt;</li>
  </ul>
  <figure id="7ewp" class="m_original">
    <img src="https://img2.teletype.in/files/9c/f2/9cf2a127-dbad-40b3-bf59-0a03aa2ba614.jpeg" width="850" />
  </figure>
  <figure id="o89t" class="m_original">
    <img src="https://img3.teletype.in/files/64/a5/64a5a8b6-18d7-4929-9958-532852c226cb.jpeg" width="850" />
  </figure>
  <section style="background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="v9ky"><strong>Optional <br />If you want to add another node monitoring, you can dublicate this section on conf.yml file</strong></p>
    <pre id="K6Jg">chains:

  # The user-friendly name that will be used for labels. Highly suggest wrapping in quotes.
  &quot;Osmosis&quot;:
    # chain_id is validated for a match when connecting to an RPC endpoint, also used as a label in several places.
    chain_id: osmosis-1
    # Hooray, in v2 we derive the valcons from abci queries so you don&#x27;t have to jump through hoops to figure out how
    # to convert ed25519 keys to the appropriate bech32 address
    valoper_address: osmovaloper1xxxxxxx...
    # Should the monitor revert to using public API endpoints if all supplied RCP nodes fail?
    # This isn&#x27;t always reliable, not all public nodes have websocket proxying setup correctly.
    public_fallback: no

    # Controls various alert settings for each chain.
    alerts:
      # If the chain stops seeing new blocks, should an alert be sent?
      stalled_enabled: yes
      # How long a halted chain takes in minutes to generate an alarm
      stalled_minutes: 10

      # Most basic alarm, you just missed x blocks ... would you like to know?
      consecutive_enabled: yes
      # How many missed blocks should trigger a notification?
      consecutive_missed: 5
      # NOT USED: future hint for pagerduty&#x27;s routing
      consecutive_priority: critical

      # For each chain there is a specific window of blocks and a percentage of missed blocks that will result in
      # a downtime jail infraction. Should an alert be sent if a certain percentage of this window is exceeded?
      percentage_enabled: no
      # What percentage should trigger the alert
      percentage_missed: 10
      # Not used yet, pagerduty routing hint
      percentage_priority: warning

      # Should an alert be sent if the validator is not in the active set ie, jailed,
      # tombstoned, unbonding?
      alert_if_inactive: yes
      # Should an alert be sent if no RPC servers are responding? (Note this alarm is instantaneous with no delay)
      alert_if_no_servers: yes

      # for this *specific* chain it&#x27;s possible to override alert settings. If the api_key or webhook addresses are empty,
      # the global settings will be used. Note, enabled must be set both globally and for each chain.

      # Chain specific setting for pagerduty
      pagerduty:
        enabled: yes
        api_key: &quot;&quot; # uses default if blank

      # Discord settings
      discord:
        enabled: yes
        webhook: &quot;&quot; # uses default if blank

      # Telegram settings
      telegram:
        enabled: yes
        api_key: &quot;&quot; # uses default if blank
        channel: &quot;&quot; # uses default if blank

    # This section covers our RPC providers. No LCD (aka REST) endpoints are used, only TM&#x27;s RPC endpoints
    # Multiple hosts are encouraged, and will be tried sequentially until a working endpoint is discovered.
    nodes:
      # URL for the endpoint. Must include protocol://hostname:port
      - url: tcp://localhost:26657
        # Should we send an alert if this host isn&#x27;t responding?
        alert_if_down: yes
      # repeat hosts for monitoring redundancy
      - url: https://some-other-node:443
        alert_if_down: no
</pre>
  </section>
  <p id="eU9t"></p>
  <p id="G8Nn">Create service file and start tenderduty</p>
  <pre id="9sMD">sudo tee /etc/systemd/system/tenderdutyd.service &lt;&lt; EOF
[Unit]
Description=Tenderduty
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=5
TimeoutSec=180

User=$USER
WorkingDirectory=$HOME/tenderduty
ExecStart=$(which tenderduty)

# there may be a large number of network connections if a lot of chains
LimitNOFILE=infinity

# extra process isolation
NoNewPrivileges=true
ProtectSystem=strict
RestrictSUIDSGID=true
LockPersonality=true
PrivateUsers=true
PrivateDevices=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF</pre>
  <pre id="QWyI">sudo systemctl daemon-reload
sudo systemctl enable tenderdutyd
sudo systemctl start tenderdutyd</pre>
  <p id="GMVW">Now you can see the logs</p>
  <pre id="YKvt">sudo journalctl -fu tenderdutyd</pre>
  <p id="uhKx"></p>
  <figure id="dhpA" class="m_original">
    <img src="https://img1.teletype.in/files/01/34/013486f5-e802-4164-99e4-3310d2848b5c.jpeg" width="827" />
  </figure>
  <p id="ynGz">You can open dashboard on web browser by using tenderduty port and your server IP http://&lt;YOUR_SERVER_IP&gt;:&lt;PORT&gt;<br />Default port on tenderduty is 8888</p>
  <figure id="p2mY" class="m_original">
    <img src="https://img2.teletype.in/files/10/23/10238232-df26-4de4-a600-fd6aa6c796ce.jpeg" width="1096" />
  </figure>
  <h2 id="yNnX">Turn on firewall to protect your server and open the required port</h2>
  <p id="wYfN">Default RPC port is 26656, prometheus - 26660 and tenderduty - 8888. <u>if you have custom ports on your node or have another nodes in this server, check it and open custom ports!</u></p>
  <pre id="UwVN" data-lang="bash">sudo apt install ufw 
sudo ufw default allow outgoing 
sudo ufw default deny incoming 
sudo ufw allow ssh/tcp 
sudo ufw limit ssh/tcp 
sudo ufw allow 26656,26660,8888/tcp
sudo ufw enable</pre>
  <p id="HChw"></p>
  <h2 id="939R">Configure Telegram alerting</h2>
  <p id="DRcM">Open telegram and find @BotFather </p>
  <ol id="JbwW">
    <li id="jSFH">Create telegram bot via <code>@BotFather</code>, customize it and <code>get bot API token</code> (<a href="https://www.siteguarding.com/en/how-to-get-telegram-bot-api-token" target="_blank">how_to</a>).</li>
    <li id="sKpX">Create the group: <code>alarm</code> . Customize them, add the bot in your chat and <code>get chats IDs</code> (<a href="https://stackoverflow.com/questions/32423837/telegram-bot-how-to-get-a-group-chat-id" target="_blank">how_to</a>).</li>
    <li id="mO9u">Open config.yml file </li>
  </ol>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <ul id="Z6zk">
      <li id="Y643">change <strong>enabled: no</strong> to enabled: yes</li>
      <li id="ADWN"><strong>api_key: &#x27;5555555555:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&#x27;</strong> to  api_key: &#x27;&lt;YOUR_BOT_API_KEY&gt;&#x27;</li>
      <li id="l0n7"><strong>channel: &quot;-666666666&quot; </strong>to channel: &quot;&lt;YOUR_GROUP_CHAT_ID&gt;&quot;</li>
    </ul>
  </section>
  <pre id="5lm7">nano $HOME/tenderduty/config.yml</pre>
  <figure id="pTmh" class="m_original">
    <img src="https://img4.teletype.in/files/bf/35/bf352fcc-76ed-4645-a700-ce2ae63fd792.jpeg" width="850" />
    <figcaption>And save this ctrl+x y enter</figcaption>
  </figure>
  <p id="0epN">Restart tenderduty</p>
  <pre id="xlak">sudo systemctl restart tenderdutyd &amp;&amp; sudo journalctl -fu tenderdutyd</pre>
  <p id="snvI">Congratulations! You have set up a monitoring and alert system</p>

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