Завершённые
October 13, 2021

Umee | umeevengers-1c

1package & Let's Node

⠀Umee — это кросс-чейн DeFi-хаб, который позволяет брать средства взаймы на одном блокчейне, под залог средств на другом.


Содержание


Требования к серверу

К содержанию

⠀Рекомендуемые:
VPS/VDS/DS: 2 CPU, 4 GB RAM, 400 GB SSD, Ubuntu 20.04

⠀Потребляет много трафика, около 2 ТБ ежесуточно

⠀Подходящие сервера:


Регистрация

К содержанию

Регистрация на текущий этап закрыта, для участия было отобрано 300 человек, для 200 из которых (активные) актуален гайд ниже

Подготовка

⠀Установить ноду последней версии

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/multi_tool.sh)

⠀По итогу выведет версию, должна быть 0.3.0

⠀Придумать название ноды, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_moniker

⠀Придумать название кошелька, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_wallet_name

⠀Проверить, есть ли кошелёк

umeed keys show "$umee_wallet_name"

⠀Если нет, то

Восстановить кошелёк с прошлых сетей

umeed keys add "$umee_wallet_name" --recover

⠀Необходимо ввести мнемоническую фразу от кошелька и дважды пароль для ноды

Продолжение

⠀Инициализировать ноду

umeed init "$umee_moniker" --overwrite --chain-id "$umee_chain"

Сделать резервную копию папки с настройками, сохранив себе на ПК (команда отображает путь)

echo $HOME/.umee/config/

⠀Добавить аккаунт в генезис

umeed add-genesis-account "$umee_wallet_name" 1000000000uumee

⠀Создать генезис файл

⠀При желании можно добавить опцию --identity "___" \ с Keybase ключом для установки аватара

umeed gentx "$umee_wallet_name" 1000000uumee \
  --moniker "$umee_moniker" \
  --chain-id "$umee_chain" \
  --commission-rate 0.05 \
  --commission-max-rate 0.10 \
  --commission-max-change-rate 0.01 \
  --min-self-delegation 1 \
  --output-document "$HOME/$umee_moniker.json"

Pull Request

⠀Перейти в GitHub репозиторий

⠀И предложить создание файла

⠀Название задать как созданный генезис файл

echo "$umee_moniker.json"

⠀В содержимое поместить содержимое созданного ранее генезис файла

cat "$HOME/$umee_moniker.json"

⠀Отправить PR

⠀Сохранить ссылку на Pull Request

Заполнение формы

⠀Открыть Google форму и заполнить поля:

  • Email — электронная почта;
  • Discord ID — ID аккаунта Discord типа xxxxxx#0000;
  • Umee valoper address — адрес валидатора, можно узнать командой
cat "$HOME/$umee_moniker.json" | jq -r ".body.messages[0].validator_address"
  • Umee wallet — адрес кошелька, можно узнать командой;
cat "$HOME/$umee_moniker.json" | jq -r ".body.messages[0].delegator_address"
  • Link to your gentx Pull Request — сохранённая ранее ссылка на PR.

Запуск

К содержанию

⠀Добавить адрес кошелька в систему в виде переменной (необходимо ввести пароль от кошелька)

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_wallet_address -v `umeed keys show "$umee_wallet_name" -a`

⠀Добавить ID сети в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_chain -v "umeevengers-1c"

⠀Остановить ноду

sudo systemctl stop umeed

⠀Скачать генезис файл

wget -qO $HOME/.umee/config/genesis.json "https://raw.githubusercontent.com/umee-network/testnets/main/networks/${umee_chain}/genesis.json"

⠀Изменить конфиг

sed -i -e "s%^moniker *=.*%moniker = \"$umee_moniker\"%; s%^external_address *=.*%external_address = \"`wget -qO- eth0.me`:26656\"%; s%^persistent_peers *=.*%persistent_peers = \"`wget -qO - https://raw.githubusercontent.com/umee-network/testnets/main/networks/$umee_chain/persistent_peers.txt | tr '\n' ',' | sed 's%,$%%'`\"%" $HOME/.umee/config/config.toml

⠀Изменить минимальную цену газа

