一种区块链性能优化方法技术

技术编号:20920025 阅读:42 留言:0更新日期:2019-04-20 10:25
本发明专利技术公开了一种区块链性能优化方法,涉及区块链技术领域。一个区块周期内区块链性能优化方法,通过共识协议,发现本节点不是出块节点,开始预执行交易收集,新建临时空间Mapexe

A Block Chain Performance Optimization Method

The invention discloses a block chain performance optimization method, which relates to the technical field of block chain. A block chain performance optimization method in a block cycle. Through consensus protocol, it is found that this node is not a out-of-block node. It starts pre-executing transaction collection and builds a new temporary space Mapexe.

【技术实现步骤摘要】
一种区块链性能优化方法
本专利技术涉及区块链
,具体为一种区块链性能优化方法。
技术介绍
区块链技术,是一种分布式账本技术,具有去中心化、信息不可篡改等特性,越来越受到各行各业的青睐。在区块链系统中,每个节点执行相同的程序、存储所有的数据,但在目前区块链的性能限制了这一技术的应用场景,例如以太坊每秒仅仅能处理15笔交易,区块链的TPS(TransactionPerSecond)远远无法达到实际的应用要求,区块链通过共识算法保证在每任意一个时间点有且仅有一个节点正在打包交易,该节点打包交易完成,计算出新的区块之后,会把新产生的区块通过P2P网络广播所有的节点,这些节点接收到新区块广播之后,会执行区块中所有的交易,最后通过比较本地的执行结果和区块头中的执行结果,结果一致则新区块验证通过上述分析可以发现,在打包交易产生新区块时,只有出块节点正在工作,其他节点都在空闲之中,这是导致区块链执行速度慢的原因,为此我们提出一种区块链性能优化方法。
技术实现思路
本专利技术的目的就是为了弥补现有技术的不足,提供了一种区块链性能优化方法,它具有有效减少区块链验证时间的优点,解决了区块链执行速度慢的问题。本专利技术为解决上述技术问题,提供如下技术方案:一种区块链性能优化方法,一个区块周期内区块链性能优化方法的步骤如下:非出块的节点处理流程如下:S1、通过共识协议,发现本节点不是出块节点,开始预执行交易收集;S2、新建临时空间Mapexe<Hash,Hash>记录猜测结果;S3、从交易池取出一笔待执行的交易,执行交易,写入区块;S4、通过Merkle树计算当前所有账户状态的哈希值Hashws’,通过Merkle树计算出当前收集交易的哈希值Hashtx’,将这两个哈希值(Hashws’,Hashtx’)存入猜测结果Mapexe;S5、是否收到新区块广播,若未收到,继续收集交易重复S3-S4步骤;S6、若收到新区块的广播,检查区块头中的两个哈希值(Hashws,Hashtx)是否存在于预执行的猜测结果Mapexe中;S7、若存在,则预执行成功,直接将区块存入区块链中;S8、若不存在,则执行新区块中的每一笔交易,通过验证之后,再将区块存入到区块链之中。进一步的,所述出块的节点处理流程如下:S1、通过共识协议,发现本节点是出块节点,开始打包交易计算新的区块;S2、从交易池中取出一笔待执行的交易,执行交易,写入区块中;S3、判断是否出块结束,若未结束继续收集交易;S4、若出块结束,通过Merkle树对所有的账户状态(worldstate)计算一个哈希值Hashws,通过Merkle树对区块中所有的交易计算一个哈希值Hashtx,将两个哈希值写入区块头中;S5、广播计算出的新区块。通过采用上述技术方案,将出块节点处理流程与非出块节点处理流程相结构,使区块链可以正常执行一个完整的周期。进一步的,所述出块节点处理流程与现有区块链处理流程一致。通过采用上述技术方案,不改变区块链的特性,利用了区块链的空闲的时间对区块链进行优化,使区块链执行效率提高。与现有技术相比,该区块链性能优化方法具备如下有益效果:1、本专利技术通过利用在区块链打包交易产生新区块的时间,猜测出块节点打包的交易进行预打包交易,在接收到新区块时,若发现新区块的交易与猜测执行的交易一致,则不需要执行区块,直接接收区块即可,若新区块的交易与猜测执行的交易不一致,则放弃猜测执行的交易,重新按照新区块中交易执行,若成功猜测出结果,则可以显著减少区块的验证时间,从而提高区块链网络的交易处理能力。2、本专利技术通过利用区块链一个节点收到一笔交易时,会将这笔交易存入本地的交易池,再将这笔交易发送到相邻的节点,相邻的节点同样也会存储到自己的交易池,再发送到相邻的节点,通过这样一层一层的转发,最终这笔会发送到整个P2P网络之中的每个节点,存储于每个节点交易池之中,在理想的网络状态下,应该所有的节点收到的交易是相同的,交易池中的存储的交易也是相同的,同样的,若同时在所有节点上进行打包交易计算新区块的操作,在硬件条件相同的情况下,所有节点打包出的交易也基本相同,通过区块链这一特性可以实现预打包交易的目的。附图说明图1为本专利技术区块链出块周期执行流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术提供一种技术方案:一种区块链性能优化方法,一个区块周期内区块链性能优化方法的步骤如下:非出块的节点处理流程如下:S1、通过共识协议,发现本节点不是出块节点,开始预执行交易收集;S2、新建临时空间Mapexe<Hash,Hash>记录猜测结果;S3、从交易池取出一笔待执行的交易,执行交易,写入区块;S4、通过Merkle树计算当前所有账户状态的哈希值Hashws’,通过Merkle树计算出当前收集交易的哈希值Hashtx’,将这两个哈希值(Hashws’,Hashtx’)存入猜测结果Mapexe;S5、是否收到新区块广播,若未收到,继续收集交易重复S3-S4步骤;S6、若收到新区块的广播,检查区块头中的两个哈希值(Hashws,Hashtx)是否存在于预执行的猜测结果Mapexe中;S7、若存在,则预执行成功,直接将区块存入区块链中;S8、若不存在,则执行新区块中的每一笔交易,通过验证之后,再将区块存入到区块链之中。进一步的,出块的节点处理流程如下:S1、通过共识协议,发现本节点是出块节点,开始打包交易计算新的区块;S2、从交易池中取出一笔待执行的交易,执行交易,写入区块中;S3、判断是否出块结束,若未结束继续收集交易;S4、若出块结束,通过Merkle树对所有的账户状态(worldstate)计算一个哈希值Hashws,通过Merkle树对区块中所有的交易计算一个哈希值Hashtx,将两个哈希值写入区块头中;S5、广播计算出的新区块,将出块节点处理流程与非出块节点处理流程相结构,使区块链可以正常执行一个完整的周期。进一步的,出块节点处理流程与现有区块链处理流程一致,不改变区块链的特性,利用了区块链的空闲的时间对区块链进行优化,使区块链执行效率提高。工作原理:在区块链中的一个节点收到一笔交易时,会将这笔交易存入本地的交易池,再将这笔交易发送到相邻的节点,相邻的节点同样也会存储到自己的交易池,再发送到相邻的节点,通过这样一层一层的转发,最终这笔会发送到整个P2P网络之中的每个节点,存储于每个节点交易池之中,在理想的网络状态下,应该所有的节点收到的交易是相同的,交易池中的存储的交易也是相同的,同样的,若同时在所有节点上进行打包交易计算新区块的操作,在硬件条件相同的情况下,所有节点打包出的交易也基本相同,因此,可以通过这一特性,在某一出块周期内,非出块的节点可以预先打包交易,计算出打包交易可能的情况,在接收到新区块时,验证新区块是否在之前计算的集中可能性之中,若与之前的猜测相同,则不需要执行这一区块中的交易,直接将区块写入到区块链之中,若未命中,则执行收到本文档来自技高网...

