[发明专利]在区块链中执行交易的方法及装置有效
申请号: | 202010754103.2 | 申请日: | 2020-03-12 |
公开(公告)号: | CN111882435B | 公开(公告)日: | 2023-01-31 |
发明(设计)人: | 刘晓建 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06Q20/38;G06F21/64;G06F21/62;G06F12/14 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 陈霁;周良玉 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 区块 执行 交易 方法 装置 | ||
1.一种在区块链节点中投机执行交易的方法,所述方法包括:
读取本地记录的第一交易;
执行所述第一交易中的交易逻辑,在内存中记录执行结果所对应的尚未提交的变量操作请求;
将所述第一交易标记为已投机执行的交易,以指示该交易处于已产生执行结果,但该执行结果尚未提交的状态,从而使得当所述第一交易被共识之后,且所述第一交易的投机执行与基于共识的交易执行不存在冲突的情况下,直接提交所述变量操作请求所对应的变量操作。
2.根据权利要求1所述的方法,其中,读取本地记录的第一交易,包括:
从本地交易列表的第一位置读取所述第一交易,所述本地交易列表中记录有各个本地交易的内存地址;
根据所述第一交易的交易标识,确定所述第一交易在本地交易散列列表中的第一索引,在该第一索引对应的表项中,添加指向所述第一位置的指针。
3.根据权利要求2所述的方法,其中,
所述本地交易列表为已校验交易列表,其中记录有各个已校验的本地交易的内存地址;所述本地交易散列列表为已校验交易散列列表。
4.根据权利要求3所述的方法,其中,所述方法通过第一线程执行,所述已校验交易列表由第二线程生成,所述第二线程用于对本地交易进行校验。
5.根据权利要求4所述的方法,其中,所述对本地交易进行校验包括,校验本地交易的以下至少一项:交易签名,交易账号是否合法。
6.根据权利要求2所述的方法,其中,根据所述第一交易的交易标识,确定所述第一交易在本地交易散列列表中的第一索引,包括:
通过对所述第一交易的交易内容进行哈希运算,得到所述第一交易的交易标识;
通过对所述交易标识进行哈希运算,得到第一哈希值,作为所述第一索引的索引值。
7.根据权利要求1所述的方法,其中,在内存中记录执行结果所对应的变量操作请求,包括:
在内存中创建第一交易操作记录,其中包括读操作集合和写操作集合;
在所述第一交易操作记录中记录所述变量操作请求,其中包括,将所述变量操作请求中包括的变量读操作请求,记录在所述读操作集合中,将所述变量操作请求中包括的变量写操作请求,记录在所述写操作集合中。
8.根据权利要求7所述的方法,其中,所述第一交易操作记录还包括投机执行状态;
将所述第一交易标记为已投机执行的交易,包括:在所述第一交易操作记录中将所述投机执行状态标记为完成投机执行。
9.根据权利要求7所述的方法,其中,在所述第一交易操作记录中记录所述变量操作请求还包括:将所述变量读操作请求所基于的区块编号,记录在所述第一交易操作记录中。
10.一种在区块链中执行交易的方法,该方法通过区块链网络中任意节点执行,包括:
从已共识交易列表中获取当前有待执行的第二交易;
判断所述第二交易是否为已投机执行的交易,其中,已投机执行的交易在内存中记录有对应于执行结果的尚未提交的变量操作请求,且已投机执行指示该交易处于已产生执行结果,但该执行结果尚未提交的状态;
如果所述第二交易为已投机执行的交易,获取该第二交易对应的尚未提交的变量操作请求;
根据所述变量操作请求,判断该第二交易的投机执行与基于共识的交易执行是否存在冲突;
在不存在冲突的情况下,提交所述变量操作请求所对应的变量操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010754103.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种车架组合头管用扩径装置
- 下一篇:一种电力施工放线装置