当前位置: 首页 > 专利查询>浙江大学专利>正文

基于制造技术

技术编号:39712992 阅读:25 留言:0更新日期:2023-12-17 23:21
本申请涉及区块链领域,特别是涉及一种基于

【技术实现步骤摘要】
基于DAG区块链系统的交易执行方法、装置及存储介质


[0001]本申请涉及区块链领域,特别是涉及一种基于
DAG
区块链系统的交易执行方法

装置

交易方法

系统及存储介质


技术介绍

[0002]区块链是按照时间顺序,将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,是一种全新的分布式基础架构与计算范式
。DAG
区块链是在传统区块链的基础上,允许所有节点并发提交区块,然后以有向无环图
(Directed Acyclic Graph,DAG)
的形式组织区块并构造区块链账本,从而使得账本天然地具有支持高并发的特性

[0003]节点提交的区块中包含一系列待执行的交易

传统区块链系统一般是按照交易的先后顺序串行处理交易,但这种串行执行方式的性能很低,难以满足一些需要高吞吐量和低延迟的应用场景需求

为了提高交易处理效率,区块链引入了并行执行的概念

在并行执行中,区块链节点可以同时处理多个无依赖的交易,有效提高了区块链系统的交易吞吐量和响应速度

[0004]现有技术中的交易并行执行方法存在以下不足:
[0005]交易高依赖场景下性能表现不佳
。DAG
区块链的高并发特性决定了其生成交易的数量很大,交易之间产生数据依赖的可能性也随之提高r/>。
对于基于交易依赖图的交易并行执行方法而言,高依赖环境下能够并行执行的交易实际上很少,并行执行所带来的增益无法覆盖分析交易依赖图所产生的开销

相对而言,目前在区块链中引入交易重排序机制的工作主要基于先执行再排序的区块链系统实现

由于重排序算法在交易执行后运行,对于无法序列化的交易只能采取中止或重新执行的方式,一方面浪费了执行交易所消耗的计算资源,一方面还影响了系统的可用性,增大了交易延迟


技术实现思路

[0006]基于此,有必要针对上述技术问题,提供一种基于
DAG
区块链系统的交易执行方法

装置

交易方法

系统及存储介质

[0007]第一方面,本专利技术实施例提出一种基于
DAG
区块链系统的交易执行方法,所述方法包括:
[0008]从交易池中提取各交易,并生成用于表示各所述交易之间的依赖关系的交易依赖图;
[0009]消除所述交易依赖图中的环依赖关系,得到无环依赖图以及依赖关系表;
[0010]消除所述无环依赖图中的依赖关系,并以所述依赖关系表中存在依赖关系的交易间隔最大化为目标生成安全交易序列;
[0011]基于所述安全交易序列以及所述依赖关系表,并行执行不在所述依赖关系表中的交易,按照所述依赖关系执行在所述依赖关系表中的交易

[0012]在一实施例中,所述生成用于表示各所述交易之间的依赖关系的交易依赖图包括:
[0013]将各所述交易分别映射至初始交易依赖图上的节点;
[0014]在初始交易依赖图的节点之间相应绘制有向边以标识对应交易的依赖关系;
[0015]去除自依赖关系所对应的有向边,得到所述交易依赖图

[0016]在一实施例中,所述消除所述交易依赖图中的环依赖关系,得到无环依赖图以及依赖关系表包括:
[0017]获取所述交易依赖图中的强连通分量集合;
[0018]基于所述强连通分量集合,生成包含环依赖关系的环集以及构成环依赖关系的边集;
[0019]对所述边集中的有向边按照优先级进行排序;
[0020]删除所述环集中包含最高优先级的有向边的环依赖关系,并将该有向边对应的依赖关系存储至所述依赖关系表,并从所述交易依赖图中删除该有向边,重复删除步骤直到所述环集为空,得到所述无环依赖图以及所述依赖关系表

[0021]在一实施例中,所述边的优先级基于有向边所连接的节点的出入度所确定,或基于有向边所属的环依赖关系的数量所确定

[0022]在一实施例中,所述消除所述无环依赖图中的依赖关系,并以所述依赖关系表中存在依赖关系的交易间隔最大化为目标生成安全交易序列包括:
[0023]通过调整交易顺序以消除所述无环依赖图中的依赖关系;
[0024]获取所述无环依赖图中各节点的优先度以及入度;
[0025]基于各所述节点的优先度以及入度,以所述依赖关系表中存在依赖关系的交易间隔最大化为目标,利用加权拓扑排序算法生成所述安全交易序列