【技术保护点】
1.一种区块链性能优化方法,其特征在于:区块周期内区块链性能优化方法的步骤如下:非出块的节点处理流程如下:S1、通过共识协议,发现本节点不是出块节点,开始预执行交易收集;S2、新建临时空间Mapexe<Hash, Hash>记录猜测结果;S3、从交易池取出一笔待执行的交易,执行交易,写入区块;S4、通过Merkle树计算当前所有账户状态的哈希值Hashws’,通过Merkle树计算出当前收集交易的哈希值Hashtx’,将这两个哈希值(Hashws’, Hashtx’)存入猜测结果Mapexe;S5、是否收到新区块广播,若未收到,继续收集交易重复S3‑S4步骤;S6、若收到新区块的广播,检查区块头中的两个哈希值(Hashws, Hashtx)是否存在于预执行的猜测结果Mapexe中;S7、若存在,则预执行成功,直接将区块存入区块链中;S8、若不存在,则执行新区块中的每一笔交易,通过验证之后,再将区块存入到区块链之中。

【技术特征摘要】
1.一种区块链性能优化方法,其特征在于:区块周期内区块链性能优化方法的步骤如下:非出块的节点处理流程如下:S1、通过共识协议,发现本节点不是出块节点,开始预执行交易收集;S2、新建临时空间Mapexe<Hash,Hash>记录猜测结果;S3、从交易池取出一笔待执行的交易,执行交易,写入区块;S4、通过Merkle树计算当前所有账户状态的哈希值Hashws’,通过Merkle树计算出当前收集交易的哈希值Hashtx’,将这两个哈希值(Hashws’,Hashtx’)存入猜测结果Mapexe;S5、是否收到新区块广播,若未收到,继续收集交易重复S3-S4步骤;S6、若收到新区块的广播,检查区块头中的两个哈希值(Hashws,Hashtx)是否存在于预执行的猜测结果Mapexe中;S7、若存在,...

【专利技术属性】
技术研发人员:庞引明韩斌陈立刚
申请(专利权)人:链极智能科技上海有限公司
类型:发明
国别省市:上海,31

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

1