sed -i -e "s%^minimum-gas-prices *=.*%minimum-gas-prices = \"0.001uumee\"%" $HOME/.umee/config/app.toml

⠀На всякий случай ещё раз сбросить состояние валидатора

umeed unsafe-reset-all

⠀Создать сервисный файл

echo "[Unit]
Description=Umee node
After=network.target

[Service]
User=$USER
ExecStart=`which umeed` start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/umeed.service

⠀Запустить ноду

sudo systemctl daemon-reload
sudo systemctl enable umeed
sudo systemctl restart umeed

⠀Добавить команды в систему в виде переменных:

  • Просмотр лога ноды;
  • Информация о ноде.
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_log -v "sudo journalctl -fn 100 -u umeed" -a
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_node_info -v ". <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/node_info.sh) -l RU 2>/dev/null" -a


Информация о ноде

К содержанию

⠀Добавить команду для просмотра информации о ноде в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_node_info -v ". <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/node_info.sh) -l RU 2>/dev/null" -a

⠀Посмотреть информацию о ноде

umee_node_info

Задания 03.11

К содержанию

Дедлайн 04.11.2021 00:00 UTC / 03:00 МСК

Транзакция

⠀Добавить команду для просмотра информации о ноде в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_node_info -v ". <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/node_info.sh) -l RU 2>/dev/null" -a

⠀Запустить команду для просмотра информации о ноде и ввести пароль, если попросит

umee_node_info

⠀Проверить добавление адреса в виде переменной (должна вывести адрес)

echo $umee_wallet_address

⠀Отправить 1 uumee на любой кошелёк (в команде можно изменить адрес конечного кошелька, необходимо ввести пароль)

umeed tx bank send "$umee_wallet_address" umee1uw0uy65pdrpge0xjp492qfqywqpvl5q44v0upx 1uumee \
  --chain-id umeevengers-1c \
  --from "$umee_wallet_address" \
  --gas 300000 \
  --fees 300uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y

⠀Успешно отправленная транзакция выглядит примерно как на скриншоте ниже

⠀Записать хэш транзакции для заполнения формы (выделен на скриншоте)

Делегация

⠀Делегировать 100 uumee на другого, не своего, валидатора (в команде можно изменить адрес валидатора, необходимо ввести пароль)

umeed tx staking delegate umeevaloper1uw0uy65pdrpge0xjp492qfqywqpvl5q44ggnsv 100uumee \
  --chain-id umeevengers-1c \
  --from "$umee_wallet_address" \
  --gas 300000 \
  --fees 300uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y

⠀Успешно отправленная транзакция выглядит примерно как на скриншоте ниже

⠀Записать хэш транзакции для заполнения формы (выделен на скриншоте)

Ределегация

⠀Перевести делегацию в размере 90 uumee с валидатора из прошлого шага на другого, не своего, валидатора (в команде можно изменить адрес конечного валидатора, необходимо ввести пароль)

umeed tx staking redelegate umeevaloper1uw0uy65pdrpge0xjp492qfqywqpvl5q44ggnsv umeevaloper149sh9q0drmv94naxfuf3vr3lv3zscqxr0dhv2g 90uumee \
  --chain-id umeevengers-1c \
  --from "$umee_wallet_address" \
  --gas 300000 \
  --fees 300uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y

⠀Успешно отправленная транзакция выглядит примерно как на скриншоте ниже

⠀Записать хэш транзакции для заполнения формы (выделен на скриншоте)

Снятие делегации

⠀Снять с делегации 80 uumee с последнего валидатора (в команде можно изменить адрес валидатора, необходимо ввести пароль)

umeed tx staking unbond umeevaloper149sh9q0drmv94naxfuf3vr3lv3zscqxr0dhv2g 80uumee \
  --chain-id umeevengers-1c \
  --from "$umee_wallet_address" \
  --gas 300000 \
  --fees 300uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y

⠀Успешно отправленная транзакция выглядит примерно как на скриншоте ниже

⠀Записать хэш транзакции для заполнения формы (выделен на скриншоте)

Попадание в тюрьму

⠀Таким способом решила задачу наша команда, не факт, что способ верный. Пообщаться на эту тему можно в Discord чате и в русскоязычной группе Telegram.

