全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210602794.3 (22)申请日 2022.05.30 (71)申请人 蚂蚁区块链科技 (上海) 有限公司 地址 200010 上海市黄浦区外马路618号8 层803室 (72)发明人 林鹏  (74)专利代理 机构 北京亿腾知识产权代理事务 所(普通合伙) 11309 专利代理师 张静娟 周良玉 (51)Int.Cl. G06F 16/27(2019.01) G06F 16/23(2019.01) G06F 16/2455(2019.01) G06F 11/14(2006.01) G06F 12/0862(2016.01)G06F 9/50(2006.01) G06Q 20/22(2012.01) G06Q 20/10(2012.01) G06Q 20/38(2012.01) G06Q 20/40(2012.01) (54)发明名称 在区块链中执 行交易的方法和区块链 节点 (57)摘要 一种在区块链中执行交易的方法和区块链 节点, 所述方法由区块链中的第一节点执行, 所 述方法包括: 在执行交易时, 创建与所述交易对 应的第一状态 集和第二状态集; 在根据所述交易 对第一变量进行写入之前, 读取所述第一变量的 第一状态, 所述第一状态为所述第一变量的当前 状态, 在所述第一状态集中存储 所述第一变量的 所述第一状态; 在所述第二状态 集中存储所述第 一变量的第二状态, 所述第二状态 为根据所述交 易写入的所述第一变量的状态; 在确定所述交易 的对所述第一变量的写入操作需要回滚时, 至少 根据所述第一状态集 生成所述交易的写集。 权利要求书2页 说明书19页 附图6页 CN 114936256 A 2022.08.23 CN 114936256 A 1.一种在区块链中执行交易的方法, 所述方法由区块链中的第一节点执行, 所述方法 包括: 在执行交易时, 创建与所述交易对应的第一状态集和第二状态集; 在根据所述交易对第一变量进行写入之前, 读取所述第一变量的第一状态, 所述第一 状态为所述第一变量的当前状态, 在所述第一状态集中存储所述第一变量的所述第一状 态; 在所述第二状态集中存储所述第 一变量的第 二状态, 所述第 二状态为根据所述交易写 入的所述第一变量的状态; 在确定所述交易的对所述第 一变量的写入操作需要回滚时, 至少根据 所述第一状态集 生成所述交易的写集。 2.根据权利要求1所述的方法, 所述 区块链还包括第 二节点, 所述执行为对所述交易的 预执行, 所述写集为所述交易的预执行写集, 所述方法还包括: 在预执行 交易时生成所述交 易的预执行读集, 在预执行多个交易之后, 将所述多个交易的预执行读集、 预执行写集和预 执行顺序发送给 所述第二节点。 3.根据权利要求1或2所述的方法, 其中, 所述第 一变量为合约变量, 所述第 一状态集和 所述第二状态集 为合约变量状态集。 4.根据权利要求1或2所述的方法, 其中, 所述交易中调用第 一合约, 所述第 一合约调用 第二合约, 所述第二合约包括对所述第一变量的写操作, 所述第一状态集与所述第二合约 对应, 所述在确定所述交易的对所述第 一变量的写入操作需要回滚时, 至少根据所述第 一状 态集生成所述交易的预执行写集包括: 在确定所述第二合约的预执行失败需要回滚时, 根 据所述第一状态集和所述第二状态集 生成所述交易的预 执行写集。 5.根据权利要求2所述的方法, 其中, 所述多个交易仅包括对第二变量的读取操作, 不 包括对所述第二变量的写操作, 所述方法还包括: 在预执行所述多个交易得到所述多个交 易的预执行读写集之后, 删除所述多个交易的预 执行读集中的所述第一变量的键值对。 6.根据权利要求2所述的方法, 其中, 所述多个交易中包括多个第一交易, 所述第一交 易用于对区块链中的第一账户转入预设金额, 所述金额为正金额, 所述方法还包括, 删除所 述多个第一交易的预 执行读写集中的所述第一账户的键值对。 7.一种在区块链中执行交易的方法, 所述区块链包括第一节点和第二节点, 所述第一 节点中运行有 预执行进程、 缓存进程和 第一共识进程, 所述方法由所述第一节 点执行, 所述 方法包括: 所述缓存进程将接收的交易发送给 所述预执行进程; 所述预执行进程在预执行所述交易时, 生成所述交易的预执行读集, 在所述预执行进 程的内存中创建与所述交易对应的第一状态集和 第二状态集; 在根据所述交易对第一变量 进行写入之前, 读取所述第一变量的第一状态, 所述第一状态为所述第一变量的当前状态, 在所述第一状态集中存储所述第一变量的所述第一状态; 在所述第二状态集中存储所述第 一变量的第二状态, 所述第二状态为根据所述交易写入的所述第一变量的状态; 在确定所 述交易的对所述第一变量的写入操作需要回滚时, 至少根据所述第一状态集生成所述交易 的预执行写集;权 利 要 求 书 1/2 页 2 CN 114936256 A 2所述预执行进程在预执行多个交易之后, 将所述多个交易的预执行读集、 预执行写集 和预执行顺序发送给 所述缓存进程; 所述共识进程从所述缓存进程接收所述多个交易的预执行读集、 预执行写集和预执行 顺序, 生成共识 提议, 所述共识 提议中包括所述多个交易的预执行读集、 预执行写集和预执 行顺序, 将所述共识提 议发送给 所述第二节点。 8.根据权利要求7所述的方法, 所述缓存进程的内存中存储有区块链中至少部分变量 的当前状态, 所述方法还包括: 所述缓存进程在从所述预执行进程接 收所述多个交易的预 执行读集、 预执行写集和预执行顺序之后, 根据所述缓存进程的内存中当前存储的状态数 据对所述多个交易的预执行读集进行验证, 在验证通过时, 基于所述多个交易的预执行读 集和预执行写集更新所述缓存进程的内存中存 储的状态数据。 9.一种在区块链中执行交易的方法, 所述区块链包括第一节点和第二节点, 所述第二 节点中运行有第二共识进程、 区块管理进程和N个 计算进程, 所述方法包括: 所述第二共识进程从所述第 一节点接收共识提议, 所述共识提议中包括多个交易的预 执行读写集和预执行顺序, 将所述多个交易的预执行读写集和预执行顺序发送给所述区块 管理进程; 所述区块管理进程根据所述预执行读写集和所述预执行顺序对所述多个交易进行分 组, 得到多个交易组, 将所述多个交易组的信息分配给 所述N个计算进程; 所述N个计算进程在并行执行所述多个交易组的交易 时, 对于交易组中的每个交易, 生 成所述交易的执行读集, 创建与所述交易对应的第三状态集和第四状态集; 在根据所述交 易对第一变量进行写入之前, 读取所述第一变量的第三状态, 所述第三状态为所述第一变 量的当前状态, 在所述第三状态集中存储所述第一变量的所述第三状态; 在所述第四状态 集中存储所述第一变量的第四状态, 所述第四状态为根据所述交易写入的所述第一变量的 状态; 在确定所述交易的对所述第一变量的写入操作需要回滚时, 至少根据所述第三状态 集生成所述交易的执行写集; 比较所述多个交易的执行读写集与所述多个交易的预执行读 写集是否一致, 在一致的情况中确认所述执行读写集正确, 所述执行读写集包括所述执行 读集和所述执 行写集。 10.一种区块链中的第一节点, 包括: 创建单元, 用于在执 行交易时, 创建与所述交易对应的第一状态集和第二状态集; 第一存储单元, 用于在根据所述交易对第一变量进行写入之前, 读取所述第一变量的 第一状态, 所述第一状态为所述第一变量的当前状态, 在所述第一状态集中存储所述第一 变量的所述第一状态; 第二存储单元, 用于在所述第二状态集中存储所述第一变量的第二状态, 所述第二状 态为根据所述交易写入的所述第一变量的状态; 生成单元, 用于在确定所述交易的对所述第一变量的写入操作需要回滚时, 至少根据 所述第一状态集 生成所述交易的写集。 11.一种计算机可读存储介质, 其上存储有计算机程序, 当所述计算机程序在计算机中 执行时, 令计算机执 行权利要求1 ‑9中任一项的所述的方法。权 利 要 求 书 2/2 页 3 CN 114936256 A 3

PDF文档 专利 在区块链中执行交易的方法和区块链节点

文档预览
中文文档 28 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共28页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 在区块链中执行交易的方法和区块链节点 第 1 页 专利 在区块链中执行交易的方法和区块链节点 第 2 页 专利 在区块链中执行交易的方法和区块链节点 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-24 00:43:53上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。