Performance and scalability are a major concern for blockchain systems to become viable for mainstream applications. While many permissionless systems are limited by slow the consensus algorithms, Hyperledger Fabric has unique throughput optimization potential due to its permissioned nature. It has been shown to handle tens of thousands of transactions per second. However, these numbers show only the nominal throughput for uncontested transaction workloads. If incoming transactions compete for a small set of hot keys in the world state, the effective throughput drops drastically. We propose a novel two-pronged transaction execution approach that minimizes invalid transactions in the Fabric blockchain while maximizing concurrent execution.
Lastly, Zhang @cite_3 present a solution for a client-side early abort mechanism for Fabric. They introduce a transaction cache on the client that analyzes endorsed transactions to detect RW set conflicts and only sends conflict-free transactions to the ordering service. Transactions that have dependencies are held in the cache until the conflict is resolved and then they are sent back to the endorsers for re-execution. This approach prevents invalid transactions from a single client, but cannot deal with conflicts between multiple clients. Moreover, it cannot deal with hot key workloads either.
@cite_3
2954107585
Blockchain is one of the most popular distributed ledger technologies. In order to solve the trustless problems between enterprises, many permissioned blockchain platforms are proposed in recent years. Hyperledger Fabric is a permissioned blockchain which is comprised of chaincode, endorsing peers, ordering service, committing peers and membership service. Fabric provides identity authentication, transactions encryption and high performance. Hence, decentralized application based on Fabric can be applied among enterprises to implement the immutable and high throughput for transactions. However, some limitations still exist in Fabric framework. This paper surveys the risk of non-deterministic transactions in Fabric, which can be caused by read-write conflict and transactions order dependency. Transactions are judged to be invalid by committing peers when read-write conflict exists. Besides, transactions submission order may be disrupted during endorsing and ordering. Both of the two risks can make the final transaction execution result non-deterministic. Finally, a solution of cache layer on Fabric client is proposed to solve the risk of non-deterministic transactions.