A Guide to Deploying Alethio’s Free Open Source Products

Adrian Sabau
Alethio
Published in
5 min readAug 20, 2019

Alethio’s mission is to promote transparency and equitable access to meaningful data on the Ethereum blockchain. Throughout our learning process we have created and improved tools that help all types of Ethereum blockchain users. The crypto-curious can discover the blockchain through the Alethio block explorer, a trader can set up alerts with Alethio Monitoring to keep track of his account(s), an analyst can use the Reporting tool to generate data that will enhance her capabilities, a developer can use our API to create blockchain products, and a casual observer can use EthStats to track in real time the Ethereum network status.

Anyone building for the decentralized web can make use of Alethio. And like the community we are working with, we have focused on developing and offering free open source products that can be set up on any private or permissioned network. Through EthStats users can monitor the backbone of the system, and through Ethereum Lite Explorer they can analyze blockchain elements.

EthStats

There are only three items required to setup in order to monitor your own private network: the server app, the monitoring dashboard, and the client app that serves as the glue between your Ethereum node and the server.

The first step is to install the server with all its dependencies. The easiest way to do that is to set it up in lite mode through one of the Docker compose sample files available in the Github repository.

In lite mode the total number of blocks persisted is 3000 by default. It is customizable by adding the LITE_DB_LIMIT environment variable for the server in the docker compose file.

There are 2 examples on how to achieve this:

The Docker compose will install along with the server all necessary dependencies such as:

  • Redis (for persistence)
  • Deepstream (pub/sub service for displaying real time data in the dashboard)
  • Dashboard (the front end app)

The default ports or other settings can be changed through environment variables in the Docker compose file.

IMPORTANT: The NETWORK_ID environment variable must be set correctly if deploying the server for a private network.

For more details on the available settings visit the server and dashboard repositories on Github.

To clone, setup and start the server, enter the below in your command-line:

$ git clone https://github.com/Alethio/ethstats-network-server
$ cd ethstats-network-server/docker/lite-mode/redis-persistence
$ docker-compose up

Now the server should be up and available on http://localhost:3000. This server URL is important in the following step where the client app will need to connect to it.

Next step is to install the client application EthStats-CLI that connects to an Ethereum node, extract all necessary data, and then send those to the server. With it you could easily plug into any PoW and PoA network. The only prerequisite is to setup any Ethereum node that has RPC enabled.

Again, the easiest way is to set it up through Docker. The EthStats-CLI app is configured by default to connect to the Ethereum node on your local host at http://localhost:8545. To connect to a node running on a different host use the --client-url flag.

The default server it will connect for sending data is the one for the Ethereum mainnet network. To change that and use our new installed server we’ll need to add the --server-url flag when starting EthStats-CLI.

Every Ethereum node for which you want to install EthStats-CLI for sending data to a server, it needs to be registered for that specific server.

When setting up EthStats-CLI through Docker, the node registration process can be done automatically by specifying the --register flag all together with --email-account and --node-name. Otherwise in an interactive mode you will be asked about an email address and node name. If the node is already registered and you still specify the register flag, it will be avoided.

If the registration process was successful the node will receive a secret key and will be able to send data to the server.

$ docker run -d \
--restart always \
--net host \
-v /home/config/:/root/.config/configstore/ \
alethio/ethstats-cli \
--register \
--account-email your@email.com \
--node-name your_node_name \
--server-url http://localhost:3000

Finally we can go to http://localhost and access the dashboard where we should be able to see the installed Ethereum nodes. Checkout this screenshot from EthStats 2.0 connected to Ethereum mainnet network

Through EthStats, the network monitoring dashboard, you can check the usage, performance, and overall state of whichever Ethereum-based network you are connected to in real time. Additionally, for each connected node you can analyze statistics or use the History functionality to replay node behavior. This feature allows you to start with a certain block and observe the order in which nodes recognized it as the highest in the network’s chain.

Ethereum Lite Explorer

Besides the connectivity with Ethereum backbone through EthStats, Alethio offers the possibility to setup locally, on any Ethereum based private network, a blockchain explorer. The basis was the Alethio blockchain explorer. Through our open source lite explorer any user can setup locally a powerful lightweight explorer that users can spin up via any RPC enabled node.

The Lite Explorer is a client-side only web application that connects directly to a Ethereum JSON RPC compatible node.

You can run the explorer in Docker without having to get the source code and build it.

The URL of your RPC enabled node needs to be specified through the APP_NODE_URL environment variable.

$ docker run --rm \
-p 8080:80 \
-e APP_NODE_URL=http://localhost:8545 \
alethio/ethereum-lite-explorer

At this point the lite explorer should be accessible at http://localhost:8080.

Stay in touch

In a trustless system transparency is key, and Alethio empowers users to monitor and explore it. We will be releasing more features in the coming period and welcome your suggestions on what new features or enhancements you’d like to see. Head out and visit aleth.io for access today! Follow us on Twitter @AlethioEthStats! Interested in exploring an integration? Drop us a note at partnerships@aleth.io — we’d love to work with you!

--

--