July 2, 2023

Установка Ноды Taiko alpha-3

Для чего ставить ноду Taiko? Уже объявлено, что это оплачиваемый тестнет. Пишут, что насыпят монет TTKO. На всех тестеров выделено 50к USDC. Не густо, но все же)

О проекте (наша обычная рубрика)

Еще один децентрализованный, Ethereum-эквивалент ZK-Rollup. Проект имеет уже в своей сети рабочие инструменты. Да они копии и выглядят так, как продукты из других сетей. Но все же. Taiko уже собрали 22 млн. На борту такие фонды: Sequoia China и Generative Ventures, BAI Capital, GGV Capital, GSR Markets, IOSG Ventures, Kucoin Ventures, Mirana Ventures, OKX Ventures, Skyland Ventures, Token Bay Capital, Yunqi Partners.

В целом как и всегда ставим, верим, ждем, надеемся на профит)

Установка ноды

Чтобы поставить ноду, нам нужен сервер. отлично подойдет Hetzner

Желательно ставить Ноду на отдельный сервер. Все команды выполнять под root. Если вы подселяете ноду, желательно создать нового пользователя. Проверить не будет ли конфликта по портам.

Минимальные требования:

• Ubuntu 20.04 и младше

• Процессор (CPU): 4 ядер и выше
• Оперативная память (RAM): 16 GB и больше
• Хранилище (Память): 1000 GB SSD ( SATA или NVMe ) и больше, для полной синхронизированной ноды.

Не забываем сохранить IP и пароль для доступа к серверу! Более опытные могут привязать SSH ключ.

Все эти данные вставляем в MobaXterm (бесплатного фукционала хватит с головой).

Что еще нужно подготовить?:

  • Завести аккаунт на alchemy.com
  • Создать там приложение:
  • Сохранить ключи:
  • Если нет, установить metamask
  • Создать кошелек и сохранить его приватный ключ
  • Необходимо получить тестовые токены в сети Sepolia

Краны:

После того как подключились переходим к установке:

Обновляемся:

sudo apt-get update

Ставим библиотеки:

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Переходим к установке Docker:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Результат:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
 apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Проверяем верно ли все установлено:

sudo docker run hello-world

Результат:

Установка самой ноды и Dashboard (Dashboard будет не унылый на grafana, кастомный от стороннего разработчика):

git clone https://github.com/wolfderechter/taiko-node-dashboard-docker

Переходим в директорию:

cd taiko-node-dashboard-docker

Копируем файл:

cp .env.sample .env

Открываем этот файл:

nano .env

Необходимо внести изменения в Файл:

  • DISABLE_P2P_SYNC меняем статус false на true
  • L1_ENDPOINT_HTTP вставляем ключ из alchemy.com поле HTTPS
  • L1_ENDPOINT_WS вставляем ключ из alchemy.com поле WEBSOCKETS
  • ENABLE_PROVER меняем статус false на true
  • L1_PROVER_PRIVATE_KEY вставляем приватный ключ вашего кошелька metamask.
  • ENABLE_Proposer меняем статус false на true
  • L1_PROPOSER_PRIVATE_KEY вставляем ваш приватный ключ Metamask
  • L2_SUGGESTED_FEE_RECIPIENT вставляем ваш кошелек metamask.

Методом тыка и подсказке коллег по цеху, я выяснил, что если не менять статусы DISABLE_P2P_SYNC false на true и ENABLE_Proposer false на true, то синхронизация идет быстрее. Замену статуса надо сделать после того как нода полностью синхронизируется.

CTRL+O , жмем Enter , затем CTRL+X , чтобы выйти. Данные сохранены.

А теперь у нас есть 2 пути:

1. Запустить ноду без токенов TTKO, но вы будете только в роли prover. Сможете получить токены и стать proposer.

Можно обойтись и первым пунктом) и перейти сразу к запуску ТЫК

2. Это сразу стать и тем и тем, но нужны токены ТТКО. Если у вас их нет, а у меня их не было. Можно попросить у сообщества в discord.

Я расскажу как я вышел из этой ситуации: Сначала я вычислил с каким кол-вом токенов все запускают ноду. Это примерно 50 токенов, что люди получали за прошлые тесты. Потом поискав инфу сколько минимально нужно, я выяснил, что это 5-10 токенов. Решил что буду искать с запасом. Около 15)

У них на сайт есть ссылка на swap и на мост. После изучения я выработал для себя такую стратегию: Нахожу больше тестовых ETH в сети sepolia (90-100), через мост перегоняю их в сеть Taiko, там покупаю токены ТТКО, их через тот же мост перегоняю в sepolia. На все ушло пару часов, в основном из-за медленной работы моста и 25 USDC для покупки ETH в сети sepolia.

Незабываем в список монет добавить ТТКО.

Sepolia

Test Taiko Token (TTKO) 0xE52952B8063d0AE6Bd35E894866d8148976ce645

Taiko

Test Taiko Token (TTKO) 0x7b1a3117B2b9BE3a3C31e5a097c7F890199666aC

Теперь нам надо задепозитить эти токены через Etherscan

Нажимаем Connect to Web3 и даем апрув

После того как подключились нажимаем 2. depositTaikoToken (0x98f39aba)

и вводим кол-во токенов+8 нулей (В моем случае 15 токенов 1500000000) и нажимаем Write.

Подтверждаем транзакцию:

Как только закончили, можем запустить docker и саму ноду:

