论文部分内容阅读
区块链是一种新型的计算模式,拥有去中心化,分布式,可溯源等诸多优点。区块链通过部署在银行和物流等许多关键行业中,发挥了至关重要的作用,已经在全球引起了广泛关注。但是,目前区块链系统较差的性能依然是一个急需解决的关键问题。只有清楚区块链系统在微体系结构层面的特征,才能理解区块链性能差的原因。然而,我们对区块链系统微体系结构层面的特征并不了解。理解区块链系统的微体系结构特征,关键在于分析这些微体系结构事件。目前常用的CPU有超过200个微体系结构事件。因此,通过理解大量的区块链微体系结构层面的事件来表征区块链系统的特性和性能极为困难。同时,我们也缺乏系统的方法来从大量事件中识别哪些是重要的事件,然后将分析的重点放在那些重要的事件上。本文提出了一种新颖的方法,用于在微体系结构层面基准测试并表征区块链系统。本文关键点在于是通过使用机器学习的方法量化微体系结构事件的重要性之后,利用模糊集理论来选择重要的微体系结构事件。为单个基准测试程序选择的重要事件用于表征不同区块链程序。而为所有基准测试程序选择的重要事件则可以形成重要性向量,作为区块链系统在微体系结构层面的评价指标,不但可以用于衡量区块链系统基准测试程序之间的相似性,去除冗余的区块链系统基准测试程序,降低实验开销。还可以将这些重要性向量和区块链系统的配置参数进行相关性分析,最后通过调节与重要性向量相关性更高的配置参数来提高区块链系统的性能。本文使用该方法来表征Blockench基准测试程序套件的七个基准测试程序和Hyperledger Caliper基准测试程序套件的六个基准测试程序。结果表明,本文的方法揭示了区块链系统在微体系结构层面五个有趣的特征。通过使用重要性表征结果,将Hyperledger Fabric的交易吞吐量提高了70%,并将交易延迟和查询延迟都减少了55%。此外,本研究发现Blockbench七个基准测试程序中的三个程序和Caliper六个基准测试程序中的两个程序都是冗余的。