February 11

Unichain mainnet установка ноды на VPS ubuntu 22

Покупаем VPS (минимальные требования)
6 ядер СPU
10 GB of RAM
100+ Mb/s internet
200 GB of free storage
я предпочитаю на xorek.cloud

Докупаем до 200 GB, что составить 1 129.00 РУБ/МЕС.

Устанавливаем ноду

Подключаемся на арендованный сервер через root+пароль

sudo apt update && sudo apt upgrade -y
sudo apt install nano
sudo apt install screen 
sudo apt install docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
git clone https://github.com/Uniswap/unichain-node
cd unichain-node
nano docker-compose.yml

редактируем yml файл удаляем символ # на против строк .env.mainnet и выравниваем отступы

CTRL+O -> Enter -> CTR+X

запускаем ноду

docker-compose up -d
curl -d '{"id":1,"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false]}' \
  -H "Content-Type: application/json" http://localhost:8545

Видим вот такую историю значит все прошло успешно

Проверяем логи

docker logs -f unichain-node-execution-client-1

ЖДЕМ 5-10 мин. Следующий шаг — это проверка статуса синхронизации.

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' \
-H "Content-Type: application/json" http://localhost:8545

Если результат выглядит как:

{"jsonrpc":"2.0","id":1,"result":false}

Это означает, что синхронизация завершена и ваша нода синхронизирована с сетью.

Если видим блоки с числами, например:

{"jsonrpc":"2.0","id":1,"result":{"currentBlock":"0x123456","highestBlock":"0x123567","startingBlock":"0x123000"}}

Это значит, что синхронизация ещё в процессе, и блоки всё ещё загружаются, все хорошо

Если видим currentBlock":"0x0","highestBlock":"0x0","startingBlock":"0x0 значит нода не синхронизируется

ИСПРАВЛЯЕМ ОШИБКУ СИНХРОНИЗАЦИИ

cd unichain-node
docker-compose down
nano docker-compose.yml

Редактируем image заменяя Docker-образ на v1.11.1-rc.1

CTRL+O -> Enter -> CTR+X

запускаем ноду

docker-compose up -d
curl -d '{"id":1,"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false]}' \
  -H "Content-Type: application/json" http://localhost:8545

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

cat geth-data/geth/nodekey

ВОССТАНОВЛЕНИЕ НОДЫ UNICHAIN

ВНИМАНИЕ!!! Этот раздел нужен тем кто держал ноду в testnet и хочет запустить ноду в mainnet на старом приватном ключе

docker-compose down
nano geth-data/geth/nodekey

удаляем приватный ключ заменяя его на нужный вам

CTRL+O -> Enter -> CTR+X

запускаем ноду

docker-compose up -d
curl -d '{"id":1,"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false]}' \
  -H "Content-Type: application/json" http://localhost:8545

ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ

Останавливаем ноду если надо

docker-compose down

Перезапускаем ноду

docker-compose down
docker-compose up -d

Удаляем ноду

cd unichain-node
docker-compose down
sudo rm -r unichain-node

docker-compose logs -f op-node
docker-compose logs -f execution-client