一种拜占庭场景下的区块链数据共识方法及装置制造方法及图纸

技术编号:31828417 阅读:15 留言:0更新日期:2022-01-12 13:01
本发明专利技术涉及区块链技术领域,具体公开了一种拜占庭场景下的区块链数据共识方法及装置,该装置包括区块生产者队列管理模块、区块生产模块、区块预提交模块、区块提交模块、区块同步模块、区块链分叉处理模块和区块不可逆处理模块,其共识方法是赋予不同模块以不同的功能;通过本发明专利技术,将传统拜占庭场景下的分布式数据共识异步化,由两阶段同步确认模式转为两阶段异步确认模式,一是可以减少区块链分布式系统进行数据共识时的网络带宽压力,二是可以充分利用处理器时间片,每一时刻都会进行交易和区块处理,提升区块链网络的整体吞吐量。提升区块链网络的整体吞吐量。提升区块链网络的整体吞吐量。

【技术实现步骤摘要】
一种拜占庭场景下的区块链数据共识方法及装置


[0001]本专利技术涉及一种区块链
,更具体地,涉及一种拜占庭场景下的区块链数据共识方法及装置。

技术介绍

[0002]区块链网络由分布式的区块链节点组成,通过开放的网络进行数据交换,且通常由参与方独立运行服务镜像,是一种典型的拜占庭场景下的分布式系统。
[0003]拜占庭场景下的分布式系统数据共识通常采用BFT共识算法及其变种共识算法实现数据传输和数据共识,一般分为两阶段Prepare

Commit达成。
[0004]传统的BFT共识算法需要较多的网络数据交互,且会因网络延迟影响共识达成速度,在此期间,基于该共识算法的区块链节点将无法进行后续操作,进入闲置阶段,从而影响区块链系统的整体吞吐量。
[0005]为了提升区块链数据共识效率、减少网络带宽压力并提升区块链系统整体吞吐量,需要更合理的设计区块链数据共识算法和区块链系统组件架构。

技术实现思路

[0006]针对现有技术中存在的上述弊端,本专利技术的目的是提供一种拜占庭场景下的区块链数据共识方法及装置,将区块链数据共识模块解耦拆分为区块生产者队列管理模块、区块生产模块、区块预提交模块、区块提交模块、区块同步模块、区块链分叉处理模块和区块不可逆处理模块等多个子模块,以异步的方式执行共识的Prepare

