CN109377232A - 基于dag的区块链的交易定序方法及设备 - Google Patents

基于dag的区块链的交易定序方法及设备 Download PDF

Info

Publication number
CN109377232A
CN109377232A CN201811561134.5A CN201811561134A CN109377232A CN 109377232 A CN109377232 A CN 109377232A CN 201811561134 A CN201811561134 A CN 201811561134A CN 109377232 A CN109377232 A CN 109377232A
Authority
CN
China
Prior art keywords
block
transaction
sequencing
blocks
height
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
Application number
CN201811561134.5A
Other languages
English (en)
Other versions
CN109377232B (zh
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.)
Baibao Shanghai Technology Co ltd
Shanghai Zhongan Information Technology Service Co ltd
Original Assignee
Zhongan Information Technology Service 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 Zhongan Information Technology Service Co Ltd filed Critical Zhongan Information Technology Service Co Ltd
Priority to CN201811561134.5A priority Critical patent/CN109377232B/zh
Publication of CN109377232A publication Critical patent/CN109377232A/zh
Application granted granted Critical
Publication of CN109377232B publication Critical patent/CN109377232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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

Abstract

本公开内容公开了基于DAG的区块链的交易定序方法及设备,其中,基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,该方法包括:根据定序块生成时间顺序对区块链中当前最新生成的定序块进行编号以形成定序块ID;将定序块ID作为交易高度保存在相应定序块的头部信息中;基于交易块的交易高度确定规则确定任一交易块的交易高度;根据执行顺序标准将与定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序;根据交易顺序依次执行交易顺序中存在的所有第一类交易块中的智能合约交易。本公开能够在基于DAG的区块链上实现有序地执行普通交易和智能合约交易。

Description

