买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于Meta-BFT共识机制的区块链平台及实现方法_广州中国科学院软件应用技术研究所_201910088522.4 

申请/专利权人:广州中国科学院软件应用技术研究所

申请日:2019-01-29

公开(公告)日:2021-10-15

公开(公告)号:CN109981565B

主分类号:H04L29/06(20060101)

分类号:H04L29/06(20060101);H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.10.15#授权;2019.07.30#实质审查的生效;2019.07.05#公开

摘要:本发明属于区块链共识算法技术领域,具体为一种基于Meta‑BFTMetamorphosisByzantineFault‑Tolerant共识机制的区块链平台及实现方法,主要包括:Controller节点选择模型、Orderers节点、Controller节点、Peers节点、CA认证中心和APPSDK客户端。所述方法包括以下步骤:步骤S1、所述APPSDK客户端向所述CA认证中心进行注册登录;步骤S2、根据所述Controller节点选择模型从所述Orderers节点中选择出Controller节点,进而所有所述APPSDK客户端只向所述Controller节点发送服务请求;步骤S3、所述Controller节点基于所述Meta‑BFT共识机制对区块链网络中所有合法交易进行排序,并把排序好的交易组合生成区块结构,同时将结果发送所述Peers节点;步骤S4、由所述Peers节点确认后把结果返回给所述APPSDK客户端,以及将信息同步给所述Orderers节点。

主权项:1.一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台,其特征在于,包括APPSDK客户端、CA认证中心、Orderers节点、Peers节点、Controller节点选择模型以及Controller节点;所述APPSDK客户端,用于向所述CA认证中心进行注册登录以获得授权,发起服务请求和接收执行结果;所述CA认证中心,用于对所述APPSDK客户端进行认证、校验、授权;所述Orderers节点是区块链网络中的权威节点,具有对交易排序的权利;所述Peers节点,用于维护区块链和账本结构;所述Controller节点选择模型,用于从所述Orderers节点中选择出Controller节点;所述Controller节点,用于基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对区块链网络中所有的合法交易进行排序服务,并将排好序的合法交易组合成区块结构发送给Peers节点;所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制包括请求、准备、确认和回复广播四个阶段;所述请求阶段:所述APPSDK客户端向所述Controller节点发送请求服务;所述准备阶段:所述Controller节点基于所述请求服务向所有Orderers节点发送准备消息,然后所有Orderers节点验证所述Controller节点身份、服务请求、签名信息,如果一致,则进入确认阶段;所述确认阶段:所有Orderers节点给所述Controller节点发送确认消息;如果Controller节点收到确认成功的消息个数大于等于即可达成共识,其中f为拜占庭错误容忍个数,且3f+1≤|N|,|N|为网络中所有Orderers节点个数;所述回复广播阶段:在完成确认后,所述Controller节点再把执行结果返回给所述APPSDK客户端和所有Orderers节点。

