Установка Ноды 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. Если вы подселяете ноду, желательно создать нового пользователя. Проверить не будет ли конфликта по портам.
Минимальные требования:
• Процессор (CPU): 4 ядер и выше
• Оперативная память (RAM): 16 GB и больше
• Хранилище (Память): 1000 GB SSD ( SATA или NVMe ) и больше, для полной синхронизированной ноды.
Не забываем сохранить IP и пароль для доступа к серверу! Более опытные могут привязать SSH ключ.
Все эти данные вставляем в MobaXterm (бесплатного фукционала хватит с головой).
- Завести аккаунт на alchemy.com
- Создать там приложение:
- Если нет, установить metamask
- Создать кошелек и сохранить его приватный ключ
- sepolia-faucet.pk910.de
- faucet-sepolia.rockx.com
- sepoliafaucet.com (я использовал этот)
- infura.io/faucet/sepolia
- faucet.quicknode.com/ethereum/sepolia
- coinbase.com/faucets/ethereum-sepolia-faucet
После того как подключились переходим к установке:
sudo apt-get update
sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
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 , чтобы выйти. Данные сохранены.
1. Запустить ноду без токенов TTKO, но вы будете только в роли prover. Сможете получить токены и стать proposer.
Можно обойтись и первым пунктом) и перейти сразу к запуску ТЫК
2. Это сразу стать и тем и тем, но нужны токены ТТКО. Если у вас их нет, а у меня их не было. Можно попросить у сообщества в discord.
Я расскажу как я вышел из этой ситуации: Сначала я вычислил с каким кол-вом токенов все запускают ноду. Это примерно 50 токенов, что люди получали за прошлые тесты. Потом поискав инфу сколько минимально нужно, я выяснил, что это 5-10 токенов. Решил что буду искать с запасом. Около 15)
У них на сайт есть ссылка на swap и на мост. После изучения я выработал для себя такую стратегию: Нахожу больше тестовых ETH в сети sepolia (90-100), через мост перегоняю их в сеть Taiko, там покупаю токены ТТКО, их через тот же мост перегоняю в sepolia. На все ушло пару часов, в основном из-за медленной работы моста и 25 USDC для покупки ETH в сети sepolia.
Незабываем в список монет добавить ТТКО.
Test Taiko Token (TTKO) 0xE52952B8063d0AE6Bd35E894866d8148976ce645
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. Что я и опишу ниже:
Минимальные требования:
• Процессор (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
Вставляем наш кошелек из пункта и дальше жмем 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 compose down && docker compose up -d
И проверяем скорость синхронизации ноды. Скорость ловли блоков.
https://mirror.xyz/labs.taiko.eth
https://www.reddit.com/r/taiko_xyz