**1.3 A blockchain system to monitor**

**Figure 3** summarizes the blockchain layout that we see the need to include monitoring. A typical blockchain network consists of a set of interconnected nodes that act in pairs. These nodes are typically hosted in a cloud or on-premises infrastructure, where the blockchain execution engine is configured natively on a virtual machine (VM) or using containerization technologies such as Docker or a physical machine. Transactions submitted to the blockchain network are broadcast to all pairs and newly created blocks are propagated, so that all pairs have an up-to-date copy of the shared ledger. To get a snapshot of the block, in terms of transaction events and associated metadata, all you need to do is monitor one of the pairs. And this is typically done using blockchain explorer, which listens for events and provides some visualization of the number of transactions received, queued, processed, and finally consolidated into a new block. However, this level of monitoring does not provide any clues about the resource utilization of that node, the health of other nodes, or the latency experienced within the blockchain network.

Another key element that must be monitored to achieve end-to-end visibility of a blockchain-based solution is the off-chain components that include the application layer (decentralized application). The DAPP layer [1] includes a user interface, storage, and SDK (Software Development Kit) API (Application Program Interface) components, through which interaction with a blockchain node is possible.