Commit阶段,区块生产、区块预提交、区块提交和区块不可逆处理以串行或并行的方式执行。
[0007]本专利技术的目的及解决其技术问题是采用以下技术方案来实现的:一种拜占庭场景下的区块链数据共识方法,其实现流程中包括区块生产者队列管理、区块生产、区块预提交、区块提交、区块同步、区块链分叉处理和区块不可逆处理,其特征在于,所述区块生产者队列管理维护一个全局唯一的区块生产者队列,用于判断区块生产权限,所述区块生产完成事务执行、签名校验和事务打包进区块,所述区块预提交完成区块数据共识预提交阶段,所述区块提交完成区块数据共识提交阶段,所述区块同步全程参数事务和区块的广播和点对点传输,所述区块链分叉处理完成局部分叉链的处理,所述区块不可逆处理完成达成共识的区块入链和持久化。
[0008]优选的,所述区块生产者队列管理维护一个全局唯一的区块生产者队列,其中每个区块生产者包括区块生产时间片、区块生产者账号和区块生产者非对称加密公钥等信息,每个时间片区块链网络节点各自检查其是否拥有该时间片的生产权限,有则主动开始区块生产,无则等待;当收到其它节点发送过来的区块时检查其时间片和生产者账号,并使用其非对称加密公钥校验区块签名。
[0009]优选的,所述区块生产发现某一时间片轮到该节点生产时则开始区块生产,若不是,则等待其它节点生产。
[0010]优选的,所述区块预提交只有在该节点处于区块生产阶段时才会执行,支持与区块生产串行或并行的方式执行,若该节点当前时间片不在生产区块,则不会进行区块预提交处理,此为异步共识第一阶段。
[0011]优选的,所述区块提交只有在该节点处于区块生产阶段时才会执行,支持预区块生产串行或并行的方式执行,若该节点当前时间片不在生产区块,则不会进行区块提交处理,此为异步共识第二阶段。
[0012]优选的,所述区块同步全程参与事务、区块和共识信息的广播和点对点传输。
[0013]优选的,所述区块链分叉处理根据最长链经济博弈原则优选局部最长的分叉链作为有效的局部区块链,剔除其它局部分叉链,当区块处于预提交和提交阶段时可以被区块链分叉处理,当区块共识完成进入不可逆阶段时,自动从区块链分叉中移除,不再进行后续分叉处理。
[0014]优选的,所述区块不可逆处理校验区块编号是否连续,按照区块编号大小依次将达成共识的不可逆区块追加到区块链中,并实时持久化。
[0015]为了实现本专利技术的目的,本专利技术的第二专利技术,提供一种拜占庭场景下的区块链数据共识装置,包括:区块生产者队列管理模块、区块生产模块、区块预提交模块、区块提交模块、区块同步模块、区块链分叉处理模块和区块不可逆处理模块;其中,区块生产者队列管理模块维护一个全局唯一的区块生产者队列,队列中每个单元由区块生产时间片、区块生产者账号、区块生产者非对称加密公钥等信息组成,提供更新区块生产者队列接口,以系统事务的方式在区块链网络中执行、校验并生效,区块生产模块按事务发起时间依次执行事务逻辑、校验事务参与方签名,根据区块打包策略打包事务到区块中,然后转入区块预提交模块并向区块链网络广播或点对点传输,区块预提交模块维护一个区块预提交列表,存储待预提交共识的区块信息和共识进度信息,并根据区块校验结果更新共识进度,将达成预提交共识的区块转发给区块提交模块、区块同步模块和区块链分叉处理模块,区块提交模块维护一个区块提交列表,存储待提交共识的区块信息和共识进度信息,并根据区块校验结果更新共识进度,将达成提交共识的区块转发给区块不可逆处理模块、区块同步模块和区块链分叉处理模块,区块同步模块进行事务、区块、区块共识信息的广播或点对点传输,区块链分叉处理模块进行区块链局部分叉处理,根据最长链经济博弈原则选择最长链,剔除其它分叉链,区块不可逆处理模块维护一个区块待入链列表,按照区块编号依次将区块写入区块链存储层。
[0016]优选的,所述模块以插件的形式作为区块链系统的一部分,区块链数据共识异步执行,区块链网络各节点只有当其处于区块生产阶段时才会串行或并行执行区块预提交和区块提交,非处于区块生产阶段时只会适机执行区块生产者队列管理、区块同步、区块链分叉处理和区块不可逆处理。
[0017]本专利技术实施例的一种拜占庭场景下的区块链数据共识方法及装置具有如下有点:各功能模块以独立插件的形式存在,降低耦合,可插拔、升级、替换,区块链数据共识以异步的方式执行,降低了网络带宽压力,区块生产、区块预提交和区块提交以串行或并行的方式执行,充分利用多核处理器的性能,区块生产者各自检查区块生产权限,到期自动开始生产,不会受限于前述共识进度影响,提升了全网的事务处理吞吐量。
附图说明
[0018]图1为本专利技术实施例提供的一种拜占庭场景下的区块链数据共识装置拓扑示意图;图2为本专利技术实施例提供的一种拜占庭场景下的区块链数据共识装置结构示意图;图3为本专利技术实施例提供的一种拜占庭场景下的区块链数据共识装置流程示意图。
具体实施方式
[0019]为更进一步阐述本专利技术为达成预定专利技术目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本专利技术提出的一种拜占庭场景下的区块链数据共识方法及装置其具体实施方式、结构、特征及其功效,详细说明如后。显然,所描述的实施例为本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术的保护范围。
[0020]请参阅图1,图1为本专利技术实施例提供的一种拜占庭场景下的区块链数据共识装置拓扑示意图。
[0021]如图1所示,区块链网络由多个节点组成,包括多个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种拜占庭场景下的区块链数据共识方法,其实现流程中包括区块生产者队列管理、区块生产、区块预提交、区块提交、区块同步、区块链分叉处理和区块不可逆处理,其特征在于,所述拜占庭场景下的区块链数据共识方法包括:通过区块生产者队列管理控制全网唯一的生产者队列,通过区块生产处理事务、打包区块,通过区块预提交完成异步拜占庭共识第一阶段,通过区块提交完成异步拜占庭共识第二阶段,通过区块同步实现全流程中的事务和区块广播及点对点传输,通过区块链分叉处理解决区块链局部分叉问题,通过区块不可逆处理对达成共识的区块写入底层区块链。2.根据权利要求1所述的一种拜占庭场景下的区块链数据共识方法,其特征在于,所述区块生产者队列管理包含了全网唯一的合法区块生产者队列,其中所述每个区块生产者信息包括区块生产时间片、区块生产者账号、区块生产者非对称加密公钥等信息,所述区块生产时间片和区块生产者账号共同确定每个区块的生产权限,所述区块生产者非对称加密公钥用于给其它节点校验区块签名,此外,所述区块生产者队列管理支持热更新,更新操作以系统事务的形式在区块链网络中执行并在达成共识后生效。3.根据权利要求1所述的一种拜占庭场景下的区块链数据共识方法,其特征在于,所述区块生产用于执行事务逻辑、校验事务签名、打包事务到区块和区块签名,其中所述执行事务逻辑按照事务所述合约的定义执行,成功后更新状态数据库,所述校验事务签名根据事务发起方和参与方非对称加密公钥校验事务签名,所述打包事务对已执行、校验成功的事务在满足区块限制条件的前提下将合法事务打包进即将生产的新区块,所述区块签名使用该生产者的非对称加密私钥对新区块签名。4.根据权利要求1所述的一种拜占庭场景下的区块链数据共识方法,其特征在于,所述区块预提交包含一个预提交区块列表,该列表存储所有未达成预提交共识的区块和共识进度信息,其中未达成预提交共识的区块信息包含区块编号和区块哈希值等信息,共识进度信息包含对该区块共识通过的区块生产者账号和区块生产者签名,所述区块预提交校验预提交区块列表中的区块,并对前述区块生产新产生的区块预提交,最后将达成预提交共识的区块从预提交区块列表转移到前述区块提交的提交区块列表中。5.根据权利要求1所述的一种拜占庭场景下的区块链数据共识方法,其特征在于,所述区块提交包含一个提交区块列表,该列表存储所有未达成提交共识的区块和共识进度信息,其中未达成提交共识的区块信息包含区块编号和区块哈希值等信息,共识进度信息包含对该区块共识通过的区块生产者账号和区块生产者签名,所述区块提交校验提交区块列表中的区块,并对前述区块预提交新共识通过的区块提交,最后将达成提交共识的区块从提交区块列表转移到前述区块不可逆处理的区块待入链列表中。6.根据权利要求1所述的一种拜占庭场景下的区块链数据共识方法,其特征在于,所述区块同步参与数据共识全流程的数据交换,所述全流程包括事务传输、区块传输、区块预提交信息传输和区块提交信息传输等,所述数据包括事务数据和区块数据,所述传输方式包括广播方式和点对点传输方式。7.根据权利要求1所述的一种拜占庭场景下的区块链数...

【专利技术属性】
技术研发人员:张宏良
申请(专利权)人:筹远上海信息科技有限公司
类型:发明
国别省市:

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

1