【技术实现步骤摘要】
区块链系统中的交易执行方法、存储服务和区块链节点
[0001]本说明书实施例属于区块链领域,尤其涉及一种区块链系统中的交易执行方法、存储服务和区块链节点。
技术介绍
[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
技术实现思路
[0003]本专利技术的目的在于提供一种区块链系统中的交易执行方法、存储服务和区块链节点。
[0004]第一方面,提供了一种区块链系统中的交易执行方法,所述区块链系统中包括区块链节点,所述区块链节点与包含多个存储节点的存储服务关联,所述方法应用于所述存储服务。所述方法包括:接收所述区块链节点在执行第一交易的过程中发起的第一读取请求,并根据所述第一读取请求返回响应数据,使得所述区块链节点根据所述响应数据获得所述第一交易的执行结果;接收所述区块链节点根据所述第一交易的执行结果发起的第一存储请求,所述第一存储请求中包括所述区块链节点中存储的参考变量的第一变量值;确定所述存储节点中存储的所述参考变量的第二变量值与所述第一变量值是否相同,如果不同则向所述区块链节点返回错误提示信息,使得所述区块链节点将所述区块链节点和所述多个存储节点中各自存储的所述参考变量的变量值更新为相同的第三变量值,将所述多个存储 ...
【技术保护点】
【技术特征摘要】
1.一种区块链系统中的交易执行方法,所述区块链系统中包括区块链节点,所述区块链节点与包含多个存储节点的存储服务关联,所述方法应用于所述存储服务,所述方法包括:接收所述区块链节点在执行第一交易的过程中发起的第一读取请求,并根据所述第一读取请求返回响应数据,使得所述区块链节点根据所述响应数据获得所述第一交易的执行结果;接收所述区块链节点根据所述第一交易的执行结果发起的第一存储请求,所述第一存储请求中包括所述区块链节点中存储的参考变量的第一变量值;确定所述存储节点中存储的所述参考变量的第二变量值与所述第一变量值是否相同,如果不同则向所述区块链节点返回错误提示信息,使得所述区块链节点将所述区块链节点和所述多个存储节点中各自存储的所述参考变量的变量值更新为相同的第三变量值,将所述多个存储节点中各自存储的分片数据更新至第一区块高度,并重新执行所述第一交易,其中所述区块链系统中对应所述第一区块高度的区块是所述第一交易所属区块的前一个区块,所述多个存储节点各自存储的分片数据被回滚至相同区块高度的情况下,所述多个存储节点中各自存储的所述参考变量的变量值发生变更。2.根据权利要求1所述的方法,所述存储服务还包括主节点;所述方法还包括:在所述多个存储节点中的第一存储节点发生重启之后,所述主节点获取所述多个存储节点各自存储的分片数据所分别对应的区块高度;所述主节点确定其获得的各个所述区块高度中最小的第二区块高度;所述主节点向所述多个存储节点发送包括所述第二区块高度的数据回滚请求;所述存储节点将其存储的分片数据回滚至所述第二区块高度,并将所述存储节点存储的所述参考变量的变量值变更为所述第二变量值。3.根据权利要求1所述的方法,在所述第一存储节点发生重启之前,所述区块链节点和所述多个存储节点中各自存储的所述参考变量的变量值均为所述第一变量值;其中,所述方法还包括:所述第一存储节点在发生重启之后,将所述第一存储节点中存储的所述参考变量的变量值由所述第一变量值变更为第四变量值;所述主节点获取所述多个存储节点各自存储的所述参考变量的变量值;所述主节点根据其获取的各个变量值确定所述第二变量值,所述数据回滚请求中还包括所述第二变量值。4.根据权利要求1
‑
3中任一项所述的方法,所述方法还包括:从所述区块链节点接收状态同步请求,所述状态同步请求中包括所述第三变量值;将所述多个存储节点中各自存储的所述参考变量的变量值更新为所述第三变量值。5.根据权利要求4所述的方法,所述方法还包括:向所述区块链节点发送发生回滚后的所述分片数据所对应第二区块高度;从所述区块链节点接收其根据所述第二区块高度发送的第二存储请求,所述第二存储请求中包括所述第三变量值;根据所述第二存储请求将所述多个存储节点各自存储的分片数据更新至第一区块高度。
6.一种区块链系统中的交易执行方法,所述区块链系统中包括区块链节点,所述区块链节点与包含多个存储节点的存储服务关联,所述方法应用于所述区块链节点,所述方法包括:在执行第一交易的过程中向所述存储服务发送第一读取请求,获得所述存储服务根据所述第一读取请求返回的响应数据,并根据所述响应数据获得所述第一交易的执行结果;根据所述第一交易的执行结果向所述存储服务发送第一存储请求,所述第一存储请求中包括所述区块链节点中存储的参考变量的第一变量值,使得所述存储服务在所述多个存储节点中各自存储的所述参考变量的变量值与所述第一变量值不同的情况下,返回错误提示信息;响应于所述错误提示信息,将所述区块链节点和所述多个存储节点中各自存储的所述参考变量的变量值更新为相同的第三变量值,将所述多个存储节点中各自存储的分片数据更新至第一区块高度,并重新执行所述第一交易,其中所述区块链系统中对应所述第一区块高度的区块是所述第一交易所属区块的前一个区块,所述多个存储节点各自存储的分片数据被回滚至相同区块高度的情况下,所述多个存储节点各自存储的所述参考变量的变量值发生变更。7.根据权利要求6所述的方法,所述将所述区块链节点和所述多个存储节点中各自存储的所述参考变量的变量值更新为相同的第三变量值,具体包括:将所述区块链节点中存储的所述参考变量的变量值更新为第三变量值;向所述存储服务发送状态同步请求,所述状态同步请求中包括所述第三变量值,使得所述多个存储节点将其各自存储的所述参考变量的变量值更新为所述第三变量值。8.根据权利要求6所述的方法,所述方法还包括:从所述存储服务获取所述第二区块高度;其中,所述将所述多个存储节点中各自存储的分片数据更新至第一区块高度,具体包括:根据所述第二区块高度向所述存储服务发送第二存储请求,所述第二存储请求中包括所述第三变量值,使得所述多个存储节点将其各自存储的分片数据更新至所述第一区块高度。9.一种区块链系统中的存储服务,所述区块链系统中包括区块链...
【专利技术属性】
技术研发人员:梁召远,张兆勇,林鹏,吴静,
申请(专利权)人:蚂蚁区块链科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。