Set Up a BPoS Supernode
End-to-end installation for a community BPoS validator running the Elastos main chain. Follow these eight steps in order and you'll end up with a registered, activated supernode earning rewards.
Running for the Elastos DAO Council? You need the full ecosystem (ELA + ESC + EID + Arbiter), not just mainchain. Follow Set Up Your Council Node instead.
- Who: Anyone running a community BPoS validator
- What you need: A Linux server, 2,000 ELA deposit, Elastos Essentials wallet
- How long: ~1 hour hands-on, 24–72 hours background sync
- What you'll end up with: A registered, activated BPoS node working toward the 80,000-voting-rights activation threshold
1. Preparation
- 4+ CPU cores
- 8+ GB RAM (16 GB recommended — if you stay at 8 GB, add swap in this step)
- 100+ GB storage
- Ubuntu 20.04 LTS or newer
- SSH access
Install system dependencies
sudo apt-get update && sudo apt-get install -y curl wget jq unzip build-essential git apache2-utils
Add 8 GB swap
Required if you're running on the 8 GB RAM minimum — prevents the node from being killed during memory spikes.
sudo cp /etc/fstab /etc/fstab.bak
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
2. Download node.sh
mkdir -p ~/node && cd ~/node
curl -O https://raw.githubusercontent.com/elastos/Elastos.Node/master/build/skeleton/node.sh
chmod a+x node.sh
3. Initialize the ELA main chain
Downloads the ELA package, prompts for a keystore password, creates the config, and prints your node's public key at the end — you'll need that public key in Step 6.
ela init twiceThe first run only sets the network. You'll be prompted to choose:
- Press Enter for MainNet
- Type
2then press Enter for TestNet
The script exits after recording your choice. Run it again — this time it actually downloads and initializes ELA, prompting for your keystore password.
~/node/node.sh ela init
~/node/node.sh ela init
When the second run completes, copy the node public key that's printed at the end. If you miss it, you can show it again any time with ~/node/node.sh ela status.
4. Start the ELA node
~/node/node.sh ela start
Runs in the background. Initial sync may take 24–72 hours depending on server performance.
5. Open firewall ports
ELA needs three TCP ports open for P2P, RPC, and wallet traffic. If your SSH port is different from 22, replace 22/tcp before running.
sudo bash -c 'ufw allow 22/tcp && ufw allow 20336/tcp && ufw allow 20338/tcp && ufw allow 20339/tcp && ufw --force enable && ufw status verbose'
| Port | Purpose |
|---|---|
20336/tcp | ELA P2P |
20338/tcp | ELA RPC |
20339/tcp | ELA wallet service |
6. Check sync status
~/node/node.sh status
# or just the ELA chain:
~/node/node.sh ela status
Watch the height. Do not proceed to registration until your node has caught up to current network height — registering an unsynced node wastes the deposit and may get the node jailed.
7. Register your node in Essentials
Once your node is fully synced, register it on-chain:
- Open Elastos Essentials
- Swipe to the BPoS Voting page (third page)
- Tap the
+icon in the upper right - Confirm the warning, then fill in the registration form:
- Node name — your validator's display name
- Country/region — your node's location
- Lock duration — 100 to 1,000 days (longer lock = higher vote weight)
- Set the node public key to the one you copied in Step 3 — a mismatch here means your node will never produce blocks
- Tap Register and confirm the 2,000 ELA deposit transaction
For the CLI alternative and the full reference (lock-block math, region overrides, fee details), see BPoS Supernode Operations → Registration.
8. Activate BPoS
After the registration transaction confirms, activate the validator role on your server:
~/node/node.sh ela activate_bpos
9. Auto-start on reboot
So your node comes back up automatically after a server reboot:
crontab -e
Add this line at the very end of the file, save, and exit (in nano: Ctrl+O, Enter, Ctrl+X):
@reboot ~/node/node.sh ela start
What's next
Your node is registered and activated but it's still in the candidate pool. To become an active block producer, you need to accumulate 80,000+ voting rights:
Voting Rights = Staked ELA × log₁₀(Lock Days)
That can come from your own stake and from community voters. Until you cross the threshold, your node sits inactive (no penalty, no rewards). Build community support, demonstrate uptime, and the votes will follow.
Ongoing operations:
- BPoS Supernode Operations — claim rewards, update node info, deregister and reclaim deposit
- Jailing & Slashing — penalties and how to recover from
Illegalstatus - Node Monitoring — set up alerts on missed blocks, sync lag, disk usage
- Upgrading Your Node — track releases and apply updates safely
Related
- Node Prerequisites — full hardware and network reference
- Set Up Your Council Node — full-ecosystem version for elected council members
- Run for the Council — different path entirely, if governance is the goal