[发明专利]一种基于区块链的并行交易执行方法有效
申请号: | 201710685258.3 | 申请日: | 2017-08-11 |
公开(公告)号: | CN107688999B | 公开(公告)日: | 2020-11-13 |
发明(设计)人: | 谢晗剑 | 申请(专利权)人: | 杭州溪塔科技有限公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06Q20/38 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 黄欢娣;邱启旺 |
地址: | 310012 浙江省杭州市西湖区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于区块链的并行交易执行方法,首先对链上的数据单元进行索引编号,用户的并发交易除了基本的交易内容外,需再提供交易执行所需读取和写入的数据索引。用户的串行交易只需提供基本的交易内容。节点根据并发交易的数据依赖关系,安排并发处理,并发处理完成后,再将无法并发的交易和串行交易进行顺序执行。 | ||
搜索关键词: | 一种 基于 区块 并行 交易 执行 方法 | ||
【主权项】:
一种基于区块链的并行交易执行方法,其特征在于,该方法中,首先对区块链中的交易所涉及的数据单元进行划分,每个数据单元产生唯一性索引index。各用户节点实时同步出块节点的最新区块,保持本地最新的链状态备份。用户发起交易时,选择交易类型,如果选择的交易类型为“串行执行”,直接将交易内容Data签名广播;如果选择的交易类型为“并行执行”,根据本地最新状态,对交易内容进行模拟执行,获得状态依赖信息State,并签名广播。其中State包含如下内容:上述模拟执行过程中会读取的数据单元的索引集合read_indexes;模拟执行过程会写入的数据单元的索引集合write_indexes;以及状态冲突处理方法:“交易报错”或“改为串行”。出块节点执行交易、打包出块的方法如下:(1)出块节点生成一个空的列表serial_txs用于存放串行交易。(2)构建一个空的集合rely_txs,用于存放多组并行交易列表;构建一个空的集合rely_indexes用于存放一系列子集。rely_txs中的每组并行交易列表会生成一组对应的依赖数据单元,rely_indexes的每一个子集就是用于存放这组依赖数据单元的索引集合的。具体如下:出块节点逐个选择交易类型为“并行执行”的交易。假设当前选择的“并行执行”交易为tx,当前已生成的rely_indexes子集个数为N个,出块节点对这N个子集进行遍历。假设当前正在遍历的子集为rely_indexes_%i%,如果该子集对应的并行交易列表rely_indexes_%i%为空列表,即子集rely_indexes_%i%为空,或tx的read_indexes和write_index的并集与rely_indexes_%i%存在交集,则将tx加入到rely_txs_%i%中,将tx的write_indexes加入到rely_indexes_%i%中。如果对所有子集遍历完成,均不存在交集或空元素,则新建子集,将tx中的write_indexes中的数据单元索引加入到rely_indexes的N+1个子集中,并在rely_txs中建立新的并行交易列表,将该交易tx加入到该新建的交易列表中。(3)出块节点并行执行rely_txs中的的并行交易列表,串行执行每个并行交易列表内部的交易。在执行某交易的过程中,如果该交易所读取的数据单元信息集合read_indexes’和写入的数据单元索引集合write_indexes’,与该交易的状态依赖信息State中声明的read_indexes或write_indexes不一致,则根据状态冲突处理方法进行处理,如果是“交易报错”则按照错误交易处理,如果是“改为串行”,将该交易添加到串行交易列表serial_txs中。(4)所有并发交易执行完毕后,逐个选择类型为“串行执行”的交易添加到串行交易列表serial_txs中,并串行执行serial_txs中的所有交易。(5)出块节点在执行完rely_txs的所有并行交易和serial_txs中的所有串行交易后,将这些列表分别存储于块中,并广播区块。同步节点验证交易的方法如下:(1)同步节点收到出块节点的新块后,首先并行执行所有并行交易列表,串行执行每个列表内部的交易,如果在执行过程中出现下列情况,则判断该区块中止执行。(a)如果交易的类型为“串行执行”。(b)如果交易所读取的数据单元信息集合read_state’和写入的数据单元索引集合write_index’,与用户发起的交易中的read_state或write_index不一致,且状态冲突处理方法字段为“改为串行”。(2)同步节点串行执行serial_txs中的所有交易,完成后,该区块即同步完成。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州溪塔科技有限公司,未经杭州溪塔科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710685258.3/,转载请声明来源钻瓜专利网。
- 上一篇:一种土木工程设备除锈装置
- 下一篇:电梯高精度导轨进料装置