(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 20221018170 5.2
(22)申请日 2022.02.25
(71)申请人 蚂蚁区块链科技 (上海) 有限公司
地址 200010 上海市黄浦区外马路618号8
层803室
(72)发明人 刘晓建 张兆勇
(74)专利代理 机构 北京亿腾知识产权代理事务
所(普通合伙) 11309
专利代理师 张静娟 周良玉
(51)Int.Cl.
G06F 16/27(2019.01)
G06F 16/23(2019.01)
G06Q 40/04(2012.01)
(54)发明名称
执行交易的方法、 区块链、 主节点和从节点
(57)摘要
一种在区块链中执行交易的方法、 区块链、
主节点和从节点。 所述方法包括: 主节点预执行
接收的第一交易, 生成第一交易的预执行读写
集, 预执行读写集中包括对第一变量的访问; 主
节点根据第一交易的预执行读写集、 在先记录的
最近更新所述第一变量的第二交易的标识, 生成
DAG数据, 第二交易为在预执行所述第一交易之
前最近的在预执行后更新所述第一变量的预执
行状态的交易, 所述DAG数据指示第一交易和第
二交易访问所述第一变量的时间顺序; 主节点将
DAG数据发送给 从节点; 从节点基于DAG数据执行
第一交易和第二交易。
权利要求书3页 说明书10页 附图3页
CN 114547203 A
2022.05.27
CN 114547203 A
1.一种在区块链中执 行交易的方法, 所述区块链包括主节点和从节点, 所述方法包括:
所述主节点预执行接收的第一交易, 生成所述第一交易的预执行读写集, 所述预执行
读写集中包括对第一变量的访问;
所述主节点根据 所述第一交易的预执行读写集、 在先记录的最近更新所述第 一变量的
第二交易的标识, 生成有向无环图DAG数据, 所述第二交易为在预执行所述第一交易之前最
近的在预执行后更新所述第一变量的预执行状态的交易, 所述DAG数据指示所述第一交易
和所述第二交易访问所述第一变量的时间顺序;
所述主节点将所述DAG数据发送给 所述从节点;
所述从节点基于所述DAG数据执 行所述第一交易和所述第二交易。
2.根据权利要求1所述的方法, 所述主节点预执行接收的第 一交易包括, 所述主节点基
于预执行状态集预执行接 收的第一交易, 在预执行完成所述第一交易之后, 基于所述第一
交易的预 执行读写集更新所述预 执行状态集。
3.根据权利要求1或2所述的方法, 其中, 所述DAG数据包括已预执行完成的多个交易各
自的DAG表, 每 个交易的DAG表中包括该交易在DAG图中的后继交易和入度交易数目。
4.根据权利要求3所述的方法, 所述预执行读写集中包括对所述第 一变量的读操作, 所
述主节点根据所述第一交易的预执行读写集、 在先记录的最近更新所述第一变量的第二交
易的标识, 生成DAG数据包括:
所述主节点在所述第二交易的DAG表中将所述第 一交易记录为所述第 二交易的后继交
易, 在所述第一交易的DAG表中将所述第一交易的入度数加1。
5.根据权利要求3所述的方法, 所述预执行读写集中包括对所述第 一变量的读操作, 所
述第二交易标识为空交易标识, 所述主节点根据所述第一交易的预执行读写集、 在先记录
的最近更新所述第一变量的第二交易的标识, 生成DAG数据包括:
所述主节点与所述第一变量的空 交易标识关联地记录所述第一交易的标识;
所述主节点在预执行完成所述第一交易之后, 预执行接收的第三交易, 生成所述第三
交易的预 执行读写集, 所述第三交易的预 执行读写集中包括对所述第一变量的写操作;
所述主节点根据所述第三交易的预执行读写集和与所述第一变量的空交易标识关联
记录的所述第一交易的标识, 在所述第一交易的DAG表中将所述第三交易记录为所述第一
交易的后继交易, 在所述第三交易的DAG表中将所述第三交易的入度数加1, 记录所述第三
交易为最近更新所述第一变量的交易。
6.根据权利要求3所述的方法, 所述第一交易的预执行读写集中包括对所述第一变量
的写操作, 所述主节点根据所述第一交易的预执行读写集、 在先记录的最近更新所述第一
变量的第二交易的标识, 生成DAG数据包括:
所述主节点读取所述第二交易的DAG表, 在所述第二交易具有后继的第 四交易的情况
中, 在所述第四交易的DAG表中将所述第一交易记录为所述第四交易的后继交易, 在所述第
一交易的DAG表中将所述第一交易的入度数加1, 记录所述第一交易为最近更新所述第一变
量的交易。
7.根据权利要求6所述的方法, 所述主节点根据所述第 一交易的预执行读写集、 在先记
录的最近更新所述第一变量的第二交易的标识, 生 成DAG数据还包括: 在所述第二交易没有
后继交易的情况中, 在所述第二交易的DAG表中将所述第一交易记录为所述第二交易的后权 利 要 求 书 1/3 页
2
CN 114547203 A
2继交易, 在所述第一交易的DAG表中将所述第一交易的入度数加1, 记录所述第一交易为最
近更新所述第一变量的交易。
8.根据权利要求3所述的方法, 还 包括:
所述主节点根据所述多个交易各自的DAG表获取第一集合, 所述第一集合中包括所述
多个交易中入度数为 零的交易,
将所述第一 集合发送给 所述从节点。
9.根据权利要求8所述的方法, 所述第 一集合中包括所述第 二交易, 所述第 一交易为所
述第二交易的后继交易, 所述从节点基于所述DAG数据执行所述第一交易和所述第二交易
包括:
所述从节点并行执行所述第一集合中的交易; 在执行完所述第二交易之后, 将所述第
一交易的入度数减1; 在所述第一交易的入度数减至0的情况中, 将所述第一交易放入所述
第一集合中。
10.根据权利要求2所述的方法, 所述第 一交易的预执行读写集包括对第 一变量的读操
作, 所述基于所述第一交易的预执行读写集更新所述预执行状态集包括: 确定所述预执行
读写集中所述第一变量的值与所述预执行状态集中的所述第一变量的值是否一致, 在一致
的情况中, 基于所述第一交易的预执行读写集更新所述预执行状态 集, 所述生成DAG数据包
括, 在一致的情况中生成DAG数据。
11.一种区块链, 所述区块链包括主节点和从节点,
所述主节点用于: 预执行接收的第 一交易, 生成所述第 一交易的预执行读写集, 所述预
执行读写集中包括对第一变量的访问; 根据所述第一交易的预执行读写集、 在先记录的最
近更新所述第一变量的第二交易的标识, 生成DAG数据, 所述第二交易为在预执行所述第一
交易之前最近的在预执行后更新所述第一变量的预执行状态的交易, 所述DAG数据指示所
述第一交易和所述第二交易访问所述第一变量的时间顺序; 将所述DAG数据发送给所述从
节点;
所述从节点用于基于所述DAG数据执 行所述第一交易和所述第二交易。
12.一种区块链主节点, 包括:
预执行单元, 用于预执行接收的第 一交易, 生成所述第 一交易的预执行读写集, 所述预
执行读写集中包括对第一变量的访问;
生成单元, 用于根据所述第一交易的预执行读写集、 在先记录的最近更新所述第一变
量的第二交易的标识, 生成DAG数据, 所述第二交易为在预执行所述第一交易之前最近的在
预执行后更新所述第一变量的预执行状态的交易, 所述DAG数据指示所述第一交易和所述
第二交易访问所述第一变量的时间顺序;
发送单元, 用于将所述DAG数据发送给 所述区块链的从节点。
13.根据权利要求12所述的主节点, 所述预执行单元具体用于, 基于预执行状态集预执
行接收的第一交易, 在预执行完成所述第一交易之后, 基于所述第一交易的预执行读写集
更新所述预 执行状态集。
14.根据权利要求12或13所述的主节点, 其中, 所述DAG数据包括已预执行完成的多个
交易各自的DAG表, 每 个交易的DAG表中包括该交易在DAG图中的后继交易和入度交易数目。
15.根据权利要求14所述的主节点, 所述预执行读写集中包括对所述第一变量的读操权 利 要 求 书 2/3 页
3
CN 114547203 A
3
专利 执行交易的方法、区块链、主节点和从节点
文档预览
中文文档
17 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 11:19:38上传分享