Blockchain technology is based on a decentralized model, in which peers collaborate and build trust over a business network. Each peer organization can be represented by one or more nodes and this network of nodes is used to broadcast transactions and reach consensus for each transaction submitted. Each node is supposed to be self-sufficient with the ability to serve any of the distributed applications and/or existing enterprise applications. However, the health of each blockchain node and the entire blockchain network needs to be monitored to ensure truly decentralized and robust operations.
A typical blockchain network comprises of a set of interconnected nodes that act as peers. These nodes usually are hosted on cloud/on premise infrastructure where the blockchain runtime is set up natively on a virtual machine (VM) or by using containerization technologies such as Docker. Transactions submitted to the blockchain network are broadcast to all peers and the new blocks created are propagated, so that all peers have an updated copy of the shared ledger. To gain insight to the block, its transaction related events and associated metadata, monitoring of any one of the peers is sufficient. And that is usually done by using blockchain explorer, which listens to the events and provides some visualization of the number of transactions received, queued, processed and finally grouped into a new block. However, this level of monitoring does not provide any clue to the usage of resources on that node or the health of other nodes or the latency experienced within the blockchain network.