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