December 29, 2022

Taiko - гайд по розгортанню контракту

Linux

Конектимось до серверу через термінал PuTTy або MobaXterm.

Підготовка до роботи

Для початку оновимо пакети

sudo apt update && sudo apt upgrade

А також встановимо git

apt install git

Тепер потрібно встановити Foundry

Загружаємо пакети

curl -L https://foundry.paradigm.xyz | bash

Запускаємо Foundry

foundryup

Встановлюємо Rust

curl  https://sh.rustup.rs  -sSf | sh

Розгортання контракту Taiko

Створюємо проект

forge init hello_foundry && cd hello_foundry

Розгортаємо контракт з вашого проекту, що знаходиться за адресою src/Counter.sol. Замініть <YOUR_PRIVATE_KEY> на приватний ключ свого гаманця на якому є трохи ETH на Taiko A1, це потрібно для сплати комісії за розгортання контракту. (думаю найкраще використати гаманець яким ви взаємодіяли в тестнеті)

forge create --legacy --rpc-url https://l2rpc.a1.taiko.xyz --private-key <YOUR_PRIVATE_KEY> src/Counter.sol:Counter

Після цього дочекайтесь поки контракт розгорнеться, в терміналі з'явиться адреса вашого гаманця, гаманця з яким ви взаємодіяли а також хеш транзакції.

Перевірити, чи був розгорнутий контракт можна тут: https://l2explorer.a1.taiko.xyz/


Гайд по встановленню ноди

Ubuntu

Підготовка: спочатку потрібно встановити Docker. В цьому гайді я працюю з Ubuntu 22.04 (інструкцію для встановлення на інші серверні чи десктопні ОС можна знайти на офіційному сайті Docker).

Перед тим, як вперше встановити Docker Engine на нову хост-машину, необхідно налаштувати репозиторій Docker. Після цього ви зможете встановлювати та оновлювати Docker з репозиторію.

Налаштування репозиторію

1. Оновлення індексу пакетів apt та встановлення пакетів, які дозволять apt використовувати репозиторій через HTTPS:

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

2. Додавання офіційного GPG-ключа 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

3. Налаштування репозиторію:

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

Встановлення Docker Engine

1. Оновлення індексу apt пакету

sudo apt-get update

2. Встановлення Docker Engine, containerd та Docker Compose.

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

3. Переконайтеся, що установка Docker Engine пройшла успішно, запустивши образ hello-world:

sudo docker run hello-world
Ця команда завантажує тестовий образ і запускає його в контейнері. Після запуску контейнер виводить повідомлення з підтвердженням і завершує роботу.

Тепер переходимо до встановлення самої ноди. Офіційний гайд англійською можна переглянути тут

Встановлення ноди Taiko

Клонуємо репозиторій

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

Налаштування ноди:

копіюємо .env.sample у .env

cp .env.sample .env

Щоб запустити ваш ноду як пропонент, налаштуйте необов'язкові змінні середовища у файлі .env . Відкриваємо файл (можна через MobaXterm) і редагуємо наступні рядки

ENABLE_PROPOSER=true

L1_PROPOSER_PRIVATE_KEY=приватний ключ гаманця

L2_SUGGESTED_FEE_RECIPIENT=адреса гаманця (починається з 0x...)

Запуск ноди

docker compose up

Якщо хочете запустити ноду у фоновому режимі додайте приставку -d

docker compose up -d

При першому запуску нода буде синхронізуватися від генезису до поточного блоку, що може зайняти деякий час. Ви можете відстежувати цей прогрес за допомогою логів або на локальній панелі інструментів grafana, а також бачити останній статус ланцюжка L2 в Taiko Alpha-1 L2 block explorer.

В логах може видавати помилку failed to propose transactions: execution reverted: L1:tooMany - це нормально

Корисні команди:

Перевірити логи

docker compose logs -f

Зупинити ноду

docker compose down

Ця команда вимикає ноду, але зберігає всі томи, тому наступного разу, коли ви перезапустите ноду, їй не потрібно буде знову синхронізуватися з нуля.

Видалення ноди

docker compose down -v
rm -f .env

На цьому все! Дякую за увагу.

Корисні посилання:

Офіційний сайт | Twitter | Discord | GitHub | Reddit