全文数据:基于Meta-BFT共识机制的区块链平台及实现方法技术领域本发明属于区块链共识算法技术领域,具体涉及为基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台及实现方法。背景技术近年来,区块链技术作为一种新兴技术而备受各个行业关注,并且因其具备去中心化、分布式、不可篡改、加密计算、可追溯、可信任等独特优势而已经被广泛运用于各个领域。特别是在以太坊Ethereum和超级账本HyperledgerFabric等区块链平台被相继发布之后,各个行业逐渐开始研究如何将自己原有产业与区块链融合,进而力图改善其产品的效率和可靠性。与此同时,越来越多的区块链项目也相继被开发与试运行。另一方面,共识算法是区块链中最为关键的技术之一,也是影响区块链吞吐量和区块打包效率的主要因素。目前,在区块链共识算法研究领域中,主要有以下两种共识算法:1PoWProof-of-Work共识算法。PoW一词最早由MarkusJakobsson和AriJuels提出,而中本聪SatoshiNakamoto在它的基础上,在其发表的论文《Bitcoin:APeer-to-PeerElectronicCashSystem》中首先引入了PoW共识算法概念。该算法的主要思想为:首先生成比特币Bitcoin交易,并与其它所有准备打包到区块中的信息一起组成交易列表;其次,通过MerkleTree算法生成MerkleRootHash;然后,把MerkleRootHash及其他相关字段组装成区块头Block_Header,并将区块头的字节数据作为工作量证明的输入;最后,持续变更区块头中的随机数nonce值,对每次变更后的区块头做双重SHA256运算SHA256SHA256Block_Header,直至结果值小于当前网络给定的目标值时结束。PoW共识算法主要运用于比特币和以太坊区块链平台中,具有较高的公信力和可扩展性等优点。但是,它们都存在吞吐量较低和延迟较大等问题。例如:在比特币网络中,其吞吐量约等于7,延迟约等于1个小时;在以太坊网络中,其吞吐量约等于100,延迟约等于90秒。此外,在PoW基础上,PoS、DPoS等共识算法相继被提出。但是,已有这类算法普遍具有吞吐量较低、延迟较大、区块链打包效率较低等缺点。2PBFTPracticalByzantineFault-Tolerant共识算法。PBFT共识算法是卡斯特罗MiguelCastro等人在1999年提出的一种高效的拜占庭容错共识算法,相比PoW共识算法具有更高的效率。PBFT共识算法主要包括四个阶段:第一阶段为Request阶段,客户端向主节点发送服务请求;第二阶段为Pre-prepare阶段,主节点向所有副本节点发送Pre-prepare信息;第三阶段为Prepare阶段,副本节点通过验证主节点信息,然后向给主节点和其它副本节点发送Prepare信息;第四阶段为Commit阶段,所有节点向其它节点发送Commit信息,然后在每个节点接收到一定数量的确认信息后,把执行结果反馈给客户端。PBFT共识算法主要被应用于超级账本Fabric区块链平台,具体是在Orderers节点的排序过程中被调用执行,使得对客户端的请求达成共识。与PoW共识算法相比,PBFT共识算法虽然具有相对较高的吞吐量1000左右和较小的延迟1秒左右,但是仍然难以满足实际交易过程中高并发的需求。此外,PBFT共识还存在可扩展性较低和公信力较差等问题,并且随着节点数的增加,其吞吐量呈现急剧下降。已有的这些区块链服务平台普遍存在着吞吐量较低、延迟较大、区块打包速度低和节点难扩展等问题,以至于几乎无法满足实际市场交易中需要达到每秒万次的高并发量要求。因此,研究设计一种高效可信任的区块链共识机制尤为重要,并且是进一步提高区块链平台吞吐量和区块打包效率的重要方法之一。发明内容本发明主要目的是为了解决已有许可区块链平台中吞吐量较低、延迟较大、共识效率低和可扩展性低等问题,进而提出一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台及实现方法。本发明主要通过以下技术方案解决上述问题:提供一种基于Meta-BFT共识机制的区块链平台,包括APPSDK客户端、CACertificateAdministrator认证中心、Orderers节点、Peers节点、Controller节点选择模型以及Controller节点;所述APPSDK客户端,用于向所述CA认证中心进行注册登录以获得授权,发起服务请求和接收执行结果;所述CA认证中心,用于对所述APPSDK客户端进行认证、校验、授权;所述Orderers节点是区块链网络中的权威节点,具有对交易排序的权利;所述Peers节点,用于维护区块链和账本结构;所述Controller节点选择模型,用于从所述Orderers节点中选择出Controller节点;所述Controller节点,用于基于所述Meta-BFT共识机制对区块链网络中所有的合法交易进行排序服务,并将排好序的合法交易组合成区块结构发送给Peers节点。进一步地,所述CA认证中心包括PKI架构和客户端源码校验进程,其中所述PKI架构用于管理区块链网络用户证书,所述客户端源码校验进程用于校验客户端源码是否被篡改。进一步地,所述Controller节点包括服务请求API,Meta-BFT服务代理,生产区块结构进程,节点进程以及签名、发送进程;其中所述服务请求API用于和所述APPSDK客户端进行信息交互;所述Meta-BFT服务代理用于基于所述Meta-BFT共识机制对所有合法交易进行排序;所述生产区块结构进程用于生成经过排序交易后的区块结构;所述节点进程用于监听生产区块结构进度;所述签名、发送进程主用于对区块结构进行签名和向Peers节点发送区块。进一步地,所述Controller节点选择模型是利用前一个区块Hash值对所述Orderers节点总数求余数,进而从所述Orderers节点选择出与计算结果的余数具有相同编号的Orderers节点作为所述Controller节点,其中平台初始化时需产生第一个创世区块。进一步地,所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制包括请求、准备、确认和回复广播四个阶段;所述请求阶段:所述APPSDK客户端向所述Controller节点发送请求服务;所述准备阶段:所述Controller节点基于所述请求服务向所有Orderers节点发送准备消息,然后所有Orderers节点验证所述Controller节点身份、服务请求、签名信息,如果一致,则进入确认阶段;所述确认阶段:所有Orderers节点给所述Controller节点发送确认消息;如果Controller节点收到确认成功的消息个数大于等于即可达成共识,其中f为拜占庭错误容忍个数,且3f+1≤|N|,|N|为网络中所有Orderers节点个数;所述回复广播阶段:在完成确认后,所述Controller节点再把执行结果返回给所述APPSDK客户端和所有Orderers节点。还提供一种基于Meta-BFT共识机制的区块链平台的实现方法,所述区块链平台包括APPSDK客户端、CACertificateAdministrator认证中心、Orderers节点、Peers节点、Controller节点选择模型以及Controller节点;步骤S1、所述APPSDK客户端向所述CA认证中心进行注册登录;步骤S2、根据所述Controller节点选择模型从所述Orderers节点中选择出Controller节点,进而所有所述APPSDK客户端只向所述Controller节点发送服务请求;步骤S3、所述Controller节点基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对区块链网络中所有合法交易进行排序,并把排序好的交易组合生成区块结构,同时将结果发送所述Peers节点;步骤S4、由所述Peers节点确认后把结果返回给所述APPSDK客户端,以及将信息同步给所述Orderers节点。进一步地,所述步骤S3包括:步骤S31、由服务请求API接收来自于所述APPSDK客户端的服务请求;步骤S32、调用Meta-BFTMetamorphosisByzantineFault-Tolerant服务代理基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对所有合法交易进行排序;步骤S33、生产区块结构进程将排序后交易打包成区块结构,并由节点进程通知签名、发送进程完成区块打包的信息;步骤S34、签名、发送进程对区块进行签名和向所述Peers节点发送交易区块。进一步地,所述步骤S4包括:步骤S41、对所述Controller节点发送过来的交易区间进行检查与确认;步骤S42、把通过检查的合法交易记录到账中;步骤S43、把执行结果同步到所述APPSDK客户端和所述Orderers节点,同时发送当前产生的区块Hash值发送到所述Controller节点选择模型,用以触发所述Controller节点选择模型从所述Orderers节点选择出Controller节点。进一步地,所述Controller节点选择模型是利用前一个区块Hash值对所述Orderers节点总数求余数,进而从所述Orderers节点选择出与计算结果的余数具有相同编号的Orderers节点作为所述Controller节点,其中平台初始化时需产生第一个创世区块。进一步地,所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制包括请求、准备、确认和回复广播四个阶段;所述请求阶段:所述APPSDK客户端向所述Controller节点发送请求服务;所述准备阶段:所述Controller节点基于所述请求服务向所有Orderers节点发送准备消息,然后所有Orderers节点验证所述Controller节点身份、服务请求、签名信息,如果一致,则进入确认阶段;所述确认阶段:所有Orderers节点给所述Controller节点发送确认消息;如果Controller节点收到确认成功的消息个数大于等于即可达成共识,其中f为拜占庭错误容忍个数,且3f+1≤|N|,|N|为网络中所有Orderers节点个数;所述回复广播阶段:在完成确认后,所述Controller节点再把执行结果返回给所述APPSDK客户端和所有Orderers节点。与已有技术相比,本发明的优势主要包括:1提高已有许可区块链平台的吞吐量、共识效率;2降低已有许可区块链平台的交易确认延迟时间;3有助于解决已有许可区块链平台的节点难扩展问题。附图说明为了更清楚地描述本发明实施例中的技术方案,下面对实施例描述中所需要使用的附图进行简要说明。图1为本发明的一种基于Meta-BFT共识机制的区块链平台总体架构示意图。图2为本发明的Controller节点选择模型的实现流程示意图。图3为本发明的Meta-BFT共识机制示意图。图4为本发明的一种基于Meta-BFT共识机制的区块链平台及实现方法具体应用于Fabric区块链平台的交易处理流程示意图。具体实施方式为方便读者能够更加清晰地了解本发明的技术方案、特征和优点,下面将结合附图和相应的实施例对本发明作详细说明。需指出的是,下面所描述的实施例仅仅是本发明的部分实施例内容,也就是说,不能仅根据以下实施例来限制本发明的保护范围。实施例一如图1所示,本发明提供一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台,包括APPSDK客户端、CACertificateAdministrator认证中心、Orderers节点、Peers节点、Controller节点选择模型以及Controller节点;所述APPSDK客户端,用于向所述CA认证中心进行注册登录以获得授权,发起服务请求和接收执行结果;所述CA认证中心,用于对所述APPSDK客户端进行认证、校验、授权;所述Orderers节点是区块链网络中的权威节点,具有对交易排序的权利;所述Peers节点,用于维护区块链和账本结构;所述Controller节点选择模型,用于从所述Orderers节点中选择出Controller节点;所述Controller节点,用于基于所述Meta-BFT共识机制对区块链网络中所有的合法交易进行排序服务,并将排好序的合法交易组合成区块结构发送给Peers节点。进一步地,所述CA认证中心包括PKI架构和客户端源码校验进程,其中所述PKI架构用于管理区块链网络用户证书,所述客户端源码校验进程用于校验客户端源码是否被篡改。进一步地,所述Controller节点包括服务请求API,Meta-BFT服务代理,生产区块结构进程,节点进程以及签名、发送进程;其中所述服务请求API用于和所述APPSDK客户端进行信息交互;所述Meta-BFT服务代理用于基于所述Meta-BFT共识机制对所有合法交易进行排序;所述生产区块结构进程用于生成经过排序交易后的区块结构;所述节点进程用于监听生产区块结构进度;所述签名、发送进程主用于对区块结构进行签名和向Peers节点发送区块。进一步地,所述Controller节点选择模型是利用前一个区块Hash值对所述Orderers节点总数求余数,进而从所述Orderers节点选择出与计算结果的余数具有相同编号的Orderers节点作为所述Controller节点,其中平台初始化时需产生第一个创世区块。更具体的Controller节点选择模型的实现流程如图2所示,Controller节点选择模型实施的主要过程为:首先初始化视图变量v=0;然后通过前一个区块Hash值对Orderers节点总数|N|N为网络中Orderers节点的集合求余数来计算Controller节点的编号i0≤i≤|N|;接着调用verify函数来验证Controller节点是否有效,如果有效,则选择编号为i的Orderers节点Ni为Controller节点,同时结束本次运行,如果无效,则令v++,同时广播发送改变视图消息。这时,如果收到改变视图消息个数count大于等于|N|-ff为拜占庭错误容忍个数,且3f+1≤|N|,则令v=0,同时重新根据Controller节点选择计算公式生成Controller节点。反之,如果收到改变视图消息个数count小于|N|-f,则再次回到v++过程,重新发起改变视图消息,进入下一次Controller节点选择过程。Controller节点选择的具体计算公式如下:Controller=Ni1其中:i=Pre_hash10%|N|2Pre_hash为前一个区块的Hash值,Pre_hash10表示将Pre_hash转为十进制数,|N|为总的Orderers节点个数。进一步地,如图3所示,是本发明中Meta-BFT共识机制的一个实施例示意图,其主要包括:APPSDK客户端、Controller节点和Orderers节点。与PBFT相比,Meta-BFT共识算法减少了预准备Pre-prepare阶段和通信次数,进而有效地提高了共识过程执行的效率。所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制包括请求、准备、确认和回复广播四个阶段;所述请求阶段:所述APPSDK客户端向所述Controller节点发送请求服务;所述准备阶段:所述Controller节点基于所述请求服务向所有Orderers节点发送准备消息,然后所有Orderers节点验证所述Controller节点身份、服务请求、签名信息,如果一致,则进入确认阶段;所述确认阶段:所有Orderers节点给所述Controller节点发送确认消息;如果Controller节点收到确认成功的消息个数大于等于即可达成共识;所述回复广播阶段:在完成确认后,所述Controller节点再把执行结果返回给所述APPSDK客户端和所有Orderers节点。需要说明的是,根据实际许可区块链网络中的节点部署,所述执行结果所返回的节点即可以仅是Orderers节点,也可以是Orderers、Peers等节点。本发明还提供一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台的实现方法,所述区块链平台包括APPSDK客户端、CACertificateAdministrator认证中心、Orderers节点、Peers节点、Controller节点选择模型以及Controller节点;所述方法主要包括以下步骤:步骤S1、所述APPSDK客户端向所述CA认证中心进行注册登录;步骤S2、根据所述Controller节点选择模型从所述Orderers节点中选择出Controller节点,进而所有所述APPSDK客户端只向所述Controller节点发送服务请求;步骤S3、所述Controller节点基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对区块链网络中所有合法交易进行排序,并把排序好的交易组合生成区块结构,同时将结果发送所述Peers节点;步骤S4、由所述Peers节点确认后把结果返回给所述APPSDK客户端,以及将信息同步给所述Orderers节点。进一步地,所述CA认证中心,包括PKI架构和客户端源码校验进程。PKI架构用于管理区块链网络用户证书,客户端源码校验进程用于校验客户端源码是否被篡改。进一步地,所述步骤S3包括:步骤S31、由服务请求API接收来自于所述APPSDK客户端的服务请求;步骤S32、调用Meta-BFTMetamorphosisByzantineFault-Tolerant服务代理基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对所有合法交易进行排序;步骤S33、生产区块结构进程将排序后交易打包成区块结构,并由节点进程通知签名、发送进程完成区块打包的信息;步骤S34、签名、发送进程对区块进行签名和向所述Peers节点发送交易区块。进一步地,所述Peers节点负责维护区块链和账本结构包括维护状态DB、历史DB、索引DB等。所述步骤S4进一步包括:步骤S41、对所述Controller节点发送过来的交易区间进行检查与确认;步骤S42、把通过检查的合法交易记录到账中;步骤S43、把执行结果同步到所述APPSDK客户端和所述Orderers节点,同时发送当前产生的区块Hash值发送到所述Controller节点选择模型,用以触发所述Controller节点选择模型从所述Orderers节点选择出Controller节点。进一步地,所述Controller节点选择模型是利用前一个区块Hash值对所述Orderers节点总数求余数,进而从所述Orderers节点选择出与计算结果的余数具有相同编号的Orderers节点作为所述Controller节点。更具体的Controller节点选择模型的实现流程如图2所示,Controller节点选择模型实施的主要过程为:首先初始化视图变量v=0;然后通过前一个区块Hash值对Orderers节点总数|N|N为网络中Orderers节点的集合求余数来计算Controller节点的编号i0≤i≤|N|;接着调用verify函数来验证Controller节点是否有效,如果有效,则选择编号为i的Orderers节点Ni为Controller节点,同时结束本次运行,如果无效,则令v++,同时广播发送改变视图消息。这时,如果收到改变视图消息个数count大于等于|N|-ff为拜占庭错误容忍个数,且3f+1≤|N|,则令v=0,同时重新根据Controller节点选择计算公式生成Controller节点。反之,如果收到改变视图消息个数count小于|N|-f,则再次回到v++过程,重新发起改变视图消息,进入下一次Controller节点选择过程。Controller节点选择的具体计算过程如公式1所示。进一步地,所述Meta-BFT共识机制如图3所示,包括请求、准备、确认和回复广播四个阶段;所述请求阶段:所述APPSDK客户端向所述Controller节点发送请求服务;所述准备阶段:所述Controller节点基于所述请求服务向所有Orderers节点发送准备消息,然后所有Orderers节点验证所述Controller节点身份、服务请求、签名信息,如果一致,则进入确认阶段;所述确认阶段:所有Orderers节点给所述Controller节点发送确认消息;如果Controller节点收到确认成功的消息个数大于等于即可达成共识;所述回复广播阶段:在完成确认后,所述Controller节点再把执行结果返回给所述APPSDK客户端和所有Orderers节点。实施例二如图4所示,为本发明的一种基于Meta-BFT共识机制的区块链平台及实现方法具体应用在Fabric区块链平台上的的交易处理流程示意图,在实施例一的基础上,将Peers节点进一步细分为PeersEndorser节点和PeersCommitter节点。所述区块链平台主要包括:APPSDK客户端、CACertificateAdministrator认证中心、PeersEndorser节点、PeersCommitter节点、Controller节点选择模型、Controller节点和Orderers节点。所述APPSDK客户端,用于向所述CA认证中心进行注册登录以获得授权,发起服务请求和接收执行结果。进一步地,所述APPSDK客户端,还需要进行签名校验,比对多个Endorser以及检查是否收集到了足够多根据系统实际背书策略而定的背书Endorsement支持。所述CA认证中心,是区块链网络上的一个认证授权机构,用于对所述APPSDK客户端进行认证、校验、授权。进一步地,所述CA认证中心还用于实现PKI架构、管理区块链网络证书和校验客户端源代码是否被篡改。所述PeersEndorser节点为背书节点,其主要任务是对交易提案进行背书处理,然后把背书处理后的决定反馈给所述APPSDK客户端。此外,该节点还将一直监听区块链网络中服务请求的执行结果,以及把监听到的执行结果转发给所述APPSDK客户端。进一步地,所述PeersEndorser节点还用于校验Proposal签名;检验是否满足ChannelACL;模拟执行交易并对结果签名ESCC。所述PeersCommitter节点是确认节点,其主要职责是维护区块链和账本结构,它将对所述Controller节点发送过来的交易区块结构进行记账前的最后一次检查与确认,然后把通过检查的区块结构打包成区块,最后把区块录到账本中,以及将信息同步到所述PeersEndorser节点和所述Orderers节点。进一步地,所述PeersCommitter节点检查交易结构完整性、签名、是否重复;检验交易是否符合背书Endorsement策略VSCC;检查读集合中版本与账本是否一致;以及执行区块中的合法交易,更新账本状态。所述Controller节点选择模型采用图2中的实施例方式,其主要功能为从所述Orderers节点中产生一个Controller节点。所述Controller节点主要用于基于图3中的Meta-BFT共识机制对所述APPSDK客户端发送过来的交易进行排序操作,并把排好序的交易组合成区块结构,最后发送给PeersCommitter节点进行检查与确以。所述Orderers节点是区块链网络中的权威节点,具有对交易排序的权利。本发明的实施例二还提供又一种基于Meta-BFT共识机制的区块链平台实现方法,主要包括以下步骤:步骤0、所述APPSDK客户端向所述CA认证中心进行注册登录以获得一个合法的身份证书来加入到网络;步骤1、所述APPSDK客户端构造一个交易提案给所述PeersEndorser节点;其中所述交易提案包括通道id、链码、参数、用户签名;步骤2、所述PeersEndorser节点回复所述交易提案响应;所述交易提案响应包括读写设置、endorsement状态、endorser签名;步骤3、待所述APPSDK客户端接收到满足条件的背书决定后就会构造一个合法的交易请求给所述PeersEndorser节点,并由所述PeersEndorser节点将该请求转发给所述Controller节点;所述交易请求包括读写设置、endorser签名、通道id;步骤4、所述Controller节点根据所述Controller节点选择模型从所述Orderers节点中选择出Controller节点,进而所有所述APPSDK客户端只向所述Controller节点发送服务请求;所述Controller节点基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对区块链网络中所有合法交易进行排序,并把排序好的交易组合生成交易区块结构;步骤5、所述Controller节点发送所述交易区块结构到所述PeersCommitter节点;所述PeersCommitter节点对所述Controller节点发送过来的交易区块结构进行记账前的最后一次检查与确认,然后把通过检查的交易区块结构打包成区块,最后把区块录到账本中,以及将信息同步到所述PeersEndorser节点和所述Orderers节点。进一步地,所述APPSDK客户端还将通过监听网络中所述PeersEndorser节点的状态来确认交易请求是否被成功执行。尽管上述实施例已经对本发明进行了较为具体的表述与说明,但是其仅仅只能表述本发明的几种主要实施方式,而不能代表本发明专利所涵盖的保护范围。因此,如果本领域的相关研究人员,在不脱离本发明构思的前提下,对本发明进行相关的实施与应用,那么仍然属于本发明的保护范围之内。