⠀Вспомнить название кошелька, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_wallet_name

⠀Импортировать кошелёк в беспарольный тип хранения (необходимо ввести мнемоническую фразу, которe. необходимо было сохранить при самой первой установке ноды)

umeed keys add "$umee_wallet_name" --recover --keyring-backend test

⠀Установить Tmux

sudo apt install tmux -y

⠀Создать новое окно

tmux new -s jail_task

⠀Запустить скрипт и дождаться окончания работы

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/jail_task.sh)

Не останавливать скрипт, дождаться окончания работы

⠀RPC по умолчанию может не выдержать нагрузки, поэтому желательно как-то скоординироваться или указать другой RPC, подробнее на странице помощи

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/jail_task.sh) -h

⠀Если связь с серверам была потеряна, то вернуться в окно можно командой

tmux attach -t jail_task

⠀Сохранить выведенные значения себе в текстовый документ для дальнейшего заполнения формы. Вывести ещё раз можно командой

echo "`pwd`/${file_name}"

⠀Закрыть окно командой

exit

Проверка

⠀Для проверки транзакций необходимо зайти в Explorer и в поиске ввести по очереди сохранённые хэши транзакций (пример транзакции)

⠀В поле «Messages» у введённых транзакций должен быть указан тип:

  • Send — первое задание;
  • Delegate — второе;
  • Redelegate — третье;
  • Undelegate — четвёртое.

⠀Для проверки информации о попадании в тюрьму необходимо открыть файл, созданный скриптом (по умолчанию echo $HOME/jail_task.txt), и произвести проверку параметров по алгоритму ниже

⠀Пример файла

Jailing block height: 188329
Jailing timestamp: 2021-11-03T20:46:23Z
Jailing tx HASH: 3F8D6E02CA59CA74D8A3326068891B24A11A21502308E32FA14B5BECB82F03AF
Unjailing block height: 188432
Unjailing timestamp: 2021-11-03T20:56:43Z
Unjailing tx HASH: 23B251D497B3C21F7C2BBF9399077A2410173182DD01F8FF9115C1E9A03842F7
Block numbers you missed while in jail: 188329-188432

⠀Подставить в переменную block своё значение (из примера 188329) и проверить блок до попадания в тюрьму

moniker=`umeed status 2>&1 | jq -r ".NodeInfo.moniker"`; \
node_info=`umeed query staking validators --limit 1500 --output json | jq -r '.validators[] | select(.description.moniker=='\"$moniker\"')'`; \
validator_address=`jq -r ".operator_address" <<< $node_info`; \
block=188329; \
umeed query staking historical-info $((block-1)) --output json | jq -r '.valset[] | select(.operator_address=='\"$validator_address\"')'

⠀Проверить блок в момент попадания в тюрьму

umeed query staking historical-info $block --output json | jq -r '.valset[] | select(.operator_address=='\"$validator_address\"')'

⠀Проверить блок после попадания в тюрьму

umeed query staking historical-info $((block+1)) --output json | jq -r '.valset[] | select(.operator_address=='\"$validator_address\"')'

⠀Пустой вывод

⠀Проверить время попадания в тюрьму

umeed query staking historical-info $block --output json | jq -r ".header.time"

⠀Проверить хэш блока попадания в тюрьму

wget -qO- "http://62.171.166.224:26657/block?height=${block}" | jq -r ".result.block_id.hash"

⠀Подставить в переменную block своё значение (из примера 188432) и проверить блок выхода из тюрьмы

block=188432; \
umeed query staking historical-info $block --output json | jq -r '.valset[] | select(.operator_address=='\"$validator_address\"')'

⠀Пустой вывод

⠀Проверить блок после выхода из тюрьмы

umeed query staking historical-info $((block+1)) --output json | jq -r '.valset[] | select(.operator_address=='\"$validator_address\"')'

⠀Проверить время выхода из тюрьмы

umeed query staking historical-info $block --output json | jq -r ".header.time"

⠀Проверить хэш блока выхода из тюрьмы

wget -qO- "http://62.171.166.224:26657/block?height=${block}" | jq -r ".result.block_id.hash"

