CN113421095A - 一种区块链交易并行执行加速方法 - Google Patents
一种区块链交易并行执行加速方法 Download PDFInfo
- Publication number
- CN113421095A CN113421095A CN202110769243.1A CN202110769243A CN113421095A CN 113421095 A CN113421095 A CN 113421095A CN 202110769243 A CN202110769243 A CN 202110769243A CN 113421095 A CN113421095 A CN 113421095A
- Authority
- CN
- China
- Prior art keywords
- block
- blocks
- cache pool
- transaction
- parallel execution
- 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
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000001133 acceleration Effects 0.000 title claims description 6
- 238000012790 confirmation Methods 0.000 abstract description 6
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链交易并行执行加速方法,包括步骤:S1,将待提交的区块放入缓存池;S2,使用缓存池中的区块生成有向无环图DAG;S3,根据有向无环图DAG产生提交队列;S4,区块并行写入文件等。本发明解决了现有区块链系统性能低下,交易确认时间较长的问题,实现在保证交易最终结果一致的情况下实现区块并行提交,实现并发地将多个不同的区块写入不同的文件中。
Description
技术领域
本发明涉及区块链技术领域,更为具体的,涉及一种区块链交易并行执行加速方法。
背景技术
现有区块链系统存在如下问题:
(1)性能低下。由于区块系统的每一个决策节点都要维护一系列交易状态数据,而在区块链系统中执行的交易往往具有前后依赖的关系,必须保证拥有依赖关系的交易的执行顺序,以避免不同决策节点间交易状态数据出现不一致的情况,因此现有的区块链系统的区块提交流程往往是串行的,造成系统吞吐量往往偏低,无法发挥多核计算机的优势。
(2)交易确认时间较长。由于现有区块链系统中区块提交过程中采用的是串行处理的方式,因此一条交易的确认需要逐步通过多个串行步骤,最终才会生效,因此确认时间较长。
发明内容
本发明的目的在于克服现有技术的不足,提供一种区块链交易并行执行加速方法,解决现有区块链系统性能低下,交易确认时间较长的问题,实现在保证交易最终结果一致的情况下实现区块并行提交;实现并发地将多个不同的区块写入不同的文件中。
本发明的目的是通过以下方案实现的:
一种区块链交易并行执行加速方法,包括步骤:
S1,将待提交的区块放入缓存池;
S2,使用缓存池中的区块生成有向无环图DAG;
S3,根据有向无环图DAG产生提交队列;
S4,区块并行写入文件。
进一步地,在步骤S1前,包括步骤S0:创建一个有限容量的缓存池,用于保存将被用于生成有向无环图DAG的区块队列。
进一步地,在步骤S2中,包括步骤:对DAG缓存池中的每一个区块进行解析,得到区块内每条交易的读写集,并使后一笔交易的读集和写集均不在前一笔交易的写集中。
进一步地,在步骤S3中,包括步骤:将互不相关的区块放入同一个等级level,依赖前方区块的被放入下一个等级level,按照level等级排序进行提交,同一个等级level内的区块并行提交,不同等级level之间串行提交。
进一步地,在步骤S4中,包括步骤:根据缓存池大小,同时打开多个文件,对打开的多个文件进行并发写入。
进一步地,所述并发写入的写入规则包括:
将特定的区块号n对缓存池大小数值取模得到m,然后将区块n写入到blockfile_m中;若blockfile_m已达到限制大小,则将区块n写入到blockfile_(m+k*10);K为递增系数,存放在数据库中。
本发明的有益效果包括:
(1)本发明的方法实现了一种高效的记链方式,该方法能够充分发挥了多核计算机的优势,将多个区块提交过程并行操作,极大地提升了记链速度,提升了区块链系统的整体性能,使区块链系统可以应用于更多的场景。
(2)本发明的方法通过分析不同区块中的交易关联关系,使待提交区块以DAG的方式构建连接,以达到同时提交不相关区块的目的,因此可以在保证交易最终结果一致的情况下实现区块并行提交。
(3)本发明的方法实现并发地将多个不同的区块写入不同的文件中,能够大幅提高区块链系统的整体吞吐量,极大缩短交易上链的确认时间,有效的满足了高频业务和时间敏感型业务的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的方法步骤流程图;
图2为本发明方法实施例的流程示意图。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
如图1,2所示,一种区块链交易并行执行加速方法,具体实施流程如下:
阶段一:将待提交的区块放入缓存池
为了控制并发数量,本发明创建一个有限容量的缓存池用于保存将被用于生成DAG的区块队列。假定DAG缓存池的大小为10,则本发明顺序取出Block1到Block10这10个连续的区块放入到DAG缓存池中。
阶段二:使用缓存池中的区块生成DAG
本发明对DAG缓存池中的每一个区块进行解析,得到区块内每条交易的读写集。
在有所交易的读写集中,虽然大部分读集和写集是一致的(例如a向b转10块钱,则交易中的读集是a,b,写集也是a,b),但依然会有个别的交易出现读集和写集不一致的情况(例如读集是a,b,写集c是由a,b计算得出的值)。因此要判定两笔交易是否相关联,就需要确定后一笔交易的读集和写集均不在前一笔交易的写集中。由此规则本发明可以将DAG缓存池中的区块生成一张DAG。
阶段三:根据DAG产生提交队列
为了简化DAG,本发明将关联关系进行分级。互不相关的区块放入同一个level,依赖前方区块的被放入下一个level。因此本发明将DAG缓存池中的10个区块分到了level0到level4这5个level中。虽有本发明按照level等级由低到高进行提交。此时同一个level内的区块并行提交,不同的level之间串行提交。
阶段四:区块并行写入文件
这里根据缓存池大小为10,则同时打开10个文件,对10个文件进行并发写入。写入规则为:特定的区块号n对10取模得到m,然后将区块n写入到blockfile_m中。若blockfile_m已达到限制大小,则将区块n写入到blockfile_(m+k*10)。K为递增系数,存放在数据库中。
本发明实施例,至少解决了如下技术问题:
(1)在保证交易最终结果一致的情况下实现区块并行提交;
(2)实现并发地将多个不同的区块写入不同的文件中。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
本发明功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,在一台计算机设备(可以是个人计算机,服务器,或者网络设备等)以及相应的软件中执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、或者光盘等各种可以存储程序代码的介质,进行测试或者实际的数据在程序实现中存在于只读存储器(Random Access Memory,RAM)、随机存取存储器(Random Access Memory,RAM)等。
Claims (6)
1.一种区块链交易并行执行加速方法,其特征在于,包括步骤:
S1,将待提交的区块放入缓存池;
S2,使用缓存池中的区块生成有向无环图DAG;
S3,根据有向无环图DAG产生提交队列;
S4,区块并行写入文件。
2.根据权利要求1所述的一种区块链交易并行执行加速方法,其特征在于,在步骤S1前,包括步骤S0:创建一个有限容量的缓存池,用于保存将被用于生成有向无环图DAG的区块队列。
3.根据权利要求1所述的一种区块链交易并行执行加速方法,其特征在于,在步骤S2中,包括步骤:对DAG缓存池中的每一个区块进行解析,得到区块内每条交易的读写集,并使后一笔交易的读集和写集均不在前一笔交易的写集中。
4.根据权利要求1所述的一种区块链交易并行执行加速方法,其特征在于,在步骤S3中,包括步骤:将互不相关的区块放入同一个等级level,依赖前方区块的被放入下一个等级level,按照level等级排序进行提交,同一个等级level内的区块并行提交,不同等级level之间串行提交。
5.根据权利要求1所述的一种区块链交易并行执行加速方法,其特征在于,在步骤S4中,包括步骤:根据缓存池大小,同时打开多个文件,对打开的多个文件进行并发写入。
6.根据权利要求5所述的一种区块链交易并行执行加速方法,其特征在于,所述并发写入的写入规则包括:
将特定的区块号n对缓存池大小数值取模得到m,然后将区块n写入到blockfile_m中;若blockfile_m已达到限制大小,则将区块n写入到blockfile_(m+k*10);K为递增系数,存放在数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110769243.1A CN113421095A (zh) | 2021-07-07 | 2021-07-07 | 一种区块链交易并行执行加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110769243.1A CN113421095A (zh) | 2021-07-07 | 2021-07-07 | 一种区块链交易并行执行加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113421095A true CN113421095A (zh) | 2021-09-21 |
Family
ID=77720533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110769243.1A Pending CN113421095A (zh) | 2021-07-07 | 2021-07-07 | 一种区块链交易并行执行加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113421095A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113674095A (zh) * | 2021-10-20 | 2021-11-19 | 浙商银行股份有限公司 | 一种基于交易dag提高区块链吞吐量的方法 |
WO2023097077A1 (en) * | 2021-11-29 | 2023-06-01 | Circle Internet Financial, Inc. | Parallel block processing in blockchains |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537543A (zh) * | 2018-03-30 | 2018-09-14 | 百度在线网络技术(北京)有限公司 | 区块链数据的并行处理方法、装置、设备和存储介质 |
CN110941647A (zh) * | 2019-11-11 | 2020-03-31 | 华中科技大学 | 一种基于dag的区块链的跨链交互方法和系统 |
CN111179071A (zh) * | 2018-11-09 | 2020-05-19 | 北京天德科技有限公司 | 一种基于拓扑排序的区块链交易依赖分析方法 |
CN111932257A (zh) * | 2020-08-18 | 2020-11-13 | 工银科技有限公司 | 一种区块链并行化处理方法及装置 |
CN112837163A (zh) * | 2021-03-22 | 2021-05-25 | 中国工商银行股份有限公司 | 基于区块链的批量交易上链方法及系统 |
CN112990895A (zh) * | 2021-03-11 | 2021-06-18 | 杭州复杂美科技有限公司 | 一种加速区块链交易并行执行的方法、设备及储存介质 |
-
2021
- 2021-07-07 CN CN202110769243.1A patent/CN113421095A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537543A (zh) * | 2018-03-30 | 2018-09-14 | 百度在线网络技术(北京)有限公司 | 区块链数据的并行处理方法、装置、设备和存储介质 |
CN111179071A (zh) * | 2018-11-09 | 2020-05-19 | 北京天德科技有限公司 | 一种基于拓扑排序的区块链交易依赖分析方法 |
CN110941647A (zh) * | 2019-11-11 | 2020-03-31 | 华中科技大学 | 一种基于dag的区块链的跨链交互方法和系统 |
CN111932257A (zh) * | 2020-08-18 | 2020-11-13 | 工银科技有限公司 | 一种区块链并行化处理方法及装置 |
CN112990895A (zh) * | 2021-03-11 | 2021-06-18 | 杭州复杂美科技有限公司 | 一种加速区块链交易并行执行的方法、设备及储存介质 |
CN112837163A (zh) * | 2021-03-22 | 2021-05-25 | 中国工商银行股份有限公司 | 基于区块链的批量交易上链方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113674095A (zh) * | 2021-10-20 | 2021-11-19 | 浙商银行股份有限公司 | 一种基于交易dag提高区块链吞吐量的方法 |
WO2023097077A1 (en) * | 2021-11-29 | 2023-06-01 | Circle Internet Financial, Inc. | Parallel block processing in blockchains |
US11849039B2 (en) | 2021-11-29 | 2023-12-19 | Circle Internet Financial Limited | Parallel block processing in blockchains |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11349639B2 (en) | Circuit and method for overcoming memory bottleneck of ASIC-resistant cryptographic algorithms | |
US9223720B2 (en) | Systems and methods for rapidly generating suitable pairs of hash functions | |
TWI730690B (zh) | 在區塊鏈中同時執行交易的方法和裝置及電腦可讀儲存媒體與計算設備 | |
JP5460486B2 (ja) | データをソートする装置及び方法 | |
US20150120754A1 (en) | Systems and Methods for Generating Bit Matrices for Hash Functions Using Fast Filtering | |
CN113421095A (zh) | 一种区块链交易并行执行加速方法 | |
CN114116665B (zh) | 数据库中并行写入事务日志以提升处理效率的方法 | |
US11636122B2 (en) | Method and apparatus for data mining from core traces | |
EP3961461A1 (en) | Method and apparatus for obtaining number for transaction-accessed variable in blockchain in parallel | |
EP3933639B1 (en) | Transaction processing method, apparatus, and electronic device for blockchain | |
US20180300146A1 (en) | Database operating method and apparatus | |
WO2023184052A1 (zh) | 一种数据处理方法、区块链节点及区块链系统 | |
CN111724256A (zh) | 一种基于多核架构的智能合约执行优化方法 | |
CN111126619B (zh) | 一种机器学习方法与装置 | |
CN115760405A (zh) | 交易执行方法、装置、计算机设备及介质 | |
Körner et al. | Distributed model checking using ProB | |
US11106846B1 (en) | Systems and methods for emulation data array compaction | |
JPWO2019008715A1 (ja) | データロードプログラム、データロード方法およびデータロード装置 | |
CN110059378B (zh) | 一种基于GPU并行计算的自动制造系统Petri网状态生成方法 | |
Agullo et al. | A preliminary out-of-core extension of a parallel multifrontal solver | |
US11080030B2 (en) | Information processing apparatus and information processing method | |
US11048843B1 (en) | Dynamic netlist modification of compacted data arrays in an emulation system | |
US20220138338A1 (en) | Data replacement apparatus, data replacement method, and program | |
US20050251795A1 (en) | Method, system, and program for optimizing code | |
CN114840545B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210921 |