高性能共识算法的实现方法与流程

文档序号:16252110发布日期:2018-12-12 00:07阅读:779来源:国知局
高性能共识算法的实现方法与流程

本发明涉及区块链共识算法技术领域,尤其涉及高性能共识算法的实现方法。

背景技术

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识算法机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本;广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。区块链的应用也越来越广泛,但是在现有技术中,区块链的交易速度低,主要的瓶颈是受共识算法的限制。



技术实现要素:

本发明的目的是为了解决现有技术中区块链的交易速度低的问题,而提出的高性能共识算法的实现方法。

为了实现上述目的,本发明采用了如下技术方案:

高性能共识算法的实现方法,包括以下步骤:

(1)用户发起一笔转账请求,区块链把该请求发送到对应钱包所连接的全节点;

(2)接收请求后的全节点把该请求广播到若干个邻居节点;

(3)全节点和若干个邻居节点根据用户地址的哈希计算结果,把用户的交易请求发送到一号分区单元;

(4)一号分区单元把该分区内的交易请求进行预执行、打包的流程解耦和生成分片区块处理,然后一号分区单元把生成的分片区块发送至另外的(3n+1,n≥1)个分区单元;

(5)一号分区单元需要接收到超过(2n+1,n≥1)个分区单元的确认签名;

(6)一号分区单元把其他分区单元的确认签名进行合入分区区块处理,生成分区区块头单元,然后把分区区块头单元发送到所有的dpos出块节点;

(7)dpos中的出块节点轮流出块,dpos出块节点把分区区块头单元进行打包处理,并发送到其他若干个dpos做bft共识,超过三分之二的dpos的节点确认签名就可以成功出块,生成全局区块单元,把全局区块单元的信息加入区块链内并进行全网广播;

(8)最早接收请求的节点将区块链上的转账结果反馈给用户,并把转账结果进行显示。

优选的,所述步骤(4)中一号分区单元与另外的(3n+1,n≥1)个分区单元之间做分区单元间的bft共识算法。

优选的,步骤(4)中打包的流程解耦时做的是分区单元内部的bft共识算法。

优选的,所述步骤(4)和步骤(5)中的n要取同一数值。

优选的,所述步骤(4)中的预执行、打包的流程解耦和生成分片区块处理为并列同时操作。

优选的,所述步骤(6)中分区区块头单元包括的信息有:分区单元序号、区块序号、stateroot、transactionsroot、receiptsroot、其他分区单元的签名信息和时间戳,所述分区单元序号包括一号分区序号和其他若干个分区单元的序号,所述stateroot表示转账交易处于每个状态时的哈希值,所述transactionsroot表示转账交易的哈希值,所述receiptsroot表示转账交易收据的哈希值,所述时间戳为分区区块头单元成立的时间戳。

与现有技术相比,本发明提供了高性能共识算法的实现方法,具备以下有益效果:该高性能共识算法的实现方法,通过将区块打包的流程解耦,加入分区块机制,可以水平扩展提升区块链的交易速度。

该装置中未涉及部分均与现有技术相同或可采用现有技术加以实现,本发明结构简单,操作方便。

附图说明

图1为本发明提出的高性能共识算法的实现方法的操作步骤流程图;

图2为本发明提出的高性能共识算法的实现方法的组成图;

图中:1、使用用户;2、全节点;3、邻居节点;4、主分区单元;5、分区单元;6、dpos出块节点。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

实施例1

如图1所示,高性能共识算法的实现方法,所述实现方法包括以下步骤:

(1)用户发起一笔转账请求,区块链把该请求发送到对应钱包所连接的全节点;

(2)接收请求后的全节点把该请求广播到若干个邻居节点;

(3)全节点和若干个邻居节点根据用户地址的哈希计算结果,把用户的交易请求发送到一号分区单元;

(4)一号分区单元把该分区内的交易请求进行预执行、打包的流程解耦和生成分片区块处理,然后一号分区单元把生成的分片区块发送至另外的(3n+1,n≥1)个分区单元;

(5)一号分区单元需要接收到超过(2n+1,n≥1)个分区单元的确认签名;

(6)一号分区单元把其他分区单元的确认签名进行合入分区区块处理,生成分区区块头单元,然后把分区区块头单元发送到所有的dpos出块节点;

(7)dpos中的出块节点轮流出块,dpos出块节点把分区区块头单元进行打包处理,并发送到其他若干个dpos做bft共识,超过三分之二的dpos的节点确认签名就可以成功出块,生成全局区块单元,把全局区块单元的信息加入区块链内并进行全网广播;

(8)最早接收请求的节点将区块链上的转账结果反馈给用户,并把转账结果进行显示。

进一步的,步骤(4)中一号分区单元与另外的(3n+1,n≥1)个分区单元之间做分区单元间的bft共识算法,是为了防止一号分区单元内的节点联合作恶,影响正常的转账交易。

进一步的,步骤(4)中打包的流程解耦时做的是分区单元内部的bft共识算法。

进一步的,步骤(4)和步骤(5)中的n要取同一数值,即分区单元的确认签名数量要至少占分区单元数量的三分之二才可以。

进一步的,步骤(4)中的预执行、打包的流程解耦和生成分片区块处理为并列同时操作,提高工作效率。

进一步的,步骤(6)中分区区块头单元包括的信息有:分区单元序号、区块序号、stateroot、transactionsroot、receiptsroot、其他分区单元的签名信息和时间戳,分区单元序号包括一号分区序号和其他若干个分区单元的序号,stateroot表示转账交易处于每个状态时的哈希值,transactionsroot表示转账交易的哈希值,receiptsroot表示转账交易收据的哈希值,时间戳为分区区块头单元成立的时间戳。

实施例2

如图2所示,高性能共识算法的实现方法的组成图,包括使用用户1和全节点2,全节点2用于接收使用用户1发送的转账请求,并将该转账请求广播给周围的若干个邻居节点3,全节点2和若干个邻居节点3根据使用用户1地址的哈希计算结果,把使用用户1的转账交易请求发送到主分区单元4,主分区单元4把该分区内的转账交易请求进行预执行、打包的流程解耦和生成分片区块处理,然后主分区单元4把生成的分片区块发送至另外的(3n+1,n≥1)个分区单元5,主分区单元4需要接收到超过(2n+1,n≥1)个分区单元5的确认签名,即分区单元5的确认签名数要占发送分区单元5数的三分之二,主分区单元4把其他分区单元5的确认签名进行合入分区区块处理,生成分区区块头单元,然后把分区区块头单元发送到所有的dpos出块节点6,dpos中的出块节点轮流出块,然后每个节点把负责的分区区块合并打包入链,dpos出块节点6可以与若干的主分区单元4进行信息传递,dpos出块节点6也可以与其他的dpos出块节点进行信息传递,由此形成一个完整的交易区块链,且将区块打包的流程解耦,加入分区块机制,可以水平扩展提升区块链的交易速度,假如有1024个分区单元,每个分区单元每秒处理1000个交易请求,那么该平台分秒可以处理超过百万个交易请求,效率得到明显提高。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1