Отправка формы

⠀Открыть форму и заполнить её используя сохранённые данные.


Задания 13.11

К содержанию

Дедлайн 18.11.2021 19:00 UTC / 22:00 МСК

Сбор наград

⠀Для получения предложением возможности голосования нужно 10 umee, получить которые можно сняв комиссионные с валидатора

local_rpc=`grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml`; \
moniker=`umeed status --node "$local_rpc" 2>&1 | jq -r ".NodeInfo.moniker"`; \
validator_address=`umeed query staking validators --node "$local_rpc" --limit 1500 --output json | jq -r '.validators[] | select(.description.moniker=='\"$moniker\"')' | jq -r ".operator_address"`; \
umeed tx distribution withdraw-rewards "$validator_address" \
  --chain-id "$umee_chain" \
  --from "$umee_wallet_name" \
  --commission \
  --gas 300000 \
  --fees 300uumee \
  --node "$local_rpc" \
  -y

⠀Проверить сбор комиссионных и записать адрес кошелька

umee_node_info

Создание предложения

⠀Чтобы создать предложение с депозитом в размере 1 umee необходимо выполнить команду

umeed tx gov submit-proposal \
  --title "Hello everyone! I'm $umee_moniker" \
  --description "Hello or no?" \
  --type "Text" \
  --deposit 1000000uumee \
  --from "$umee_wallet_name" \
  --chain-id umeevengers-1c \
  --gas 300000 \
  --fees 300uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y

⠀Успешно отправленная транзакция выглядит примерно как на скриншоте ниже

⠀Записать хэш транзакции и ID предложения для заполнения формы (выделены на скриншоте)

Депозит

⠀Для того, чтобы у предложения появилась возможность голосования, нужен взнос в размере как минимум 10 umee, поэтому необходимо внести ещё 9 umee.

Внести недостающую часть депозита командой

umeed tx gov deposit PROPOSAL_ID 9000000uumee \
  --from "$umee_wallet_name" \
  --chain-id umeevengers-1c \
  --gas 300000 \
  --fees 300uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y

⠀Успешно отправленная транзакция выглядит примерно как на скриншоте ниже

⠀Записать хэш транзакции для заполнения формы (выделен на скриншоте)

Голосование

⠀Чтобы проголосовать за предложение необходимо выполнить команду (при голосовании против заменить Yes на No)

umeed tx gov vote PROPOSAL_ID Yes \
  --from "$umee_wallet_name" \
  --chain-id umeevengers-1c \
  --gas 300000 \
  --fees 300uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y

⠀Успешно отправленная транзакция выглядит примерно как на скриншоте ниже

⠀Записать хэш транзакции для заполнения формы (выделен на скриншоте)

Проверка

⠀Для проверки успешного создания предложения необходимо зайти в Explorer’е в соответствующий раздел, найти своё предложение и открыть его. Или в ссылке ниже изменить ID предложения на свой

https://explorer-umeevengers.nodes.guru/proposals/180

⠀Примерный вид предложения после выполнения всех действий

⠀Для проверки транзакций необходимо зайти в Explorer и в поиске ввести по очереди сохранённые хэши транзакций (пример транзакции)

⠀В поле «Messages» у введённых транзакций должен быть указан тип:

  • Submit Proposal — первое задание;
  • Deposit — второе;
  • Vote — третье.

Отправка формы

⠀Открыть форму и заполнить её используя сохранённые данные.


Задания 19.11

К содержанию

⠀Формы ещё не выложены, пункт «Вторая нода» желательно выполнить уже сейчас.

Вторая нода

До 22.11.2021 20:00 UTC / 23:00 МСК

⠀Взять или арендовать второй сервер (подойдёт 2 CPU, 4 GB RAM, 20 GB SSD)

⠀Установить ноду

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/multi_tool.sh)

⠀Придумать название ноды, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_moniker

⠀Добавить ID сети в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_chain -v "umeevengers-1c"

⠀Инициализировать ноду

umeed init "$umee_moniker" --chain-id "$umee_chain"

⠀Скачать генезис файл

wget -qO $HOME/.umee/config/genesis.json "https://raw.githubusercontent.com/umee-network/testnets/main/networks/${umee_chain}/genesis.json"

