共识结果的分发方法、节点和区块链系统技术方案

技术编号:34039940 阅读:11 留言:0更新日期:2022-07-06 13:14
一种共识结果的分发方法、共识节点、非共识节点和区块链系统。其中区块链系统包括共识节点以及与其对应的多个非共识节点。共识节点采用纠删码算法对共识结果进行拆分以得到多个数据块,并向不同的非共识节点发送不同的数据块;从共识节点接收到数据块的非共识节点向其余非共识节点广播来自共识节点的数据块;非共识节点接收到多个数据块中的至少Q个数据块后,对该至少Q个数据块进行解码以生成共识结果,其中Q的取值基于多个数据块的数量以及其中用于存储纠删码的数据块的数量确定。中用于存储纠删码的数据块的数量确定。中用于存储纠删码的数据块的数量确定。

【技术实现步骤摘要】
共识结果的分发方法、节点和区块链系统


[0001]本说明书实施例属于区块链
,尤其涉及一种共识结果的分发方法、共识节点、非共识节点和区块链系统。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。

技术实现思路

[0003]本专利技术的目的在于提供一种共识结果的分发方法、共识节点、非共识节点和区块链系统。
[0004]第一方面,提供了一种区块链系统,包括共识节点以及其对应的多个非共识节点。其中所述共识节点采用纠删码算法对共识结果进行拆分以得到多个数据块,并向所述多个非共识节点中的至少部分非共识节点发送所述数据块,发送至不同的非共识节点的数据块不同;从所述共识节点接收到数据块的非共识节点,向所述多个非共识节点中的其余非共识节点广播其从所述共识节点接收的数据块;所述非共识节点在接收到至少Q个所述数据块后,对所述至少Q个所述数据块进行解码以生成所述共识结果,其中Q的取值基于所述多个数据块的数量以及所述多个数据块中用于存储纠删码的数据块的数量确定。
[0005]第二方面,提供了一种共识结果的分发方法,应用于区块链系统中的共识节点,所述区块链系统中还包括与所述共识节点对应的多个非共识节点。所述方法包括:采用纠删码算法对共识结果进行拆分以得到多个数据块;向所述多个非共识节点中的至少部分非共识节点发送所述数据块,发送至不同的非共识节点的数据块不同,使得各个所述非共识节点生成所述共识结果。
[0006]第三方面,提供了一种共识结果的分发方法,应用于属于区块链系统的多个非共识节点中的任一非共识节点,所述多个非共识节点对应相同的共识节点。该方法包括:从所述共识节点和/或其余非共识节点中的至少Q个节点接收至少Q个数据块,所述至少Q个数据块属于由所述共识节点采用纠删码算法对共识结果进行拆分以得到的多个数据块,Q的取值基于所述多个数据块的数量以及所述多个数据块中用于存储纠删码的数据块的数量确定;对所述至少Q个数据块进行解码以生成所述共识结果。
[0007]第四方面,提供了一种区块链系统中的共识节点,所述区块链系统中还包括与所述共识节点对应的多个非共识节点。所述共识节点包括:编码处理单元,配置为采用纠删码算法对共识结果进行拆分以得到多个数据块;通信处理单元,配置为向所述多个非共识节点中的至少部分非共识节点发送所述数据块,发送至不同的非共识节点的数据块不同,使得各个所述非共识节点生成所述共识结果。
[0008]第五方面,提供了一种区块链系统中的非共识节点,其与共识节点对应。所述非共识节点包括:通信处理单元,配置为从所述共识节点和/或与所述共识节点对应的其余非共识节点中的至少Q个节点接收至少Q个数据块,所述至少Q个数据块属于由所述共识节点采用纠删码算法对共识结果进行拆分以得到的多个数据块,Q的取值基于所述多个数据块的数量以及所述多个数据块中用于存储纠删码的数据块的数量确定;解码处理单元,配置为对所述至少Q个数据块进行解码以生成所述共识结果。
[0009]上述实施例中,共识节点采用纠删码算法对共识结果进行拆分以得到多个数据块,并向与其对应的不同的非共识节点分发不同的数据块;非共识节点之间可以广播其从共识节点接收的数据块,进而使得单个非共识节点从共识节点和或其余非共识节点接收到满足相应数量的数据块后,可以对这些数据块进行解码以获得前述共识结果。如此,共识节点向非共识节点分发的数据量并不会随非共识节点的规模的增大而增大,共识节点向非共识节点的数据量相对较小,可以更为快速的完成向大规模非共识节点分发共识结果,效率相对较高。
附图说明
[0010]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1为本说明书实施例中示例性提供的PBFT共识算法中的共识过程示意图;
[0012]图2为本说明书实施例中示例性提供的区块链系统的示意图;
[0013]图3为本说明书实施例中提供的一种共识结果的分发方法的流程图;
[0014]图4为本说明书实施例中示例性提供的共识节点分发共识结果的示意图之一;
[0015]图5为本说明书实施例中示例性提供的默克尔树的示意图;
[0016]图6为本说明书实施例中示例性提供的共识节点分发共识结果的示意图之二;
[0017]图7为本说明书实施例中示例性提供的共识节点分发共识结果的示意图之三;
[0018]图8为本说明书实施例中示例性提供的共识节点分发共识结果的示意图之四;
[0019]图9为本说明书实施例中提供的一种共识节点的示意图;
[0020]图10为本说明书实施例中提供的一种非共识节点的示意图。
具体实施方式
[0021]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0022]区块链系统中,不同参与方通过部署的节点(Node)可以建立一个分布式的区块链网络。利用链式区块结构构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上。这样的区块链系统需要解决
去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果一致,将交易打包成区块并基于相同交易的执行结果更新世界状态。其中当前主流的共识机制包括但不限于:工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法,蜜獾拜占庭容错(HoneyBadgerBFT)算法等等。
[0023]图1为PBFT共识算法中的共识过程示意图。如图1所示,根据PBFT共识算法,可将共识过程划分为请求、预备、准备和提交四个阶段。假设一区块链中包括节点n1