docker compose up -d

Проверяем логи и смотрим растут ли блоки:

docker compose logs -f

Дальше нам нужно перейти на страницу dashboard-а:

http://IP вашего сервера:7744/

И сделать настройки dashboard-а:

Дальше просто ждем пока нода синхронизируется (на данный момент около 110 часов на бесплатном RPC):

Возможные ошибки и их решение (раздел будет пополняться):

Если у вас в логах по команде:

docker compose logs -f

Появляется такая чехарда как у меня

То добро пожаловать на борт и нам нужно выполнить ряд манипуляций, команды ниже:

cd taiko-node-dashboard-docker
cd script
chmod +x start-driver.sh
chmod +x start-proposer.sh
chmod +x start-prover-relayer.sh
chmod +x start-zkevm-chain-rpcd.sh
docker compose down && docker compose up -d

После этого по номеру нашего кошелька в https://sepolia.etherscan.io/ проверяем пошли ли блоки:

Для быстрой синхронизации, увеличения шансов ловли блоков, нам нужна своя RPC. Что я и опишу ниже:

Минимальные требования:

Ubuntu 20.04 и младше

• Процессор (CPU): 4 ядер и выше
• Оперативная память (RAM): 8 GB и больше
• Хранилище (Память): 700 GB SSD ( SATA или NVMe ) и больше.

Ставить будем через geth и prysm. Все команды выполняем под root.

sudo groupadd docker

Создаем Юзера:

sudo adduser Имя Юзера

Задаем пароль. Личные данные, просто везде жмем enter (ну или же можете задать данные, я не делал). В конце Y (yes) жмем.

Результат:

sudo usermod -d /home/Имя Юзера Имя Юзера

Пример:

sudo usermod -d /home/repece repece
sudo chown -R repece:repece /home/Имя Юзера

Пример:

sudo chown -R repece:repece /home/repece

Если появляется ответ в виде: no changes или что-то похожее, значит все было создано до этого автоматом. Мы просто перестраховываемся попыткой создать вручную.

Добавляем нашего Юзера в группы:

sudo usermod -aG sudo,adm,docker Имя Юзера

Пример:

sudo usermod -aG sudo,adm,docker repece

Обновляем данные:

sudo newgrp docker

Проверяем группы:

sudo groups

Ответ:

Переходим в нашего Юзера:

sudo -u Имя Юзера -i

Пример:

sudo -u repece -i

Дальше:

git clone https://github.com/eth-educators/eth-docker
cd eth-docker
cp default.env .env
nano .env

Находим поле ARCHIVE_NODE, меняем false на true:

Ctrl+O сохраняем, Ctrl+Х, закрываем файл.

./ethd install

Вводим yes и потом enter На каждом этапе.

Чтобы ethd можно было использовать, нужно из нашего Юзера и вернуться назад:

sudo -u root -i
sudo -u Имя Юзера -i

Пример:

sudo -u repece -i

Результат:

cd eth-docker
./ethd config

Выбираем Sepolia

Выбираем RPC node

Выбираем Prysm

Выбираем Geth

Выбираем YES

Жмем enter

Жмем enter

Жмем enter

Жмем enter

Вставляем наш кошелек из пункта и дальше жмем enter, должна пойти

Запускаем контейнеры:

./ethd up

Результат:

Останавливаем:

./ethd stop
nano geth.yml

Добавляем порты:

  - ${HOST_IP:-}${EL_RPC_PORT}:${EL_RPC_PORT:-8545}/tcp
  - ${HOST_IP:-}${EL_WS_PORT}:${EL_WS_PORT:-8546}/tcp

Ctrl+O сохраняем, Ctrl+Х, закрываем файл.

Запускаем опять контейнеры:

./ethd up

Проверяем Логи:

docker logs -n 10 -f eth-docker-consensus-1
docker logs -n 10 -f eth-docker-execution-1

Ждем пока наше RPC синхронизируется, высота блоков должна совпасть:

Теперь нам нужно проверить открыли ли мы порты.

https://portscaner.ru/ идем на этот сайт. Вводим IP нашего сервера и порты: 8545 и 8546

Результат:

Если видим, что порты открыты. Значит все настроено верно. Можно переходить следующему пункту.

Если нет, то открываем:

ufw enable 8545
ufw enable 8546

Дальше переходим на сервер с нодой Taiko, в необходимую директорию:

cd taiko-node-dashboard-docker

Возвращаемся к этому пункту ТЫК:

  • L1_ENDPOINT_HTTP=http://IP вашего сервера с RPC:8545
  • L1_ENDPOINT_WS=ws://IP вашего сервера с RPC:8546

Перезагружаем Docker:

docker compose down && docker compose up -d

И проверяем скорость синхронизации ноды. Скорость ловли блоков.

Полезные ссылки:

Blog

https://mirror.xyz/labs.taiko.eth

Community forum

https://community.taiko.xyz

Discord

https://discord.gg/taikoxyz

Documentation

https://taiko.xyz/docs

GitHub

https://github.com/taikoxyz

HackMd

https://hackmd.io/@taikolabs

Reddit

https://www.reddit.com/r/taiko_xyz

Twitter

https://twitter.com/taikoxyz

Website

https://taiko.xyz

Whitepaper

https://taikoxyz.github.io/taiko-mono/taiko-whitepaper.pdf

YouTube

https://www.youtube.com/@taikoxyz