⠀Скачать Address book

wget -qO $HOME/.umee/config/addrbook.json "https://raw.githubusercontent.com/SecorD0/Umee/main/addrbook.json"

⠀Изменить конфиг (выполнять всё одной командой)

bootstrap_node="http://62.171.166.224:26657"; \
bootstrap_node2="http://62.171.166.224:26657"; \
node_id=`wget -qO- "${bootstrap_node}/status" | jq -r ".result.node_info.id"`; \
latest_height=`wget -qO- "${bootstrap_node}/block" | jq -r ".result.block.header.height"`; \
block_height=$((latest_height - 1000)); \
trust_hash=`wget -qO- "${bootstrap_node}/block?height=${block_height}" | jq -r ".result.block_id.hash"`; \
sed -i -e "s%^moniker *=.*%moniker = \"$umee_moniker\"%; "\
"s%^external_address *=.*%external_address = \"`wget -qO- eth0.me`:26656\"%; "\
"s%^laddr *=.*26657\"%laddr = \"tcp://0.0.0.0:26657\"%; "\
"s%^persistent_peers *=.*%persistent_peers = \"${node_id}@`echo $bootstrap_node | sed -e 's%http://%%; s%:26657%:26656%'`\"%; "\
"s%^enable *=.*%enable = true%; "\
"s%^rpc_servers *=.*%rpc_servers = \"${bootstrap_node},${bootstrap_node2}\"%; "\
"s%^trust_height *=.*%trust_height = $block_height%; "\
"s%^trust_hash *=.*%trust_hash = \"$trust_hash\"%" $HOME/.umee/config/config.toml

⠀Открыть используемые порты

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) 26656 26657

⠀Создать сервисный файл

echo "[Unit]
Description=Umee node
After=network.target

[Service]
User=$USER
ExecStart=`which umeed` start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/umeed.service

⠀Запустить ноду

sudo systemctl daemon-reload
sudo systemctl enable umeed
sudo systemctl restart umeed

⠀Добавить команды в систему в виде переменных:

  • Просмотр лога ноды;
  • Информация о ноде.
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_log -v "sudo journalctl -fn 100 -u umeed" -a
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_node_info -v ". <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/node_info.sh) -l RU 2>/dev/null" -a

⠀Открыть лог командой

umee_log

⠀Через некоторое время начнётся загрузка и распаковка снепшота

⠀После успешной загрузки и распаковки начнётся синхронизация

⠀После синхронизации изменить persistent_peers

sed -i -e "s%^persistent_peers *=.*%persistent_peers = \"`wget -qO - https://raw.githubusercontent.com/umee-network/testnets/main/networks/$umee_chain/persistent_peers.txt | tr '\n' ',' | sed 's%,$%%'`\"%" $HOME/.umee/config/config.toml

⠀Перезапустить ноду

sudo systemctl restart umeed

⠀Секунд через 30 вывести ссылку на RPC ноды командой ниже

echo "http://`wget -qO- eth0.me`:26657/"

⠀Перейти по ней из любого браузера и удостовериться, что RPC является публичным

Подготовка

Выполнять на основной и второй ноде

⠀Вспомнить название ноды, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_moniker

⠀Вспомнить название кошелька, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_wallet_name

⠀Добавить ID сети в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_chain -v "umeevengers-1c"

⠀Добавить команду для просмотра информация о ноде в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_node_info -v ". <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/node_info.sh) -l RU 2>/dev/null" -a

Редактирование валидатора

До 25.11.2021 18:00 UTC / 21:00 МСК

⠀Проверить вывод всех 3-ёх значений, если какого-то нет, то вернуться к пункту «Подготовка»

echo $umee_chain $umee_wallet_name $umee_moniker

На основной ноде использовать команду для изменения названия ноды, комиссии и описания

umeed tx staking edit-validator \
  --chain-id "$umee_chain" \
  --from "$umee_wallet_name" \
  --moniker "${umee_moniker}_Umeevengers" \
  --commission-rate 0.04 \
  --details "Let's finish it!" \
  --gas 200000 \
  --fees 200uumee \
  --node "http://62.171.166.224:26657" \
  -y