节点n4四个共识节点,其中,节点n1例如为主节点,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链系统,包括共识节点以及其对应的多个非共识节点,其中,所述共识节点采用纠删码算法对共识结果进行拆分以得到多个数据块,并向所述多个非共识节点中的至少部分非共识节点发送所述数据块,发送至不同的非共识节点的数据块不同;从所述共识节点接收到数据块的非共识节点,向所述多个非共识节点中的其余非共识节点广播其从所述共识节点接收的数据块;所述非共识节点在接收到至少Q个所述数据块后,对所述至少Q个所述数据块进行解码以生成所述共识结果,其中Q的取值基于所述多个数据块的数量以及所述多个数据块中用于存储纠删码的数据块的数量确定。2.根据权利要求1所述的区块链系统,其中,所述多个数据块的数量相等于所述多个非共识节点的数量。3.根据权利要求1所述的区块链系统,其中,所述共识节点向所述非共识节点发送的数据块位于所述共识节点向所述非共识节点发送的第一消息中;所述第一消息中还包括所述共识节点对所述第一消息的签名,和/或,所述第一消息中还包括位于其中的数据块所对应的默克尔证明;所述非共识节点从所述共识节点接收到所述第一消息后,对所述第一消息的签名进行验证,和/或,对所述第一消息中的数据块和默克尔证明进行验证。4.根据权利要求3所述的区块链系统,其中,所述非共识节点从其余非共识节点接收的数据块位于所述非共识节点从其余非共识节点接收的第二消息中,所述第二消息中还包括对应的非共识节点对所述第二消息的签名,和/或,所述第二消息中还包括位于其中的数据块所对应的默克尔证明;所述非共识节点当前节点接收到所述第二消息后,对所述第二消息的签名进行验证,和/或,对所述第二消息中的数据块和默克尔证明进行验证。5.根据权利要求1

4中任一项所述的区块链系统,其中,所述共识节点向所述非共识节点发送用于指示所述共识节点的区块高度的指示信息。6.根据权利要求5所述的区块链系统,其中,所述共识节点响应于来自所述非共识节点的区块同步请求,向所述非共识节点发送其请求同步的区块。7.一种共识结果的分发方法,应用于区块链系统中的共识节点,所述区块链系统中还包括与所述共识节点对应的多个非共识节点,所述方法包括:采用纠删码算法对共识结果进行拆分以得到多个数据块;向所述多个非共识节点中的至少部分非共识节点发送所述数据块,发送至不同的非共识节点的数据块不同,使得各个所述非共识节点生成所述共识结果。8.根据权利要求7所述的方法,其中,所述多个数据块的数量相等于与所述多个非共识节点的数量。9.根据权利要求7所述的方法,其中,所述共识节点向所述非共识节点发送的数据块位于所述共识节点向所述非共识节点发送的第一消息中;所述第一消息中还包括所述共识节点对所述第一消息的签名,和/或,所述第一消息中还包括位于其中的数据块所对应的默克尔证明。10.根据权利要求7

9中任一项所述的方法,所述方法还包括:向所述非共识节点发送
用于指示所述共识节点的区块高度的指示信息。11.根据权利要求10所述的方法,所述方法还包括:响应于来自...

【专利技术属性】
技术研发人员:石杰
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1