May 1, 2025

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

Drosera - займається захистом і усуненням вразливостей на різні екосистеми, а також пом'якшенням наслідків атак на криптопроєкти.

Підготовка

  • Підключаємося на орендований сервер через root
  • Вводимо команду
 sudo apt-get update && sudo apt-get upgrade -y
sudo apt install curl ufw iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli libgbm1 pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev  -y
  • Встановлюємо docker
sudo apt update -y && sudo apt upgrade -y
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

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 update -y && sudo apt upgrade -y

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

# Test Docker
sudo docker run hello-world

Якщо бачите Hello from Docker! тоді все ок

Trap

1) Drosera CLI:

curl -L https://app.drosera.io/install | bash
source /root/.bashrc
droseraup

2) Foundry CLI:

curl -L https://foundry.paradigm.xyz | bash
source /root/.bashrc
foundryup

3) Bun:

curl -fsSL https://bun.sh/install | bash
source /root/.bashrc

Розміщення контракту і Trap

  • Створюємо директорію
mkdir my-drosera-trap
cd my-drosera-trap
  • ЗмінюємоGithub_Email & Github_Username на свої: Якщо немає Github то зареєструйтеся - тиць
git config --global user.email "Github_Email"
git config --global user.name "Github_Username"
  • Створюємо Trap:
forge init -t drosera-network/trap-foundry-template
  • Компілюємо Trap, на Warnings у логах увагу не звертаємо і йдемо далі
curl -fsSL https://bun.sh/install | bash
bun install
source $HOME/.bashrc
forge build
  • Йдемо в кран гугла і запитуємо Holesky ETH на гаманець, який будемо використовувати для ноди. Так само є POW кран.
DROSERA_PRIVATE_KEY=ВАШ_ПРИВАТНИК drosera apply
  • Коли попросять підтвердження пишемо ofc і тиснемо enter. Якщо команда довгий час не виконується 1-2 хв, то перезапустіть її ще раз, доки не отримаєте таке:

Перевіряємо Trap

  • Підключаємо наш гаманець на сайті
  • Підключаємо гаманець на який отримували токени (гаманець ноди)
  • Натискаємо на Traps Owned для перегляду наших Traps
  • Клікаємо на нашу Trap, щоб її відкрити. Далі натискаємо Send Bloom Boost і закидаємо Holesky ETH у неї: (я закидаю 0.5 Holesky ETH )
  • Ось бонуси залежaть від балансу (я закидаю 0.5 Holesky ETH )
  • Водимо команду та отримуємо блоки
drosera dryrun

Встановлення та налаштування Оператора

  • Додаємо Оператора в білий список

Для оператора ви можете використовувати той самий гаманець, що й раніше для ноди, або використовувати інший.

  • Відкриваємо файл
nano drosera.toml
  • Замінюємо
private = true
whitelist = []

на

private_trap = true
whitelist = ["Operator_Address"]
  • Замінюємо Operator_Address на публічну адресу вашого гаманця, закриваємо файл CTRL+X, вводимо Y для збереження і enter

2) Обновляем Trap конфигурацию:

DROSERA_PRIVATE_KEY=ВАШ_ПРИВАТНИК drosera apply

Коли попросять підтвердження пишемо ofc і тиснемо enter. Після очікування відправлення транзакції повертаємося в Дашборд на сторінку нашого Trap і бачимо, що з'явився значок Private

Встановлення CLI Оператора

  • Переходимо в кореневу папку
cd ~

вставляємо і виконуємо:

# Download
curl -LO https://github.com/drosera-network/releases/releases/download/v1.17.2/drosera-operator-v1.17.2-x86_64-unknown-linux-gnu.tar.gz

# Install
tar -xvf drosera-operator-v1.17.2-x86_64-unknown-linux-gnu.tar.gz
  • Виконуємо перевірку, що CLI працює:

покаже версію

./drosera-operator --version
  • вводимо
sudo cp drosera-operator /usr/bin
  • перевіримо чи працює оператор, має показати список команд оператора:
drosera-operator
  • Загружаємо образ для Docker'а
docker pull ghcr.io/drosera-network/drosera-operator:latest
  • Реєструємо Оператора

Міняємо ВАШ_ПРИВАТНИК на приватний ключ гаманця для оператора, той самий, що вказували вище в гайді під час додавання оператора в білий список.