⠀Сохранить хэш выведенной транзакции

⠀Подождать несколько минут и проверить, изменился ли параметры валидатора командой

umeed query staking validators --node "http://62.171.166.224:26657" --limit 1500 --output json | jq -r '.validators[] | select(.description.moniker=='\"${umee_moniker}_Umeevengers\"')'

⠀Обновить название ноды

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n umee_moniker -v "${umee_moniker}_Umeevengers"

⠀Заполнить форму

Спам транзакциями

24.11.2021 18:00 UTC / 21:00 МСК — 25.11.2021 18:00 UTC / 21:00 МСК

Основная нода

⠀Для отправки транзакций понадобятся токены на оплату комиссий, получить которые можно сняв комиссионные с валидатора

local_rpc=`grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml`; \
moniker=`umeed status --node "$local_rpc" 2>&1 | jq -r ".NodeInfo.moniker"`; \
validator_address=`umeed query staking validators --node "$local_rpc" --limit 1500 --output json | jq -r '.validators[] | select(.description.moniker=='\"$moniker\"')' | jq -r ".operator_address"`; \
umeed tx bank send "$umee_wallet_address" "$umee_wallet_address" 1uumee \
  --chain-id "$umee_chain" \
  --from "$umee_wallet_address" \
  --gas 100000 \
  --fees 100uumee \
  --node "$local_rpc" \
  --note "$validator_address" \
  -y

⠀Проверить сбор комиссионных

umee_node_info

Вторая нода

⠀Импортировать кошелёк

umeed keys add "$umee_wallet_name" --recover --keyring-backend file

⠀Необходимо ввести мнемоническую фразу от кошелька и дважды пароль для ноды

⠀Запустить команду для просмотра информации о ноде и ввести пароль от кошелька для добавления адреса в систему в виде переменной

umee_node_info

⠀Команда для отправки транзакций

umeed tx bank send "$umee_wallet_address" "$umee_wallet_address" 1uumee \
  --chain-id "$umee_chain" \
  --from "$umee_wallet_address" \
  --note "VAL_ADDR" \
  --keyring-backend file \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y
  • VAL_ADDR — адрес валидатора основной ноды.

⠀Продумать, как отправить много транзакций

Погребение

25.11.2021 19:00 UTC / 22:00 МСК — 25.11.2021 20:00 UTC / 23:00 МСК

⠀Скачать с основной ноды файл (команда отображает путь)

echo $HOME/.umee/config/priv_validator_key.json

⠀Остановить вторую ноду

sudo systemctl stop umeed

⠀Заменить файл ниже на файл, скачанный с основной ноды (команда отображает путь)

echo $HOME/.umee/config/priv_validator_key.json

⠀Запустить вторую ноду

sudo systemctl restart umeed

⠀Также можно заменить этот файл ещё на нескольких нодах

⠀Периодически на любой из нод проверять вывод команды ниже. Когда валидатор одновременно подпишет блок 2 раза, он отправится в тюрьму навечно

umeed query slashing signing-info `umeed tendermint show-validator`

⠀Должно быть

tombstoned: true

Unjailer

К содержанию

Нужно бороться с причинами попадания, а не с последствиями

⠀По условиям участия попадание в тюрьму хоть 1 раз в неделю снимает 50 очков. Скрипт не спасёт от попадания в тюрьму, однако может помочь выбраться из неё практически сразу же после попадания

⠀Для начала необходимо установить Tmux

sudo apt install tmux -y

⠀Создать новое окно

tmux new -s unjailer

⠀Перейти в папку с нодой

cd $HOME/.umee/

⠀Создать конфиг

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/unjailer.sh)

⠀Открыть конфиг с помощью блокнота MobaXterm, Nano, Vi или т.п. и отредактировать его

#!/bin/bash
# Acceptable use:
# u_wallet_name="umee_node" | text
# u_wallet_name="$umee_wallet_name" | variable

u_wallet_name="___"
u_wallet_password="___"
u_delay=60 # how often to restart the script (in secs)

⠀Запустить скрипт ещё раз

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/unjailer.sh)

