November 16

Как установить Hyperlane ноду на Ubuntu 22

Подготовка к установке

  • Нам нужен EVM кошелек (не используйте основной а создайте новый) пополненный его на 30$ в сети Base или в общем любой сети развернутой на Hyperlane. Я буду показывать на примере Base. НО УЧТИТЕ СУММЫ ДЛЯ ДИПЛОЯ НОДЫ БУДУТ РАЗНЫЕ В ЗАВИСИМОСТИ ОТ СЕТИ допустим для Linea нужно 0.06 ETH (180$)
  • Если вы хотите установить ноду в тестовой сети то кошелек стоит пополнить на 0.3 sepolia ETH. Я же предпочитаю ноду в мейннете.
  • Заказываем VPS. Я беру на XorekCloud

Подключаемся root+пароль и устанавливаем необходимый софт

В СТОЧКАХ КОДА, СОДЕРЖАЩИХ Base ВЫ ВПИСЫВАЕТЕ СВОЮ СЕТЬ, КОТОРУЮ ПОПОЛНИЛИ СРЕДСТВАМИ

sudo apt-get update && sudo apt-get install -y \
curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli \
pkg-config libssl-dev libgmp3-dev tar clang bsdmainutils ncdu unzip llvm \
libudev-dev protobuf-compiler cmake cargo openssl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
curl -L https://foundry.paradigm.xyz | bash
source ~/.bashrc
foundryup
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.nvm/nvm.sh
nvm install --lts
nvm use --lts
npm --version
npm install -g @hyperlane-xyz/cli
hyperlane --version
apt install screen

Настраиваем конфиг

hyperlane core init --advanced

Enter the desired owner address — наш адрес EVM кошелька

Выбираем messageIdMultisigIsm

Enter validator addresses (comma separated list) for message ID multisig ISM — наш адрес EVM кошелька

Enter threshold of validators (number) for message ID multisig ISM — 1

Select default hook type — merkleTreeHook

Next, select — aggregationHook потом 1

Next, select protocolFee and we answer the following questions:

For protocol fee hook, enter owner address — наш адрес EVM кошелька

Use this same address — YES

Enter max protocol fee for protocol fee hook — 100000000000000000000

Enter protocol fee for protocol fee hook — 0.1

Enter the desired ProxyAdmin owner address — наш адрес EVM кошелька

hyperlane core deploy

HYP_Key — вводим наш приватный ключ от EVM кошелька

Select network type — выбираем mainnet (или testnet по желанию)

Select chain to connect — я выбрал base (можете выбрать любую другую которую пополнили но учтите, что комиссии за диплой во всех сетях разные)

Do you want to use an API key to verify on this (basesepolia) chain’s block explorer — пишем N (No) и нажимаем ENTER

Mailbox......bla bla bla пишем — yes

Is the diploement plan correct — yes

hyperlane registry agent-config --chains base
export CONFIG_FILES=$HOME/configs/agent-config.json
mkdir -p /tmp/hyperlane-validator-signatures-base
export VALIDATOR_SIGNATURES_DIR=/tmp/hyperlane-validator-signatures-base
mkdir -p $VALIDATOR_SIGNATURES_DIR

Вытаскиваем наш SSH ключ и отправляемся в Github

ssh-keygen -t rsa -b 4096 -C Hyperlane

Нажимаем три раза ENTER

cat ~/.ssh/id_rsa.pub

Нода выдаст вам ключ начинающийся на ssh-rsa и заканчиваться Hyperlane

Копируем его и переходим в Github -> Настройки (settings) -> SSH and GPG keys->
new SSH key -> придумываем название и вставляем туда наш ключ -> add SSH key

Возвращаемся в нашу VPS и копируем репозиторий

git clone [email protected]:hyperlane-xyz/hyperlane-monorepo.git

Дожидаемся пока копирование завершится

screen -S hyperlane
cd hyperlane-monorepo
cd rust
cd main

Запускаем нашу ноду

cargo run --release --bin validator -- \
    --db ./hyperlane_db_validator_base\
    --originChainName base\
    --checkpointSyncer.type localStorage \
    --checkpointSyncer.path $VALIDATOR_SIGNATURES_DIR \
    --validator.key "0xНАШПРИВАТНЫЙ КЛЮЧ"

"0xНАШПРИВАТНЫЙ КЛЮЧ" обязательно в начале должно быть 0x и без кавычек ""

Если все сделано верно спустя 30 минут пойдут вот такие логи

ЕСЛИ ЛОГИ С ОЖИДАНИЕМ ПЕРВОЙ ТРАНЗАКЦИИ БОЛЬШЕ НЕСКОЛЬКИХ ЧАСОВ ТО НЕОБХОДИМО ПЕРЕЗАПУСТИТЬ НОДУ!!!!
Останавливаем логи ctrc+c и выходим из сессии ctrl+a+d

screen -S hyperlane -p 0 -X quit

Далее запускаем заново
начиная с команды

screen -S hyperlane

Далее по гайду

После успешного запуска можно выводить оставшиеся средства с кошелька оставляя 2-3$

ДОП команды по управлению скрин сессиями

screen -ls список активных скринов

screen -r sessionname подключиться в скрину

screen -S "name session" придумать название сессии

screen -S sessionname -p 0 -X quit удалить сессию