基于DAG的区块链的交易定序方法及设备
技术领域
本公开内容属于区块链技术领域,尤其涉及基于DAG的区块链的智能合约交易的定序方法、基于DAG的区块链的智能合约交易的定序执行方法、基于DAG的区块链的普通交易的执行方法、基于DAG的区块链的智能合约交易的定序设备、基于DAG的区块链的智能合约交易的定序执行设备以及基于DAG的区块链的普通交易的执行设备。
背景技术
链状的分布式记账技术保证了交易的顺序和共识的达成,却制约了区块链性能,成为了可扩展性的最大的瓶颈。
目前,以比特币、以太坊为代表的绝大多数的区块链都采用了区块+链式结构,其特点在于全网的交易都在一条单条环环相扣的链上被记录。即使每个节点收到的广播交易不完全一致,但链式区块链会通过工作量证明(PoW)、权益证明(PoS)等机制让某一个节点提出的区块得到全网的共识。这种线性增长的区块链结构保证了交易的有序性,也因此能够基于这种有效性开发诸如图灵完备虚拟机的上层应用。
近年来,基于有向无环图(Directed Acyclic Graph,简称DAG)的结构构建的分布式账本,通过对构建图的过程进行条件约束,实现隔离相关交易、并行无关交易的特性,有效地把分布式账本模型从之前的“算力越大,竞争越大”转变成“算力越大,效率越高”。基于DAG的区块链保留了全网参与区块链验证、构建的特性,交易即共识,解决了现有区块链生成慢、网络带宽要求高、交易确认速度慢等问题。
发明内容
在传统的DAG(Directed Acyclic Graph,有向无环图)模型中,交易之间的异步发布和验证保证了整个系统的高吞吐量,但是同时也使得各交易之间的时间顺序不可靠且不可验证,这使得DAG结构上使用智能合约成为难点。由于交易确认的不确定性、节点同步的不确定性、网络延迟的不确定性等原因,交易的插入顺序不能保证。对于普通交易而言,顺序的前后对最终结果不会有影响,因为DAG能保证整个网络交易结果的最终一致。但是对于智能合约,顺序的混乱会导致节点间的时间状态无法达成共识。
针对上述问题,本公开内容的第一方面提出了基于DAG的区块链的智能合约交易的定序方法,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述方法包括:
根据定序块生成时间顺序,对所述区块链中当前最新生成的定序块进行编号以形成定序块ID,并将所述定序块ID保存在所述定序块的头部信息中;
将所述定序块ID作为交易高度保存在相应定序块的头部信息中;
基于交易块的交易高度确定规则确定任一交易块的交易高度;
根据执行顺序标准,将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序,并将所述交易顺序保存在所述定序块的头部信息中,其中,所述第一类交易块是包括智能合约交易的交易块;
根据所述交易顺序,依次执行所述交易顺序中存在的所有所述第一类交易块中的智能合约交易;
在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第一数据库中。
根据本公开内容的第一方面,根据定序块生成时间顺序对所述区块链中当前最新生成的定序块进行编号以形成定序块ID进一步包括:
当上一个定序块的定序块ID=n-1(其中,n=1,2…)时,使得最新生成的定序块的定序块ID等于n,并且定序块ID=n的定序块直接引用或间接引用定序块ID=n-1的定序块。
根据本公开内容的第一方面,将所述定序块ID作为交易高度保存在相应定序块的头部信息中进一步包括:
当定序块ID=n时,确定所述定序块的交易高度等于n;以及
将所确定的交易高度保存在所述定序块的头部信息中。
根据本公开内容的第一方面,基于交易块的交易高度确定规则确定任一交易块的交易高度进一步包括:
在所述交易块被定序块ID=n的定序块直接引用或间接引用、同时所述交易块未被定序块ID=n-1的定序块直接引用或间接引用的情况下,确定所述交易块的交易高度等于n;
将所确定的交易高度保存在所述交易块的头部信息中。
根据本公开内容的第一方面,根据执行顺序标准将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序进一步包括:
基于每一个交易块的头部信息中保存的交易高度和交易类型,确定与所述定序块具有相同交易高度的所有要执行的第一类交易块,其中,所述交易类型包括智能合约交易以及不具有智能合约的普通交易;
按照执行不同智能合约交易的手续费的高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序;或者
按照随机顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序;或者
按照智能合约交易的价值高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序。
针对上述问题,本公开内容的第二方面提出了一种基于DAG的区块链的智能合约交易的定序执行方法,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述方法包括:
接收一个或多个定序块;
基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块;
接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块;
根据所述第一定序块中的交易顺序,依次执行与所述第一定序块具有相同交易高度的所有第一类交易块中的智能合约交易,其中,所述第一类交易块是包括智能合约交易的交易块,所述交易顺序是根据执行顺序标准对要执行的第一类交易块的块哈希的排序;
在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第二数据库中。
根据本公开内容的第二方面,在接收到定序块之前,所述方法进一步包括:
接收一个或多个交易块;
将所接收到的交易块存入缓冲池。
针对上述问题,本公开内容的第三方面提出了一种基于DAG的区块链的普通交易的执行方法,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述方法包括:
接收一个或多个定序块;
基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块;
接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块;
在所接收到的所有交易块中确定与所述定序块具有相同交易高度的第二类交易块,其中,所述第二类交易块是包括不具有智能合约的普通交易的交易块;
对每一个第二类交易块中保存的源账户执行扣款交易;
在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;
在执行完毕任一普通交易的情况下,在与所述普通交易相关的账户中更新账户余额,并将执行结果保存在数据库中。
根据本公开内容的第三方面,在接收到定序块之前,所述方法进一步包括:
接收一个或多个交易块;
确定所接收到的每一个交易块是否是第二类交易块;
在确定所接收到的任一交易块是第二类交易块的情况下,对所述第二类交易块中保存的源账户执行扣款交易;
在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;
在执行完毕所述普通交易的情况下,将执行结果保存到缓冲池中。
根据本公开内容的第三方面,所述方法进一步包括:
在所述扣款交易执行失败的情况下,拒绝对所述第二类交易块中保存的目的账户执行放款交易,并且拒绝执行所述源账户作为交易发起方的所有交易。
针对上述问题,本公开内容的第四方面提出了一种基于DAG的区块链的智能合约交易的定序设备,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
根据定序块生成时间顺序,对所述区块链中当前最新生成的定序块进行编号以形成定序块ID,并将所述定序块ID保存在所述定序块的头部信息中;
将所述定序块ID作为交易高度保存在相应定序块的头部信息中;
基于交易块的交易高度确定规则确定任一交易块的交易高度;
根据执行顺序标准,将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序,并将所述交易顺序保存在所述定序块的头部信息中,其中,所述第一类交易块是包括智能合约交易的交易块;
根据所述交易顺序,依次执行所述交易顺序中存在的所有所述第一类交易块中的智能合约交易;
在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第一数据库中。
根据本公开内容的第四方面,根据定序块生成时间顺序对所述区块链中当前最新生成的定序块进行编号以形成定序块ID进一步包括:
当上一个定序块的定序块ID=n-1(其中,n=1,2…)时,使得最新生成的定序块的定序块ID等于n,并且定序块ID=n的定序块直接引用或间接引用定序块ID=n-1的定序块。
根据本公开内容的第四方面,将所述定序块ID作为交易高度保存在相应定序块的头部信息中进一步包括:
当定序块ID=n时,确定所述定序块的交易高度等于n;以及
将所确定的交易高度保存在所述定序块的头部信息中。
根据本公开内容的第四方面,基于交易块的交易高度确定规则确定任一交易块的交易高度进一步包括:
在所述交易块被定序块ID=n的定序块直接引用或间接引用、同时所述交易块未被定序块ID=n-1的定序块直接引用或间接引用的情况下,确定所述交易块的交易高度等于n;
将所确定的交易高度保存在所述交易块的头部信息中。
根据本公开内容的第四方面,根据执行顺序标准将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序进一步包括:
基于每一个交易块的头部信息中保存的交易高度和交易类型,确定与所述定序块具有相同交易高度的所有要执行的第一类交易块,其中,所述交易类型包括智能合约交易以及不具有智能合约的普通交易;
按照执行不同智能合约交易的手续费的高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序;或者
按照随机顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序;或者
按照智能合约交易的价值高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序。
针对上述问题,本公开内容的第五方面提出了一种基于DAG的区块链的智能合约交易的定序执行设备,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
接收一个或多个定序块;
基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块;
接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块;
根据所述第一定序块中的交易顺序,依次执行与所述第一定序块具有相同交易高度的所有第一类交易块中的智能合约交易,其中,所述第一类交易块是包括智能合约交易的交易块,所述交易顺序是根据执行顺序标准对要执行的第一类交易块的块哈希的排序;
在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第二数据库中。
根据本公开内容的第五方面,在接收到定序块之前,当所述指令执行时使得所述处理器进一步执行以下操作:
接收一个或多个交易块;
将所接收到的交易块存入缓冲池。
针对上述问题,本公开内容的第六方面提出了一种基于DAG的区块链的普通交易的执行设备,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
接收一个或多个定序块;
基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块;
接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块;
在所接收到的所有交易块中确定与所述定序块具有相同交易高度的第二类交易块,其中,所述第二类交易块是包括不具有智能合约的普通交易的交易块;
对每一个第二类交易块中保存的源账户执行扣款交易;
在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;
在执行完毕任一普通交易的情况下,在与所述普通交易相关的账户中更新账户余额,并将执行结果保存在数据库中。
根据本公开内容的第六方面,在接收到定序块之前,当所述指令执行时使得所述处理器进一步执行以下操作:
接收一个或多个交易块;
确定所接收到的每一个交易块是否是第二类交易块;
在确定所接收到的任一交易块是第二类交易块的情况下,对所述第二类交易块中保存的源账户执行扣款交易;
在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;
在执行完毕所述普通交易的情况下,将执行结果保存到缓冲池中。
根据本公开内容的第六方面,当所述指令执行时使得所述处理器进一步执行以下操作:
在所述扣款交易执行失败的情况下,拒绝对所述第二类交易块中保存的目的账户执行放款交易,并且拒绝执行所述源账户作为交易发起方的所有交易。
依据本公开内容的基于DAG的区块链的智能合约交易的定序方法及设备、基于DAG的区块链的智能合约交易的定序执行方法及设备、基于DAG的区块链的普通交易的执行方法及设备能够在无序的DAG网络中加入用于排序智能合约交易的定序块交易,使得全网所有节点在处理智能合约交易时拥有相同的执行顺序,解决了基于DAG的区块链难以部署智能合约的问题,从而极大地拓展了基于DAG的区块链的应用场景,提升了智能合约的运行速度和可扩展性。
附图说明
结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例,在附图中:
图1为依据本公开内容的基于DAG的区块链的智能合约交易的定序方法的流程图;
图2为依据本公开内容的基于DAG的区块链的智能合约交易的定序执行方法的流程图;
图3为依据本公开内容的基于DAG的区块链的普通交易的执行方法的流程图;
图4为依据本公开内容的基于DAG的区块链的示意图;以及
图5示出了依据本公开内容基于DAG的区块链的交易实现设备的示意图。
具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。术语“基于”是“至少部分地基于"。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”,等等。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。
本公开内容的实施例主要关注以下技术问题:在基于DAG的区块链中,所有交易的先后顺序形成的是偏序关系而非全序关系,使得大部分交易块无法通过前后引用而确定先后关系,并且区块链节点在处理先后到达的交易是容易产生运行顺序的分歧,无法实现最终结果的一致性;尤其是对于部署在该区块链上的智能合约而言,智能合约的调用顺序会直接影响智能合约的输出结果。
为了解决上述问题,本公开内容实现了基于DAG的区块链的交易定序方法及设备,利用定序块对基于DAG的区块链进行固定,对智能合约交易的执行顺序进行确定。使得在基于DAG的区块链上有序地执行普通交易和智能合约交易,并且该对智能合约交易的执行顺序能够得到全网所有区块链节点的共识。
如图4所示,在基于DAG的区块链的结构中,后一个区块(例如,交易块或定序块)在产生的过程中需要链接一个或多个已知的前置区块(例如,交易块、定序块和/或创世块),一般的区块的头部信息中包含了两个前置区块的哈希值,使得整个账本呈现出一种网状的结构。在本公开内容中,交易块的头部信息中除了其两个前置区块的哈希值之外至少还包括交易高度、交易类型、源账户信息、目的账户信息等。
在本公开内容中,网络定期通过常见共识的方式(例如,工作量证明(Power ofWorking,简称PoW)、权益证明(Power of Stake,简称PoS)、代理权益证明(DelegatedProof of Stake,简称DPoS)、实用拜占庭容错(Practical Byzantine Fault Tolerance,简称PBFT)等)生成并广播一个定序块;定序块的头部信息中除了其两个前置区块的哈希值之外至少还包括交易高度、严格有序递增的定序块ID、交易顺序等信息。在本公开内容中,基于DAG的区块链中的第一个区块被称为创世块,其是定序块ID的序号为0的定序块。
在图4中可以看到序号为0的定序块(也即,创世块),以及定序块Seq1、Seq2、Seq3(其定序块ID分别是1、2、3),并且每一个定序块都能对一部分交易块进行确定化操作,例如,如图4所示,定序块Seq1确定化了区域(1)中的多个交易块,定序块Seq2确定化了区域(2)中的多个交易块,定序块Seq3确定化了区域(3)中的多个交易块,分别使得区域(1)中的多个交易块、区域(2)中的多个交易块、区域(3)中的多个交易块进入终结状态。
此外,在本实施例中,区块链节点可以实施图1所示的方法以实现所生成的定序块能够确定智能合约交易的执行顺序(也即,交易顺序),具体如下:
步骤110:根据定序块生成时间顺序,对所述区块链中当前最新生成的定序块进行编号以形成定序块ID,并将所述定序块ID保存在所述定序块的头部信息中;
本步骤的具体操作如下:
当上一个定序块的定序块ID=n-1(其中,n=1,2…)时,使得最新生成的定序块的定序块ID等于n,并且定序块ID=n的定序块直接引用或间接引用定序块ID=n-1的定序块;也即定序块ID=n的定序块必须以定序块ID=n-1的定序块为祖先,也即以定序块ID=n之前的所有定序块为祖先。
步骤120:将所述定序块ID作为交易高度保存在相应定序块的头部信息中。本步骤的具体操作如下:
当定序块ID=n时,确定所述定序块的交易高度等于n;以及
将所确定的交易高度保存在所述定序块的头部信息中,也即,定序块的头部信息中的交易高度=n。
步骤130:基于交易块的交易高度确定规则确定任一交易块的交易高度。本步骤的具体操作如下:
在所述交易块被定序块ID=n的定序块直接引用或间接引用、同时所述交易块未被定序块ID=n-1的定序块直接引用或间接引用的情况下,确定所述交易块的交易高度等于n。
将所确定的交易高度保存在所述交易块的头部信息中。
在本实施例中,当所述交易块被定序块ID=n的定序块直接引用或间接引用、同时所述交易块也被定序块ID=n-1的定序块直接引用或间接引用时,能够确定该交易块的交易高度不等于n;则需要确定该交易块是否还被其它定序块引用,然后在最终确定该交易块的交易高度。
步骤140:根据执行顺序标准,将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序,并将所述交易顺序保存在所述定序块的头部信息中,其中,所述第一类交易块是包括智能合约交易的交易块。
在本步骤中,具体通过如下步骤来实现:
首先,基于每一个交易块的头部信息中保存的交易高度和交易类型,确定与所述定序块具有相同交易高度的所有要执行的第一类交易块,其中,所述交易类型包括智能合约交易以及不具有智能合约的普通交易。
在本实施例中,由于交易块的头部信息中包括了交易类型的信息,当交易类型=1时,确定该交易块是包括智能合约交易的第一类交易块;当交易类型=0时,确定该交易块是包括普通交易的第二类交易块。
其次,按照执行不同智能合约交易的手续费的高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序。
替代地,按照随机顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序。
或者,按照智能合约交易的价值高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序。
步骤150:根据所述交易顺序,依次执行所述交易顺序中存在的所有所述第一类交易块中的智能合约交易;
在本步骤中,具体包括:生成该定序块的区块链节点根据交易顺序,依次执行所述交易顺序中存在的所有第一类交易块中的智能合约交易,以确定所述交易顺序中的所有智能合约交易均能够成功完成。
步骤160:在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第一数据库中。
在本实施例中,在执行完毕任一智能合约交易的情况下,将步骤160中所生成的信息存储在该区块链节点的数据库(也即,第一数据库)中。
本实施例所公开的基于DAG的区块链的智能合约交易的定序方法能够在基于DAG的区块链上确定智能合约交易的交易顺序,并且该顺序能够解决现有的基于DAG的区块链中难以部署智能合约的问题,从而极大地拓展了DAG区块链的应用场景,提升了智能合约的运行速度和可扩展性,保证了智能合约运行结果的一致性。
实施例2
图2示出了基于DAG的区块链的智能合约交易的定序执行方法,在本实施例中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化。具体的基于DAG的区块链如图4所示,已经在实施例1中进行了详细描述,在此不再赘述。
此外,在本实施例中,区块链节点可以实施图2所示的方法,具体如下:
在步骤210之前,区块链节点可能:首先,接收一个或多个交易块;其次,将所接收到的交易块存入缓冲池,从而为交易的有序执行提供了前提条件。
步骤210:接收一个或多个定序块。
步骤220:基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块。
在本实施例中,当所接收到的定序块的定序块ID分别是n+1、n+3、n+5时,首先确定要执行定序块ID的序号最小的定序块(也即,定序块ID=n+1的定序块)。
步骤230:接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块。
在本步骤中,根据第一定序块的头部信息中的确定两个前置区块的哈希值,采用递归方式接收到该第一定序块直接引用和间接引用的所有交易块及所有定序块,使得基于DAG的区块链在交易高度=n的情况下在该区块链节点中保持完整。
步骤240:根据所述第一定序块中的交易顺序,依次执行与所述第一定序块具有相同交易高度的所有第一类交易块中的智能合约交易。其中,所述第一类交易块是包括智能合约交易的交易块,所述交易顺序是根据执行顺序标准对要执行的第一类交易块的块哈希的排序。
步骤250:在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第二数据库中。
在本实施例中,在执行完毕任一智能合约交易的情况下,将步骤250中所生成的信息存储在该执行智能合约交易的区块链节点的数据库(也即,第二数据库)中。
本实施例所公开的基于DAG的区块链的智能合约交易的定序执行方法能够在基于DAG的区块链上根据定序块所确定的智能合约交易的交易顺序依次执行相应的智能合约交易,以确保任一区块链节点对于某个定序块所确定化的智能合约交易具有相同的执行顺序,实现最终处理结果的一致性。
实施例3
图3示出了基于DAG的区块链的普通交易的执行方法,在本实施例中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化。具体的基于DAG的区块链如图4所示,已经在实施例1中进行了详细描述,在此不再赘述。
此外,在本实施例中,区块链节点可以实施图3所示的方法,具体如下:
本实施例中,在步骤310之前,区块链节点还可以执行如下步骤:
第一,接收一个或多个交易块;第二,确定所接收到的每一个交易块是否是第二类交易块;第三,在确定所接收到的任一交易块是第二类交易块的情况下,对所述第二类交易块中保存的源账户执行扣款交易;第四,在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;第五,在执行完毕所述普通交易的情况下,将执行结果保存到缓冲池中。
步骤310:接收一个或多个定序块。
步骤320:基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块。
在本实施例中,当所接收到的定序块的定序块ID分别是n+1、n+3、n+5时,首先确定要执行定序块ID的序号最小的定序块(也即,定序块ID=n+1的定序块)。
步骤330:接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块。
在本步骤中,根据第一定序块的头部信息中的确定两个前置区块的哈希值,采用递归方式接收到该第一定序块直接引用和间接引用的所有交易块及所有定序块,使得基于DAG的区块链在交易高度=n的情况下在该区块链节点中保持完整。
步骤340:在所接收到的所有交易块中确定与所述定序块具有相同交易高度的第二类交易块,其中,所述第二类交易块是包括不具有智能合约的普通交易的交易块。
步骤350:对每一个第二类交易块中保存的源账户执行扣款交易。
步骤360:在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易。
步骤370:在执行完毕任一普通交易的情况下,在与所述普通交易相关的账户中更新账户余额,并将执行结果保存在该执行普通交易的区块链节点的数据库中。
另外,在本实施例中,在所述扣款交易执行失败的情况下,区块链节点将拒绝对所述第二类交易块中保存的目的账户执行放款交易,并且拒绝执行所述源账户作为交易发起方的所有交易。
在本实施例中,将任一定序块所确定化的所有普通交易都拆分成两个阶段:扣款交易和放款交易,只有当与任一普通交易相关的源账户中的扣款交易执行成功时,才能在与该普通交易相关的目的账户中执行放款交易。本实施例确定了在基于DAG的区块链中普通交易的执行顺序,使得该普通交易的执行顺序与实施例2中的智能合约交易的执行顺序极大地扩展了基于DAG的区块链的应用场景。
实施例4
在区块链节点同时接收到一个或多个第一类交易块以及一个或多个第二类交易块的情况下,区块链节点具体操作如下:
第一,接收一个或多个交易块;然后,确定所接收到的每一个交易块的类型(例如,第一类交易块、第二类交易块);将所接收到的交易块存入缓冲池。
第二,接收一个或多个定序块。
第三,基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块。
第四,接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块。
第五,在所接收到的所有交易块中确定与所述第一定序块具有相同交易高度的第二类交易块。
第六,对每一个第二类交易块中保存的源账户执行扣款交易。
第七,按照所述第一定序块中的交易顺序,依次执行与所述第一定序块具有相同交易高度的所有第一类交易块中的智能合约交易。
最后,在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易。
在本实施例中,在第六步骤中,如果任一第二类交易块中保存的源账户执行扣款交易失败,则拒绝执行该源账户作为交易发起方的所有交易(包括普通交易和智能合约交易);但是该源账户作为交易接收方的交易仍然可以被执行。
如图5所示,图5的设备500可以用作本文所公开的基于DAG的区块链的智能合约交易的定序设备,其包括处理器510和存储器520,其中,存储器520被配置为存储指令,使得处理器510执行相应的操作。当设备500作为图1所示的区块链节点时,存储器520中存储的指令使得处理器510执行实施例1中区块链节点能够执行的动作。
替代地,图5的设备500还可以用作基于DAG的区块链的智能合约交易的定序执行设备,其包括处理器510和存储器520,其中,存储器520被配置为存储指令,使得处理器510执行相应的操作。当设备500作为图2所示的区块链节点时,存储器520中存储的指令使得处理器510执行实施例2中区块链节点能够执行的动作。
此外,图5的设备500还可以用作基于DAG的区块链的普通交易的执行设备,其包括处理器510和存储器520,其中,存储器520被配置为存储指令,使得处理器510执行相应的操作。当设备500作为图3所示的区块链节点时,存储器520中存储的指令使得处理器510执行实施例3中区块链节点能够执行的动作。
另外,同一个区块链节点在不同的阶段分别可以执行实施例1的步骤来对智能合约交易的执行顺序进行排序(也即,生成交易顺序),也可以执行实施例2的步骤来根据定序块中确定的交易顺序对该定序块所确定的所有第一类交易块中的智能合约交易依次执行,此外,还可以执行实施例3的步骤来对定序块所确定的所有第二类交易块中的普通交易分阶段执行。
本文所公开的基于DAG的区块链的交易定序方法及设备,在多区块链节点的环境下,通过对于分布式账本结构上的改进(也即,基于DAG的区块链中增加了定序块,使得定序块能够确定化其直接引用和间接引用的一部分交易块),从而实现了在无序的拓扑账本上有序地执行普通交易和智能合约交易的功能,并且该交易顺序能够得到全网所有区块链节点的共识,解决了DAG区块链难以部署智能合约的问题,从而极大地拓展了DAG区块链的应用场景,提升了智能合约的运行速度和可扩展性。
替代地,上述的配置方法能够通过计算机程序产品来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保存和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
应当注意,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (20)

