Introduction
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.
What kind of monitoring does blockchain need?
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.
Another key element that needs to be monitored to gain end-to-end visibility of a blockchain based solution is the off-chain components that comprises of the dApp (decentralized application) layer. The dApp layer comprises of user interface, storage and API (Application Program Interface) SDK (Software Development Kit) components, through which the interaction with a blockchain node is enabled.
Blockchain monitoring framework
Effective monitoring and management of a blockchain network requires a framework, which can integrate the data, assimilate the events generated and provide effective visualization of the blockchain related matrices. This framework should be modular and should support deployment topologies, which can enable monitoring at both an individual node level and the entire blockchain network level.
The diagram above depicts a proposed blockchain monitoring framework, which comprises of the following:
Leveraging the proposed monitoring framework will help:
Conclusion
While there is no dearth of monitoring solutions, the technique for effectively leveraging the existing mechanisms for monitoring a blockchain network is not thought through. The primary reason is that not many enterprise use cases have translated to production grade systems on blockchain yet. Also, the decentralized nature of blockchain poses the question—is monitoring of the whole blockchain network really required?
To maintain, analyze and improve an enterprise blockchain based solution, a holistic monitoring solution is required. This can further be coupled with DevOps tooling to enable maximum uptime of the blockchain network and ensure business continuity.
Hitarshi Buch
Lead Architect, CTO Office, Wipro Limited
Hitarshi has 19 years of experience in IT architecture, consulting, design and implementation using blockchain, API, SOA, BPM and Java/J2EE technologies. He has experience in IT transformation and modernization initiatives and has provided enterprise-wide SOA-based solutions. In his current role, as a Lead Architect in Service Transformation at Wipro, he leads the Center of Excellence initiatives as part of the Blockchain practice.