Blockchain Patterns, Mechanisms, Models, Metrics > Metrics > Blockchain Metrics
Blockchain metrics are used to measure the quality, performance and scalability of blockchain applications and to establish benchmarks for different versions of blockchain applications to be compared against each other.
The following are common metrics, all of which are measured at runtime, while the blockchain application is active.
Also known as Active Addresses, this metric is measured by collecting and recording how many unique nodes are active during a predetermined time span, such as per day, per week or per month. In permissionless blockchains, the greater the number, the greater the indication that more nodes are using and trusting the blockchain application. The active nodes value is generally made available to all participating nodes.
This metric counts the total amount of unique nodes that have downloaded the blockchain application. It is used to compare against the Active Nodes metric to determine how many users that download the application actually end up actively using it. The metric can further report on the IP address and geographical location of each node that performed a download.
This metric is also useful in determining whether a blockchain application is sufficiently accessible for download. Blockchain application developers may publish their application for download on a dedicated website or at public sites (such as GitHub). The Unique App Downloads value helps developers determine both interest and awareness of the application.
Blocks Per Hour, Blocks Per Day
These metrics measure the speed at which records are submitted and stored on the blockchain network and how fast the network can carry out its consensus algorithm. Because the capacity of a block is fixed, the quantity of blocks processed can be calculated accordingly.
Every block that is created has a timestamp (as per the timestamp header covered earlier in the Understanding Blocks and Chains section). Via the use of timestamps, the blockchain system can measure how many blocks are created and added during specified time periods, such as per hour or per day. The results of these measurements help assess the performance and scalability of the blockchain system.
Transactions Per Second
This metric is used to measure the quantity of records or transaction records submitted and stored per second. It is used to assess the volume of processing a blockchain network is undergoing and to judge its scalability requirements. The quantity of records submitted to the network and the quantity of records stored to the ledger are generally measured separately.
This metric is used to measure the time from which a transaction is submitted to the network until the time that the transaction has been written to the ledger (or rejected). This metric is measured by checking the timestamp of transactions and comparing the time they were submitted to the time they were validated and stored. This metric can also provide insight as to how fast consensus algorithms are being carried out.
This metric is used to measure the time it takes for valid records to be appended to blocks. The total number of committed and validated records is divided by the total amount of time (in seconds) it takes to commit (validate and store) those records.
When calculating this metric, any invalid records or transaction records are deducted from the total number because invalid records are not committed.
Full Node/Partial Node Ratio
This metric is used to measure the quantity of active full nodes and partial nodes on a blockchain network and provides a value representing the ratio of full to partial nodes. This measurement is important because if a blockchain network ends up having no active full nodes, it can lose the historical data in the full copy of the distributed ledger. Because of the critical importance of maintaining sufficient redundant copies of the distributed ledger, this measurement is closely tracked.