Hello World! Возвращаемся к нашей любимой ноде Taiko. А вы думали, всё? Нет, не всё! У Тайко каждая фаза последняя, как концерты Аллы Пугачевой. Давайте попотеем еще немного.

Подготовка

В части требований к железу и ОС ничего не меняется относительно прошлых фаз. Игрового сервера 4 ядра 8 гигов 150 Гб SSD вам по прежнему хватит, ОС Ubuntu 22.04. Cтавим, по прежнему, в режиме предложения блоков (Proposer). Сетью первого уровня для Тайко остается Holesky. Так что если вы ставили 6ую фазу -- считайте вы готовы.

Если у вас свежий сервер и еще нет докера, ставим его из официального репозитория по инструкции ниже. Если уже есть (вместе с 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 (Не забудьте поставить галочку “Archive Node“!), открываем его, там будут две ссылки на RPC (https:// и wss:// ), их можно скопировать если нажать на кнопку https под названием вашего приложения в секции API Key List (см. скриншот ниже). Их мы будем вставлять в конфигурационный файл.

Если вы уже создавали приложение в 6ой фазе у BlockPi, новое создавать не нужно.

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

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

L1_BEACON_HTTP=http://unstable.holesky.beacon-api.nimbus.team

ENABLE_PROPOSER=true

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

L2_SUGGESTED_FEE_RECIPIENT=<вставляем ваш адрес метамаск>

BLOCK_PROPOSAL_FEE=100

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

PROVER_ENDPOINTS=http://taiko-a7-prover.zkpool.io,http://198.244.201.79:9876,http://146.59.55.26:9876,http://kenz-prover.hekla.kzvn.xyz:9876,http://hekla.stonemac65.xyz:9876,http://148.113.9.122:9876,http://taiko.web3crypt.net:9876,http://148.113.17.127:9876,http://hekla.prover.taiko.coinblitz.pro:9876,https://prover-hekla.taiko.tools,https://prover2-hekla.taiko.tools,http://taiko-testnet.m51nodes.xyz:9876,http://148.113.16.26:9876,http://51.161.118.103:9876

(Cписок публичных пруверов найден на просторах дискорда проекта)

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

Если у вас на этом сервере стояла предыдущая версия Тайко - нужно снести все старые контейнеры с удалением их томов. Для этого перейдите в ту папку, откуда запускали прошлую ноду и введите docker compose down -v

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

docker compose --profile proposer up -d

Обратите внимание! Теперь запускаем compose проект с указанием докер-профиля! Как следствие, все другие действия над проектом (т.е. набором наших контейнеров) надо также выполнять с указанием профиля.

Cмотрим логи

docker compose --profile proposer logs -f

Должна начаться синхронизация, не должно быть кучи ошибок. Логи должны как обычно лететь быстро и состоять в основном из INFO-сообщений. Вот пример строчки об успешном ходе синхронизации:

INFO [05-04|12:53:41.443] Syncing: chain download in progress synced=68.08% chain=725.85MiB headers=85386@23.38MiB bodies=58130@594.19MiB receipts=58130@108.28MiB eta=10m56.785s

После ее завершения, заглядываем в обозреватель Holesky, вбиваем адрес нашего кошелька и ждем транзакций вида Propose Block. Собираем их побольше, не забываем пополнять кошелек эфиром (так как на каждый пропоз мы тратим газ) по необходимости.

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

docker compose --profile proposer down

Рестарт ноды

docker compose --profile proposer down && docker compose --profile proposer up -d

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

docker compose --profile proposer down -v

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

Mirror文章信息

Mirror原文:查看原文

作者地址:0xB3bBb691838f8eE1AB55108A241496432D660D94

内容类型:application/json

应用名称:MirrorXYZ

内容摘要:_4OO5bMuD3BMYp9WC7t3eBqPUHQua17F82_39KkWZnc

原始内容摘要:YSlNLF-YZ5MZjDmKbDtg-qlZukINXy0r0VKF3vjdSgU

区块高度:1418029

发布时间:2024-05-05 09:56:55