Skip to main content
ALL CHAINS

Full Supernode Deployment

A full supernode runs every component in the Elastos stack. This is required for Elastos Council members and recommended for anyone who wants to support the complete network.

Initialization Order

Initialize ELA first. Sidechains can be initialized independently, but in mining mode their start commands reference ELA's keystore for PBFT consensus signing. The Arbiter genuinely depends on all chains being initialized.

1. ELA         (no dependencies — initialize first)
2. ESC (init is independent; mining mode start needs ELA keystore)
3. ESC-Oracle (requires ESC)
4. EID (init is independent; mining mode start needs ELA keystore)
5. EID-Oracle (requires EID)
10. Arbiter (requires ELA, ESC, EID — copies ELA keystore)

Complete Walkthrough

# ─── Step 1: Install 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
./node.sh set_path
source ~/.profile

# ─── Step 2: Initialize all components ───
# This is the full init — run it and follow the prompts
node.sh init

# Or initialize selectively:
node.sh ela init
node.sh esc init
node.sh esc-oracle init
node.sh eid init
node.sh eid-oracle init
node.sh arbiter init

# ─── Step 3: Start all services ───
node.sh start

# This starts in dependency order:
# ela → esc → esc-oracle → eid → eid-oracle → arbiter

# ─── Step 4: Set up auto-restart on reboot ───
node.sh set_cron

# ─── Step 5: Verify everything is running ───
node.sh status

Post-Deployment Verification

# Check all chain statuses at once
node.sh status

# Verify each chain individually
node.sh ela status
node.sh esc status
node.sh eid status
node.sh arbiter status

Cron-Based Auto-Restart

The set_cron command installs two crontab entries:

@reboot      ~/node/node.sh start
*/10 * * * * ~/node/node.sh compress_log
  • @reboot: Automatically starts all installed chains when the server boots
  • */10 * * * *: Compresses rotated log files every 10 minutes

Runtime log rotation is handled by Apache's rotatelogs with 20 MB file size limits. Each chain pipes its stderr through:

rotatelogs ~/node/esc/logs/esc-%Y-%m-%d-%H_%M_%S.log 20M

To verify cron is set up:

crontab -l | grep node.sh