Валидатор (Validator)
Пошаговая инструкция по установке и запуску Umee валидатора.
Эта инструкция содержит описание того, как установить и запустить Umee валидатор. Сперва убедитесь, что выполнены все инструкции по установке полной ноды в отношении того, как установить и сконфигурировать бинарный файл umeed
. Далее подразумевается, что вы уже установили, сконфигурировали и запустили.
Ключи
Перед тем, как создавать валидатора, вы должны создать ваш ключ "оператора". Помните, что это ключ не для консенсуса и не будет использоваться в подписании блоков. Но это ключ будет использоваться для определения вас как валидатора в сети UMEE.
$ umeed keys add <key-name> [flags]
По умолчанию, umeed
хранит ключи в скрытом виде (OS-backed keyring). Вы можете изменить это поведение, указав флаг --keyring-backend
.
Если вы уже имеете ключ, который вы бы хотели импортировать используя мнемоническую фразу, вы можете указать флаг --recover
и команда keys add
запросит у вас BIP39
мнемоническую фразу.
Посетите страницу документации о ключах в Cosmos SDK для большей информации.
Ethereum Нода
Gravity Bridge необходимо, чтобы валидатор использовал запущенный peggo
оркестратор параллельно с работой umeed
. Оркестратору необходим доступ к RPC geth
вашей ноды. Легкий клиент geth
может быть использован, но предпочтительнее использование полной ноды.
Вы можете выбрать управлять ли вам вашей собственной geth
нодой или использовать какую-либо публичную. В зависимости от того, в какой сети вы хотите, чтобы ваш валидатор работал, необходимо выбрать соответствующую сеть для установки geth
ноды. Изучите документацию для по geth
для большей информации в отношении присоединения к различным Ethereum сетям.
Для установки geth
ноды, сначала установите бинарный файл со страницы go-ethereum. А затем создайте systemd
сервис:
[Unit]
Description=Geth node
After=online.target
[Service]
Type=root
User=root
ExecStart=/usr/bin/geth --syncmode "light" --http ...
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
Перезагрузите systemd
и запустите geth
сервис:
$ sudo systemctl daemon-reload
$ sudo systemctl start geth
В заключении удостоверьтесь, что geth
сервис запущен и работает хорошо. Если так, то добавим его в автозагрузку:
$ sudo systemctl status geth
$ sudo systemctl enable geth
Создание Валидатора
Когда запущены umeed
и geth
, вы можете создать валидатора в сети Umee через MsgCreateValidator транзакцию:
# Публичный консенсусный ключ валидатора
# например {"@type":"/cosmos.crypto.ed25519.PubKey","key":"..."}
$ UMEE_VAL_CONS_KEY=$(umeed tendermint show-validator)
$ umeed tx staking create-validator \
--amount=<amount> \
--pubkey=$UMEE_VAL_CONS_KEY \
--moniker="<moniker>" \
--chain-id="<chain-id>" \
--commission-rate="<commission>" \
--commission-max-rate="<max-commission>" \
--commission-max-change-rate="<max-commission-rate-change>" \
--min-self-delegation="<min-self-delegation>" \
--fees=<fees> \
--from=<key-name>
Помните, что вы должны использовать chain-id
который указывает на сеть, к которой вы присоединяетесь (umee-1 для мэйннета). Ключ key-name
относится к ключу оператора валидатора, который вы создавали ранее.
Gravity Bridge
Валидатор обязан запустить критический компонент Gravity Bridge, известный как оркестратор peggo
. Оркестратор необходим для решения нескольких задач, но в первую очередь он нужен как Мост работающий между сетью Umee и Ethereum.
Для успешной работы оркестратору необходимы несколько компонентов:
Umee gRPC
Ethereum RPC
Ключ подписи для сети Umee (адрес должен быть пополнен) для перевода транзакций в сеть Umee
Ключ подписи для сети Ethereum (адрес должен быть пополнен) для перевода транзакций в сеть Ethereum
Сеть Umee использует peggo
вариацию Оркестратора Gravity Bridge, в оригинале разработанную Injective Labs. Peggo
сам по себе является форком оригинального оркестратора Gravity Bridge разработанного Althea. Посетите страницу релизов чтобы скачать подходящую версию peggo
.
$ PEGGO_VERSION=v0.2.4
$ wget https://github.com/umee-network/peggo/releases/download/$PEGGO_VERSION/peggo-$PEGGO_VERSION-linux-amd64.tar.gz
$ tar xvf peggo-$PEGGO_VERSION-linux-amd64.tar.gz && cd peggo-$PEGGO_VERSION-linux-amd64 && rm LICENSE README.md
$ chmod +x ./peggo
$ mv ./peggo /usr/local/bin
$ peggo --help
Теперь мы должны сконфигурировать наши ключи peggo
:
Не используйте один адрес для оператора валидатора и оркестратора.
# umeed tx gravity set-orchestrator-address [validator-address] [orchestrator-address] [ethereum-address] [flags]
umeed tx gravity set-orchestrator-address VALIDATOR_OPERATOR_ADDRESS ORCHESTRATOR_ADDRESS ETHEREUM_ADDRESS --chain-id="umee-1" --from=<key-name>
Предполагается, что umeed
и geth
уже запущены, далее следует установить следующие переменные:
$ PEGGO_ETH_PK="ETHEREUM_ADDRESS_PRIVATE_KEY"
$ ETH_RPC="YOUR_ETH_NODE_ADDRESS"
$ BRIDGE_ADDR="0xb564ac229e9d6040a9f1298b7211b9e79ee05a2c"
$ START_HEIGHT="14211966"
$ ORCHESTRATOR_WALLET_NAME="ORCHESTRATOR_ADDRESS_WALLET_NAME"
$ ORCHESTRATOR_WALLET_PASSWORD="ORCHESTRATOR_ADDRESS_WALLET_PASSWORD"
$ ALCHEMY_ENDPOINT="YOUR_WSS_ALCHEMY_ENDPOINT" # https://www.alchemy.com/
Далее создайте peggod.systemd
сервис:
$ echo "[Unit]
Description=Peggo Service
After=network.target
[Service]
User=$USER
Type=simple
ExecStart=/usr/local/bin/peggo orchestrator $BRIDGE_ADDR \
--bridge-start-height=\"$START_HEIGHT\" \
--eth-rpc=\"$ETH_RPC\" \
--relay-batches=true \
--relay-valsets=false \
--cosmos-chain-id=umee-1 \
--cosmos-keyring-dir=\"$HOME/.umee\" \
--cosmos-from=\"$ORCHESTRATOR_WALLET_NAME\" \
--cosmos-from-passphrase=\"$ORCHESTRATOR_WALLET_PASSWORD\" \
--eth-alchemy-ws=\"$ALCHEMY_ENDPOINT\" \
--cosmos-keyring=\"os\" \
--log-level debug \
--log-format text
Environment=\"PEGGO_ETH_PK=$PEGGO_ETH_PK\"
Restart=always
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target" > $HOME/peggod.service
$ sudo mv $HOME/peggod.service /etc/systemd/system
В завершении добавим peggod в автозагрузку и перезапустим:
$ sudo systemctl daemon-reload
$ sudo systemctl enable peggod
$ sudo systemctl restart peggod
Вы можете проверить логи peggod
, используя следующую команду:
$ journalctl -u peggod -f -o cat
Last updated