[发明专利]一种基于区块链的并行交易执行方法有效
申请号: | 201710685258.3 | 申请日: | 2017-08-11 |
公开(公告)号: | CN107688999B | 公开(公告)日: | 2020-11-13 |
发明(设计)人: | 谢晗剑 | 申请(专利权)人: | 杭州溪塔科技有限公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06Q20/38 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 黄欢娣;邱启旺 |
地址: | 310012 浙江省杭州市西湖区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区块 并行 交易 执行 方法 | ||
1.一种基于区块链的并行交易执行方法,其特征在于,该方法中,首先对区块链中的交易所涉及的数据单元进行划分,每个数据单元产生唯一性索引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%为空,或tx的read_indexes和write_indexes的并集与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__indexes’和写入的数据单元索引集合write_indexes’,与用户发起的交易中的状态依赖信息State中声明的read_indexes或write_indexes不一致,且状态冲突处理方法字段为“改为串行”;
(2)同步节点串行执行serial_txs中的所有交易,完成后,该区块即同步完成。
2.根据权利要求1所述的方法,其特征在于,数据单元划分的方法,按照账户地址、UTXO输出或账户内部基本数据结构int、map或struct,进行划分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州溪塔科技有限公司,未经杭州溪塔科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710685258.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种土木工程设备除锈装置
- 下一篇:电梯高精度导轨进料装置