CN112148794A - 智能合约的版本管理方法、装置和存储介质 - Google Patents

智能合约的版本管理方法、装置和存储介质 Download PDF

Info

Publication number
CN112148794A
CN112148794A CN202011009162.3A CN202011009162A CN112148794A CN 112148794 A CN112148794 A CN 112148794A CN 202011009162 A CN202011009162 A CN 202011009162A CN 112148794 A CN112148794 A CN 112148794A
Authority
CN
China
Prior art keywords
intelligent contract
version
transaction record
transaction
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011009162.3A
Other languages
English (en)
Inventor
赵光伟
黄海泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JD Digital Technology Holdings Co Ltd
Original Assignee
JD Digital Technology Holdings Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN202011009162.3A priority Critical patent/CN112148794A/zh
Publication of CN112148794A publication Critical patent/CN112148794A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种智能合约的版本管理方法、装置和存储介质,涉及计算机技术领域。智能合约的版本管理方法包括:在发布的智能合约为更新的智能合约的情况下,根据更新的智能合约的基本信息,从区块链中查找更新的智能合约的历史版本的交易记录,其中,同一智能合约的不同版本具备相同的基本信息;确定查找到的交易记录中的最新的版本信息;基于最新的版本信息,确定更新的智能合约的版本信息;生成包括更新的智能合约的版本信息和基本信息的交易记录,并将交易记录存储到区块链的账本数据库中。从而,可以自动化地实现版本管理过程,用户无需额外进行记录和维护,提高了版本管理的操作便捷性。

Description

