An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
besu/docs/Alethio/Lite-Network-Monitor.md

169 lines
5.9 KiB

description: Alethio EthStats Lite Network Monitor
<!--- END of page meta data -->
# Alethio EthStats Lite Network Monitor
Use the [Alethio EthStats Lite Network Monitor](https://github.com/Alethio?utf8=%E2%9C%93&q=ethstats&type=&language=javascript)
to have a live view of private network health by displaying real time and historical statistics
about the network and nodes.
The lite version supports in-memory persistence or using Redis to persist a fixed number of blocks
(by default, 3000).
You can also use a full online version of EthStats Network Monitor for the [Ethereum MainNet](https://ethstats.io).
!!! note
The Alethio EthStats Lite Network Monitor is an [Alethio product](https://company.aleth.io/developers).
!!! tip
Static local ports 80 and 3000 are used in the example [running the Lite Network Monitor
for a Pantheon Node](#running-lite-network-monitor-for-a-pantheon-node).
## Statistics
Statistics displayed by the Network Monitor include:
* Nodes in the network. Metrics for nodes include:
- Information about the last received block such as block number,
block hash, transaction count, uncle count, block time and propagation time
- Connected peers, whether the node is mining, hash rate, latency, and uptime
* Charts for Block Time, Block Difficulty, Block Gas Limit, Block Uncles, Block Transactions, Block Gas Used,
Block Propagation Histogram, and Top Miners
* IP based geolocation overview
* Node logs. Node logs display the data sent by a node
* Block history. Block history provides the ability to go back in time and playback the block propagation
through the nodes
## Components
The Network Monitor consists of:
* [Server](https://github.com/Alethio/ethstats-network-server). Consumes node data received from the
client.
* [Client](https://github.com/Alethio/ethstats-cli). A client must be started for each node in the network.
The client extracts data from the node and sends it to the server
* [Dashboard](https://github.com/Alethio/ethstats-network-dashboard). Dashboard displaying [statistics](#statistics).
## Pre-requisities
[Docker](https://docs.docker.com/install/)
!!! tip
The Network Monitor has a number of dependencies. Using Docker is the easiest way to
use the Network Monitor with Pantheon.
The [EthStats CLI](https://github.com/Alethio/ethstats-cli),
[EthStats Network Server](https://github.com/Alethio/ethstats-network-server), and [EthStats Network
Dashboard](https://github.com/Alethio/ethstats-network-dashboard) documentation describes how to
install the Network Monitor tools.
## Running Lite Network Monitor for a Pantheon Node
!!! important
This example describes how to run the Lite Network Monitor for a single Pantheon node. To run the
Lite Network Monitor for a network of nodes, a [client](#3-client) must be started for each node.
### 1. Server
Start the server using in-memory persistence:
1. Clone the server repository:
```bash
git clone https://github.com/Alethio/ethstats-network-server.git
```
1. Change into the `/ethstats-network-server/docker/lite-mode/memory-persistence` directory:
```bash
cd ethstats-network-server/docker/lite-mode/memory-persistence
```
1. Update the `docker-compose.yml` file to your Pantheon [network ID](../Configuring-Pantheon/NetworkID-And-ChainID.md):
```yaml
- NETWORK_ID=2018
- NETWORK_NAME=mynetwork
```
In this example we are using the `dev` Pantheon network with a network ID of `2018`.
1. Start the server using Docker compose:
```bash
docker-compose up -d
```
!!! tip
A `docker-compose` file is provided in the `ethstats-network-server/docker/lite-mode/redis-persistence`
directory to run the server using Redis to persist a fixed number of blocks (default is 3000).
### 2. Pantheon
Start Pantheon in development mode with Websockets enabled:
```bash
docker run --rm -p 8546:8546 pegasyseng/pantheon:latest --miner-enabled --miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins="all" --rpc-ws-enabled --network=dev
```
Where `<pantheondata-path>` is the volume to which the node data is saved.
### 3. Client
Start the client for the Pantheon node:
```bash
docker run -d --rm --name ethstats-client --net host alethio/ethstats-cli --register --account-email <email> --node-name <node_name> --server-url http://localhost:3000 --client-url ws://127.0.0.1:8546
```
Where:
* `--server-url` specifies [your server](#1-server). The default is the server that consumes data for the Ethereum MainNet.
* `--register` specifies the registration of the Pantheon node is done automatically with the specified `<email>` and `<node_name>`.
Registering the node is only required the first time the client is started for the node.
* `--client-url` specifies the WebSockets URL for the Pantheon node.
### 4. Dashboard
To display the Network Monitor dashboard, open [http://localhost](http://localhost) in your browser.
![Alethio EthStats Light Network Monitor Dashboard](ethstats.png)
!!! note "Default HTTP port"
We are using the default HTTP port (80) to run the Lite Network Monitor. The [Lite Block Explorer](Lite-Block-Explorer.md)
example uses port 8080. You can then run both at the same time.
To change the port, update the `docker-compose.yml` file:
```yaml
ports:
- 127.0.0.1:80:80
```
Update the first 80 to the required port:
```yaml
ports:
- 127.0.0.1:8081:80
```
### Stopping and Cleaning Up Resources
When you've finished running the Network Monitor:
1. Stop Pantheon using ++ctrl+c++.
1. Stop the server and remove containers and volumes:
```bash
docker-compose down -v
```
1. Stop the client:
```bash
docker stop ethstats-client
```
!!! tip
The client container is automatically removed because we used the `--rm` option.