May 24, 2022

Cosmos - автоделегирование на примере Archway В экосистеме

В экосистеме Cosmos каждый может запустить валидатора, но только валидаторы из активного списка (125 в настоящее время) будут производить блоки и получать за это награды. Чтобы попасть в активный список необходимо иметь нужный вес, который зависит от количества застейканных монет на валидатора. Из 125 валидаторов наименьший вес и соответственно наименьшее количество застейканных монет будет у 125 валидатора, который будет на грани вылета из активного списка

Чтобы не выпасть из этого списка необходимо постоянно увеличивать свой стейк путем привлечения дополнительных делегатов или самоделегируя свои награды, полученные за активного валидатора. Для того, чтобы вручную делегировать дополнительные средства в своего валидатора необходимо выполнить 2 команды:

# перевести реварды и комиссию на основной баланс кошелька
archwayd tx distribution withdraw-rewards <archwayvaloper..> --from <name_wallet> --chain-id torii-1 --fees 5utorii --commission -y
# делегировать доступные средства в своего валидатора
archwayd tx staking delegate <archwayvaloper..> 1000000utorii --from <name_wallet> --fees 5utorii --chain-id torii-1 -y

Конечно в командах выше необходимо использовать свои параметры - меняя адрес валидатора, имя кошелька, сумму и при использовании другой сети название монеты и chain-id. Ниже я опишу один из вариантов использования автоматического автоделегирования с помощью скрипта

Заранее скажем спасибо за скрипт keupsonite . Данный скрипт подходит для любого блокчейна экосистемы Cosmos и в официальном репозитории уже есть шаблоны для многих проектов. Для Archway и тестовой сети torii-1 я подготовил шаблон, который можно скачать отсюда или скопировать ниже. Необходимо внести свои данные в PASSWD="" ; DELEGATOR_NAME="" ; DELEGATOR="" ; VALIDATOR="" ; BINARY=""

# Archway Keyring Backend ("test", "file", "os" or "memory")
# Example: KEYRING_BACKEND="test"
# You can reimport your wallet with desired backend-type
# (`archwayd keys add name_wallet --recover`)
KEYRING_BACKEND="os"

# Password
# Required if keyring-backend is "file" or "os"
PASSWD=""

# Archway Wallet Name (`archwayd keys list`)
# Example: DELEGATOR_NAME="name_wallet"
DELEGATOR_NAME=""

# Archway Wallet Address (`archwayd keys show name_wallet -a`)
# Example: DELEGATOR="archway1le23uxah00r8aajzfhh30et5ek2kxvfpyqp5jd"
DELEGATOR=""

# Archway Validator Address
# Example: VALIDATOR="archwayvaloper1msnjlmuas6hxh5xml952snjayxlm4f2k3etu0v"
VALIDATOR=""

# Current Archway Chain ID
CHAIN_ID="torii-1"

#########################################################
# In case you customized the Archway Node configuration, #
# you will want to edit this below parameters.           #
#########################################################

# The IP of your Archway Node
NODE_IP="127.0.0.1"

# The port of your Archway Node
NODE_PORT="26657"

# The home of your Archway Node
NODE_HOME="$HOME/.archway"

# The path to your Archway binary
# To get the full path to your archway binary you can use `whereis archwayd` and replace the below value by.
# Example: BINARY="$HOME/go/bin/archwayd"
BINARY=""

####################
# MODIFY FOR TESTS #
####################

# Time to sleep in sec between two delegations
# Example: SLEEPING_TIME=$((5*60))
# Example: SLEEPING_TIME="30"
SLEEPING_TIME=$((30*60))

DENOM="utorii"
GAS_PRICES="--fees 26${DENOM}"

##################
# DO NOT MODIFY! #
##################

# Depending on Cosmos SDK version
# - ACCOUNT     $binary query account
# - BANK        $binary query bank balances
BALANCES_FROM="BANK"

SDETAILS="--chain-id ${CHAIN_ID} --node tcp://${NODE_IP}:${NODE_PORT} --home ${NODE_HOME}"
DETAILS="${SDETAILS} --keyring-backend ${KEYRING_BACKEND}"

Приступаем к установке

1. Устанавливаем tmux и expect

sudo apt install tmux expect -y

2. Клонируем репозиторий и переходим в нужную папку

git clone https://github.com/zlounes/cosmos-autostaking.git $HOME/cosmos-autostaking && cd $HOME/cosmos-autostaking

3. Даем права на выполнение

chmod +x $HOME/cosmos-autostaking/*delegate*

4. Создаем файл .archway и копируем в него шаблон выше (внося нужные изменения)

nano $HOME/cosmos-autostaking/profiles/.archway

5. Запускаем команду ниже находясь в каталоге cd $HOME/cosmos-autostaking

tmux new-session -s autoDelegate $HOME/cosmos-autostaking/auto_delegate.sh -p $HOME/cosmos-autostaking/profiles/.archway

6. Сворчачиваем окно tmux нажав CTRL+B D

7. Смотрим логи

tail -f $HOME/cosmos-autostaking/auto_delegate.log

Остановить работу скрипта можно вернувшись в окно tmux введя команду tmux attach и нажав CTRL+C