Blockchain technology is a distributed, decentralized, and immutable ledger system. It is the platform of choice for managing smart contract transactions (SCTs). Smart contracts are self-executing codes of agreement between interested parties commonly implemented using blockchains. A block contains a set of transactions representing changes to the system and a hash of the previous block. The SCTs are executed multiple times during the block production and validation phases across the network. The execution is sequential in most blockchain technologies. In this work, we incorporate a direct acyclic graph (DAG) based parallel scheduler framework for concurrent execution of SCTs. The dependencies among a block's transactions are represented through a concurrent DAG data structure that assists in throughput optimization. We have created a DAG scheduler module that can be incorporated into blockchain platforms for concurrent execution with ease. We have also formally established the safety and liveness properties of the DAG scheduler. For evaluation, our framework is implemented in Hyperledger Sawtooth V1.2.6. The performance across multiple smart contract applications is measured for various scheduler types. Experimental analysis shows that the proposed framework achieves notable performance improvements over the parallel SCT execution frameworks.
翻译:区块链技术是一种分布式、去中心化且不可篡改的账本系统,是管理智能合约交易(SCTs)的首选平台。智能合约是利益相关方之间自执行的协议代码,通常借助区块链实现。区块包含一组代表系统状态变更的交易和前一个区块的哈希值。在网络中的区块生成和验证阶段,SCTs会被多次执行,且大多数区块链技术采用顺序执行方式。本研究提出了一种基于有向无环图(DAG)的并行调度器框架,用于实现SCTs的并发执行。通过并发DAG数据结构表示区块内交易间的依赖关系,从而优化吞吐量。我们开发了一个可便捷集成到区块链平台的DAG调度器模块,并正式证明了该调度器的安全性和活性属性。为进行评估,我们在Hyperledger Sawtooth V1.2.6中实现了该框架,并针对多种调度器类型测量了多个智能合约应用的性能。实验分析表明,相较于并行SCT执行框架,所提框架在性能上取得了显著提升。