Приветствую, нодеры! В этом руководстве будет разобрана установка ноды 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. Гайд будет дополняться и обновляться! Остаемся на связи ;)
