Установка ноды Taiko: Katla, фаза 6

Приветствую, нодеры! В этом руководстве будет разобрана установка ноды Taiko в последней, шестой, фазе тестнета перед выходом в mainnet. Сага длиной в год подходит к концу и нам нужно совершить последний рывок до заслуженных наград!

Подготовка

Требования к железу сохраняются с прошлых фаз - вам вполне хватит 4 ядра и 8 Гб оперативной памяти. По диску с запасом лучше иметь 150 Гб. По ОС выбор наш не меняется также, ставим на старую добрую Ubuntu 22.04 Мы будем ставить ноду в режиме пропозера, как и в прошлых фазах. То есть наша нода будет предлагать новые блоки, но не будет заниматься их валидацией. Основная причина - в этой фазе для валидации блоков требуется процессор с технологией SGX. Она есть только в некоторых процессорах Intel и далеко не у всех провайдеров, а аренда такого сервера может доходить до 20000 рублей в месяц.

В качестве тестовой сети первого уровня был выбран Ethereum Holesky. Довольно странный выбор, мягко говоря, хотя бы потому, что публичные RPC этой сети есть всего у одного провайдера. Cеть Тайко второго уровня называется Katla.

Если у вас свежий сервер и еще нет докера, ставим его из официального репозитория по инструкции ниже. Если уже есть (вместе с compose) -- сразу листайте до шага “Установка”

Вводим последовательность команд. Эти команды обновляют список источников ПО (называемых репозиториями), устанавливает ключ для доступа к репозиторию докера, передает ОС информацию о том, где его скачать. Одна обособленная строка - одна команда.

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings

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

sudo chmod a+r /etc/apt/keyrings/docker.gpg

Эту команду копируем целиком. Символы “\“ в Линукс позволяют вводить команды в несколько строк в одной строке.

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Далее переходим к непосредственно установке:

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

После завершения проверяем, что у нас все работает. Вводим

docker --version

docker compose version

В выводе должна отобразиться версия докера и плагина compose.

Плагин Compose позволяет управлять целым набором контейнеров сразу как одной сущностью с помощью специальных команд и конфигурационных файлов.

Теперь у нас все готово, переходим к установке самой ноды.

Установка

Заряжаем наш кошелек - нужно получить тестовый эфир на транзакции по вызову контракта предложения блоков. Добавляем сеть Holesky, идем на кран, забираем тестовые монеты. Не забываем достать приватник из метамаска через дополнительные настройки - его поставим в конфигурационный файл.

Далее нам нужен RPC провайдер. Пока что проверенно неплохо работает BlockPi, воспользуемся им. Регистрируемся через гугл-аккаунт, создаем свое приложение в сети Ethereum Holesky, открываем его, там будут две ссылки на RPC (https:// и wss:// ). Их мы будем вставлять в конфигурационный файл. Не забудьте поставить галочку “Archive Node“! Без нее не заработает ваша нода тайко.

Команда рекомендует поставить свою эфирную ноду, но она требует больших мощностей и много свободного места на диске. Если у вас есть мощный сервер и гигов 500 свободного места на нем -- для вас гайд будет дополнен ее установкой, можете начать с публичного RPC, затем просто переключиться заменив две строчки в конфиг-файле.

Для работы с нодами используйте отдельные кошельки! Никогда не подставляйте ни в какие конфигурационные файлы приватник кошелька с реальными средствами. Не переживайте за то, что у вас “голый” кошелек для ноды и что разрабы могут “побрить” ваш аккаунт как sybil, любая команда всегда рекомендует использовать голые кошельки.

Подключаемся к нашему серверу и в корневой директории скачиваем файлы Тайко, открываем конфиг для редактирования. Если у вас уже стояла на этом же сервере нода тайко с прошлой фазы, создайте новую папку new-taiko-node (mkdir new-taiko-node) и перейдите в нее (cd new-taiko-node), затем выполняйте команды.

git clone https://github.com/taikoxyz/simple-taiko-node.git

cd simple-taiko-node

cp .env.sample .env 

nano .env


Заполняем нужные параметры:

L1_ENDPOINT_HTTP=<копируем ссылку https:// из вашего приложения в BlockPi, порт не указываем>

L1_ENDPOINT_WS=<копируем ссылку wss:// из вашего приложения в BlockPi, порт не указываем>

ENABLE_PROPOSER=true

L1_PROPOSER_PRIVATE_KEY=<вставляем ваш приватник из метамаска>

BLOCK_PROPOSAL_FEE=50

Значение этого параметра может быть уточнено в гайде в дальнейшем. Это значение газа, которая нода выставит при отправке транзакции с новым блоком в сеть. Если газ в сети поднимется - транзакции не будут проходить. Разработчики, как и в прошлых фазах, рекомендаций не дают по этому параметру.

PROVER_ENDPOINTS=http://taiko-a6-prover.zkpool.io:9876

На момент написания статьи доступен всего один публичный прувер. Как следствие, на всех его не хватает, поэтому пропозов сейчас очень мало у каждого нодера. Когда пруверов станет больше, как в прошлой фазе, их адреса можно будет дописать через запятую. Публичные пруверы появляются тут.

Cохраняем файл комбинацией Ctrl+X, затем Y.

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

docker compose up -d


Дежурное напоминание -- данная команда, как и все остальные связанные с docker compose, работает только в директории simple-taiko-node с файлами ноды

Смотрим логи запуска (не должны сыпаться ошибки, должны идти сообщения об импорте фрагментов цепочки), ждем синхронизации и попыток предложения блоков. Пока многого не ждите - будет 1-2 блока в день, уже хорошо. Не будет и этого - все нормально, ждем новых пруверов. Успешные предложения блоков - отразятся в обозревателе Holesky как транзакция с вашего кошелька вида Propose Block.

docker compose logs -f


Остановка ноды если что-то нужно поменять:

Удаление ноды

docker compose down -v


Всем желаю удачи в этой фазе, вопросы как всегда можно задать в чате канала Investment Hollow. Гайд будет дополняться и обновляться! Остаемся на связи ;)