⠀Каждую минуту будет проверяться нахождение в тюрьме и, если валидатор находится в ней, то произойдёт автоматический выход

⠀Отключиться от окна сочетанием клавиш Ctrl+B, D или командой

tmux detach

⠀Повторно подключиться к окну, например для просмотра вывода или остановки скрипта, можно командой

tmux attach -t unjailer

⠀Или при ручном вводе просто

tmux attach -t unj

Вклад сообщества

К содержанию

Наша команде не несёт ответственности за возможные негативные последствия, поскольку не может гарантировать безопасность использования представленных инструментов

Как сюда попасть?

⠀Чтобы попасть в этот почётный раздел необходимо написать SecorD’у сообщение с информацией об инструменте:

  • Название проекта;
  • Краткое название в 2-3 слова (будет использоваться как заголовок);
  • Описание, которое будет добавлено в статью (зачем нужно, функционал, как использовать, другая полезная информация, желательно со скриншотами).

⠀Что это даёт?

  • Пользу сообществу;
  • Возможность заявить о себе;
  • Дополнительную возможность представления доказательств контрибуции в различных проектах.

Полезные команды

К содержанию

⠀Доступные переменные (при использовании убрать echo)

echo $umee_moniker
echo $umee_wallet_name
echo $umee_wallet_address
echo $umee_chain

⠀Посмотреть лог ноды

umee_log
sudo journalctl -fn 100 -u umeed

⠀Посмотреть информацию о ноде

umee_node_info
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Umee/main/node_info.sh) -l RU

⠀Посмотреть список валидаторов

umeed query staking validators -o json --limit 1500 --node "http://62.171.166.224:26657" | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '.tokens + " - " + .description.moniker' | sort -gr | nl

⠀Делегировать токены

umeed tx staking delegate "VAL_ADDR" "NUMBERuumee" \
  --chain-id "$umee_chain" \
  --from "$umee_wallet_name" \
  --gas 200000 \
  --fees 200uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y
  • VAL_ADDR — адрес валидатора, можно узнать в команде umee_node_info;
  • NUMBER — количество токенов для делегации, 1 umee = 10^6 uumee.

⠀Снять награды с делегации

umeed tx distribution withdraw-all-rewards \
  --chain-id "$umee_chain" \
  --from "$umee_wallet_name" \
  --gas 300000 \
  --fees 300uumee \
  --node `grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml` \
  -y

⠀Снять комиссионные с валидатора

local_rpc=`grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml`; \
moniker=`umeed status --node "$local_rpc" 2>&1 | jq -r ".NodeInfo.moniker"`; \
validator_address=`umeed query staking validators --node "$local_rpc" --limit 1500 --output json | jq -r '.validators[] | select(.description.moniker=='\"$moniker\"')' | jq -r ".operator_address"`; \
umeed tx distribution withdraw-rewards "$validator_address" \
  --chain-id "$umee_chain" \
  --from "$umee_wallet_name" \
  --commission \
  --gas 300000 \
  --fees 300uumee \
  --node "$local_rpc" \
  -y

⠀Отправить токены самому себе

local_rpc=`grep -oPm1 "(?<=^laddr = \")([^%]+)(?=\")" $HOME/.umee/config/config.toml`; \
moniker=`umeed status --node "$local_rpc" 2>&1 | jq -r ".NodeInfo.moniker"`; \
validator_address=`umeed query staking validators --node "$local_rpc" --limit 1500 --output json | jq -r '.validators[] | select(.description.moniker=='\"$moniker\"')' | jq -r ".operator_address"`; \
umeed tx bank send "$umee_wallet_address" "$umee_wallet_address" 1uumee \
  --chain-id "$umee_chain" \
  --from "$umee_wallet_address" \
  --gas 90000 \
  --fees 90uumee \
  --node "$local_rpc" \
  --note "$validator_address" \
  -y

⠀Перезапустить ноду

sudo systemctl restart umeed

Полезные ссылки

К содержанию

Официальный сайт проекта | Русскоязычная группа Telegram

Discord | Twitter | Medium | GitHub

Официальная документация | Explorer


Благодарности

К содержанию

Команда 1package — написание статьи

Выразить благодарность