Arma is a Byzantine Fault Tolerant (BFT) consensus system designed to achieve linear scalability across all hardware resources: network bandwidth, CPU, and disk I/O. As opposed to preceding BFT protocols, Arma separates the dissemination and validation of client transactions from the consensus process, restricting the latter to totally ordering only metadata of batches of transactions. This separation enables each party to distribute compute and storage resources for transaction validation, dissemination and disk I/O among multiple machines, resulting in linear scalability. Additionally, Arma ensures censorship resistance by imposing a maximum time limit for the inclusion of client transactions. We build a prototype implementation of Arma and evaluate its performance experimentally. Our results show that Arma totally orders over 100,000 transactions per second when deployed in a WAN setting and integrated into Hyperledger Fabric.
View on arXiv