CN112527800A - 树形链式账本结构、高性能并行共识方法及系统 - Google Patents
树形链式账本结构、高性能并行共识方法及系统 Download PDFInfo
- Publication number
- CN112527800A CN112527800A CN202011505064.9A CN202011505064A CN112527800A CN 112527800 A CN112527800 A CN 112527800A CN 202011505064 A CN202011505064 A CN 202011505064A CN 112527800 A CN112527800 A CN 112527800A
- Authority
- CN
- China
- Prior art keywords
- sub
- block
- blocks
- consensus
- node
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012795 verification Methods 0.000 claims abstract description 25
- 238000010276 construction Methods 0.000 claims abstract description 19
- 238000003860 storage Methods 0.000 claims abstract description 12
- 230000002776 aggregation Effects 0.000 claims description 13
- 238000004220 aggregation Methods 0.000 claims description 13
- 238000009826 distribution Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 abstract description 3
- 238000009825 accumulation Methods 0.000 abstract description 2
- 230000004907 flux Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000004931 aggregating effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004873 anchoring Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本公开提供了一种树形链式账本结构、高性能并行共识方法及系统,所述账本结构包括:主区块和主区块包含的子区块,子区块包含具体的交易,主区块包含子区块的聚合校验信息;每个子区块指向前一个主区块,每个主区块指向自己包含的子区块,直至创始区块;每个子区块依赖于前一个主区块构建,每个主区块基于自己包含的子区块构建;本公开通过将一个大区块分成多个小的子区块,分摊到各个共识节点并行协作构建子区块,并行验证执行存储子区块,大大降低了构建节点的工作量,加快了区块构建与共识效率,避免交易积累,实现交易快速确认与高通量。
Description
技术领域
本公开涉及区块链技术领域,特别涉及一种树形链式账本结构、高性能并行共识方法及系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
比特币、以太坊等区块链采用线性链式账本结构或者ghost账本模型,Conflux与Algorand等采用区块DAG的账本模型,IOTA采用交易DAG账本模型。
线性链式账本模型存在交易吞吐量低下的瓶颈,DAG账本模型存在交易确认概率性问题,无论DAG或者线性账本模型均难以实现高效共识、快速交易确认的效果。
本公开发明人发现,有研究人员提供了一种基于树形结构的联盟链主从多链共识方法,该方法通过将单链扩展成多链,来解决单层链式结构下的区块链存在性能、扩展上的技术瓶颈的问题,但是没有真正实现单条链本身的性能提升;而且现有共识机制大多采用一个大区块由一个节点独立构建和串行验证执行的方式,区块构建与共识效率较低,交易积累严重。
发明内容
为了解决现有技术的不足,本公开提供了一种树形链式账本结构、高性能并行共识方法及系统,通过将一个大区块分成多个小的子区块,分摊到各个共识节点并行协作构建子区块,并行验证执行存储子区块,大大降低了构建节点的工作量,加快了区块构建与共识效率,避免交易积累,实现交易快速确认与高通量。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种树形链式账本结构。
一种树形链式账本结构,包括:主区块和主区块包含的子区块,子区块包含具体的交易,主区块包含子区块的聚合校验信息;
每个子区块指向前一个主区块,每个主区块指向自己包含的子区块,直至创始区块;每个子区块依赖于前一个主区块构建,每个主区块基于自己包含的子区块构建。
作为可能的一些实现方式,子区块至少包括前一个主区块哈希值、子区块基于前一个主区块状态执行后的状态根、子区块交易的MPT根、子区块所有交易执行收据的MPT根和子区块包含的交易。
作为可能的一些实现方式,主区块至少包括自己包含的子区块的hash列表、所有子区块stateRoot的聚合根、所有子区块txsRoot的聚合根、所有子区块receiptsRoot的聚合根和主区块给子区块的奖励信息。
本公开第二方面提供了一种高性能并行共识方法。
一种高性能并行共识方法,包括以下步骤:
基于交易依赖关系,将交易分成可并行执行的多个分支;
构建分支分配策略,定义每个节点需要构建的分支;
给任务分配方案注入编码信息;
将基于编码计算构建的任务分配策略编码广播至各个共识节点;
各节点收到任务并验证任务的正确性后,构建自己负责的子区块并广播;
各节点对接收到的子区块进行共识验证;
各节点执行和存储验证通过的子区块;
收集到达预设阈值的合法子区块后进行汇总,构建主区块并进行广播;
各节点验证主区块,共识通过后,提交所有子区块的交易执行结果,并将主区块写入账本,完成树形区块的上链。
作为可能的一些实现方式,每个分支是一个具有依赖关系的交易执行序列,不同分支间不存在交易依赖关系。
作为可能的一些实现方式,根据分支长度、分支个数、共识节点数和容错数,以分支作为子区块构建任务分配的最小单元,构建满足容错性指标和效率最优的分支分配策略。
作为可能的一些实现方式,定义每个节点需要构建的分支,每个分支会被多个节点构建,各个节点构建的区块存在交叉的分支,任意达到阈值的节点返回正确结果能够覆盖所有分支。
作为可能的一些实现方式,预设阈值为共识节点数与容错数的差值预设值。
作为可能的一些实现方式,给任务分配方案注入编码信息,包括可唯一标识分支并还原分支对应的交易序列的分支编码以及可唯一标识节点构建任务并防止任务被篡改的任务编码。
作为可能的一些实现方式,各个共识节点收到任务分配策略,验证任务未被篡改后,分别开始计算自己承担的分支对应的交易执行序列;
以前一个主区块为基础,构建子区块,进行交易预执行;
将包含的交易以及执行的状态根、交易根和收据根写入子区块,子区块构建完成后广播至各个共识节点。
作为可能的一些实现方式,子区块被共识验证通过后,根据任务分配编码,计算该区块中包含的未被执行的分支进行交易执行而不提交,并将区块数据写入账本,未被执行的分支为已收集到的子区块中,均没有包含该分支。
本公开第三方面提供了一种高性能并行共识系统。
一种高性能并行共识系统,包括多个共识节点,每个共识节点包括至少一台计算机可读存储介质或者至少一台电子设备或者至少一台服务器,其中共识节点类型分为主节点和非主节点;
主节点被配置为执行:基于交易依赖关系,将交易分成可并行执行的多个分支,构建分支分配策略,定义每个节点需要构建的分支,给任务分配方案注入编码信息,将基于编码计算构建的任务分配策略编码广播至各个共识节点;收集到达预设阈值的合法子区块后进行汇总,构建主区块并进行广播;
各共识节点收到任务并验证任务的正确性后,构建自己负责的子区块并广播;各共识节点对接收到的子区块进行共识验证;各共识节点执行和存储验证通过的子区块;各共识节点验证主区块,共识通过后,提交所有子区块的交易执行结果,并将主区块写入账本,完成树形区块的上链。
与现有技术相比,本公开的有益效果是:
1、本公开所述的内容,通过将一个大区块分成多个小的子区块,分摊到各个共识节点并行协作构建子区块,并行验证执行存储子区块,与原来一个大区块由一个节点独立构建和串行验证执行相比,大大降低了构建节点的工作量,加快了区块构建与共识效率,避免交易积累,实现交易快速确认与高通量。
2、本公开所述的内容,通过将构建任务分发到各个共识节点协作完成,能够充分利用区块链系统中各共识节点的计算资源,打破了区块链作为分布式系统,随着共识节点数增加性能不增反而降低的局限,实现随着节点数增加的性能提升。
3、本公开所述的树形账本结构,实现子区块的先行并行独立构建、验证、执行、存储,最后汇总子区块构建主区块,防止构建冲突问题,又结合了coded computing(编码计算)方式,实现了各个节点构建的区块相互锚定与交叉,保证了并行构建的安全性、一致性和不可篡改性;也使得构建任务具备一定的容错性和灵活性,不需要完全按照预先分配的策略将所有子区块构建好,也能完成区块的汇总和共识上链,避免单点故障,安全且高效。
本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例1提供的树形链式账本结构的示意图。
图2为本公开实施例1提供的主区块和子区块示意图。
图3为本公开实施例2提供的高性能并行共识方法的流程示意图。
图4为本公开实施例2提供的节点构建任务分配策略示意图。
具体实施方式
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例1:
如图1所示,本公开实施例1提供了一种树形链式账本结构,由主区块(Block)和主区块包含的子区块(Blockchild)构成。每个子区块指向前一个主区块,每个主区块指向自己包含的子区块,直至区块0(创始区块)。每个子区块依赖于前一个主区块构建,每个主区块基于自己的子区块构建。
所述子区块,如图2所示的201,包含但不限于以下属性:preHash,指向前一个主区块;StateRoot,基于前一个主区块状态,区块执行后的状态根;txsRoot,子区块交易的MPT根,ReceiptsRoot,子区块所有交易执行收据的MPT根;txs,区块包含的交易;
所述主区块,如图2所示的202,包含但不限于以下属性:childHashs,自己包含的子区块的hash列表;stateRoot,所有子区块stateRoot的聚合根;txsRoot,所有子区块txsRoot的聚合根;receiptsRoot,所有子区块receiptsRoot的聚合根;childGas,主区块给子区块的奖励信息。
实施例2:
本公开实施例2提供了一种高性能并行共识方法,通过树形的链式账本结构,基于coded computing,实现将一个大区块分成多个小的子区块,分摊到各个共识节点并行构建验证执行,最后通过主区块将子区块聚合成一个对外逻辑统一的、支持防篡改的、可验证的树形区块账本数据。
具体包括:
(1)基于交易依赖关系,将需要构建的交易分成互不相关的可并行执行的分支,每个分支是一个具有依赖关系的交易执行序列,不同分支间不存在交易依赖关系;
(2)基于coded computing(编码计算),以分支作为子区块构建任务分配的最小单元,构建满足容错性指标和效率最优的分支分配策略,定义各个节点需要构建的分支,注入相应的编码信息,用于节点构建任务的验证和还原,以及任务执行结果的验证、识别和聚合;
构建满足容错性指标和效率最优的分支分配策略是指,每个分支分给多个节点构建,各节点构建的任务存在交叉,互相锚定,保证在故障节点数小于等于容错数的情况下,可以基于非故障节点的任务执行结果,完成主区块的构建、验证、执行和所有交易执行结果的提交;每个节点都应该贡献资源,参与到区块的构建中,通过多个节点协作完成任务以提升效率;
(3)各个共识节点基于任务分配策略,验证任务未被篡改后,分别开始计算自己承担的分支对应的交易执行序列,构建成子区块,开启独立的共识进程,进行子区块的共识验证、执行和存储,各个子区块间的构建与共识过程相互独立,同时进行。当共识通过的子区块数达到阈值时,汇总各个子区块,构建主区块,主区块用于聚合子区块的验证信息,主区块共识通过后,提交交易执行结果,然后存储主区块,完成一个树形区块的上链。
如图3所示,所述的共识方法包括以下步骤:
S301:主节点基于交易依赖关系,将交易分成可并行执行的多个分支;
S302:主节点构建分支分配策略,定义每个节点需要构建的分支;
S303:主节点给任务分配方案注入编码信息;
S304:主节点将基于编码计算构建的任务分配策略编码广播至各个共识节点;
S305:各节点收到任务并验证任务的正确性后,构建自己负责的子区块并广播;
S306:各节点对接收到的子区块进行共识验证;
S307:各节点执行和存储验证通过的子区块;
S308:主节点收集到达预设阈值的合法子区块后进行汇总,构建主区块并进行广播;
S309:各节点验证主区块,共识通过后,提交所有子区块的交易执行结果,并将主区块写入账本,完成树形区块的上链。
详细步骤如下:
S301中:基于交易依赖关系,将要构建的交易分成互不相关的可并行执行的分支,每个分支是一个具有依赖关系的交易执行序列,不同分支间不存在交易依赖关系;
S302中:根据分支长度、分支个数、共识节点数、容错数等,以分支作为子区块构建任务分配的最小单元,构建满足容错性指标和效率最优的分支分配策略,定义每个节点需要构建的分支,每个分支会被多个节点构建,各个节点构建的区块存在交叉的分支,使得任意达到阈值(共识节点数-容错数)的节点返回正确结果即可覆盖所有分支;
每个节点都应该贡献算力,参与到区块的构建中,通过多个节点协作完成任务以提升效率,视分支数和效率提升情况进行动态调配。
如图4所示,分支数为4,节点数为4,分支长度基本无差异,容错数为1的一种分配策略示例(可构建的分配策略包含但不限于此),子区块1、2、3先构建完成并验证通过,子区块4虽然未构建成功,其分支任务3已由子区块3构建完成,其分支任务4已由子区块1构建完成,所以基于1、2、3即可汇总构建主区块。
S303中:给任务分配方案注入编码信息,包括可唯一标识分支并还原分支对应的交易序列的分支编码,可唯一标识节点构建任务并防止任务被篡改的任务编码,用于节点进行构建任务的验证与还原,以及任务执行结果的验证、识别和聚合。
S304中:将基于coded computing(编码计算)构建的任务分配策略编码广播至各个共识节点。
S305中:各个共识节点收到任务分配策略,验证任务未被篡改后,分别开始计算自己承担的分支对应的交易执行序列,以前一个主区块为基础,构建子区块,进行交易预执行,将包含的交易以及执行的状态根、交易根、收据根等写入子区块,子区块构建完成后广播至各个共识节点。
S306中:各共识节点收到新构建的子区块后,基于任务编码以及其他校验规则,验证该区块的正确性,进行区块验证投票。
S307中:子区块被共识验证通过后,根据任务分配编码,计算该区块中包含的未被执行的分支进行交易执行,但是不提交,并将区块数据写入账本;
未被执行的分支是指:已收集到的子区块中,均没有包含该分支,避免节点构建任务交叉导致的重复执行,如图4所示,如果先收到子区块1,再收到子区块2,则执行子区块2时不再执行分支1。
S308中:主节点收集到的合法的子区块达到阈值(共识节点数-容错数)后,进行区块聚合,包括将收到的合法子区块的hash列表作为主区块的childHashs,基于所有子区块的stateRoot进行hash计算得到主区块的stateRoot,基于所有子区块的txsRoot进行hash聚合得到主区块的txsRoot,基于所有子区块的receiptsRoot进行hash聚合得到主区块的receiptsRoot等,构建主区块并广播。
S309中:各节点验证主区块,共识通过后,提交所有子区块的交易执行结果,并将主区块写入账本,完成一个树形区块的上链。
本实施例所述的方法基于树形的链式账本,采用coded computing方式,实现了高性能的共识机制,通过将大区块分成小区块,分配到各个节点并行构建执行存储,且能保证一致性和不可篡改性,以及一定的容错性,共识通过的小区块只需要达到阈值(共识节点数-容错数),即可汇总聚合主区块,能够防止单点故障,保证了并行构建的安全性。
实施例3:
本公开实施例3提供了一种高性能并行共识系统,包括多个共识节点,每个共识节点包括至少一台计算机可读存储介质或者至少一台电子设备或者至少一台服务器,其中共识节点类型分为主节点和非主节点;
主节点被配置为执行:基于交易依赖关系,将交易分成可并行执行的多个分支,构建分支分配策略,定义每个节点需要构建的分支,给任务分配方案注入编码信息,将基于编码计算构建的任务分配策略编码广播至各个共识节点;收集到达预设阈值的合法子区块后进行汇总,构建主区块并进行广播;
各共识节点收到任务并验证任务的正确性后,构建自己负责的子区块并广播;各共识节点对接收到的子区块进行共识验证;各共识节点执行和存储验证通过的子区块;各共识节点验证主区块,共识通过后,提交所有子区块的交易执行结果,并将主区块写入账本,完成树形区块的上链。
所述系统的工作方法与实施例2提供的高性能并行共识方法相同,这里不再赘述。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种树形链式账本结构,其特征在于:
包括:主区块和主区块包含的子区块,子区块包含具体的交易,主区块包含子区块的聚合校验信息;
每个子区块指向前一个主区块,每个主区块指向自己包含的子区块,直至创始区块;每个子区块依赖于前一个主区块构建,每个主区块基于自己包含的子区块构建。
2.如权利要求1所述的树形链式账本结构,其特征在于:
子区块至少包括前一个主区块哈希值、子区块基于前一个主区块状态执行后的状态根、子区块交易的MPT根、子区块所有交易执行收据的MPT根和子区块包含的交易。
3.如权利要求1所述的树形链式账本结构,其特征在于:
主区块至少包括自己包含的子区块的hash列表、所有子区块stateRoot的聚合根、所有子区块txsRoot的聚合根、所有子区块receiptsRoot的聚合根和主区块给子区块的奖励信息。
4.一种高性能并行共识方法,其特征在于:包括以下步骤:
基于交易依赖关系,将交易分成可并行执行的多个分支;
构建分支分配策略,定义每个节点需要构建的分支;
给任务分配方案注入编码信息;
将基于编码计算构建的任务分配策略编码广播至各个共识节点;
各节点收到任务并验证任务的正确性后,构建自己负责的子区块并广播;
各节点对接收到的子区块进行共识验证;
各节点执行和存储验证通过的子区块;
收集到达预设阈值的合法子区块后进行汇总,构建主区块并进行广播;
各节点验证主区块,共识通过后,提交所有子区块的交易执行结果,并将主区块写入账本,完成树形区块的上链。
5.如权利要求4所述的高性能并行共识方法,其特征在于:
每个分支是一个具有依赖关系的交易执行序列,不同分支间不存在交易依赖关系。
6.如权利要求4所述的高性能并行共识方法,其特征在于:
根据分支长度、分支个数、共识节点数和容错数,以分支作为子区块构建任务分配的最小单元,构建满足容错性指标和效率最优的分支分配策略;
或者,
定义每个节点需要构建的分支,每个分支会被多个节点构建,各个节点构建的区块存在交叉的分支,任意达到阈值的节点返回正确结果能够覆盖所有分支;
或者,
预设阈值为共识节点数与容错数的差值预设值。
7.如权利要求4所述的高性能并行共识方法,其特征在于:
给任务分配方案注入编码信息,包括可唯一标识分支并还原分支对应的交易序列的分支编码以及可唯一标识节点构建任务并防止任务被篡改的任务编码。
8.如权利要求4所述的高性能并行共识方法,其特征在于:
各个共识节点收到任务分配策略,验证任务未被篡改后,分别开始计算自己承担的分支对应的交易执行序列;
以前一个主区块为基础,构建子区块,进行交易预执行;
将包含的交易以及执行的状态根、交易根和收据根写入子区块,子区块构建完成后广播至各个共识节点。
9.如权利要求4所述的高性能并行共识方法,其特征在于:
子区块被共识验证通过后,根据任务分配编码,计算该区块中包含的未被执行的分支进行交易执行而不提交,并将区块数据写入账本,未被执行的分支为已收集到的子区块中,均没有包含该分支。
10.一种高性能并行共识系统,其特征在于:包括多个共识节点,每个共识节点包括至少一台计算机可读存储介质或者至少一台电子设备或者至少一台服务器,其中共识节点类型分为主节点和非主节点;
主节点被配置为执行:基于交易依赖关系,将交易分成可并行执行的多个分支,构建分支分配策略,定义每个节点需要构建的分支,给任务分配方案注入编码信息,将基于编码计算构建的任务分配策略编码广播至各个共识节点;收集到达预设阈值的合法子区块后进行汇总,构建主区块并进行广播;
各共识节点收到任务并验证任务的正确性后,构建自己负责的子区块并广播;各共识节点对接收到的子区块进行共识验证;各共识节点执行和存储验证通过的子区块;各共识节点验证主区块,共识通过后,提交所有子区块的交易执行结果,并将主区块写入账本,完成树形区块的上链。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011505064.9A CN112527800B (zh) | 2020-12-18 | 2020-12-18 | 树形链式账本结构、高性能并行共识方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011505064.9A CN112527800B (zh) | 2020-12-18 | 2020-12-18 | 树形链式账本结构、高性能并行共识方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527800A true CN112527800A (zh) | 2021-03-19 |
CN112527800B CN112527800B (zh) | 2022-07-22 |
Family
ID=75001491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011505064.9A Active CN112527800B (zh) | 2020-12-18 | 2020-12-18 | 树形链式账本结构、高性能并行共识方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527800B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150409A (zh) * | 2022-06-29 | 2022-10-04 | 蚂蚁区块链科技(上海)有限公司 | 在区块链系统中执行交易的方法、区块链系统和节点 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508982A (zh) * | 2018-11-21 | 2019-03-22 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的repb共识 |
CN109886681A (zh) * | 2019-01-31 | 2019-06-14 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识系统 |
CN110445845A (zh) * | 2019-07-17 | 2019-11-12 | 苏州同济区块链研究院有限公司 | 一种分布式账本中基于主子账本的系统架构 |
CN110659988A (zh) * | 2019-09-10 | 2020-01-07 | 杭州秘猿科技有限公司 | 区块链共识与执行的并行处理方法、装置和电子设备 |
CA3013855A1 (en) * | 2018-08-08 | 2020-02-08 | Beijing Tiande Technologies Limited | An extended blockchain design having a state chain |
-
2020
- 2020-12-18 CN CN202011505064.9A patent/CN112527800B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3013855A1 (en) * | 2018-08-08 | 2020-02-08 | Beijing Tiande Technologies Limited | An extended blockchain design having a state chain |
CN109508982A (zh) * | 2018-11-21 | 2019-03-22 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的repb共识 |
CN109886681A (zh) * | 2019-01-31 | 2019-06-14 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识系统 |
CN110445845A (zh) * | 2019-07-17 | 2019-11-12 | 苏州同济区块链研究院有限公司 | 一种分布式账本中基于主子账本的系统架构 |
CN110659988A (zh) * | 2019-09-10 | 2020-01-07 | 杭州秘猿科技有限公司 | 区块链共识与执行的并行处理方法、装置和电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150409A (zh) * | 2022-06-29 | 2022-10-04 | 蚂蚁区块链科技(上海)有限公司 | 在区块链系统中执行交易的方法、区块链系统和节点 |
CN115150409B (zh) * | 2022-06-29 | 2024-07-12 | 蚂蚁区块链科技(上海)有限公司 | 在区块链系统中执行交易的方法、区块链系统、节点及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112527800B (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271245B (zh) | 一种区块处理任务的控制方法和装置 | |
Dai et al. | ForeGraph: Exploring large-scale graph processing on multi-FPGA architecture | |
Ma et al. | Garaph: Efficient {GPU-accelerated} graph processing on a single machine with balanced replication | |
He et al. | Comet: batched stream processing for data intensive distributed computing | |
CN109391645B (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
CN111080288B (zh) | 一种基于有向无环图的区块链共识达成方法及装置 | |
CN111932257B (zh) | 一种区块链并行化处理方法及装置 | |
CN102193830B (zh) | 面向众核环境的分治映射/归约并行编程模型 | |
CN113626875B (zh) | 一种区块链分片赋能的知识图谱文件存储方法 | |
CN106168797A (zh) | 一种模块化获取核电站故障树顶事项失效概率的方法 | |
CN114298713B (zh) | 一种联盟链分片方法、装置及存储介质 | |
CN112527800B (zh) | 树形链式账本结构、高性能并行共识方法及系统 | |
WO2024040796A1 (zh) | 一种区块链电力交易系统、共识方法、设备和存储介质 | |
CN104391759A (zh) | 一种纠删码存储中负载感知的数据归档方法 | |
Gorcitz et al. | On the scalability of constraint solving for static/off-line real-time scheduling | |
CN114157672B (zh) | 一种基于pbft的s-pbft简化共识协议运行及并行优化方法 | |
CN114328133A (zh) | 单机构分布式冲突检测方法、系统和存算分离架构 | |
CN109828723A (zh) | 一种分布式存储系统及其精确数据修复方法及装置 | |
Wu et al. | Multipredicate join algorithms for accelerating relational graph processing on GPUs | |
CN114157550A (zh) | 一种基于无冲突事务合并的联盟区块链系统 | |
Song et al. | Fachs: Adaptive hybrid storage strategy based on file access characteristics | |
CN105007286A (zh) | 解码方法和装置及云存储方法和系统 | |
CN117032954B (zh) | 针对终端训练模型的内存优化方法、系统、设备及介质 | |
CN104778088A (zh) | 一种基于减少进程间通信开销的并行i/o优化方法与系统 | |
CN111241069A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |