Skip to content

Elastos Node for Ubuntu v1.1.0

Choose a tag to compare

@4HM3DMD 4HM3DMD released this 15 Jun 14:03
· 11 commits to master since this release
466831d

Elastos Node for Ubuntu v1.1.0 is the safety release of the node.sh runner used by Council members, BPoS operators, and full-node operators. It keeps the existing node layout, keystores, chain data, and commands intact, so it is a drop-in replacement that can be adopted on a live Council or BPoS node without moving the keystore or changing chain data.

Highlights

Security

  • EVM side-chain RPC and WebSocket now bind to 127.0.0.1 by default, with a validated, fail-closed EVM_RPC_BIND override for deliberate public exposure.
  • The local geth account is no longer kept unlocked while mining chains run. Block sealing is unaffected (consensus signs with the PBFT keystore). The personal, db, admin, and miner RPC namespaces are removed from the reachable surface.
  • Mining without a cold reward address prints a clear warning at every start; reward set 0x... configures a cold address across the side chains in one step.
  • update_script verifies the published SHA-256 checksum and runs a syntax check before installing.

Firewall and hardening

  • firewall opens only the peer and consensus ports and detects your SSH port first, so it cannot lock you out. harden closes the public RPC, WebSocket, and oracle ports and reports any daemon still needing a restart, while leaving the authenticated ELA and arbiter RPC ports for you to manage.

Operations and reliability

  • summary (one row per chain: state, height, peers, sync), health (exit-code, alert-friendly), status --json, logs [chain] [-f], plus up/down/restart/ps/rpc/version.
  • A plain restart never restarts ELA unless explicitly forced, protecting Council and BPoS consensus during routine maintenance.
  • Reward checks wait until ELA is synced; dead side-chain RPC values show as unavailable instead of zero; failed starts surface the last log lines; the missing-sponsors stall near block 1.8M is handled at start; stop is bounded with a clean SIGKILL escalation.
  • Init is resumable, and the EVM adopt path verifies the keystore password before completing.

Install, migrate, monitor

  • migrate [--dry-run | --apply] adopts an existing node without touching keystores, chain data, or binaries, writes rollback snapshots, and never restarts ELA. uninstall and eco purge (ECO is decommissioned) are included.
  • Read-only monitor push: reports health over HTTPS with no inbound port and no RPC password, proving the node's role with its on-chain consensus public key.

Installing on a fresh host

mkdir -p ~/node && cd ~/node

# Download the script and verify its checksum
curl -O https://raw.githubusercontent.com/elastos/Elastos.Node/master/build/skeleton/node.sh
curl -O https://raw.githubusercontent.com/elastos/Elastos.Node/master/build/skeleton/node.sh.sha256
sha256sum -c node.sh.sha256
chmod +x node.sh

# Install the dependencies
sudo apt-get install -y jq lsof apache2-utils curl openssl

# Initialize the chains, then open the ports and start.
# Choose the profile when prompted:
#   full      = Council node (ELA + ESC/EID/PG + oracles + arbiter)
#   mainchain = BPoS / validator (ELA main chain only)
node.sh setup
node.sh firewall
node.sh start
node.sh summary

Upgrading

Your node.sh self-updates from this repository:

node.sh update_script

Coming from the original runner, adopt the node afterward (keystores and data preserved, ELA never restarted):

node.sh migrate --dry-run     # read-only preview
node.sh migrate               # adopt
node.sh migrate --apply       # Council only: rebind the side chains, one at a time
node.sh harden

Documentation

The Command Reference, Migration Guide, Comparison with Upstream, and the full CHANGELOG are in the repository.