1.一种基于DAG的区块链的智能合约交易的定序方法,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述方法包括:
根据定序块生成时间顺序,对所述区块链中当前最新生成的定序块进行编号以形成定序块ID,并将所述定序块ID保存在所述定序块的头部信息中;
将所述定序块ID作为交易高度保存在相应定序块的头部信息中;
基于交易块的交易高度确定规则确定任一交易块的交易高度;
根据执行顺序标准,将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序,并将所述交易顺序保存在所述定序块的头部信息中,其中,所述第一类交易块是包括智能合约交易的交易块;
根据所述交易顺序,依次执行所述交易顺序中存在的所有所述第一类交易块中的智能合约交易;
在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第一数据库中。
2.根据权利要求1所述的定序方法,其中,根据定序块生成时间顺序对所述区块链中当前最新生成的定序块进行编号以形成定序块ID进一步包括:
当上一个定序块的定序块ID=n-1(其中,n=1,2…)时,使得最新生成的定序块的定序块ID等于n,并且定序块ID=n的定序块直接引用或间接引用定序块ID=n-1的定序块。
3.根据权利要求2所述的定序方法,其中,将所述定序块ID作为交易高度保存在相应定序块的头部信息中进一步包括:
当定序块ID=n时,确定所述定序块的交易高度等于n;以及
将所确定的交易高度保存在所述定序块的头部信息中。
4.根据权利要求3所述的定序方法,其中,基于交易块的交易高度确定规则确定任一交易块的交易高度进一步包括:
在所述交易块被定序块ID=n的定序块直接引用或间接引用、同时所述交易块未被定序块ID=n-1的定序块直接引用或间接引用的情况下,确定所述交易块的交易高度等于n;
将所确定的交易高度保存在所述交易块的头部信息中。
5.根据权利要求1所述的定序方法,其中,根据执行顺序标准将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序进一步包括:
基于每一个交易块的头部信息中保存的交易高度和交易类型,确定与所述定序块具有相同交易高度的所有要执行的第一类交易块,其中,所述交易类型包括智能合约交易以及不具有智能合约的普通交易;
按照执行不同智能合约交易的手续费的高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序;或者
按照随机顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序;或者
按照智能合约交易的价值高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序。
6.一种基于DAG的区块链的智能合约交易的定序执行方法,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述方法包括:
接收一个或多个定序块;
基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块;
接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块;
根据所述第一定序块中的交易顺序,依次执行与所述第一定序块具有相同交易高度的所有第一类交易块中的智能合约交易,其中,所述第一类交易块是包括智能合约交易的交易块,所述交易顺序是根据执行顺序标准对要执行的第一类交易块的块哈希的排序;
在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第二数据库中。
7.根据权利要求6所述的定序执行方法,其中,在接收到定序块之前,所述方法进一步包括:
接收一个或多个交易块;
将所接收到的交易块存入缓冲池。
8.一种基于DAG的区块链的普通交易的执行方法,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述方法包括:
接收一个或多个定序块;
基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块;
接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块;
在所接收到的所有交易块中确定与所述定序块具有相同交易高度的第二类交易块,其中,所述第二类交易块是包括不具有智能合约的普通交易的交易块;
对每一个第二类交易块中保存的源账户执行扣款交易;
在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;
在执行完毕任一普通交易的情况下,在与所述普通交易相关的账户中更新账户余额,并将执行结果保存在数据库中。
9.根据权利要求8所述的执行方法,其中,在接收到定序块之前,所述方法进一步包括:
接收一个或多个交易块;
确定所接收到的每一个交易块是否是第二类交易块;
在确定所接收到的任一交易块是第二类交易块的情况下,对所述第二类交易块中保存的源账户执行扣款交易;
在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;
在执行完毕所述普通交易的情况下,将执行结果保存到缓冲池中。
10.根据权利要求8所述的执行方法,其中,所述方法进一步包括:
在所述扣款交易执行失败的情况下,拒绝对所述第二类交易块中保存的目的账户执行放款交易,并且拒绝执行所述源账户作为交易发起方的所有交易。
11.一种基于DAG的区块链的智能合约交易的定序设备,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
根据定序块生成时间顺序,对所述区块链中当前最新生成的定序块进行编号以形成定序块ID,并将所述定序块ID保存在所述定序块的头部信息中;
将所述定序块ID作为交易高度保存在相应定序块的头部信息中;
基于交易块的交易高度确定规则确定任一交易块的交易高度;
根据执行顺序标准,将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序,并将所述交易顺序保存在所述定序块的头部信息中,其中,所述第一类交易块是包括智能合约交易的交易块;
根据所述交易顺序,依次执行所述交易顺序中存在的所有所述第一类交易块中的智能合约交易;
在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第一数据库中。
12.根据权利要求11所述的定序设备,其中,根据定序块生成时间顺序对所述区块链中当前最新生成的定序块进行编号以形成定序块ID进一步包括:
当上一个定序块的定序块ID=n-1(其中,n=1,2…)时,使得最新生成的定序块的定序块ID等于n,并且定序块ID=n的定序块直接引用或间接引用定序块ID=n-1的定序块。
13.根据权利要求12所述的定序设备,其中,将所述定序块ID作为交易高度保存在相应定序块的头部信息中进一步包括:
当定序块ID=n时,确定所述定序块的交易高度等于n;以及
将所确定的交易高度保存在所述定序块的头部信息中。
14.根据权利要求13所述的定序设备,其中,基于交易块的交易高度确定规则确定任一交易块的交易高度进一步包括:
在所述交易块被定序块ID=n的定序块直接引用或间接引用、同时所述交易块未被定序块ID=n-1的定序块直接引用或间接引用的情况下,确定所述交易块的交易高度等于n;
将所确定的交易高度保存在所述交易块的头部信息中。
15.根据权利要求11所述的定序方法,其中,根据执行顺序标准将与所述定序块具有相同交易高度的多个第一类交易块进行排序以形成交易顺序进一步包括:
基于每一个交易块的头部信息中保存的交易高度和交易类型,确定与所述定序块具有相同交易高度的所有要执行的第一类交易块,其中,所述交易类型包括智能合约交易以及不具有智能合约的普通交易;
按照执行不同智能合约交易的手续费的高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序;或者
按照随机顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序;或者
按照智能合约交易的价值高低顺序对所有要执行的第一类交易块的块哈希进行排序,以形成所述交易顺序。
16.一种基于DAG的区块链的智能合约交易的定序执行设备,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
接收一个或多个定序块;
基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块;
接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块;
根据所述第一定序块中的交易顺序,依次执行与所述第一定序块具有相同交易高度的所有第一类交易块中的智能合约交易,其中,所述第一类交易块是包括智能合约交易的交易块,所述交易顺序是根据执行顺序标准对要执行的第一类交易块的块哈希的排序;
在执行完毕任一智能合约交易的情况下,在与所述智能合约交易相关的账户中更新账户余额、在存储所述智能合约的存储模块中保存与所述智能合约交易相关联的信息,并将执行结果保存在第二数据库中。
17.根据权利要求16所述的定序执行设备,其中,在接收到定序块之前,当所述指令执行时使得所述处理器进一步执行以下操作:
接收一个或多个交易块;
将所接收到的交易块存入缓冲池。
18.一种基于DAG的区块链的普通交易的执行设备,其中,所述基于DAG的区块链包括多个交易块以及一个或多个定序块,并且每一个定序块将其直接引用的交易块以及间接引用的一部分交易块进行确定化,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
接收一个或多个定序块;
基于所接收到的所有定序块的头部信息中的定序块ID,确定第一定序块,其中,所述第一定序块是当前要最先执行的定序块;
接收所述第一定序块直接引用和间接引用的所有交易块及所有定序块;
在所接收到的所有交易块中确定与所述定序块具有相同交易高度的第二类交易块,其中,所述第二类交易块是包括不具有智能合约的普通交易的交易块;
对每一个第二类交易块中保存的源账户执行扣款交易;
在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;
在执行完毕任一普通交易的情况下,在与所述普通交易相关的账户中更新账户余额,并将执行结果保存在数据库中。
19.根据权利要求18所述的执行设备,其中,在接收到定序块之前,当所述指令执行时使得所述处理器进一步执行以下操作:
接收一个或多个交易块;
确定所接收到的每一个交易块是否是第二类交易块;
在确定所接收到的任一交易块是第二类交易块的情况下,对所述第二类交易块中保存的源账户执行扣款交易;
在所述扣款交易执行成功的情况下,对所述第二类交易块中保存的目的账户执行放款交易;
在执行完毕所述普通交易的情况下,将执行结果保存到缓冲池中。
20.根据权利要求18所述的执行设备,其中,当所述指令执行时使得所述处理器进一步执行以下操作:
在所述扣款交易执行失败的情况下,拒绝对所述第二类交易块中保存的目的账户执行放款交易,并且拒绝执行所述源账户作为交易发起方的所有交易。
CN201811561134.5A 2018-12-20 2018-12-20 基于dag的区块链的交易定序方法及设备 Active CN109377232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811561134.5A CN109377232B (zh) 2018-12-20 2018-12-20 基于dag的区块链的交易定序方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811561134.5A CN109377232B (zh) 2018-12-20 2018-12-20 基于dag的区块链的交易定序方法及设备