[0026]在一实施例中,当节点对应的交易不存在依赖关系时,则该节点的优先度为最大值;
[0027]当节点对应的交易存在依赖关系时,则该节点的优先度由该节点与存在依赖关系的节点的时间戳差值的最小值所确定

[0028]第二方面,本专利技术实施例提出一种基于
DAG
区块链系统的交易执行装置,所述装置包括:
[0029]依赖图生成模块,用于从交易池中提取各交易,并生成用于表示各所述交易之间的依赖关系的交易依赖图;
[0030]消除模块,用于消除所述交易依赖图中的环依赖关系,得到无环依赖图以及依赖关系表;
[0031]序列生成模块,用于消除所述无环依赖图中的依赖关系,并以所述依赖关系表中存在依赖关系的交易间隔最大化为目标生成安全交易序列;
[0032]交易执行模块,用于基于所述安全交易序列以及所述依赖关系表,并行执行不在所述依赖关系表中的交易,按照所述依赖关系执行在所述依赖关系表中的交易

[0033]第三方面,本专利技术实施例提出一种基于
DAG
区块链系统的交易方法,所述
DAG
区块链系统包括多个节点集群,各所述节点集群包括相互连接的主节点

工人节点以及执行节点,所述方法包括:
[0034]一所述节点集群根据负载均衡,选择处理所接收的交易的工人节点;
[0035]所述工人节点验证所述交易的完整性和合法性,如果验证通过,则将所述交易暂存到交易池中;
[0036]当交易池中的交易数量达到设定值时,所述工人节点从所述交易池中提取所有交易,执行第一方面所述的方法的步骤生成安全交易序列及依赖关系表,并打包构建新区块;
[0037]所述工人节点广播所述新区块,向所在节点集群的主节点发送所述新区块的哈希;
[0038]所述主节点使用所述新区块的哈希在节点集群间发起共识,在共识成功的情况下,所有主节点将所述新区块的哈希发送到所在节点集群的执行节点;
[0039]所述执行节点获得所述新区块的哈希后,根据所述新区块的哈希向工人节点请求完整的新区块;
本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种基于
DAG
区块链系统的交易执行方法,其特征在于,所述方法包括:从交易池中提取各交易,并生成用于表示各所述交易之间的依赖关系的交易依赖图;消除所述交易依赖图中的环依赖关系,得到无环依赖图以及依赖关系表;消除所述无环依赖图中的依赖关系,并以所述依赖关系表中存在依赖关系的交易间隔最大化为目标生成安全交易序列;基于所述安全交易序列以及所述依赖关系表,并行执行不在所述依赖关系表中的交易,按照所述依赖关系执行在所述依赖关系表中的交易
。2.
根据权利要求1所述的方法,其特征在于,所述生成用于表示各所述交易之间的依赖关系的交易依赖图包括:将各所述交易分别映射至初始交易依赖图上的节点;在初始交易依赖图的节点之间相应绘制有向边以标识对应交易的依赖关系;去除自依赖关系所对应的有向边,得到所述交易依赖图
。3.
根据权利要求1所述的方法,其特征在于,所述消除所述交易依赖图中的环依赖关系,得到无环依赖图以及依赖关系表包括:获取所述交易依赖图中的强连通分量集合;基于所述强连通分量集合,生成包含环依赖关系的环集以及构成环依赖关系的边集;对所述边集中的有向边按照优先级进行排序;删除所述环集中包含最高优先级的有向边的环依赖关系,并将该有向边对应的依赖关系存储至所述依赖关系表,并从所述交易依赖图中删除该有向边,重复删除步骤直到所述环集为空,得到所述无环依赖图以及所述依赖关系表
。4.
根据权利要求3所述的方法,其特征在于,所述边的优先级基于有向边所连接的节点的出入度所确定,或基于有向边所属的环依赖关系的数量所确定
。5.
根据权利要求1所述的方法,其特征在于,所述消除所述无环依赖图中的依赖关系,并以所述依赖关系表中存在依赖关系的交易间隔最大化为目标生成安全交易序列包括:通过调整交易顺序以消除所述无环依赖图中的依赖关系;获取所述无环依赖图中各节点的优先度以及入度;基于各所述节点的优先度以及入度,以所述依赖关系表中存在依赖关系的交易间隔最大化为目标,利用加权拓扑排序算法生成所述安全交易序列
。6.
根据权利要求5所述的方法,其特征在于,当节点对应的交易不存在依赖关系时,则该节点的优先度为最大值;当节点对应的交易存在依赖关系时,则该节点的优先度由该节点与存在依赖关系的节点的时间戳差值的最小值所确定
...

【专利技术属性】
技术研发人员:赵威凯贺梦杰张超赵涵斌钱徽
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1