CN109658249A - 一种区块链性能优化方法 - Google Patents
一种区块链性能优化方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; 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所述的一种区块链性能优化方法,其特征在于:所述出块节点处理流程与现有区块链处理流程一致。
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)
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 | 中国科学院信息工程研究所 | 一种基于区块链的数据库管理方法及系统 |
-
2018
- 2018-12-27 CN CN201811606568.2A patent/CN109658249A/zh active Pending
Cited By (7)
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) | 一种区块的状态树的生成和链上数据验证的方法及装置 | |
CN109324757A (zh) | 区块链数据缩容方法、装置及存储介质 | |
CN104346373B (zh) | 分区日志队列同步管理方法及设备 | |
CN110070445A (zh) | 一种基于区块链系统的交易处理方法及装置 | |
CN103475899B (zh) | 数据分发方法和装置 | |
CN108600161A (zh) | 一种公平高效的区块链共识方法 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN109194646A (zh) | 一种基于区块链的安全认证数据存取方法 | |
CN113259478B (zh) | 在区块链系统中执行交易的方法、装置及区块链系统 | |
CN103699618A (zh) | 数据报表的生成方法和系统 | |
CN110018996A (zh) | 一种分布式存储系统的快照回滚方法及相关装置 | |
CN110597922A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN113254538B (zh) | 在区块链中执行交易的方法和区块链节点 | |
CN108399231A (zh) | 一种数据采集方法及Flume数据采集客户端 | |
CN110276688A (zh) | 一种区块链中交易处理的方法及装置 | |
CN106095850A (zh) | 一种数据处理方法及设备 | |
CN104038384A (zh) | 一种基于gbf的追踪溯源系统及其工作方法 | |
CN106101412A (zh) | 移动通信终端的信息会话处理方法及移动通信终端 | |
CN105471893B (zh) | 一种分布式等值数据流连接方法 | |
CN109739684A (zh) | 基于向量时钟的分布式键值数据库的副本修复方法与装置 | |
CN109347662A (zh) | 面向大规模网络流量的分布式社会网络结构快速挖掘系统 | |
CN109672733A (zh) | 基于dag的区块链的账本同步方法及设备 | |
CN113064764A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN113064730A (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 |