drosera-operator register --eth-rpc-url https://ethereum-holesky-rpc.publicnode.com --eth-private-key ВАШ_ПРИВАТНИК

Отримаємо повідомлення в логах про реєстрацію Оператора - Operator registered.

  • Відкриваємо порти (якщо потрібно)
  • ОБЕРЕЖНО, якщо у вас на сервері ще щось є фаєрвол буде блокувати інші проекти, використовуйте тільки якщо у вас чистий сервер і ви не плануєте туди нічого лишнього встановлювати
# Enable firewall
sudo ufw allow ssh
sudo ufw allow 22
sudo ufw enable

# Allow Drosera ports
sudo ufw allow 31313/tcp
sudo ufw allow 31314/tcp

Встановлення та запуск оператора

  • Я буду встановлювати через Docker тому, що так зручніше
git clone https://github.com/0xmoei/Drosera-Network
cd Drosera-Network
cp .env.example .env

Редагувати .envфайл:

nano .env
  • Замінити your_evm_private_keyтаyour_vps_public_ip

ETH_PRIVATE_KEY на приватний ключ Оператора

VPS_IP на IP вашого vps сервера

  • Щоб зберегти: CTRL+ X, Y& ENTER.
  • Є можливість редагувати замінити порти та rpc (якщо потрібно) docker-compose.yamlфайл:
nano docker-compose.yaml
docker compose up -d
  • Перевірити логи
docker logs -f drosera-node
  • Далі переходим в Дашборд

Натискаємо в Opti in для конекту вашого оператора до Trap та підтверджуємо транзакцію в гаманці

Після цього у нас у дашборді мають почати йти блоки

  • Логи виглядають так
Ви можете побачити безліч ERROR, але команда в діскорді заявляє, що це окей для даної стадії тестнету, та в подальшому вирішать дану проблему

Додаткові команди:

# Зупинити вузол
cd Drosera-Network
docker compose down -v

# Перезапустити вузол 
cd Drosera-Network
docker restart drosera-node

# Переглянути логи
docker logs -f drosera-node
  • Вітаю ви запустили вузол!

Оновлення Trap

cd $home && cd my-drosera-trap && nano drosera.toml
  • Оновлюємо Drosera CLI
curl -L https://app.drosera.io/install | bash

source /root/.bashrc

droseraup
  • Повторно подайте заявку на оновлення конфігурацій
DROSERA_PRIVATE_KEY=ВАШ_ПРИВАТНИК drosera apply 

Оновлення оператора

  • Зупиняємо Docker
cd && cd Drosera-Network && docker-compose down
  • Оновлюємо командний рядок оператора Drosera
curl -L https://foundry.paradigm.xyz | bash
source /root/.bashrc
foundryup
  • Отримуємо останній образ Docker
docker pull ghcr.io/drosera-network/drosera-operator:latest
  • Перезавантажуємо вузол, щоб відобразити останні зміни
docker-compose up -d
  • Після цього маєте побачити зелені блоки

Заміна ethereum_rpc

  • Якщо у вас такі логи і тільки червоні блоки
cd $home && cd my-drosera-trap && nano drosera.toml
  • Змінити попередній ethereum_rpc на новий, наприклад на
https://holesky.drpc.org
  • Оновлюємо Drosera CLI
curl -L https://app.drosera.io/install | bash

source /root/.bashrc

droseraup
  • Повторно подайте заявку на оновлення конфігурацій
DROSERA_PRIVATE_KEY=ВАШ_ПРИВАТНИК drosera apply 

Вирішення проблем з пам'яттю

Помітив, що сильно забивається пам’ять через логування — у мене нода важила понад 200 GB, що явно ненормально, вирішення даної проблеми описав нище.
  • Зупиняємо Docker
cd && cd Drosera-Network && docker-compose down
  • Редагуємо docker-compose.yaml файл :
nano docker-compose.yaml
  • Після restart втсавляємо такий блок
    logging:
     driver: "json-file"
     options:
       max-size: "1m"
       max-file: "1"
  • Щоб зберегти: CTRL+ X, Y& ENTER.
  • Запуск оператора
docker compose up -d
  • Перевірити логи
docker logs -f drosera-node
  • За всіма апдейтами слідкуйте в моєму телеграм каналі

Мій телеграм канал - https://t.me/+MhR1Y8cXq_5iYmM6

По всім запитанням - https://t.me/sasha_postyt

Лям на крипті...