Publications (2)

Publication Number Publication Date
CN109377232A true CN109377232A (zh) 2019-02-22
CN109377232B CN109377232B (zh) 2021-08-24

Family

ID=65370970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811561134.5A Active CN109377232B (zh) 2018-12-20 2018-12-20 基于dag的区块链的交易定序方法及设备

Country Status (1)

Country Link
CN (1) CN109377232B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110264204A (zh) * 2019-06-06 2019-09-20 杭州趣链科技有限公司 一种基于智能合约定序的区块链跨链交易方法
CN110309173A (zh) * 2019-06-14 2019-10-08 深圳前海达闼云端智能科技有限公司 合约数据的记录方法、装置及区块链节点、存储介质
CN110599166A (zh) * 2019-09-09 2019-12-20 深圳前海微众银行股份有限公司 一种区块链内获取交易依赖关系的方法及装置
CN110659284A (zh) * 2019-08-20 2020-01-07 北京清红微谷技术开发有限责任公司 基于树图结构的区块定序方法及系统、数据处理终端
CN110689345A (zh) * 2019-09-06 2020-01-14 北京清红微谷技术开发有限责任公司 调整区块权重的无许可区块链共识方法、系统、p2p网络
CN110910237A (zh) * 2019-11-20 2020-03-24 腾讯科技(深圳)有限公司 区块链中的数据处理方法、装置及智能终端、存储介质
CN111415161A (zh) * 2020-04-27 2020-07-14 财付通支付科技有限公司 基于区块链的数据验证方法、装置及计算机可读存储介质
CN111556115A (zh) * 2020-04-22 2020-08-18 财付通支付科技有限公司 一种基于区块链的数据处理方法、装置、设备及存储介质
CN111724258A (zh) * 2020-05-28 2020-09-29 天津大学 基于环形拓扑、依赖图及多版本控制的联盟链交易并发方案的实现方法
CN112202775A (zh) * 2020-09-29 2021-01-08 北京理工大学 一种有向无环图结构区块链的共识机制架构及其方法
CN112783983A (zh) * 2021-02-07 2021-05-11 中国人民解放军国防科技大学 基于主副区块图链结构区块链账本设计的自适应共识方法
CN113472870A (zh) * 2021-06-25 2021-10-01 南京航空航天大学 基于有向无环图的支持合约的分布式账本共识方法与系统
CN113516557A (zh) * 2021-07-14 2021-10-19 桂林电子科技大学 一种有向无环图结构的区块链及其实现方法
US11336455B2 (en) 2019-09-25 2022-05-17 International Business Machines Corporation Consensus protocol for blockchain DAG structure
CN115037472A (zh) * 2022-03-28 2022-09-09 湖南天河国云科技有限公司 基于双层dag共识机制的交易处理方法及系统、服务设备
RU2809645C2 (ru) * 2019-08-01 2023-12-14 Блум Текнолоджи, Инк. Система dag-awtc-реестров с использованием консенсусного механизма bft-верификации
CN117422468A (zh) * 2023-12-18 2024-01-19 安徽中科晶格技术有限公司 基于dag模型的合约链合约并行化方法、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160063100A1 (en) * 2014-06-30 2016-03-03 CloudMode, LLC Semantic data structure and method
CN106504008A (zh) * 2016-10-24 2017-03-15 中山大学 一种基于区块链的公平合同签署方法
US20170212781A1 (en) * 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
CN107395353A (zh) * 2017-04-24 2017-11-24 阿里巴巴集团控股有限公司 一种区块链共识方法及装置
CN108984789A (zh) * 2018-08-15 2018-12-11 赵东洋 分布式记账的方法、装置、存储介质及电子设备
CN108985732A (zh) * 2018-06-08 2018-12-11 中国地质大学(武汉) 基于无区块的dag技术的共识和账本数据组织方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160063100A1 (en) * 2014-06-30 2016-03-03 CloudMode, LLC Semantic data structure and method
US20170212781A1 (en) * 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
CN106504008A (zh) * 2016-10-24 2017-03-15 中山大学 一种基于区块链的公平合同签署方法
CN107395353A (zh) * 2017-04-24 2017-11-24 阿里巴巴集团控股有限公司 一种区块链共识方法及装置
CN108985732A (zh) * 2018-06-08 2018-12-11 中国地质大学(武汉) 基于无区块的dag技术的共识和账本数据组织方法及系统
CN108984789A (zh) * 2018-08-15 2018-12-11 赵东洋 分布式记账的方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BBFANS: "ByteBall中DAG交易数据同步算法详解", 《金色财经HTTPS://WWW.JINSE.COM/BITCOIN/288186.HTML》 *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110264204A (zh) * 2019-06-06 2019-09-20 杭州趣链科技有限公司 一种基于智能合约定序的区块链跨链交易方法
CN110309173B (zh) * 2019-06-14 2021-08-13 达闼机器人有限公司 合约数据的记录方法、装置及区块链节点、存储介质
CN110309173A (zh) * 2019-06-14 2019-10-08 深圳前海达闼云端智能科技有限公司 合约数据的记录方法、装置及区块链节点、存储介质
RU2809645C2 (ru) * 2019-08-01 2023-12-14 Блум Текнолоджи, Инк. Система dag-awtc-реестров с использованием консенсусного механизма bft-верификации
CN110659284A (zh) * 2019-08-20 2020-01-07 北京清红微谷技术开发有限责任公司 基于树图结构的区块定序方法及系统、数据处理终端
CN110689345A (zh) * 2019-09-06 2020-01-14 北京清红微谷技术开发有限责任公司 调整区块权重的无许可区块链共识方法、系统、p2p网络
CN110689345B (zh) * 2019-09-06 2022-03-18 北京清红微谷技术开发有限责任公司 调整区块权重的无许可区块链共识方法、系统、p2p网络
CN110599166A (zh) * 2019-09-09 2019-12-20 深圳前海微众银行股份有限公司 一种区块链内获取交易依赖关系的方法及装置
CN114514732B (zh) * 2019-09-25 2023-08-01 国际商业机器公司 用于区块链dag结构的共识协议的方法、计算系统和可读介质
US11336455B2 (en) 2019-09-25 2022-05-17 International Business Machines Corporation Consensus protocol for blockchain DAG structure
CN114514732A (zh) * 2019-09-25 2022-05-17 国际商业机器公司 用于区块链dag结构的共识协议
CN110910237A (zh) * 2019-11-20 2020-03-24 腾讯科技(深圳)有限公司 区块链中的数据处理方法、装置及智能终端、存储介质
CN111556115A (zh) * 2020-04-22 2020-08-18 财付通支付科技有限公司 一种基于区块链的数据处理方法、装置、设备及存储介质
CN111415161A (zh) * 2020-04-27 2020-07-14 财付通支付科技有限公司 基于区块链的数据验证方法、装置及计算机可读存储介质
CN111415161B (zh) * 2020-04-27 2024-03-19 财付通支付科技有限公司 基于区块链的数据验证方法、装置及计算机可读存储介质
CN111724258A (zh) * 2020-05-28 2020-09-29 天津大学 基于环形拓扑、依赖图及多版本控制的联盟链交易并发方案的实现方法
CN112202775A (zh) * 2020-09-29 2021-01-08 北京理工大学 一种有向无环图结构区块链的共识机制架构及其方法
CN112783983A (zh) * 2021-02-07 2021-05-11 中国人民解放军国防科技大学 基于主副区块图链结构区块链账本设计的自适应共识方法
CN113472870A (zh) * 2021-06-25 2021-10-01 南京航空航天大学 基于有向无环图的支持合约的分布式账本共识方法与系统
CN113472870B (zh) * 2021-06-25 2022-04-19 南京航空航天大学 基于有向无环图的支持合约的分布式账本共识方法与系统
CN113516557B (zh) * 2021-07-14 2022-09-23 桂林电子科技大学 一种有向无环图结构的区块链及其实现方法
CN113516557A (zh) * 2021-07-14 2021-10-19 桂林电子科技大学 一种有向无环图结构的区块链及其实现方法
CN115037472B (zh) * 2022-03-28 2023-06-23 湖南天河国云科技有限公司 基于双层dag共识机制的交易处理方法及系统、服务设备
CN115037472A (zh) * 2022-03-28 2022-09-09 湖南天河国云科技有限公司 基于双层dag共识机制的交易处理方法及系统、服务设备
CN117422468A (zh) * 2023-12-18 2024-01-19 安徽中科晶格技术有限公司 基于dag模型的合约链合约并行化方法、设备及存储介质
CN117422468B (zh) * 2023-12-18 2024-03-29 安徽中科晶格技术有限公司 基于dag模型的合约链合约并行化方法、设备及存储介质

Also Published As

Publication number Publication date
CN109377232B (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN109377232A (zh) 基于dag的区块链的交易定序方法及设备
González et al. Scatter search with path relinking for the flexible job shop scheduling problem
Son et al. Hybrid coevolutionary programming for Nash equilibrium search in games with local optima
Ozcan et al. Examination timetabling using late acceptance hyper-heuristics
Lagoudakis et al. Learning to select branching rules in the DPLL procedure for satisfiability
Labadie et al. Hybridized evolutionary local search algorithm for the team orienteering problem with time windows
CN110490738A (zh) 一种混合联邦学习方法及架构
CN108062672A (zh) 一种基于区块链智能合约的流程调度方法
CN109903049A (zh) 一种区块链交易数据存储方法、装置、设备及存储介质
Santangelo Corporate strategic technological partnerships in the European information and communications technology industry
CN110471985A (zh) 基于区块链的电子票据作废方法及装置、电子设备
CN109146638A (zh) 异常金融交易群体的识别方法及装置
Ballestín et al. An evolutionary algorithm for the resource-constrained project scheduling problem with minimum and maximum time lags
CN110473030A (zh) 基于区块链的电子票据号码申领方法及装置、电子设备
CN109218037A (zh) P2p网络中的消息广播方法及装置
CN110473081A (zh) 基于区块链的电子票据报销方法及装置、电子设备
Pagani et al. Power grid network evolutions for local energy trading
CN110245190A (zh) 一种区块数据分段存储方法、终端及介质
Carrabs et al. An adaptive heuristic approach to compute upper and lower bounds for the close-enough traveling salesman problem
CN109544344A (zh) 基于dag的区块链的交易处理方法及设备
CN109146317A (zh) 一种收益分成方法及相关设备
CN109410063A (zh) 基于区块链的交易处理方法、装置和存储介质
CN109672733A (zh) 基于dag的区块链的账本同步方法及设备
Cortes-Carmona et al. Transmission network expansion planning by a hybrid simulated annealing algorithm
de Campos Jr et al. Many-objective evolutionary algorithms in the composition of web services

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
TR01 Transfer of patent right

Effective date of registration: 20210923

Address after: Room 201, building a, No.1 Qianwan 1st Road, Shenzhen Hong Kong cooperation zone, Qianhai, Shenzhen, Guangdong 518066

Patentee after: ZHONGAN INFORMATION TECHNOLOGY SERVICE Co.,Ltd.

Patentee after: Baibao (Shanghai) Technology Co.,Ltd.

Address before: 518052 Room 201, building A, 1 front Bay Road, Shenzhen Qianhai cooperation zone, Shenzhen, Guangdong

Patentee before: ZHONGAN INFORMATION TECHNOLOGY SERVICE Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240304

Address after: Room 1179, W Zone, 11th Floor, Building 1, No. 158 Shuanglian Road, Qingpu District, Shanghai, 201702

Patentee after: Shanghai Zhongan Information Technology Service Co.,Ltd.

Country or region after: China

Patentee after: Baibao (Shanghai) Technology Co.,Ltd.

Address before: Room 201, building a, No.1 Qianwan 1st Road, Shenzhen Hong Kong cooperation zone, Qianhai, Shenzhen, Guangdong 518066

Patentee before: ZHONGAN INFORMATION TECHNOLOGY SERVICE Co.,Ltd.

Country or region before: China

Patentee before: Baibao (Shanghai) Technology Co.,Ltd.

TR01 Transfer of patent right