Ноды (гайды)
July 17, 2023

Как поднять свою RPC в тестовой сети Sepolia

Ну что же. Наши скиллы выходят на новый уровень. И теперь мы не только ставим ноды по гайдам. А уже сможем выполнять более сложные задачи для проектов в рамках тестов) Сегодня я расскажу как нам поднять свою RPC для тестовой сети Sepolia. В целом алгоритм у других тестовых сетей очень похож. Мы часто видим в как крупные валидаторы поднимают свои RPC и иногда делятся с нами. Все это улучшает сеть, работу ноды. Позволяет быстрее синхронизироваться, подтягивать пиры, сиды и иные плюшки.

Так что что же за зверь RPC и для чего он нам нужен?

Вот что нам подсказывает поисковик) RPC — это сокращение от удаленного вызова процедур. Один узел связывается с другим узлом в отношениях запросчик/получатель (или в отношениях клиент/сервер). RPC позволяют разработчикам подключаться к другим сетям. В контексте Web3 каждый блокчейн можно описать как сеть. Таким образом, провайдер RPC разрешит доступ к другим сетям блокчейна, таким как Биткойн, Эфириум, Полигон и т. д.

Хватит теории ГО к практике.

Гайд по настройке RPC Sepolia

Для начало нам нужен сервер.

Минимальные требования:

Ubuntu 20.04 и младше

• Процессор (CPU): 4 ядер и выше
• Оперативная память (RAM): 8 GB и больше
• Хранилище (Память): 700 GB SSD ( SATA или NVMe ) и больше.

Не забываем сохранить IP и пароль для доступа к серверу! Более опытные могут привязать SSH ключ.

Все эти данные вставляем в MobaXterm (бесплатного фукционала хватит с головой).

После того как подключились, переходим к настройке нашего узла.

Ставить будем через 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

Выбираем Sepolia

Выбираем RPC node

Выбираем Prysm

Выбираем Geth

Выбираем YES

Жмем enter

Жмем enter

Жмем enter

Жмем enter

Вставляем наш кошелек из пункта и дальше жмем 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 синхронизируется, высота блоков должна совпасть:

Для удаления Sepolia, требуется перейти в юзера, затем перейти в папку eth-docker и ввести команду:

./ethd terminate

Затем ввести Yes и нажать Enter.

Теперь нам нужно проверить открыли ли мы порты.

https://portscaner.ru/ идем на этот сайт. Вводим IP нашего сервера и порты: 8545 и 8546

Результат:

Если видим, что порты открыты. Значит все настроено верно. Можно переходить следующему пункту.

Если нет, то открываем:

ufw enable 8545
ufw enable 8546

На выходе мы получаем RPC такого вида:

http://IP вашего сервера с RPC:8545

ws://IP вашего сервера с RPC:8546

Для примера, когда ты в alchemy.com создаешь dapp, то получаешь ключи такого же типа как и у нашего узла. Но без ограничения скорости и кол-ва запросов. Вариантов использования очень много. Начиная от тестирования своего децентрализованного приложения, тестированием и обкаткой скриптов, улучшения работы своей ноды.

Пример условно бесплатной RPC (а мы знаем, что этот сыр быстро закончится).

Создать там приложение:

  • Сохранить ключи: