Awesome Open Source
Awesome Open Source


Alethio is no longer operating so the software stack offered here is no longer maintained. Feel free to fork and continue if anything looks useful.


EthStats - Server

The server collects/stores/aggregates data sent through ethstats-cli.


Lite mode:

Node.js >= 8.0 (

NPM >= 6.0 (NPM is distributed with Node.js. For more infos see:

Deepstream >= 3.1 (

Redis >= 3.2 (

Cluster mode additions:

Cassandra >= 3.10 (

Kafka >= 0.11 (


git clone
npm install


To update the server just do a "git pull" and restart the app.



Shell options

        --help, -h              Show help
        --version, -V           Show version

        --verbose, -v           Output detailed information
        --debug, -d             Output debug values
        --logs2json             Output logs in JSON format

        --host, -H              App hostname
        --port, -p              App port (default: 3000)
        --app, -a               App name (default: server). Run specific app as separate service (Available: server|consumer|api|configurator|kohera).
                                Recommended for cluster environments. If --lite is specified, this option is ignored.

        --lite                  Run in lite mode (default: off). In a single instance will be started all necessary services (server, consumer, api).
                                DB will be persisted in memory, no Kafka needed for queuing and no Redis for caching.
                                Only Deepstream is needed for real time data reporting in the front end application.
        --lite-api-port         Lite mode API port (default: 3030)
        --lite-db-limit         Number of blocks to persist in memory (default: 3000).
        --lite-db-persist       Persist DB in Redis. This option is available only in lite mode and consistent with --lite-db-limit (default: off).

        --topic, -t             Topic name to consume

        --interval              Block interval to be checked for consistency. Value format: "start:end"
                                The missing blocks found are fetched and sent to the consumer.
                                If not specified the service will continuously check the consistency.
        --check-only            Only check the missing blocks without fetching the data.

        --metrics-port          Http port for metrics (default: 8888)


Lite mode

In lite mode the total number of blocks persisted is by default 3000. See --lite-db-limit option if custom value is needed.

There are 2 ways to start the server in lite mode.

  • Memory persistence - in case of a crash/restart the gathered data is lost.
  • Redis persistence - in case of a crash/resstart the gathered data is persisted into Redis.

Lite mode will use the default settings and some 3rd party dependent services like: Deepstream, Dashboard or Redis depending on the persistence needs. For more details on the default settings see .env.sample. And because of the dependent services, docker-compose is used, to include them.

No persistence:

cd docker/lite-mode/no-persistence
docker-compose up

With persistence:

cd docker/lite-mode/with-persistence
docker-compose up

Cluster mode

In cluster mode a single service will be started depending the configs specified in the .env file for via CLI flags. See .env.sample file or shell options.

docker build . -t <serviceName>
docker run -d <serviceName>


docker run -d alethio/ethstats-network-server:latest

If used from the docker hub image, configs can pe passed through env vars. For available env vars see .env.sample.

DB Migrations

Migrations are done through cqlsh.

Path: /db/cassandra/migrations


Please see changelog file for all notable changes to this project.


MIT © Alethio

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (70,351
ethereum (745
web3js (18