智能合约的版本管理方法、装置和存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种智能合约的版本管理方法、装置和存储介质。
背景技术
在相关技术中,通常使用版本管理工具来对智能合约的版本进行管理。例如,Fabric、Corda等区块链内部具有自己的版本管理机制。Fabric的版本管理机制中,在智能合约更新时,用户需要通过安装InstallPackage和UpdateCC等模块,来更新智能合约。而对于Corda的版本管理机制,在维护智能合约时,每个版本都对应一个全新的类名。
发明内容
发明人经过分析后发现,相关技术的用户操作繁琐、维护困难。以Corda的版本管理机制为例,对于不同版本的同一智能合约,必须要生成不同的类名,导致用户需要额外维护类名和版本之间的对应关系。
本发明实施例所要解决的一个技术问题是:提高智能合约版本管理的操作便捷性。
根据本发明一些实施例的第一个方面,提供一种智能合约的版本管理方法,包括:在发布的智能合约为更新的智能合约的情况下,根据更新的智能合约的基本信息,从区块链中查找更新的智能合约的历史版本的交易记录,其中,同一智能合约的不同版本具备相同的基本信息;确定查找到的交易记录中的最新的版本信息;基于最新的版本信息,确定更新的智能合约的版本信息;生成包括更新的智能合约的版本信息和基本信息的交易记录,并将交易记录存储到区块链的账本数据库中。
在一些实施例中,版本信息为版本号;确定查找到的交易记录中的最大版本号;通过将最大版本号进行递增,确定更新的智能合约的版本号。
在一些实施例中,版本管理方法还包括:在发布的智能合约为全新的智能合约的情况下,将全新的智能合约的版本信息确定为预设的初始信息;生成包括全新的智能合约的版本信息和基本信息的交易记录,并将交易记录存储到区块链的账本数据库中。
在一些实施例中,版本管理方法还包括:获取智能合约的执行请求,其中,执行请求中包括智能合约的标识,不同版本的相同智能合约具备相同的标识;根据智能合约的标识对应的基本信息,从区块链的账本数据库中查找相应的交易记录;根据查找到的交易记录中的版本信息,确定智能合约的最新版本;执行最新版本的智能合约。
在一些实施例中,交易记录中的基本信息为智能合约的存储地址,执行最新版本的智能合约包括:根据查找到的交易记录中智能合约的存储地址,将最新版本的智能合约缓存到内存中;以及执行内存中的智能合约。
在一些实施例中,版本管理方法还包括:生成智能合约执行的交易记录,其中,智能合约执行的交易记录包括执行信息、被执行的智能合约的标识和版本信息。
在一些实施例中,版本管理方法还包括:获取交易重放请求,其中,交易重放请求包括交易标识;根据交易标识,从区块链的账本数据库中查找待重放的交易记录;根据待重放的交易记录中被执行的智能合约的标识和版本信息,获取相应版本的智能合约;基于待重放的交易记录中的执行信息执行相应版本的智能合约,以进行交易重放。
在一些实施例中,交易记录中还包括智能合约的发布时间,版本管理方法还包括:获取交易重放请求,其中,交易重放请求包括交易标识;根据交易标识,从区块链的账本数据库中查找待重放的交易记录;从待重放交易记录中确定交易涉及的智能合约的标识、以及交易时间;根据智能合约的标识对应的基本信息,从区块链的账本数据库中查找相应的交易记录;根据智能合约的标识对应的交易记录中智能合约的发布时间,确定待重放的交易记录中所使用的智能合约的版本信息;以及基于待重放的交易记录中的执行信息,执行待重放的交易记录中所使用的智能合约的版本,以进行交易重放。
在一些实施例中,交易记录还包括更新的智能合约对应的字节数组。
在一些实施例中,基本信息为更新的智能合约的存储地址。
在一些实施例中,将交易记录存储到区块链的账本数据库中包括:根据待打包的区块对应的一个或多个交易记录的哈希值,生成一个或多个叶子节点;根据叶子节点,构建默克尔树;根据默克尔树的根哈希值、上一个打包的区块对应的根哈希值生成区块的区块头,以及根据一个或多个交易记录生成区块的区块体;将区块存储到区块链的账本数据库中。
根据本发明一些实施例的第二个方面,提供一种智能合约的版本管理装置,包括:交易记录查找模块,被配置为在发布的智能合约为更新的智能合约的情况下,根据更新的智能合约的基本信息,从区块链中查找更新的智能合约的历史版本的交易记录,其中,同一智能合约的不同版本具备相同的基本信息;历史版本确定模块,被配置为确定查找到的交易记录中的最新的版本信息;版本信息确定模块,被配置为基于最新的版本信息,确定更新的智能合约的版本信息;交易记录生成模块,被配置为生成包括更新的智能合约的版本信息和基本信息的交易记录,并将交易记录存储到区块链的账本数据库中。
根据本发明一些实施例的第三个方面,提供一种智能合约的版本管理装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述任意一种智能合约的版本管理方法。
根据本发明一些实施例的第四个方面,提供一种智能合约的版本管理系统,包括:前述任意一种智能合约的版本管理装置;以及区块链系统。
根据本发明一些实施例的第五个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任意一种智能合约的版本管理方法。
上述发明中的一些实施例具有如下优点或有益效果:通过本发明实施例的方法,当智能合约发布更新后,可以通过查询交易记录确定现有的最新版本信息、并为更新的智能合约生成新的版本信息和交易记录。从而,可以自动化地实现版本管理过程,用户无需额外进行记录和维护,提高了版本管理的操作便捷性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明一些实施例的智能合约的版本管理方法的流程示意图。
图2示出了根据本发明一些实施例的智能合约执行方法的流程示意图。
图3示出了根据本发明一些实施例的交易重放方法的流程示意图。
图4示出了根据本发明另一些实施例的交易重放方法的流程示意图。
图5示出了根据本发明一些实施例的智能合约的版本管理装置的结构示意图。
图6示出了根据本发明一些实施例的智能合约的版本管理系统的结构示意图。
图7示出了根据本发明另一些实施例的智能合约的版本管理装置的结构示意图。
图8示出了根据本发明又一些实施例的智能合约的版本管理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
在本发明的实施例中,利用区块链的交易记录来进行智能合约的版本管理。区块链中的交易记录存储智能合约的基本信息和版本信息,基本信息例如为智能合约的名称、标识、存储地址等等,版本信息例如为版本号、发布时间等等。下面参考图1描述本发明智能合约的版本管理方法的实施例。
图1示出了根据本发明一些实施例的智能合约的版本管理方法的流程示意图。如图1所示,该实施例的智能合约的版本管理方法包括步骤S102~S108。
在步骤S102中,在发布的智能合约为更新的智能合约的情况下,根据更新的智能合约的基本信息,从区块链中查找更新的智能合约的历史版本的交易记录,其中,同一智能合约的不同版本具备相同的基本信息。
在一些实施例中,获取响应于智能合约发布而触发的版本管理请求,版本管理请求中包括智能合约的基本信息、以及发布的智能合约是更新的智能合约、还是全新的智能合约的标识。
在一些实施例中,版本管理请求中包括智能合约的基本信息。然后,根据基本信息在区块链中查找交易记录。如果能够查找到结果,说明发布的智能合约是更新的智能合约;如果无法查找到结果,说明发布的智能合约是全新的智能合约。
在一些实施例中,交易记录中存储<key,value,version>结构的信息,其中,key表示智能合约的基本信息,value表示智能合约对应的字节数组,version表示智能合约的版本信息。
在一些实施例中,交易记录中还包括智能合约的文件在进行存储时所使用的文件名,以便在不同版本的相同智能合约存储在同一地址时,对不同版本的智能合约进行区分。
在一些实施例中,在智能合约发布之前,还可以先验证智能合约是否符合编写规范,如果不合规,则不允许上传和发布。
在步骤S104中,确定查找到的交易记录中的最新的版本信息。
在一些实施例中,版本信息为版本号,从而通过确定查找到的交易记录中的最大版本号来确定查找到的交易记录中的最新的版本信息。
在一些实施例中,版本信息为发布时间,从而通过确定查找到的交易记录中的最新的时间确定查找到的交易记录中的最新的版本信息。
在步骤S106中,基于最新的版本信息,确定更新的智能合约的版本信息。
在一些实施例中,根据预设的更新策略,确定更新的智能合约的版本信息。例如,当版本信息为版本号时,通过对查找到的交易记录中的最大版本号进行递增,获得更新的智能合约的版本号。
在步骤S108中,生成包括更新的智能合约的版本信息和基本信息的交易记录,并将交易记录存储到区块链的账本数据库中。从而,当同样的智能合约再一次更新时,基于本次确定的版本信息生成下一个版本的版本信息。
在一些实施例中,交易记录还包括更新的智能合约对应的字节数组,以便于验证区块链中存储的信息与实际的智能合约是相对应的。
在一些实施例中,打包交易的方式如下:根据待打包的区块对应的一个或多个交易记录的哈希值,生成一个或多个叶子节点;根据叶子节点,构建默克尔树;根据默克尔树的根哈希值、上一个打包的区块对应的根哈希值生成区块的区块头,以及根据一个或多个交易记录生成区块的区块体;将区块存储到区块链的账本数据库中。从而,可以防止交易内容被篡改。
在一些实施例中,在发布的智能合约为全新的智能合约的情况下,将全新的智能合约的版本信息确定为预设的初始信息,生成包括全新的智能合约的版本信息和基本信息的交易记录,并将交易记录存储到区块链的账本数据库中。例如,将版本号设置为0或者1.0。
通过上述实施例的方法,当智能合约发布更新后,可以通过查询交易记录确定现有的最新版本信息、并为更新的智能合约生成新的版本信息和交易记录。从而,可以自动化地实现版本管理过程,用户无需额外进行记录和维护,提高了版本管理的操作便捷性。
在一些实施例中,当需要执行智能合约时,直接从区块链中查询当前的最新版本。下面参考图2描述本发明智能合约执行方法的实施例。
图2示出了根据本发明一些实施例的智能合约执行方法的流程示意图。如图2所示,该实施例的智能合约执行方法包括步骤S202~S208。
在步骤S202中,获取智能合约的执行请求,其中,执行请求中包括智能合约的标识,不同版本的相同智能合约具备相同的标识。即,请求方只需要指定使用的智能合约,无需指定所使用的版本。
在步骤S204中,根据智能合约的标识对应的基本信息,从区块链的账本数据库中查找相应的交易记录。
在步骤S206中,根据查找到的交易记录中的版本信息,确定智能合约的最新版本。例如,确定查找到的交易记录中的最大版本号。
在步骤S208中,执行最新版本的智能合约。
在一些实施例中,交易记录中的基本信息为智能合约的存储地址。在执行时,根据查找到的交易记录中智能合约的存储地址,将最新版本的智能合约缓存到内存中,并执行内存中的智能合约。
通过上述实施例的方法,智能合约执行的请求方可以无需关注当前最新版本的智能合约的版本信息、文件名称等细节,仅需要指定执行哪个智能合约。通过查找区块链中的交易记录中的版本信息,可以自动确定最新版本的智能合约并执行,提高了操作便捷性。
在一些实施例中,智能合约执行方法还包括步骤S210。
在步骤S210中,生成智能合约执行的交易记录。
在一些实施例中,智能合约执行的交易记录包括执行信息、被执行的智能合约的标识和版本信息。例如,当交易双方执行自动扣款的智能合约时,执行信息包括交易双方的标识、扣款金额、时间等信息。
通过在执行智能合约后,生成包括智能合约的版本信息的交易记录,可以更准确地记录执行情况,并且能够便于进行准确的交易重放。下面参考图3描述本发明交易重放方法的实施例。
图3示出了根据本发明一些实施例的交易重放方法的流程示意图。如图3所示,该实施例的交易重放方法包括步骤S302~S308。
在步骤S302中,获取交易重放请求,其中,交易重放请求包括交易标识。
在步骤S304中,根据交易标识,从区块链的账本数据库中查找待重放的交易记录。
在步骤S306中,根据待重放的交易记录中被执行的智能合约的标识和版本信息,获取相应版本的智能合约。
在步骤S308中,基于待重放的交易记录中的执行信息执行相应版本的智能合约,以进行交易重放。
通过上述实施例的方法,当交易双方对历史交易有争议、或者是区块链中的节点发生了掉电等问题导致区块高度落后时,可以通过上述实施例进行交易重放,使得重放的交易使用的是正确的智能合约版本,从而提高了交易重放的准确性和便捷性。
在一些实施例中,当智能合约执行的交易记录中不包括版本信息时,还可以通过智能合约的发布时间来确定交易时使用的智能合约版本。
图4示出了根据本发明另一些实施例的交易重放方法的流程示意图。如图4所示,该实施例的交易重放方法包括步骤S402~S412。
在步骤S402中,获取交易重放请求,其中,交易重放请求包括交易标识。
在步骤S404中,根据交易标识,从区块链的账本数据库中查找待重放的交易记录。
在步骤S406中,从待重放交易记录中确定交易涉及的智能合约的标识、以及交易时间。
在步骤S408中,根据智能合约的标识对应的基本信息,从区块链的账本数据库中查找相应的交易记录。用于存储智能合约的版本信息、基本信息的交易记录中还包括智能合约的发布时间。
在步骤S410中,根据智能合约的标识对应的交易记录中智能合约的发布时间,确定待重放的交易记录中所使用的智能合约的版本信息。
在一些实施例中,将发布时间在交易时间前的智能合约中的最新智能合约,确定为待重放的交易记录中所使用的智能合约。
在步骤S412中,基于待重放的交易记录中的执行信息,执行待重放的交易记录中所使用的智能合约的版本,以进行交易重放。
上述实施例的方法通过对比发布时间和交易时间,来确定历史交易所使用的智能合约的版本,使得重放的交易使用的是正确的智能合约版本,从而提高了交易重放的准确性和便捷性。
此外,由于用户交易以及智能合约的版本信息均在区块链中进行存储,因此通过一套区块链系统即可实现版本管理、交易管理等功能,不需要进行跨系统的交互。并且,不论是用户交易记录、还是智能合约的版本信息的交易记录,均可以通过一个查询接口实现,降低了版本管理机制的部署难度,适用性广。
下面参考图5描述本发明智能合约的版本管理装置的实施例。
图5示出了根据本发明一些实施例的智能合约的版本管理装置的结构示意图。如图5所示,该实施例的智能合约的版本管理装置500包括:交易记录查找模块5100,被配置为在发布的智能合约为更新的智能合约的情况下,根据更新的智能合约的基本信息,从区块链中查找更新的智能合约的历史版本的交易记录,其中,同一智能合约的不同版本具备相同的基本信息;历史版本确定模块5200,被配置为确定查找到的交易记录中的最新的版本信息;版本信息确定模块5300,被配置为基于最新的版本信息,确定更新的智能合约的版本信息;交易记录生成模块5400,被配置为生成包括更新的智能合约的版本信息和基本信息的交易记录,并将交易记录存储到区块链的账本数据库中。
在一些实施例中,版本信息为版本号;历史版本确定模块5200进一步被配置为确定查找到的交易记录中的最大版本号;版本信息确定模块5300进一步被配置为通过将最大版本号进行递增,确定更新的智能合约的版本号。
在一些实施例中,交易记录生成模块5400进一步被配置为在发布的智能合约为全新的智能合约的情况下,将全新的智能合约的版本信息确定为预设的初始信息;生成包括全新的智能合约的版本信息和基本信息的交易记录,并将交易记录存储到区块链的账本数据库中。
在一些实施例中,版本管理装置500还包括:执行模块5500,被配置为获取智能合约的执行请求,其中,执行请求中包括智能合约的标识,不同版本的相同智能合约具备相同的标识;根据智能合约的标识对应的基本信息,从区块链的账本数据库中查找相应的交易记录;根据查找到的交易记录中的版本信息,确定智能合约的最新版本;执行最新版本的智能合约。
在一些实施例中,交易记录中的基本信息为智能合约的存储地址,执行模块5500进一步被配置为根据查找到的交易记录中智能合约的存储地址,将最新版本的智能合约缓存到内存中;以及执行内存中的智能合约。
在一些实施例中,交易记录生成模块5400进一步被配置为生成智能合约执行的交易记录,其中,智能合约执行的交易记录包括执行信息、被执行的智能合约的标识和版本信息。
在一些实施例中,版本管理装置500还包括:重放模块5500,被配置为获取交易重放请求,其中,交易重放请求包括交易标识;根据交易标识,从区块链的账本数据库中查找待重放的交易记录;根据待重放的交易记录中被执行的智能合约的标识和版本信息,获取相应版本的智能合约;基于待重放的交易记录中的执行信息执行相应版本的智能合约,以进行交易重放。
在一些实施例中,交易记录中还包括智能合约的发布时间,重放模块5500进一步被配置为获取交易重放请求,其中,交易重放请求包括交易标识;根据交易标识,从区块链的账本数据库中查找待重放的交易记录;从待重放交易记录中确定交易涉及的智能合约的标识、以及交易时间;根据智能合约的标识对应的基本信息,从区块链的账本数据库中查找相应的交易记录;根据智能合约的标识对应的交易记录中智能合约的发布时间,确定待重放的交易记录中所使用的智能合约的版本信息;以及基于待重放的交易记录中的执行信息,执行待重放的交易记录中所使用的智能合约的版本,以进行交易重放。
在一些实施例中,交易记录还包括更新的智能合约对应的字节数组。
在一些实施例中,基本信息为更新的智能合约的存储地址。
在一些实施例中,交易记录生成模块5400进一步被配置为根据待打包的区块对应的一个或多个交易记录的哈希值,生成一个或多个叶子节点;根据叶子节点,构建默克尔树;根据默克尔树的根哈希值、上一个打包的区块对应的根哈希值生成区块的区块头,以及根据一个或多个交易记录生成区块的区块体;将区块存储到区块链的账本数据库中。
下面参考图6描述本发明智能合约的版本管理系统的实施例。
图6示出了根据本发明一些实施例的智能合约的版本管理系统的结构示意图。如图6所示,该实施例的智能合约的版本管理系统60包括:智能合约的版本管理装置610,其具体实施方式可以参考前述任意一种智能合约的版本管理装置500;以及区块链系统620。
图7示出了根据本发明另一些实施例的智能合约的版本管理装置的结构示意图。如图7所示,该实施例的智能合约的版本管理装置70包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一个实施例中的智能合约的版本管理方法。
其中,存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图8示出了根据本发明又一些实施例的智能合约的版本管理装置的结构示意图。如图8所示,该实施例的智能合约的版本管理装置80包括:存储器810以及处理器820,还可以包括输入输出接口830、网络接口840、存储接口850等。这些接口830,840,850以及存储器810和处理器820之间例如可以通过总线860连接。其中,输入输出接口830为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口840为各种联网设备提供连接接口。存储接口850为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种智能合约的版本管理方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种智能合约的版本管理方法,包括:
在发布的智能合约为更新的智能合约的情况下,根据所述更新的智能合约的基本信息,从区块链中查找所述更新的智能合约的历史版本的交易记录,其中,同一智能合约的不同版本具备相同的基本信息;
确定查找到的交易记录中的最新的版本信息;
基于所述最新的版本信息,确定所述更新的智能合约的版本信息;
生成包括所述更新的智能合约的版本信息和基本信息的交易记录,并将所述交易记录存储到区块链的账本数据库中。
2.根据权利要求1所述的版本管理方法,其中,所述版本信息为版本号;
确定查找到的交易记录中的最大版本号;
通过将所述最大版本号进行递增,确定所述更新的智能合约的版本号。
3.根据权利要求1所述的版本管理方法,还包括:
在发布的智能合约为全新的智能合约的情况下,将所述全新的智能合约的版本信息确定为预设的初始信息;
生成包括所述全新的智能合约的版本信息和基本信息的交易记录,并将所述交易记录存储到区块链的账本数据库中。
4.根据权利要求1所述的版本管理方法,还包括:
获取智能合约的执行请求,其中,所述执行请求中包括智能合约的标识,不同版本的相同智能合约具备相同的标识;
根据所述智能合约的标识对应的基本信息,从区块链的账本数据库中查找相应的交易记录;
根据查找到的交易记录中的版本信息,确定所述智能合约的最新版本;
执行所述最新版本的智能合约。
5.根据权利要求4所述的版本管理方法,其中,所述交易记录中的基本信息为智能合约的存储地址,所述执行所述最新版本的智能合约包括:
根据所述查找到的交易记录中智能合约的存储地址,将所述最新版本的智能合约缓存到内存中;以及
执行内存中的智能合约。
6.根据权利要求1或4所述的版本管理方法,还包括:
生成智能合约执行的交易记录,其中,所述智能合约执行的交易记录包括执行信息、被执行的智能合约的标识和版本信息。
7.根据权利要求6所述的版本管理方法,还包括:
获取交易重放请求,其中,所述交易重放请求包括交易标识;
根据所述交易标识,从区块链的账本数据库中查找待重放的交易记录;
根据所述待重放的交易记录中被执行的智能合约的标识和版本信息,获取相应版本的智能合约;
基于所述待重放的交易记录中的执行信息执行所述相应版本的智能合约,以进行交易重放。
8.根据权利要求1所述的版本管理方法,其中,所述交易记录中还包括智能合约的发布时间,所述版本管理方法还包括:
获取交易重放请求,其中,所述交易重放请求包括交易标识;
根据所述交易标识,从区块链的账本数据库中查找待重放的交易记录;
从所述待重放交易记录中确定交易涉及的智能合约的标识、以及交易时间;
根据所述智能合约的标识对应的基本信息,从区块链的账本数据库中查找相应的交易记录;
根据所述智能合约的标识对应的交易记录中智能合约的发布时间,确定待重放的交易记录中所使用的智能合约的版本信息;以及
基于所述待重放的交易记录中的执行信息,执行所述待重放的交易记录中所使用的智能合约的版本,以进行交易重放。
9.根据权利要求1所述的版本管理方法,其中,所述交易记录还包括所述更新的智能合约对应的字节数组。
10.根据权利要求1所述的版本管理方法,其中,所述基本信息为所述更新的智能合约的存储地址。
11.根据权利要求1所述的版本管理方法,其中,所述将所述交易记录存储到区块链的账本数据库中包括:
根据待打包的区块对应的一个或多个交易记录的哈希值,生成一个或多个叶子节点;
根据所述叶子节点,构建默克尔树;
根据所述默克尔树的根哈希值、上一个打包的区块对应的根哈希值生成所述区块的区块头,以及根据所述一个或多个交易记录生成所述区块的区块体;以及
将所述区块存储到区块链的账本数据库中。
12.一种智能合约的版本管理装置,包括:
交易记录查找模块,被配置为在发布的智能合约为更新的智能合约的情况下,根据所述更新的智能合约的基本信息,从区块链中查找所述更新的智能合约的历史版本的交易记录,其中,同一智能合约的不同版本具备相同的基本信息;
历史版本确定模块,被配置为确定查找到的交易记录中的最新的版本信息;
版本信息确定模块,被配置为基于所述最新的版本信息,确定所述更新的智能合约的版本信息;以及
交易记录生成模块,被配置为生成包括所述更新的智能合约的版本信息和基本信息的交易记录,并将所述交易记录存储到区块链的账本数据库中。
13.一种智能合约的版本管理装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1~11中任一项所述的智能合约的版本管理方法。
14.一种智能合约的版本管理系统,包括:
权利要求12或13所述的智能合约的版本管理装置;以及
区块链系统。
15.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1~11中任一项所述的智能合约的版本管理方法。
CN202011009162.3A 2020-09-23 2020-09-23 智能合约的版本管理方法、装置和存储介质 Pending CN112148794A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011009162.3A CN112148794A (zh) 2020-09-23 2020-09-23 智能合约的版本管理方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011009162.3A CN112148794A (zh) 2020-09-23 2020-09-23 智能合约的版本管理方法、装置和存储介质

Publications (1)

Publication Number Publication Date
CN112148794A true CN112148794A (zh) 2020-12-29

Family

ID=73897773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011009162.3A Pending CN112148794A (zh) 2020-09-23 2020-09-23 智能合约的版本管理方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN112148794A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113065871A (zh) * 2021-04-22 2021-07-02 中国工商银行股份有限公司 一种交易数据的处理方法及装置
CN113515504A (zh) * 2021-07-29 2021-10-19 北京百度网讯科技有限公司 数据管理方法、装置、电子设备以及存储介质
CN113760353A (zh) * 2021-08-27 2021-12-07 浙商银行股份有限公司 一种区块链智能合约版本控制方法及区块链系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170132269A1 (en) * 2015-11-11 2017-05-11 International Business Machines Corporation Scalable enterprise content management
US20190155699A1 (en) * 2017-11-21 2019-05-23 Rubrik, Inc. Database snapshot and backup management with recoverable chains
CN109978477A (zh) * 2017-12-27 2019-07-05 现代财富控股有限公司 基于区块链的智能合约版本控管系统及其方法
KR20190104793A (ko) * 2018-03-02 2019-09-11 주식회사 아이콘루프 스마트 계약 시스템에서 블록체인을 생성하고 무결성을 검증하는 방법
CN110544097A (zh) * 2019-09-06 2019-12-06 杭州复杂美科技有限公司 智能合约版本控制、调用和升级方法、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170132269A1 (en) * 2015-11-11 2017-05-11 International Business Machines Corporation Scalable enterprise content management
US20190155699A1 (en) * 2017-11-21 2019-05-23 Rubrik, Inc. Database snapshot and backup management with recoverable chains
CN109978477A (zh) * 2017-12-27 2019-07-05 现代财富控股有限公司 基于区块链的智能合约版本控管系统及其方法
KR20190104793A (ko) * 2018-03-02 2019-09-11 주식회사 아이콘루프 스마트 계약 시스템에서 블록체인을 생성하고 무결성을 검증하는 방법
CN110544097A (zh) * 2019-09-06 2019-12-06 杭州复杂美科技有限公司 智能合约版本控制、调用和升级方法、设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113065871A (zh) * 2021-04-22 2021-07-02 中国工商银行股份有限公司 一种交易数据的处理方法及装置
CN113515504A (zh) * 2021-07-29 2021-10-19 北京百度网讯科技有限公司 数据管理方法、装置、电子设备以及存储介质
CN113515504B (zh) * 2021-07-29 2024-01-09 北京百度网讯科技有限公司 数据管理方法、装置、电子设备以及存储介质
CN113760353A (zh) * 2021-08-27 2021-12-07 浙商银行股份有限公司 一种区块链智能合约版本控制方法及区块链系统
CN113760353B (zh) * 2021-08-27 2024-01-02 浙商银行股份有限公司 一种区块链智能合约版本控制方法及区块链系统

