区块链容错机制与算法研究
2021-12-14赵会群
赵会群 任 杰
(北方工业大学信息学院 北京 100144)(北方工业大学大规模流数据集成与分析技术北京市重点实验室 北京 100144)
0 引 言
自从2008年Nakamoto[1]提出了比特币这种可以在点对点的交易平台使用的数字货币,其底层技术区块链[2]引起了业界和政府的广泛关注。区块链技术[3]具有去中心化、不可篡改和数据本地化存储等特性,为下一代互联网技术包括匿名在线交易的数字资产提供基础支持[4-5]。
超级账本(Hyperledger)是Linux基金会的区块链项目,致力于发展跨行业的商用区块链平台技术[6-7]。超级账本项目自创立伊始便吸引了众多行业的领头羊,包括金融业、银行、互联网行业、运输业等。其旗下的Hyperledger Fabric子项目是以IBM早期捐献出的Open Blockchain为主体搭建而成。Hyperledger Fabric是一个带有可插入各种功能模块结构的区块链实施方案,目标就是打造成一个有全社会共同维护的开源超级账本[8]。
对于Fabric区块链而言,其结构中存在两大类节点:一类是peer节点,一个网络实体,维护ledger并运行Chaincode容器来对ledger执行read-write操作;另一类是orderer节点,以先到先得的方式为网络上所有的channel做交易排序,并将交易序列放入block[9]中。对于2019年7月开源的Fabric区块链而言,其排序服务的模式共有kafka、solo和raft三种,其中kafka模式是orderer集群将交易信息发送给第三方kafka[10]服务,由其对交易进行排序;solo模式为单点orderer支撑排序服务;raft模式为orderer集群通过共识机制选举主orderer来进行交易排序。然而在后两种排序服务中,存在着一个问题,也就是本文所要解决的问题,同时也是Fabric区块链其本身体系结构……
