StarkNet гайд по установке
StarkNet — это децентрализованный ZK-Rollup без разрешений. Он работает как сеть L2 над Ethereum. Топ фонды на борту: Paradigm, Sequoia, Three Arrows Capital, Polychain, Alameda Resaerch, Coinbase Ventures, Intel и сам VITALIK BUTERIN.
Нода ОЧЕНЬ нетребовательна, поэтому поставить ее можно будет на очень дешевом сервере или даже фоном на своем ПК.
ИНФА ПО АПДЕЙТУ НОДЫ, КТО СТАВИТ ВПЕРВЫЕ, ПРОПУСТИТЕ ЭТУ ИНФУ
Открываем сервер и по очереди прописываем следующие команды:
git clone --branch v0.1.8-alpha https://github.com/eqlabs/pathfinder.git
PIP_REQUIRE_VIRTUALENV=true pip install -r requirements-dev.txt
cargo build --release --bin pathfinder
(xxxxx - апи кей из алчеми) cargo run --release --bin pathfinder -- --ethereum.url https://eth-mainnet.alchemyapi.io/v2/xxxxxx
Дисклеймер
Авторы гайда — не профессиональные нодоводы, поэтому, если возникают технические трудности, то лучше спросить о них в дискорде проекта.
Тем не менее, на момент написания гайда с теми настройками и очередностью команд все работало прекрасно.
Шаг 1. Создание и настройка сервера
Для начала нам потребуется сервер Ubuntu 20.04 как в старой рекламе Эльдорадо — 2 ядра 2 гига (буквально) и 100 ГБ дискового пространства.
- Покупал на Macloud (вы можете выбрать любой другой сервис), если убрать резервное копирование, то обойдется 10$ в месяц. Вот характеристики наглядно:
- Устанавливаем PuTTY — программа, которая потребуется для подключения к серверу. Скачать с официального сайта можно здесь.
- На сайте, где покупали сервер, берем данные для входа:
- В PuTTY вбиваем IP для входа на сервер в строку Host name (or ip adress) и, ничего больше не меняя, жмем Open
- В открывшейся консоли пишем root, затем жмем enter, сервер запросит пароль.
- Его мы берем на сайте хоста (см. скрин выше), копируем, затем переходим обратно в консоль, жмем правую кнопку мыши (правая кнопка мыши на линуксе заменяет ctrl+v) и нажимаем enter
Шаг 2. Устанавливаем все необходимое
Теперь нам надо будет по очереди прописать несколько команд в консоль.
sudo apt install -y python3-pip
- Установим еще несколько пакетов и инструментов разработки, чтобы обеспечить надежную настройку нашей среды программирования:
sudo apt install -y build-essential libssl-dev libffi-dev python3-dev
sudo apt-get install libgmp-dev
(при выполнении этой команды запросят подтверждение, напишите y и нажмите enter)
sudo apt-get install -y pkg-config
Шаг 3. Установка Rust.
Чтобы все работало также необходимо установить язык программирования Rust и его инструменты.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Когда скрипт остановится и появится выбор, пишем 1 и жмем enter
Должно получиться примерно следующее:
Шаг 4. Клонируем репозиторий с github
Внимание! Со временем будут появляться новые версии, поэтому вместо v0.1.7-alpha, нужно будет прописать что-то другое. Проверить актуальную версию можно здесь.
git clone --branch v0.1.7-alpha https://github.com/eqlabs/pathfinder.git
По итогу у нас должно получиться следующее:
Шаг 5. Создание виртуальной среды
sudo apt install python3.8-venv
upd. Две команды ниже появились после доработки. Без них при закрытии PuTTY нода отключалась.
- Теперь установим программу, которая позволит нам отключаться от сервера, без потери контроля над нодой:
PIP_REQUIRE_VIRTUALENV=true pip install --upgrade pip
PIP_REQUIRE_VIRTUALENV=true pip install -r requirements-dev.txt
- Проверяем что все поставилось верно (пропишите и НИЧЕГО НЕ ТРОГАЙТЕ 20-30 секунд, оно остановится само):
Результат должен быть +- таким:
Шаг 6. Собираем ноду.
Этот шаг дольше остальных. В зависимости от конфигурации системы, он может занимать до 30 минут.
cargo build --release --bin pathfinder
Шаг 7. Создаем аккаунт Alchemy
Если вы хотите запустить ноду на Layer 2 (StarkNet), вам также необходимо знать, что происходит на Layer 1 (Ethereum), поскольку наша нода будет вычислять состояние StarkNet и подтверждать его на L1.
Таким образом, нам необходимо получить доступ к полному архиву ноды L1. Вы можете сделать это, подключившись к своему узлу L1 или, если у вас нет узла, создайте учетную запись у стороннего поставщика API, например Alchemy или Infura (мы выберем первое)
- Переходим на Alchemy.com и регистрируемся.
- В Dashboard нажмите Create App
cargo run --release --bin pathfinder -- --ethereum.url https://eth-mainnet.alchemyapi.io/v2/xxxxxx
Мы устанавливали Mainnet, и на момент написания гайда там было ~1400 блоков, а новый блок появлялся раз в час.
- Теперь выходим из удаленного рабочего стола комбинацией клавиш CTRL+A, потом жмем d (обязательно на английской раскладке, иначе не сработает)
- Чтобы зайти обратно на этот рабочий стол и убедиться что нода все еще работает и синхронизируется даже после закрытия PuTTY, можно прописать команду:
Только не забудте потом обратно выйти через CTRL+A и d
- Если все работает правильно, то на сайте Alchemy в разделе Apps должна начать появляться статистика вроде этой
После полной синхронизации, нам останется только изредка поглядывать, что ничего не отлетело и нода продолжает работать. Новые ошибки, а также дополнительные команды, которые нужно прописать, когда разработчики обновляют сеть, можно будет узнать в дискорде проекта.
Шаг 8. Хвастаемся в дискорде проекта
На момент написания гайда, наград за тестнеты/ноды не объявляли. Более того, даже уверяют, что их не будет. Но, возможно, это обман, чтобы выкинуть всех абузеров и флиперов. Так что делаем следующее:
- Вступаем в Дискорд Starknet
- В ветке #🛰-pathfinder-full-node делаем мини отчет о проделанной работе. Если что-то не получается вопросы можно задать там же
- Можно, например, выложить пост в твиттер с какими-нибудь скринами, о том, что вы установили ноду.
- Занимаемся другими активностями по StarkNet.