CN109658249A - 一种区块链性能优化方法 - Google Patents

一种区块链性能优化方法 Download PDF

Info

Publication number
CN109658249A
CN109658249A CN201811606568.2A CN201811606568A CN109658249A CN 109658249 A CN109658249 A CN 109658249A CN 201811606568 A CN201811606568 A CN 201811606568A CN 109658249 A CN109658249 A CN 109658249A
Authority
CN
China
Prior art keywords
block
transaction
block chain
node
performance optimization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811606568.2A
Other languages
English (en)
Inventor
庞引明
韩斌
陈立刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chain Chi Intelligent Technology (shanghai) Co Ltd
Original Assignee
Chain Chi Intelligent Technology (shanghai) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chain Chi Intelligent Technology (shanghai) Co Ltd filed Critical Chain Chi Intelligent Technology (shanghai) Co Ltd
Priority to CN201811606568.2A priority Critical patent/CN109658249A/zh
Publication of CN109658249A publication Critical patent/CN109658249A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种区块链性能优化方法,涉及区块链技术领域。一个区块周期内区块链性能优化方法,通过共识协议,发现本节点不是出块节点,开始预执行交易收集,新建临时空间Mapexe<Hash,Hash>记录猜测结果。该区块链性能优化方法,通过利用在区块链打包交易产生新区块的时间,猜测出块节点打包的交易进行预打包交易,在接收到新区块时,若发现新区块的交易与猜测执行的交易一致,则不需要执行区块,直接接收区块即可,若新区块的交易与猜测执行的交易不一致,则放弃猜测执行的交易,重新按照新区块中交易执行,若成功猜测出结果,则可以显著减少区块的验证时间,从而提高区块链网络的交易处理能力。

Description

一种区块链性能优化方法
技术领域
本发明涉及区块链技术领域,具体为一种区块链性能优化方法。
背景技术
区块链技术,是一种分布式账本技术,具有去中心化、信息不可篡改等特性,越来越受到各行各业的青睐。
在区块链***中,每个节点执行相同的程序、存储所有的数据,但在目前区块链的性能限制了这一技术的应用场景,例如以太坊每秒仅仅能处理15笔交易,区块链的TPS(Transaction Per Second)远远无法达到实际的应用要求,区块链通过共识算法保证在每任意一个时间点有且仅有一个节点正在打包交易,该节点打包交易完成,计算出新的区块之后,会把新产生的区块通过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树对所有的账户状态(world state)计算一个哈希值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树对所有的账户状态(world state)计算一个哈希值Hashws,通过Merkle树对区块中所有的交易计算一个哈希值Hashtx,将两个哈希值写入区块头中;
S5、广播计算出的新区块,将出块节点处理流程与非出块节点处理流程相结构,使区块链可以正常执行一个完整的周期。
进一步的,出块节点处理流程与现有区块链处理流程一致,不改变区块链的特性,利用了区块链的空闲的时间对区块链进行优化,使区块链执行效率提高。
工作原理:在区块链中的一个节点收到一笔交易时,会将这笔交易存入本地的交易池,再将这笔交易发送到相邻的节点,相邻的节点同样也会存储到自己的交易池,再发送到相邻的节点,通过这样一层一层的转发,最终这笔会发送到整个P2P网络之中的每个节点,存储于每个节点交易池之中,在理想的网络状态下,应该所有的节点收到的交易是相同的,交易池中的存储的交易也是相同的,同样的,若同时在所有节点上进行打包交易计算新区块的操作,在硬件条件相同的情况下,所有节点打包出的交易也基本相同,因此,可以通过这一特性,在某一出块周期内,非出块的节点可以预先打包交易,计算出打包交易可能的情况,在接收到新区块时,验证新区块是否在之前计算的集中可能性之中,若与之前的猜测相同,则不需要执行这一区块中的交易,直接将区块写入到区块链之中,若未命中,则执行收到的新区块。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (3)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811606568.2A CN109658249A (zh) 2018-12-27 2018-12-27 一种区块链性能优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811606568.2A CN109658249A (zh) 2018-12-27 2018-12-27 一种区块链性能优化方法

Publications (1)

Publication Number Publication Date
CN109658249A true CN109658249A (zh) 2019-04-19

Family

ID=66116852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811606568.2A Pending CN109658249A (zh) 2018-12-27 2018-12-27 一种区块链性能优化方法

Country Status (1)

Country Link
CN (1) CN109658249A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659907A (zh) * 2019-09-24 2020-01-07 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
CN111242784A (zh) * 2020-01-16 2020-06-05 深圳大学 区块预打包方法、区块节点、装置及存储介质
CN112036875A (zh) * 2019-06-03 2020-12-04 厦门本能管家科技有限公司 一种定序区块交易方法及***
CN112835977A (zh) * 2021-01-20 2021-05-25 中国科学院信息工程研究所 一种基于区块链的数据库管理方法及***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112036875A (zh) * 2019-06-03 2020-12-04 厦门本能管家科技有限公司 一种定序区块交易方法及***
CN110659907A (zh) * 2019-09-24 2020-01-07 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
US12008556B2 (en) 2019-09-24 2024-06-11 Jingdong Technology Information Technology Co., Ltd. Method and apparatus for executing smart contract
CN111242784A (zh) * 2020-01-16 2020-06-05 深圳大学 区块预打包方法、区块节点、装置及存储介质
CN111242784B (zh) * 2020-01-16 2023-12-29 深圳大学 区块预打包方法、区块节点、装置及存储介质
CN112835977A (zh) * 2021-01-20 2021-05-25 中国科学院信息工程研究所 一种基于区块链的数据库管理方法及***
CN112835977B (zh) * 2021-01-20 2022-07-15 中国科学院信息工程研究所 一种基于区块链的数据库管理方法及***

Similar Documents

Publication Publication Date Title
CN109658249A (zh) 一种区块链性能优化方法
CN110602148B (zh) 一种区块的状态树的生成和链上数据验证的方法及装置
CN107332876B (zh) 区块链状态的同步方法及装置
CN109324757A (zh) 区块链数据缩容方法、装置及存储介质
CN104346373B (zh) 分区日志队列同步管理方法及设备
CN107480990A (zh) 区块链记账方法及装置
CN105930121B (zh) 多客户端的笔迹同步方法和***
CN106354566B (zh) 一种命令处理的方法以及服务器
CN108984789A (zh) 分布式记账的方法、装置、存储介质及电子设备
CN110070445A (zh) 一种基于区块链***的交易处理方法及装置
CN110704438B (zh) 一种区块链中布隆过滤器的生成方法及装置
CN109194646A (zh) 一种基于区块链的安全认证数据存取方法
CN103699618A (zh) 数据报表的生成方法和***
CN113259478B (zh) 在区块链***中执行交易的方法、装置及区块链***
CN110597922A (zh) 数据处理方法、装置、终端及存储介质
CN110276688A (zh) 一种区块链中交易处理的方法及装置
CN107194008A (zh) 一种分布式***快速更新验证方法
CN106095850A (zh) 一种数据处理方法及设备
CN104038384A (zh) 一种基于gbf的追踪溯源***及其工作方法
CN106101412A (zh) 移动通信终端的信息会话处理方法及移动通信终端
CN105471893B (zh) 一种分布式等值数据流连接方法
CN109739684A (zh) 基于向量时钟的分布式键值数据库的副本修复方法与装置
CN113064764A (zh) 在区块链***中执行区块的方法及装置
CN109039959A (zh) 一种sdn网络规则的一致性判断方法及相关装置
CN110336677A (zh) 区块打包、广播方法和***、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination