System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种基于跨合约调用的数据存储方法以及相关装置。
技术介绍
1、区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链还可以进行数据加密传输、节点识别和安全访问,是一种先进的分布式基础架构。目前,因为区块链的不可篡改性与真实性,对于区块链的应用也越来越多。或者在区块链上维护一个公共的账本,该公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。合约是编程在区块链上的汇编语言,即在区块链系统中,合约是一种区块链上的各个节点可以理解并执行的代码,可以执行任意逻辑并得到结果。智能合约可以理解为是可执行程序,而区块链可以理解为是提供程序运行环境的操作系统。
2、基于上述功能,区块链的主程序通过调用合约来实现各种功能。其中区块链主程序调用合约的过程类似于web服务器调用外部程序所采用的公共网关接口(commongateway interface,cgi)模型。具体的,在主程序调用合约的一次调用生命周期内,该合约有完整的数据流,从磁盘加载数据、执行数据计算、而后将计算结果写回磁盘。调用生命周期结束后,智能合约从内存中清空数据。
3、因此在合约调用执行过程中为了实例运行数据快速加载,十分有必要对该合约调用过程中读取或者写入的数据进行存储。
技术实现思路
1、本申请实施例提供了一种基于跨合约调用的数据存
2、有鉴于此,本申请一方面提供一种基于跨合约调用的数据存储方法,包括:执行第一合约的第一执行阶段生成第一版本文件;若执行到该第一合约的第二执行阶段,则跨合约调用第二合约,并执行该第二合约成功时生成第二版本文件,该第二执行阶段为跨合约调用阶段,该第二合约为该第一合约跨合约调用的合约;在执行该第一合约的第三执行阶段成功时,生成第三版本文件,该第三执行阶段为执行该第二合约成功之后的返回阶段;将该第一版本文件、该第二版本文件和该第三版本文件写入目标缓存区域,该目标缓存区域为独立于该第一合约和该第二合约的内部缓存之外的缓存区域。
3、本申请另一方面提供一种数据处理装置,包括:
4、处理模块,用于执行第一合约的第一执行阶段生成第一版本文件;
5、调用模块,用于若执行到该第一合约的第二执行阶段,则跨合约调用第二合约;
6、该处理模块,还用于执行该第二合约成功时生成第二版本文件,该第二执行阶段为跨合约调用阶段,该第二合约为该第一合约跨合约调用的合约;在执行该第一合约的第三执行阶段成功时,生成第三版本文件,该第三执行阶段为执行该第二合约成功之后的返回阶段;
7、存储模块,用于将该第一版本文件、该第二版本文件和该第三版本文件写入目标缓存区域,该目标缓存区域为独立于该第一合约和该第二合约的内部缓存之外的缓存区域。
8、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于若执行该第一合约的第三执行阶段失败,不生成该第三版本文件,并丢弃该第一版本文件和该第二版本文件。
9、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于在执行到该第二合约失败时,不生成该第二版本文件,并触发执行该第一合约的第三执行阶段。
10、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该第一执行阶段为执行该第一合约中跨合约调用语句之前的代码语句阶段,该处理模块,具体用于执行该第一合约中跨合约调用语句之前的代码语句得到第一数据;根据该第一数据生成该第一版本文件。
11、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该调用模块,具体用于若执行到该第一合约的该跨合约调用语句,则根据该跨合约调用语句生成该第二合约;
12、该处理模块,具体用于执行该第二合约的代码语句得到第二数据,并在执行到该第二合约的返回代码语句且该第二合约的返回代码语句指示该第二合约执行成功时,根据该第二数据生成该第二版本文件。
13、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,具体用于获取该第一版本文件的全部数据;根据该第一版本文件的全部数据和该第二数据生成该第二版本文件;
14、或者,
15、该处理模块,具体用于根据该第二数据生成该第二版本文件,该第二版本文件中仅包括该第二数据。
16、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,具体用于执行该第一合约在该跨合约调用语句之后的代码语句得到第三数据,并在执行到该第一合约的返回代码语句且该第一合约的返回代码语句指示该第一合约执行成功时,根据该第三数据生成该第三版本文件。
17、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,具体用于获取该第二版本文件的全部数据;根据该第二版本文件的全部数据和该第三数据生成该第三版本文件;
18、或者,
19、该处理模块,具体用于根据该第三数据生成该第三版本文件,该第三版本文件仅包括该第三数据。
20、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于创建状态映射表,该状态映射表用于维护交易合约执行过程中数据的键对应的版本号。
21、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,具体用于根据该第一版本文件中的数据更新该状态映射表,以使得该状态映射表中指示所第一版本文件中数据的键对应该第一版本文件;
22、该处理模块,具体用于根据该第二版本文件中的数据更新该状态映射表,以使得该状态映射表中还用于指示该第二版本文件中数据的键对应该第二版本文件;
23、该处理模块,具体用于根据该第三数据更新该状态映射表,以使得该状态映射表中还用于指示该第三版本文件中数据的键对应该第三版本文件。
24、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该第一版本文件中的数据与该第一合约的合约名进行关联存储,该第一合约的合约名为索引;
25、该第二版本文件中的数据与该第二合约的合约名进行关联存储,该第二合约的合约名为索引;
26、该第三版本文件中的数据与该第一合约的合约名进行关联存储,该第一合约的合约名为索引。
27、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该第一版本文件中的数据以键值存储的方式写入该第一版本文件;
28、该第二版本文件中的数据以键值存储的方式写入该第二版本文件;
29、该第三版本文件中的数据以键值存储的方式写入该第三版本文件。
30、本申请另一方面提供一种计算机设备,本文档来自技高网...
【技术保护点】
1.一种基于跨合约调用的数据存储方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在跨合约调用第二合约,并执行所述第二合约成功时生成第二版本文件之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,在跨合约调用第二合约之后,所述方法还包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一执行阶段为执行所述第一合约中跨合约调用语句之前的代码语句阶段,所述执行第一合约的第一执行阶段生成第一版本文件包括:
5.根据权利要求4所述的方法,其特征在于,所述跨合约调用第二合约,并执行所述第二合约成功时生成第二版本文件包括:
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二数据生成所述第二版本文件包括:
7.根据权利要求4所述的方法,其特征在于,在执行所述第一合约的第三执行阶段成功时,生成第三版本文件包括:
8.根据权利要求7所述的方法,其特征在于,所述根据所述第三数据生成所述第三版本文件包括:
9.根据权利要求1至3或5至8中任一项所述的方法
10.根据权利要求9所述的方法,其特征在于,在执行第一合约的第一执行阶段生成第一版本文件之后,所述方法还包括:
11.根据权利要求1至3、权利要求5至8以及权利要求10中任一项所述的方法,其特征在于,所述第一版本文件中的数据与所述第一合约的合约名进行关联存储,所述第一合约的合约名为索引;
12.根据权利要求1至3、权利要求5至8以及权利要求10中任一项所述的方法,其特征在于,所述第一版本文件中的数据以键值存储的方式写入所述第一版本文件;
13.一种数据处理装置,其特征在于,包括:
14.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至12中任一项所述的方法。
...【技术特征摘要】
1.一种基于跨合约调用的数据存储方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在跨合约调用第二合约,并执行所述第二合约成功时生成第二版本文件之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,在跨合约调用第二合约之后,所述方法还包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一执行阶段为执行所述第一合约中跨合约调用语句之前的代码语句阶段,所述执行第一合约的第一执行阶段生成第一版本文件包括:
5.根据权利要求4所述的方法,其特征在于,所述跨合约调用第二合约,并执行所述第二合约成功时生成第二版本文件包括:
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二数据生成所述第二版本文件包括:
7.根据权利要求4所述的方法,其特征在于,在执行所述第一合约的第三执行阶段成功时,生成第三版本文件包括:
8.根据权利要求7所述的方法,其特征在于...
【专利技术属性】
技术研发人员:卢光宏,韩天乐,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。