[发明专利]一种区块链智能合约交易并发执行方法有效
申请号: | 201910790004.7 | 申请日: | 2019-08-26 |
公开(公告)号: | CN110517140B | 公开(公告)日: | 2020-08-04 |
发明(设计)人: | 庞帅风;张召;金澈清 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06F16/901;H04L12/24;H04L29/06 |
代理公司: | 上海蓝迪专利商标事务所(普通合伙) 31215 | 代理人: | 徐筱梅;张翔 |
地址: | 200241 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 智能 合约 交易 并发 执行 方法 | ||
1.一种区块链智能合约交易并发执行方法,其特征在于将矿工集合一批交易,按交易重排序的OCC协议并发执行,采用图切分算法将调度信息划分成多个子图,然后验证节点,使用确定性的并发控制协议并发重新执行交易,其具体执行流程包括以下具体步骤:
(一)矿工节点并发执行交易
a步骤:矿工节点从本地交易池中选取一批交易;
b步骤:矿工节点按照OCC协议的读阶段并发执行一批交易;
c步骤:在所有交易到达OCC协议的验证阶段时,根据交易读写集的冲突关系,矿工节点构造冲突图;
d步骤:矿工节点中止冲突图中的若干交易使得剩余交易构成有向无环的冲突图,然后对该有向无环图应用拓扑排序;
e步骤:矿工节点按d步骤得到的拓扑序依次提交交易,更新交易依赖图;
f步骤:被中止的交易作为输入,重复上述b~e步骤,直至区块中的所有交易都成功提交;
(二)调度信息生成
a步骤:矿工节点在成功提交一个交易后向交易依赖图中插入一个新节点;
b步骤:根据新节点的读集与图中已有节点的写集的重合情况,插入新的边;
(三)调度信息切分
a步骤:根据给定的阈值τ计算每个子图的权值上限U;
b步骤:交易依赖图中所有的边按照边权重大小排序;
c步骤:遍历排序后的每条边,如该边连接的未被访问节点的权重加上当前子图的权重不超过U,则未被访问节点添加到当前子图;否则创建一个新的子图,并添加未被访问节点;
d步骤:遍历所有未被访问的节点,如当前子图的权重加上该节点的权重不超过U,则添加该节点到当前子图,否则添加到一个新子图;
(四)验证节点并发回放交易
a步骤:验证节点按照OCC协议的读阶段并发执行区块中的一批交易,从矿工节点发送的交易依赖图中读取一致性的数据;
b步骤:交易按照矿工节点发现的拓扑顺序依次验证矿工节点发送的调度信息的正确性;
c步骤:如通过验证,交易进入提交阶段,提交所有的更新到本地。
2.根据权利要求1所述的区块链智能合约交易并发执行方法,其特征在于所述矿工节点并发执行交易的d步骤中,有向无环图按下述步骤进行拓扑排序:
d1:初始化输出节点集合V为空集;
d2:删去冲突图中入度或出度为0的节点;
d3:使用Tarjan算法分离出冲突图中的所有强连通分支;
d4:对于每个强连通分支,如包含的节点数≤1,则返回空集;否则按定义的策略选择节点加入到输出节点集V中;
d5:删去被添加到V中的节点,对剩余的强连通分支按上述d4步骤进行递归,直至该强连通分支无节点。
3.根据权利要求1所述的区块链智能合约交易并发执行方法,其特征在于所述验证节点并发回放交易的b步骤中的矿工节点按下述步骤进行验证和发送:
b1:交易在验证阶段,检查所读的值是否附上verified标签,若是则通过验证;否则检测到矿工节点作恶,传递了错误的调度信息,中止当前区块的验证;
b2:通过验证的交易在写回更新以后,会对比其写集与交易依赖图,检查数据值是否一致,对一致的数据打上verified标签以供下一个交易验证。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910790004.7/1.html,转载请声明来源钻瓜专利网。