权利要求:1.一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台,其特征在于,包括APPSDK客户端、CA认证中心、Orderers节点、Peers节点、Controller节点选择模型以及Controller节点;所述APPSDK客户端,用于向所述CA认证中心进行注册登录以获得授权,发起服务请求和接收执行结果;所述CA认证中心,用于对所述APPSDK客户端进行认证、校验、授权;所述Orderers节点是区块链网络中的权威节点,具有对交易排序的权利;所述Peers节点,用于维护区块链和账本结构;所述Controller节点选择模型,用于从所述Orderers节点中选择出Controller节点;所述Controller节点,用于基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对区块链网络中所有的合法交易进行排序服务,并将排好序的合法交易组合成区块结构发送给Peers节点。2.根据权利要求1所述的一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台,其特征在于,所述CA认证中心包括PKI架构和客户端源码校验进程,其中所述PKI架构用于管理区块链网络用户证书,所述客户端源码校验进程用于校验客户端源码是否被篡改。3.根据权利要求1所述的一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台,其特征在于,所述Controller节点包括服务请求API,Meta-BFTMetamorphosisByzantineFault-Tolerant服务代理,生产区块结构进程,节点进程以及签名、发送进程;其中所述服务请求API用于和所述APPSDK客户端进行信息交互;所述Meta-BFTMetamorphosisByzantineFault-Tolerant服务代理用于基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对所有合法交易进行排序;所述生产区块结构进程用于生成经过排序交易后的区块结构;所述节点进程用于监听生产区块结构进度;所述签名、发送进程主用于对区块结构进行签名和向Peers节点发送区块。4.根据权利要求1所述的一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台,其特征在于,所述Controller节点选择模型是利用前一个区块Hash值对所述Orderers节点总数求余数,进而从所述Orderers节点选择出与计算结果的余数具有相同编号的Orderers节点作为所述Controller节点,其中平台初始化时需产生第一个创世区块。5.根据权利要求1所述的一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台,其特征在于,所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制包括请求、准备、确认和回复广播四个阶段;所述请求阶段:所述APPSDK客户端向所述Controller节点发送请求服务;所述准备阶段:所述Controller节点基于所述请求服务向所有Orderers节点发送准备消息,然后所有Orderers节点验证所述Controller节点身份、服务请求、签名信息,如果一致,则进入确认阶段;所述确认阶段:所有Orderers节点给所述Controller节点发送确认消息;如果Controller节点收到确认成功的消息个数大于等于即可达成共识,其中f为拜占庭错误容忍个数,且3f+1≤|N|,|N|为网络中所有Orderers节点个数;所述回复广播阶段:在完成确认后,所述Controller节点再把执行结果返回给所述APPSDK客户端和所有Orderers节点。6.一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台的实现方法,其特征在于,所述区块链平台包括APPSDK客户端、CACertificateAdministrator认证中心、Orderers节点、Peers节点、Controller节点选择模型以及Controller节点;所述方法包括以下步骤:步骤S1、所述APPSDK客户端向所述CA认证中心进行注册登录;步骤S2、根据所述Controller节点选择模型从所述Orderers节点中选择出Controller节点,进而所有所述APPSDK客户端只向所述Controller节点发送服务请求;步骤S3、所述Controller节点基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对区块链网络中所有合法交易进行排序,并把排序好的交易组合生成区块结构,同时将结果发送所述Peers节点;步骤S4、由所述Peers节点确认后把结果返回给所述APPSDK客户端,以及将信息同步给所述Orderers节点。7.根据权利要求6所述的一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台的实现方法,其特征在于,所述步骤S3进一步包括:步骤S31、由服务请求API接收来自于所述APPSDK客户端的服务请求;步骤S32、调用Meta-BFTMetamorphosisByzantineFault-Tolerant服务代理基于所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制对所有合法交易进行排序;步骤S33、生产区块结构进程将排序后交易打包成区块结构,并由节点进程通知签名、发送进程完成区块打包的信息;步骤S34、签名、发送进程对区块进行签名和向所述Peers节点发送交易区块。8.根据权利要求6所述的一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台的实现方法,其特征在于,所述步骤S4进一步包括:步骤S41、对所述Controller节点发送过来的交易区间进行检查与确认;步骤S42、把通过检查的合法交易记录到账中;步骤S43、把执行结果同步到所述APPSDK客户端和所述Orderers节点,同时发送当前产生的区块Hash值发送到所述Controller节点选择模型,用以触发所述Controller节点选择模型从所述Orderers节点选择出Controller节点。9.根据权利要求6所述的一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台的实现方法,其特征在于,所述Controller节点选择模型是利用前一个区块Hash值对所述Orderers节点总数求余数,进而从所述Orderers节点选择出与计算结果的余数具有相同编号的Orderers节点作为所述Controller节点,其中平台初始化时需产生第一个创世区块。10.根据权利要求6所述的一种基于Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制的区块链平台的实现方法,其特征在于,所述Meta-BFTMetamorphosisByzantineFault-Tolerant共识机制包括请求、准备、确认和回复广播四个阶段;所述请求阶段:所述APPSDK客户端向所述Controller节点发送请求服务;所述准备阶段:所述Controller节点基于所述请求服务向所有Orderers节点发送准备消息,然后所有Orderers节点验证所述Controller节点身份、服务请求、签名信息,如果一致,则进入确认阶段;所述确认阶段:所有Orderers节点给所述Controller节点发送确认消息;如果Controller节点收到确认成功的消息个数大于等于即可达成共识,其中f为拜占庭错误容忍个数,且3f+1≤|N|,|N|为网络中所有Orderers节点个数;所述回复广播阶段:在完成确认后,所述Controller节点再把执行结果返回给所述APPSDK客户端和所有Orderers节点。

百度查询: 广州中国科学院软件应用技术研究所 基于Meta-BFT共识机制的区块链平台及实现方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。