-
Arma: Byzantine Fault Tolerant consensus with Linear Scalability
Authors:
Yacov Manevich
Abstract:
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 separa…
▽ More
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.
△ Less
Submitted 21 December, 2023;
originally announced December 2023.
-
A Byzantine Fault-Tolerant Consensus Library for Hyperledger Fabric
Authors:
Artem Barger,
Yacov Manevich,
Hagar Meir,
Yoav Tock
Abstract:
Hyperledger Fabric is an enterprise grade permissioned distributed ledger platform that offers modularity for a broad set of industry use cases. One modular component is a pluggable ordering service that establishes consensus on the order of transactions and batches them into blocks. However, as of the time of this writing, there is no production grade Byzantine Fault-Tolerant (BFT) ordering servi…
▽ More
Hyperledger Fabric is an enterprise grade permissioned distributed ledger platform that offers modularity for a broad set of industry use cases. One modular component is a pluggable ordering service that establishes consensus on the order of transactions and batches them into blocks. However, as of the time of this writing, there is no production grade Byzantine Fault-Tolerant (BFT) ordering service for Fabric, with the latest version (v2.1) supporting only Crash Fault-Tolerance (CFT). In our work, we address crucial aspects of BFT integration into Fabric that were left unsolved in all prior works, making them unfit for production use. In this work we describe the design and implementation of a BFT ordering service for Fabric, employing a new BFT consensus library. The new library, based on the BFT-Smart protocol and written in Go, is tailored to the blockchain use-case, yet is general enough to cater to a wide variety of other uses. We evaluate the new BFT ordering service by comparing it with the currently supported Raft-based CFT ordering service in Hyperledger Fabric.
△ Less
Submitted 14 July, 2021;
originally announced July 2021.
-
Redacting Transactions from Execute-Order-Validate Blockchains
Authors:
Yacov Manevich,
Artem Barger,
Gal Assa
Abstract:
As user privacy gains popularity and attention, and starts to shape relations between users and service providers, blockchain based solutions thrive for ways to relax immutability without sacrificing consistency. This work answers that need and presents the first design for a redactable execute-order-validate blockchain, that grants users with the \emph{right to be forgotten}. The design is easy t…
▽ More
As user privacy gains popularity and attention, and starts to shape relations between users and service providers, blockchain based solutions thrive for ways to relax immutability without sacrificing consistency. This work answers that need and presents the first design for a redactable execute-order-validate blockchain, that grants users with the \emph{right to be forgotten}. The design is easy to adopt, as we exemplify by implementing it on top of Hyperledger Fabric. It modifies the block structure and extracts user data from the hash-chain without loosening any correctness or liveness criteria. We evaluate our design and show that it provides compliance with only a minimal performance overhead, making it a feasible add-on to any execute-order-validate blockchain system.
△ Less
Submitted 9 June, 2021; v1 submitted 31 May, 2021;
originally announced May 2021.
-
Lockless Transaction Isolation in Hyperledger Fabric
Authors:
Hagar Meir,
Artem Barger,
Yacov Manevich,
Yoav Tock
Abstract:
Hyperledger Fabric is a distributed operating system for permissioned blockchains hosted by the Linux Foundation. It is the first truly extensible blockchain system for running distributed applications at enterprise grade scale. To achieve this, Hyperledger Fabric introduces a novel execute-order-validate blockchain architecture, allowing parallelization of transaction execution and validation. Ho…
▽ More
Hyperledger Fabric is a distributed operating system for permissioned blockchains hosted by the Linux Foundation. It is the first truly extensible blockchain system for running distributed applications at enterprise grade scale. To achieve this, Hyperledger Fabric introduces a novel execute-order-validate blockchain architecture, allowing parallelization of transaction execution and validation. However, this raises the need for transaction isolation. Today transaction isolation is attained by locking the entire state database during simulation of transactions and database updates. This lock is one of the major performance bottlenecks as observed by previous work.
This work presents a new lock-free approach for providing transaction isolation. It harnesses the already existing versioning of key-value pairs in the database, used primarily for a read-write conflict detection during the validation phase, to create a version-based snapshot isolation. We further implement and evaluate our new approach. We show that our solution outperforms the current implementation by 8.1x and that it is comparable to the optimal solution where no isolation mechanism is applied.
△ Less
Submitted 28 November, 2019;
originally announced November 2019.
-
Service Discovery for Hyperledger Fabric
Authors:
Yacov Manevich,
Artem Barger,
Yoav Tock
Abstract:
Hyperledger Fabric (HLF) is a modular and extensible permissioned blockchain platform released to open-source and hosted by the Linux Foundation. The platform's design exhibits principles required by enterprise grade business applications like supply-chains, financial transactions, asset management, food safety, and many more. For that end HLF introduces several innovations, two of which are smart…
▽ More
Hyperledger Fabric (HLF) is a modular and extensible permissioned blockchain platform released to open-source and hosted by the Linux Foundation. The platform's design exhibits principles required by enterprise grade business applications like supply-chains, financial transactions, asset management, food safety, and many more. For that end HLF introduces several innovations, two of which are smart contracts in general purpose languages (\emph{chaincode} in HLF), and flexible endorsement policies, which govern whether a transaction is considered valid.
Typical blockchain applications are comprised of two tiers: the first tier focuses on the modelling of the data schema and embedding of business rules into the blockchain by means of smart contracts (\emph{chaincode}) and endorsment policies; and the second tier uses the SDK (Software Development Kit) provided by HLF to implement client side application logic.
However there is a gap between the two tiers that hinders the rapid adoption of changes in the chaincode and endorsement policies within the client SDK. Currently, the chaincode location and endorsement policies are statically configured into the client SDK. This limits the reliability and availability of the client in the event of changes in the platform, and makes the platform more difficult to use. In this work we address and bridge the gap by describing the design and implementation of \emph{Service Discovery}.
\emph{Service Discovery} provides APIs which allow dynamic discovery of the configuration required for the client SDK to interact with the platform, alleviating the client from the burden of maintaining it. This enables the client to rapidly adapt to changes in the platform, thus significantly improving the reliability of the application layer. It also makes the HLF platform more consumable, simplifying the job of creating blockchain applications.
△ Less
Submitted 5 May, 2018;
originally announced May 2018.
-
LedgerGuard: Improving Blockchain Ledger Dependability
Authors:
Qi Zhang,
Petr Novotny,
Salman Baset,
Donna Dillenberger,
Artem Barger,
Yacov Manevich
Abstract:
The rise of crypto-currencies has spawned great interest in their underlying technology, namely, Blockchain. The central component in a Blockchain is a shared distributed ledger. A ledger comprises series of blocks, which in turns contains a series of transactions. An identical copy of the ledger is stored on all nodes in a blockchain network. Maintaining ledger integrity and security is one of th…
▽ More
The rise of crypto-currencies has spawned great interest in their underlying technology, namely, Blockchain. The central component in a Blockchain is a shared distributed ledger. A ledger comprises series of blocks, which in turns contains a series of transactions. An identical copy of the ledger is stored on all nodes in a blockchain network. Maintaining ledger integrity and security is one of the crucial design aspects of any blockchain platform. Thus, there are typically built-in validation mechanisms leveraging cryptography to ensure the validity of incoming blocks before committing them into the ledger. However, a blockchain node may run over an extended period of time, during which the blocks on the disk can may become corrupted due to software or hardware failures, or due to malicious activity. This paper proposes LedgerGuard, a tool to maintain ledger integrity by detecting corrupted blocks and recovering these blocks by synchronizing with rest of the network. The experimental implementation of LedgerGuard is based on Hyperledger Fabric, which is a popular open source permissioned blockchain platform.
△ Less
Submitted 2 May, 2018;
originally announced May 2018.
-
Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains
Authors:
Elli Androulaki,
Artem Barger,
Vita Bortnikov,
Christian Cachin,
Konstantinos Christidis,
Angelo De Caro,
David Enyeart,
Christopher Ferris,
Gennady Laventman,
Yacov Manevich,
Srinivasan Muralidharan,
Chet Murthy,
Binh Nguyen,
Manish Sethi,
Gari Singh,
Keith Smith,
Alessandro Sorniotti,
Chrysoula Stathakopoulou,
Marko Vukolić,
Sharon Weed Cocco,
Jason Yellick
Abstract:
Fabric is a modular and extensible open-source system for deploying and operating permissioned blockchains and one of the Hyperledger projects hosted by the Linux Foundation (www.hyperledger.org).
Fabric is the first truly extensible blockchain system for running distributed applications. It supports modular consensus protocols, which allows the system to be tailored to particular use cases and…
▽ More
Fabric is a modular and extensible open-source system for deploying and operating permissioned blockchains and one of the Hyperledger projects hosted by the Linux Foundation (www.hyperledger.org).
Fabric is the first truly extensible blockchain system for running distributed applications. It supports modular consensus protocols, which allows the system to be tailored to particular use cases and trust models. Fabric is also the first blockchain system that runs distributed applications written in standard, general-purpose programming languages, without systemic dependency on a native cryptocurrency. This stands in sharp contrast to existing blockchain platforms that require "smart-contracts" to be written in domain-specific languages or rely on a cryptocurrency. Fabric realizes the permissioned model using a portable notion of membership, which may be integrated with industry-standard identity management. To support such flexibility, Fabric introduces an entirely novel blockchain design and revamps the way blockchains cope with non-determinism, resource exhaustion, and performance attacks.
This paper describes Fabric, its architecture, the rationale behind various design decisions, its most prominent implementation aspects, as well as its distributed application programming model. We further evaluate Fabric by implementing and benchmarking a Bitcoin-inspired digital currency. We show that Fabric achieves end-to-end throughput of more than 3500 transactions per second in certain popular deployment configurations, with sub-second latency, scaling well to over 100 peers.
△ Less
Submitted 17 April, 2018; v1 submitted 30 January, 2018;
originally announced January 2018.