Валідатор

Детальний покроковий посібник з запуску валідатору Umee

Цей посібник містить інструкції щодо налаштування та запуску валідатора Umee. По-перше, обов'язково ознайомтеся з інструкціями повної ноди про те, як встановити і налаштувати двійковий файл umeed, оскільки в цьому посібнику передбачається, що він у вас вже встановлений і налаштований.

Keyring

Перш ніж створювати свій валідатор, ви повинні спочатку створити свій ключ "operator". Зверніть увагу, що це не ваш консенсусний ключ і він не буде використовуватися для підпису. Замість цього він використовується для ідентифікації вашого валідатора в мережі Umee.

$ umeed keys add <key-name> [flags]

За замовчуванням umeed буде зберігати ключі у keyring з підтримкою вашої операційної системи. Ви можете змінити це, вказавши прапорець --keyring-backend .

Якщо у Вас вже є ключ, який ви хотіли б імпортувати за допомогою мнемоніки, ви можете вказати прапорець --recover, і команда keys add запропонує вам ввести мнемоніку BIP39.

Для отримання додаткової інформації відвідайте документацію по keyring Cosmos SDK.

Ethereum нода

Gravity Bridge вимагає, щоб валідатори також запускали peggo оркестратор на додаток до процесу umeed. Оркестратору потрібен доступ до екземпляра RPC вузла geth. Можна використовувати geth light client, але краще використовувати повну ноду.

Ви можете вибрати керування власним вузлом geth або використовувати загальнодоступний вузол. Однак у виробничих середовищах рекомендується запускати свої власні. Залежно від того, в якій мережі ви використовуєте свій валідатор Umee, ви захочете підключитися або налаштувати свій вузол geth до відповідної мережі Ethereum. Дивіться документацію geth CLI для отримання додаткової інформації про те, як підключатися до різних мереж 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

Якщо вам потрібно отримати доступ до екземпляра geth ззовні, обов'язково встановіть --http.addr=0.0.0.0.

Перезавантажте systemd і запустіть службу geth:

$ sudo systemctl daemon-reload
$ sudo systemctl start geth

Потім переконайтеся, що служба geth запущена і справна. Якщо так, включіть її:

$ sudo systemctl status geth
$ sudo systemctl enable geth

Створення валідатора

Як тільки ви запустите umeed і geth, ви, нарешті, зможете створити свій валідатор в мережі Umee за допомогою транзакції MsgCreateValidator:

# Validator's consensus public key
# e.g. {"@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 для основної мережі (mainnet)). Ім'я ключа 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 Orchestrator, реалізованого 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:

Не використовуйте ту саму адресу для валідатора та оркестратора.

Щоб надіслати транзакцію нижче, ваш вузол повинен бути синхронізований з мережею umee-1

# 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:

$ 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/

Контракт Gravity Bridge повинен бути розгорнутий до налаштування і запуску процесу оркестратора. Будь ласка, зверніться до репозиторія Umee для отримання додаткової інформації.

Потім створіть службу 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