Similar Documents

Publication Publication Date Title
EP3678346B1 (en) Blockchain smart contract verification method and apparatus, and storage medium
CN112148794A (zh) 智能合约的版本管理方法、装置和存储介质
CN110188096B (zh) 一种数据记录的索引创建方法、装置及设备
CN110011785B (zh) 一种基于区块链对结构化作品进行存证的方法及装置
CN110162526B (zh) 一种块链式账本中数据记录的查询方法、装置及设备
CN111444196B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
US20210049715A1 (en) Blockchain-based data procesing method, apparatus, and electronic device
EP2784665A1 (en) Program and version control method
CN100578505C (zh) 文件系统管理装置
CN110096522B (zh) 一种支持关系型检索的区块链数据处理方法、装置及设备
US7020659B2 (en) System and method for managing bi-directional relationships between objects
CN105373541A (zh) 数据库的数据操作请求的处理方法和系统
WO2021057127A1 (zh) 一种基于多条业务属性的数据存储方法、装置及设备
CN111444192A (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
WO2014117337A1 (zh) 数据更新方法及装置和产品
US6898555B2 (en) Method for indicating the integrity of use-information of a computer program
KR102031945B1 (ko) 기기 정보 관리 시스템
CN111309677A (zh) 一种分布式文件系统的文件管理方法及装置
CN115858668A (zh) 分布式事务处理方法、装置、电子装置及存储介质
CN110059087A (zh) 一种块链式账本中的数据属性标识方法、装置及设备
CN113076086B (zh) 元数据管理系统和使用其对模型对象进行建模的方法
CN112286769B (zh) 监控方法、装置、计算机设备及存储介质
CN111444194B (zh) 一种块链式账本中索引的清除方法、装置及设备
CN113127490A (zh) 一种键名称生成方法、装置和计算机可读存储介质
JP2019215627A (ja) トランザクション管理装置、トランザクション管理方法及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Digital Technology Holding Co., Ltd