一种拜占庭场景下的区块链数据共识方法及装置与流程

文档序号:28427805发布日期:2022-01-12 00:36阅读:71来源:国知局
一种拜占庭场景下的区块链数据共识方法及装置与流程

1.本发明涉及一种区块链技术领域,更具体地,涉及一种拜占庭场景下的区块链数据共识方法及装置。


背景技术:

2.区块链网络由分布式的区块链节点组成,通过开放的网络进行数据交换,且通常由参与方独立运行服务镜像,是一种典型的拜占庭场景下的分布式系统。
3.拜占庭场景下的分布式系统数据共识通常采用bft共识算法及其变种共识算法实现数据传输和数据共识,一般分为两阶段prepare-commit达成。
4.传统的bft共识算法需要较多的网络数据交互,且会因网络延迟影响共识达成速度,在此期间,基于该共识算法的区块链节点将无法进行后续操作,进入闲置阶段,从而影响区块链系统的整体吞吐量。
5.为了提升区块链数据共识效率、减少网络带宽压力并提升区块链系统整体吞吐量,需要更合理的设计区块链数据共识算法和区块链系统组件架构。


技术实现要素:

6.针对现有技术中存在的上述弊端,本发明的目的是提供一种拜占庭场景下的区块链数据共识方法及装置,将区块链数据共识模块解耦拆分为区块生产者队列管理模块、区块生产模块、区块预提交模块、区块提交模块、区块同步模块、区块链分叉处理模块和区块不可逆处理模块等多个子模块,以异步的方式执行共识的prepare-commit阶段,区块生产、区块预提交、区块提交和区块不可逆处理以串行或并行的方式执行。
7.本发明的目的及解决其技术问题是采用以下技术方案来实现的:一种拜占庭场景下的区块链数据共识方法,其实现流程中包括区块生产者队列管理、区块生产、区块预提交、区块提交、区块同步、区块链分叉处理和区块不可逆处理,其特征在于,所述区块生产者队列管理维护一个全局唯一的区块生产者队列,用于判断区块生产权限,所述区块生产完成事务执行、签名校验和事务打包进区块,所述区块预提交完成区块数据共识预提交阶段,所述区块提交完成区块数据共识提交阶段,所述区块同步全程参数事务和区块的广播和点对点传输,所述区块链分叉处理完成局部分叉链的处理,所述区块不可逆处理完成达成共识的区块入链和持久化。
8.优选的,所述区块生产者队列管理维护一个全局唯一的区块生产者队列,其中每个区块生产者包括区块生产时间片、区块生产者账号和区块生产者非对称加密公钥等信息,每个时间片区块链网络节点各自检查其是否拥有该时间片的生产权限,有则主动开始区块生产,无则等待;当收到其它节点发送过来的区块时检查其时间片和生产者账号,并使用其非对称加密公钥校验区块签名。
9.优选的,所述区块生产发现某一时间片轮到该节点生产时则开始区块生产,若不是,则等待其它节点生产。
10.优选的,所述区块预提交只有在该节点处于区块生产阶段时才会执行,支持与区块生产串行或并行的方式执行,若该节点当前时间片不在生产区块,则不会进行区块预提交处理,此为异步共识第一阶段。
11.优选的,所述区块提交只有在该节点处于区块生产阶段时才会执行,支持预区块生产串行或并行的方式执行,若该节点当前时间片不在生产区块,则不会进行区块提交处理,此为异步共识第二阶段。
12.优选的,所述区块同步全程参与事务、区块和共识信息的广播和点对点传输。
13.优选的,所述区块链分叉处理根据最长链经济博弈原则优选局部最长的分叉链作为有效的局部区块链,剔除其它局部分叉链,当区块处于预提交和提交阶段时可以被区块链分叉处理,当区块共识完成进入不可逆阶段时,自动从区块链分叉中移除,不再进行后续分叉处理。
14.优选的,所述区块不可逆处理校验区块编号是否连续,按照区块编号大小依次将达成共识的不可逆区块追加到区块链中,并实时持久化。
15.为了实现本发明的目的,本发明的第二发明,提供一种拜占庭场景下的区块链数据共识装置,包括:区块生产者队列管理模块、区块生产模块、区块预提交模块、区块提交模块、区块同步模块、区块链分叉处理模块和区块不可逆处理模块;其中,区块生产者队列管理模块维护一个全局唯一的区块生产者队列,队列中每个单元由区块生产时间片、区块生产者账号、区块生产者非对称加密公钥等信息组成,提供更新区块生产者队列接口,以系统事务的方式在区块链网络中执行、校验并生效,区块生产模块按事务发起时间依次执行事务逻辑、校验事务参与方签名,根据区块打包策略打包事务到区块中,然后转入区块预提交模块并向区块链网络广播或点对点传输,区块预提交模块维护一个区块预提交列表,存储待预提交共识的区块信息和共识进度信息,并根据区块校验结果更新共识进度,将达成预提交共识的区块转发给区块提交模块、区块同步模块和区块链分叉处理模块,区块提交模块维护一个区块提交列表,存储待提交共识的区块信息和共识进度信息,并根据区块校验结果更新共识进度,将达成提交共识的区块转发给区块不可逆处理模块、区块同步模块和区块链分叉处理模块,区块同步模块进行事务、区块、区块共识信息的广播或点对点传输,区块链分叉处理模块进行区块链局部分叉处理,根据最长链经济博弈原则选择最长链,剔除其它分叉链,区块不可逆处理模块维护一个区块待入链列表,按照区块编号依次将区块写入区块链存储层。
16.优选的,所述模块以插件的形式作为区块链系统的一部分,区块链数据共识异步执行,区块链网络各节点只有当其处于区块生产阶段时才会串行或并行执行区块预提交和区块提交,非处于区块生产阶段时只会适机执行区块生产者队列管理、区块同步、区块链分叉处理和区块不可逆处理。
17.本发明实施例的一种拜占庭场景下的区块链数据共识方法及装置具有如下有点:各功能模块以独立插件的形式存在,降低耦合,可插拔、升级、替换,区块链数据共识以异步的方式执行,降低了网络带宽压力,区块生产、区块预提交和区块提交以串行或并行的方式执行,充分利用多核处理器的性能,区块生产者各自检查区块生产权限,到期自动开始生产,不会受限于前述共识进度影响,提升了全网的事务处理吞吐量。
附图说明
18.图1为本发明实施例提供的一种拜占庭场景下的区块链数据共识装置拓扑示意图;图2为本发明实施例提供的一种拜占庭场景下的区块链数据共识装置结构示意图;图3为本发明实施例提供的一种拜占庭场景下的区块链数据共识装置流程示意图。
具体实施方式
19.为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种拜占庭场景下的区块链数据共识方法及装置其具体实施方式、结构、特征及其功效,详细说明如后。显然,所描述的实施例为本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
20.请参阅图1,图1为本发明实施例提供的一种拜占庭场景下的区块链数据共识装置拓扑示意图。
21.如图1所示,区块链网络由多个节点组成,包括多个参与方区块链网络节点201,通过配置的节点地址建立点对点连接202,各节点核心的共识模块有区块生产模块203、区块预提交模块204、区块提交模块205、区块同步模块206。
22.在本实施例中,所有区块生产模块203、区块预提交模块204、区块提交模块205、区块同步模块206运行实例的数目是不固定的,根据实际需要调整,其运行方式可以是串行的,也可以是并行的。
23.在本实施例中,所有区块生产模块203、区块预提交模块204、区块提交模块205、区块同步模块206均是功能上的独立服务或独立插件,可以在或不在同一个物理节点上。
24.请参阅图2,图2为本发明实施例提供的一种拜占庭场景下的区块链数据共识装置的结构示意图,请同时参阅图1。
25.如图2所示,一种拜占庭场景下的区块链数据共识装置,包括区块生产者队列模块101、区块生产模块102、区块预提交模块103、区块提交模块104、区块同步模块105、区块链分叉处理模块106和区块不可逆处理模块107。
26.在本实施例中,所述区块生产者队列模块101维护一个全局唯一的区块生产者队列,用于校验区块生产权限,所述区块生产模块102负责事务执行、事务签名校验、区块打包和区块签名,所述区块预提交模块103执行共识第一阶段的预提交共识逻辑,所述区块提交模块104执行共识第二阶段的提交共识逻辑,所述区块同步模块105负责事务、区块和共识信息的广播和点对点传输,所述区块链分叉处理模块106完成局部区块链的分叉处理,剔除分叉链,所述区块不可逆处理模块107负责将达成两阶段共识的区块写入区块链,完成持久化工作。
27.请参阅图3,图3为本发明实施例提供的一种拜占庭场景下的区块链数据共识方法的流程示意图。如图3所示,一种拜占庭场景下的区块链数据共识方法,假定区块生产者队列由5
个生产者abcde组成,每个生产者每个时间片只出1个区块,根据2/3(n)+1原则,需要4个生产者共识才能达成大多数共识。具体步骤如下:步骤s310:生产者a开始生产第一个区块,编号为1,此时预提交列表和提交列表全部为空,由于区块1为该节点自己生产,直接可以更新预提交列表,记录区块编号
‑‑
确认者为{1-a};步骤s320:生产者b生产区块2,然后向预提交列表添加记录:2-b,并对区块1进行预提交确认,通过后更新为1-ab,此时预提交列表变为{1-ab,2-b},需要注意的是,所有预提交确认者不会多次对同一个区块进行确认,最多确认一次;步骤s330:生产者c生产区块3,然后向预提交列表添加记录:3-c,并对区块1和区块2进行预提交确认,通过后更新为1-abc,2-bc,此时预提交列表变为{1-abc,2-bc,3-c};步骤s340:生产者d生产区块4,然后向预提交列表添加记录:4-d,并对区块1、区块2和区块3进行预提交确认,通过后更新为1-abcd,2-bcd,3-cd,由于区块1满足2/3(n)+1原则,将区块1从预提交列表转到提交列表,并对其标记确认成功,此时预提交列表变为{2-bcd,3-cd,4-d},提交列表变为{1-d};步骤s350:生产者e生产区块5,然后向预提交列表添加记录:5-e,然后对区块2,区块3和区块4进行预提交确认,通过后更新为2-bcde,3-cde,4-de,由于区块2满足2/3(n)+1原则,将区块2从预提交列表转到提交列表,并对其标记确认成功,此时预提交列表变为{3-cde,4-de,5-e},然后对提交列表进行确认,改为{1-de,2-e};步骤s360:进入生产者队列的第二轮区块生产,生产者a生产区块6,更新预提交列表为{4-dea,5-ea,6-a},更新提交列表为{1-dea,2-ea,3-a};步骤s370:生产者b生产区块7,更新预提交列表为{5-eab,6-ab,7-b},更新提交列表,由于1-deab满足2/3(n)+1原则,将区块1从提交列表转移到区块不可逆模块,最后提交列表变为{2-eab,3-ab,4-b},此时区块1变为不可逆状态;步骤s380:生产者c生产区块8,更新预提交列表为{6-abc,7-bc,8-c},更新提交列表为{3-abc,4-bc,5-c},此时区块2变为不可逆状态。
28.本发明其基本思路为将拜占庭场景下的区块链数据共识模块拆分为多个子模块,并将同步共识改为异步共识,使得原来的{生产、预提交、提交}
‑‑
》{生产、预提交、提交}的模式改为{生产
‑‑
》生产
‑‑

……
}、{预提交
‑‑
》预提交
‑‑

……
}和{提交
‑‑
》提交
‑‑

……
}并行的异步共识模式,尽可能的保持区块链系统的持续写入状态,提升区块链的整体吞吐量。
29.本实施例的区块链网络和数据共识装置适于部署在多个服务器上,该服务器包括通用的计算机硬件结构,如处理器、存储器和网络设备;处理器可以是独立的微处理器,也可以是一个或多个微处理器的集合;存储器包括内存、磁盘等,可以是一个或多个的集合;网络设备包括网卡、驱动等,可以是一个或多个的集合;另外,该服务器还应包括一系列计算机软件,包括操作系统、工具库等。
30.在本说明书的描述中,除非另有明确的规定和限定,“记录”、“数据”、“信息”等术语应做广义理解,例如,数据可以是一张数据表,也可以是一条表条目,也可以是一个数据字段。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
31.在本说明书的描述中,除非另有明确的规定和限定,“节点”、“模块”、“引擎”、“系
统”等术语为其功能描述,并不限定其具体存在形式,可以是一个独立的计算机程序,也可以是一个计算机程序的逻辑子模块,也可以是由多个计算机程序组成的服务集合。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
32.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
33.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1