Гайд по установке ноды Drosera Network
📋 Требования к серверу:
Внимание у хостера Play2go для подписчиков канала действует промокод SNGDAO он дает бонус к сумме пополнения +5%
Подойдет сервер от 280₽ / месяц, например LC-2
В этом гайде, установим ноду Drosera для участия в теснете:
🧩 Подготовка:
1) Как обычно обновляем все пакеты на сервере, перед установкой чего-то нового
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
3) Настройка докера скопируйте и запустите эту команду целиком:
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!
This message shows that your installation appears to be working correctly.
4) Для работы нам нужен будет аккаунт на Github. Если у вас его нет, регистрируемся, если есть идем дальше.
🚀 Установка Trap
curl -L https://app.drosera.io/install | bash
source /root/.bashrc
droseraup
curl -L https://foundry.paradigm.xyz | bash
source /root/.bashrc
foundryup
curl -fsSL https://bun.sh/install | bash
Размещение контракта и Trap
1) Создаем и переходим в рабочую папку:
mkdir my-drosera-trap
cd my-drosera-trap
2) Заменяем Github_Email & Github_Usernameна свои и выполняем:
git config --global user.email "Github_Email" git config --global user.name "Github_Username"
forge init -t drosera-network/trap-foundry-template
4) Компилируем Trap, на Warnings в логах внимание не обращаем и идем дальше
curl -fsSL https://bun.sh/install | bash bun install
source $HOME/.bashrc
forge build
5) Редактируем файл с настройками:
cd ~/my-drosera-trap nano drosera.toml
Идем в кран гугла и запрашиваем Holesky ETH на кошелек который будем использовать для ноды. Так же есть POW кран.
DROSERA_PRIVATE_KEY=ВАШ_ПРИВАТНИК drosera apply
Когда попросят подтверждение пишем ofc и жмем enter. После небольшого ожидания должны получить такое:
Проверяем Trap в Дашборде:
1) Подключаем наш кошелек на сайте https://app.drosera.io/
2) Нажимаем на Traps Owned для просмотра наших Traps
3) Кликаем на нашу Trap, чтобы её открыть. Далее нажимаем Send Bloom Boost и закидываем Holesky ETH в неё:
Вот бонусы в зависимости от баланса
drosera dryrun
Установка и настройка Оператора
1)Добавляем Оператора в белый список
Для оператора вы можете использовать тот же кошелек, что и ранее для ноды или использовать другой.
nano drosera.toml
whitelist = ["Operator_Address"]
Заменяем Operator_Address на публичный адрес вашего кошелька закрываем файл CTRL+X вводим Y для сохранения и enter
2) Обновляем Trap конфигурацию:
DROSERA_PRIVATE_KEY=ВАШ_ПРИВАТНИК drosera apply
Когда попросят подтверждение пишем ofc и жмем enter. После ожидания отправки транзакции возвращаемся в Дашбоард https://app.drosera.io/ на страницу нашего Trap и видим, что появился значок Private
2) Настройка оператора
cd ~
вставляем целиком и выполняем:
# Download curl -LO https://github.com/drosera-network/releases/releases/download/v1.19.0/drosera-operator-v1.19.0-x86_64-unknown-linux-gnu.tar.gz # Install tar -xvf drosera-operator-v1.19.0-x86_64-unknown-linux-gnu.tar.gz
2) Выполняем проверку, что CLI работает:
./drosera-operator --version
sudo cp drosera-operator /usr/bin
проверим работает ли оператор, должно показать список команд оператора:
drosera-operator
3) Загружаем образ для Docker'а
# Optional: we don't install using docker docker pull ghcr.io/drosera-network/drosera-operator:latest
4) Регистрируем Оператора
Меняем ВАШ_ПРИВАТНИК на приватный ключ кошелька для оператора, тот же что указывали выше в гайде при добавлении оператора в белый список
drosera-operator register --eth-rpc-url https://ethereum-holesky-rpc.publicnode.com --eth-private-key ВАШ_ПРИВАТНИК
Получим сообщение в логах о регистрации Оператора - Operator registered.
5) Создаем systemd для Оператора
После того как поменяли данные, вставляем целиком и запускаем:
sudo tee /etc/systemd/system/drosera.service > /dev/null <<EOF
[Unit]
Description=drosera node service
After=network-online.target
[Service]
User=$USER
Restart=always
RestartSec=15
LimitNOFILE=65535
ExecStart=$(which drosera-operator) node --db-file-path $HOME/.drosera.db --network-p2p-port 31313 --server-port 31314 \
--eth-rpc-url https://ethereum-holesky-rpc.publicnode.com \
--eth-backup-rpc-url https://1rpc.io/holesky \
--drosera-address 0xea08f7d533C2b9A62F40D5326214f39a8E3A32F8 \
--eth-private-key ВАШ_ПРИВАТНИК \
--listen-address 0.0.0.0 \
--network-external-p2p-address VPS_IP \
--disable-dnr-confirmation true
[Install]
WantedBy=multi-user.target
EOF6) Открываем порты:
Вставляем целиком и когда попросит подтвердить вводим Y
# 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
7) Запускаем Оператора
Вставляем целиком и запускаем:
# reload systemd sudo systemctl daemon-reload sudo systemctl enable drosera # start systemd sudo systemctl start drosera
8) Переходим в Дашборад
Нажимаем в Opti in для коннекта вашего оператора к Trap
После этого у нас в дашборде должны начать идти блоки
Полезные команды:
journalctl -u drosera.service -f
sudo systemctl stop drosera
sudo systemctl restart drosera
Как изменить RPC:
1️⃣ Останавливаем ноду: sudo systemctl stop drosera
2️⃣ Меняем RPC: sed -i 's|ethereum_rpc = ".*"|ethereum_rpc = "https://holesky.drpc.org"|' /root/my-drosera-trap/drosera.toml
3️⃣ Запускаем ноду: sudo systemctl restart drosera
Список RPC:
https://holesky.drpc.org
https://endpoints.omniatech.io/v1/eth/holesky/public
https://holesky.gateway.tenderly.co
https://ethereum-holesky-rpc.publicnode.com
https://1rpc.io/holesky
🧬 Обновление ноды(Trap) до актуальной версии
sudo systemctl stop drosera
curl -L https://app.drosera.io/install | bash
source ~/.bashrc
droseraup
sudo systemctl restart drosera
Через несколько минут в дашборде пойдут зеленые блоки
🤖 Как получить роль Cadet
1️⃣ Переходим в папку с дросера
cd my-drosera-trap
nano src/Trap.sol
И вставляем в него следующее, заменяя дискорд_username на свой
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {ITrap} from "drosera-contracts/interfaces/ITrap.sol";
interface IMockResponse {
function isActive() external view returns (bool);
}
contract Trap is ITrap {
// Updated response contract address
address public constant RESPONSE_CONTRACT = 0x25E2CeF36020A736CF8a4D2cAdD2EBE3940F4608;
string constant discordName = "ТУТ_ВАШ_ДИСКОРД";
function collect() external view returns (bytes memory) {
bool active = IMockResponse(RESPONSE_CONTRACT).isActive();
return abi.encode(active, discordName);
}
function shouldRespond(bytes[] calldata data) external pure returns (bool, bytes memory) {
(bool active, string memory name) = abi.decode(data[0], (bool, string));
if (!active || bytes(name).length == 0) {
return (false, bytes(""));
}
return (true, abi.encode(name));
}
}Сохраняем файл, через CTRL+X далее Y далее Enter
nano drosera.toml
Меняем там на следующие данные
path="out/Trap.sol/Trap.json"response_contract="0x25E2CeF36020A736CF8a4D2cAdD2EBE3940F4608"response_function="respondWithDiscordName(string)"
Сохраняем файл, через CTRL+X далее Y далее Enter
forge build
drosera dryrun
DROSERA_PRIVATE_KEY=ВАШ_ПРИВАТНИК drosera apply
5) После того как разместили можем проверить её:
source /root/.bashrc cast call 0x25E2CeF36020A736CF8a4D2cAdD2EBE3940F4608 "isResponder(address)(bool)" ТУТ_ВАШ_АДРЕС_КОШЕЛЬКА --rpc-url https://ethereum-hoodi-rpc.publicnode.com
Если получили true значит все хорошо.\
cd cd Drosera-Network
sudo systemctl restart drosera
Ждем пару дней и вам дадут роль Cadet в дискорде.
Миграция в сеть Hoodi
Для начала нам нужно получить от 0.1 ETH в сети Hoodi, это можно сделать тут https://hoodi-faucet.pk910.de/
После этого настраиваем и размещаем нашу новую ловушку:
sudo systemctl stop drosera
2️⃣ Выполняем полностью команду, которая заменит rpc, контракт и тд.:
sed -i \
-e 's|^ethereum_rpc *= *".*"|ethereum_rpc = "https://ethereum-hoodi-rpc.publicnode.com"|' \
-e 's|^drosera_rpc *= *".*"|drosera_rpc = "https://relay.hoodi.drosera.io"|' \
-e 's|^eth_chain_id *= *.*|eth_chain_id = 560048|' \
-e 's|^drosera_address *= *".*"|drosera_address = "0x91cB447BaFc6e0EA0F4Fe056F5a9b1F14bb06e5D"|' \
-e 's|^path *= *".*"|path = "out/HelloWorldTrap.sol/HelloWorldTrap.json"|' \
-e 's|^response_function *= *".*"|response_function = "helloworld(string)"|' \
-e '/^address *= *".*"/d' \
-e 's|^response_contract *= *".*"|response_contract = "0x183D78491555cb69B68d2354F7373cc2632508C7"|' \
~/my-drosera-trap/drosera.tomlАдреса rpc можете указать, тут используются публичные.
DROSERA_PRIVATE_KEY=ВАШ_ПРИВАТНИК drosera apply
4️⃣ Можете перейти по ссылке в дашборд и проверить, что новая ловушка в сети Hoodi размещена:
https://app.drosera.io/?filters=withTrapsOwned&userAddress=ВАШ_КОШЕЛЕК
Обновление и настройка оператора:
droseraup
drosera-operator register \ --eth-rpc-url https://ethereum-hoodi-rpc.publicnode.com \ --eth-private-key ПРИВАТНЫЙ_КЛЮЧ_ОПЕРАТОРА
Если пишет ошибку, то выполните команды из пункта Обновление ноды(Trap) до актуальной версии и попробуйте еще раз.
3️⃣ Добавляем оператора в ловушку:
Идете на https://app.drosera.io/ открываете вашу ловушку и жмете Opt-in и добавляете оператора
4️⃣ Меняем настройки в файле службы для оператора:
sudo sed -i \
-e 's|\(--drosera-address \)[^ ]*|\10x91cB447BaFc6e0EA0F4Fe056F5a9b1F14bb06e5D|g' \
-e 's|\(--eth-rpc-url \)[^ ]*|\1https://ethereum-hoodi-rpc.publicnode.com|g' \
-e 's|\(--eth-backup-rpc-url \)[^ ]*|\1https://rpc.hoodi.ethpandaops.io|g' \
/etc/systemd/system/drosera.serviceАдреса rpc можете указать, тут используются публичные.
sudo systemctl daemon-reload sudo systemctl enable drosera sudo systemctl start drosera
Ждете несколько минут - на странице с ловушкой должны пойти зеленые блоки.