April 16

Drosera node guide

Min requirements: 2CPU/4GB_RAM/20GB_disk | ~3-4$/mo

Preparation

Server setup:

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 setup:

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

sudo docker run hello-world

If the installation is successful, you will see:
Hello from Docker! This message shows that your installation appears to be working correctly.

Trap Setup

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

Deploy Trap

1) Create folder:

mkdir my-drosera-trap
cd my-drosera-trap

2) Change github_Email and github_Username to your's github account data

git config --global user.email "github_Email"
git config --global user.name "github_Username"

3) Create Trap:

forge init -t drosera-network/trap-foundry-template

4) Compile Trap

curl -fsSL https://bun.sh/install | bash
bun install
source $HOME/.bashrc
forge build

5) Place a Trap:

You'll need EVM wallet & some holesky ETH (0.2 - 2+). Change private_key to your private key with holesky ETH balance.

DROSERA_PRIVATE_KEY=private_key drosera apply

Type ofc & press enter. After loading you'll see your Trap address.

Check your Trap in dashboard:

1) Connect wallet https://app.drosera.io/

2) Press "Traps Owned"

3) You'll see a Trap you have deployed in the previous steps, tap on it to open. Press "Send Bloom Boost" and deposit Holesky ETH.

Deposit 2+ ETH to have max booster.

4) Get blocks:

drosera dryrun


Installing and configuring the Operator

1) Open config & WL the operator

nano drosera.toml

Delete 2 lines at the end ( "private = true" & " whitelist =...") Paste new lines to the very bottom of the file. ! Change Operator_Address to your wallet address and VPS_PUBLIC_IP to your server IP.

private_trap = true
whitelist = ["Operator_Address"]
[network]
external_p2p_address = "VPS_PUBLIC_IP"

Press CTRL+X then Y then enter.

2) Update Trap config:

DROSERA_PRIVATE_KEY=private_key drosera apply

Wait & type ofc then enter. Open dashboard https://app.drosera.io/ , open your Trap and you'll see a locker that indicates that your Trap is private now.

CLI operator installation

1) Open home directory:

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) Download Docker image

# Optional: we don't install using docker
docker pull ghcr.io/drosera-network/drosera-operator:latest

3) Register operator

Change private_key to your wallet private key that you used above and whitelisted.

drosera-operator register --eth-rpc-url https://ethereum-holesky-rpc.publicnode.com --eth-private-key private_key


4) Create systemd

Cope & paste the code, don't forget to change:

  • Change private_key to your wallet private key that you used above and whitelisted.
  • SERVER_IP to your server IP
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 private_key \
    --listen-address 0.0.0.0 \
    --network-external-p2p-address SERVER_IP \
    --disable-dnr-confirmation true

[Install]
WantedBy=multi-user.target
EOF

5) Open ports & enable firewall:

Copy paste, press Y in case the system asks to confirm

sudo ufw allow ssh
sudo ufw allow 22
sudo ufw enable
sudo ufw allow 31313/tcp
sudo ufw allow 31314/tcp

6) Start operator

sudo systemctl daemon-reload
sudo systemctl enable drosera
sudo systemctl start drosera

8) Open dashboard

Open your trap and press "Opti in" to connect your operator to your Trap. Confirm tx.

After some seconds you'll see blocks. Here's how correctly working node looks like:

Other commands:

Check logs:

journalctl -u drosera.service -f

Stop the node:

sudo systemctl stop drosera

Run the node:

sudo systemctl restart drosera



This guide was made by MARKUZDAO