Ethereum Network Intelligence API

September 28, 2020 ยท View on GitHub

This is the backend service which runs along with ethereum nodes and tracks the network status, fetches information through JSON-RPC and connects through WebSockets to an ethstats-server to feed information.

Available dashboards

Prerequisite

  • client: geth, besu, nethermind, or openethereum
  • reporting: node js, npm, and pm2

Installation

Clone the repository, install node dependencies, and run the pm2 daemon.

git clone https://github.com/goerli/ethstats-client.git
cd ethstats-client/
npm install
sudo npm install -g pm2

Configuration

Configure the app modifying app.json.

[
  {
    "name"              : "besu-goerli",
    "script"            : "app.js",
    "log_date_format"   : "YYYY-MM-DD HH:mm Z",
    "merge_logs"        : false,
    "watch"             : false,
    "max_restarts"      : 10,
    "exec_interpreter"  : "node",
    "exec_mode"         : "fork_mode",
    "env":
    {
      "NODE_ENV"        : "production",
      "RPC_HOST"        : "localhost",
      "RPC_PORT"        : "8545",
      "LISTENING_PORT"  : "30303",
      "INSTANCE_NAME"   : "My Besu Goerli Node 1337",
      "CONTACT_DETAILS" : "goerli@example.com",
      "WS_SERVER"       : "ws://stats.goerli.net:3000",
      "WS_SECRET"       : "XXXXXXXXXX",
      "VERBOSITY"       : 2
    }
  }
]

Ask in Gitter for the secret: https://gitter.im/goerli/testnet

Available Websockets:

  • ws://ethstats.net:3000
  • ws://stats.goerli.net:3000
  • ws://kotti.goerli.net:3000
  • ws://mordor.dash.fault.dev:3000
  • ws://classic.dash.fault.dev:3000

The secrets for Mordor, Kotti, Goerli, and Classic are the same. The Ethereum mainnet secret is different.

Run

Run it using pm2:

pm2 start app.json