CN112541756B - 区块链合约升级方法、装置、计算机设备及可读存储介质 - Google Patents
区块链合约升级方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN112541756B CN112541756B CN201910894885.7A CN201910894885A CN112541756B CN 112541756 B CN112541756 B CN 112541756B CN 201910894885 A CN201910894885 A CN 201910894885A CN 112541756 B CN112541756 B CN 112541756B
- Authority
- CN
- China
- Prior art keywords
- contract
- sub
- new
- main
- center
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种区块链合约升级方法、装置、计算机设备及可读存储介质,所述区块链合约包括中心合约、主合约及子合约,所述主合约包括所述子合约的生成方法实例,所述方法包括:配置所述中心合约和所述主合约,所述中心合约包括主合约调用地址;控制所述中心合约通过所述主合约调用地址调用对应主合约中所述子合约的生成方法实例生成所述子合约;当接收到合约升级请求后,配置新的主合约;控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约,本发明实现了通过中心合约更新主合约来升级子合约,在合约部署之后,无需全盘重新发布所有合约即可实现合约的升级,从而简单方便地去修改智能合约来进行升级。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种区块链合约升级方法、装置、计算机设备及可读存储介质。
背景技术
区块链合约或智能合约是一种存储在区块链节点的可执行的代码,该代码指定了合约的执行过程和处理逻辑,例如输入、输出、中间转换逻辑等等,亦能与其他合约进行互动、做决策、储存资料及传送数据等功能。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
由于区块链不可篡改的技术特点,合约在发布后不可升级,但在合约的使用过程中,不可避免的需要对合约进行优化和升级,当合约需要升级时,则需要全盘重新发布,全盘重新发布合约的问题在于,一方面随着区块链运行时间越长,数据量越来越大,全盘重新发布耗时耗力,浪费资源,另一方面,全盘重新发布合约本质上是一种单方面毁约的中心化的行为,破坏了区块链的去中心化特性,降低了用户对区块链网络的信任度,现有技术不能够支持在合约部署之后,在不全盘重新发布的前提下简单方便地去修改智能合约来进行升级。
发明内容
本发明的目的在于提供一种区块链合约升级方法、装置、计算机设备及可读存储介质,用于解决现有区块链合约,不能在合约部署之后,简单方便地去修改智能合约来进行升级。
根据本发明的一个方面,提供了一种区块链合约升级方法,所述区块链合约包括中心合约、主合约及子合约,所述主合约包括所述子合约的生成方法实例,所述方法包括:配置所述中心合约和所述主合约,所述中心合约包括主合约调用地址;控制所述中心合约通过所述主合约调用地址调用对应主合约中所述子合约的生成方法实例生成所述子合约;当接收到合约升级请求后,配置新的主合约;控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约。
优选的,所述方法还包括:将所述主合约和所述子合约分布式存储到区块链网络;以及将所述新的子合约分布式存储到所述区块链网络。
优选的,所述控制中心合约调用新的主合约中对应新的子合约生成方法实例生成所述新的子合约具体包括:获取新的子合约交易地址;发布升级交易指令将所述新的子合约交易地址发送至所述新的主合约;调用所述新的主合约中对应所述新的子合约生成方法实例生成所述新的子合约。
优选的,所述中心合约包括第一接口和第二接口,所述第一接口用于配置所述新的主合约交易地址,所述第二接口用于通过交易地址调用所述主合约,所述方法还包括:获取主合约交易地址;配置所述第二接口为所述主合约交易地址;当接收到对所述合约升级请求时通过所述第一接口获得新的主合约交易地址;更新所述第二接口为所述新的主合约交易地址。
优选的,所述方法还包括:将所述新的主合约分布式存储到所述区块链网络。
优选的,所述方法还包括:配置所述子合约交易地址;所述调用所述新的主合约中对应所述新的子合约生成方法实例生成所述新的子合约,具体包括:调用所述第一接口和第二接口获得所述新的主合约;发送所述新的子合约交易地址至所述新的主合约以生成所述新的子合约。
优选的,所述主合约为工厂控制器合约,所述子合约为包括多个非同质数据的数据合约。
为了实现上述目的,本发明还提供一种区块链合约升级装置,所述装置包括:所述装置包括:第一配置模块,用于配置所述中心合约和所述主合约,所述中心合约包括主合约调用地址;调用模块,用于控制所述中心合约通过所述主合约调用地址调用对应主合约中所述子合约的生成方法实例生成所述子合约;第二配置模块,用于当接收到合约升级请求后,配置新的主合约;升级模块,用于控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约。
为了实现上述目的,本发明还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的区块链合约升级方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的区块链合约升级方法的步骤。
本发明提供的区块链合约升级方法、装置、计算机设备及可读存储介质,通过配置中心合约和主合约,所述中心合约中包括主合约调用地址,所述主合约包括子合约生成方法实例,中心合约通过所述主合约调用地址调用对应主合约中的子合约生成方法实例生成子合约,在接收到合约升级请求后,控制中心合约调用新的主合约中对应子合约生成方法实例生成新的子合约来替换旧的主合约和子合约,实现了通过中心合约更新主合约来升级子合约,在合约部署之后,无需全盘重新发布所有合约即可实现合约的升级,从而简单方便地去修改智能合约来进行升级。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为实施例一提供的区块链合约升级方法的一种可选的通信网络系统架构图;
图2为实施例一提供的区块链合约升级方法的一种可选的流程示意图;
图3为实施例一提供的调用所述主合约中对应子合约生成方法实例生成新的子合约的一种可选的流程示意图;
图4为实施例一提供的区块链合约升级方法的一种可选的流程示意图;
图5为实施例一提供的区块链合约升级方法的一种可选的流程示意图;
图6为实施例二提供的区块链合约升级装置的一种可选的程序模块示意图;
图7为实施例三提供的系统的一种可选的硬件架构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含至少一个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
请参考图1,图1是本申请实施例提供的区块链合约升级方法的系统架构图。本申请实施例中,用户通过去中心化应用程序将创建的智能合约分布式存储到区块链网络中,区块链网络中的多个节点设备进行共识验证后将合约内容执行区块同步,并在满足条件的时候自动执行合约中的内容。
根据不同的应用场景以及用户需求,区块链分为公有链、私有链以及联盟链三大类。 本申请实施例的区块链网络为联盟链或私有链,其中公有区块链不受第三方机构控制,任何人都可读取链上的数据记录、参与交易以及进行区块同步等,各节点可自由加入以及退出网络,并自由进行相关操作。 私有区块链的写入权限由某个组织或者机构全权控制,数据读取权限受组织规定,联盟链上各个节点通常有与之相对应的实体机构或者组织,参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
去中心化应用程序运行在区块链网络的节点设备或与区块链网络的节点设备通信的客户端中,用户通过去中心化应用程序的前端界面执行创建智能合约,输入指令,分布式存储至区块链网络等操作。
其中,区块链网络的节点设备可以以各种形式来实施。任何具有网络通信功能和计算机处理能力的电子设备都可以作为节点设备,例如服务器、个人电脑,计算机工作站等。
参阅图2,其为一符合本发明一优选实施例的区块链合约升级方法的流程示意图,从图中可以看出,本实施例中所提供的区块链合约升级方法,主要包括以下步骤:
S201:配置中心合约和主合约,所述中心合约中包括主合约调用地址,所述主合约包括子合约生成方法实例。
所述区块链合约包括中心合约,主合约和子合约,中心合约中包括多个主合约调用地址,中心合约用于设置和调用主合约,主合约包括子合约生成方法实例以生成多个子合约。
本实施例中,中心合约,主合约和子合约协同实现更新,具体的,中心合约为管理商店合约,主合约为工厂合约,中心合约和主合约用于管理和发布子合约,主合约用于接收到中心合约的调用后实例化子合约。
中心合约中配置了主合约的地址,且可以对该地址进行变更。
S202:控制中心合约通过所述主合约调用地址调用对应主合约中的子合约生成方法实例生成子合约。
区块链合约的一个特点就是不可随意修改性,让它传统应用程序的区别就是一经发布于区块链上就不能直接在原有的合约上直接修改再重新发布。
但是一旦合约发布后发现错误需要修复,或者由于业务需要进行升级时,就需要执行修复操作和升级操作。
在本申请实施例中,在创建合约时,将智能合约分成主合约和多个子合约,子合约通过主合约中的业务逻辑代码,即包括子合约生成方法实例代码来生成,从而使得在升级时,根据指令选择的新的主合约生成子合约升级,而不需要将合约全部重新发布。
S203:将主合约和子合约分布式存储到区块链网络。
S204:当接收到合约升级请求后,配置新的主合约;
S205:控制中心合约调用新的主合约中对应子合约生成方法实例生成新的子合约。
S206:将所述新的子合约分布式存储到所述区块链网络。
具体的,通过如图1所示的区块同步方法来将主合约,子合约以及升级后的子合约分布式存储到区块链网络。区块同步是提供区块链数据分布式存储的重要功能,通过区块同步将数据分布式存储到区块链网络,形成了分布式的去中心化存储,从而增强信任机制和安全性。
例如,通过编写主合约,内容为生成子合约实例,通过调用主合约中的方法来生成子合约。当子合约需要升级时,合约将基于新的主合约生成以完成升级。
请参考图3,本实施例中所提供的区块链合约升级方法,步骤S203:当接收到对所述子合约升级请求时调用所述主合约中对应子合约生成方法实例生成新的子合约包括:
S301:获取新的子合约交易地址。
其中,交易地址可以通过区块链的地址生成算法来生成,例如,将私钥通过加密和特定的编码方式以得到公开的交易地址。例如将一个特定字节长度的随机数通过非对称加密和哈希计算得到哈希公钥数值,最后通过编码得到特点格式的交易地址。
S302:发布升级交易指令将所述新的子合约交易地址发送至新的主合约。
S303:调用所述新的主合约中对应子合约生成方法实例生成所述新的子合约。
完成升级后子合约工作之后,需要发布一个交易指令来完成升级,交易中的过程是,先部署子合约,再将其地址更新到新的主合约中,使得新的子合约交易地址映射到新的主合约上,通过调用新的主合约生成新的子合约从而使子合约升级完成。
如果需要回退版本,只需要发布一个普通交易,将子合约的映射到旧版本的主合约交易地址上即可。
例如,通过编写主合约,内容为生成子合约实例,将子合约交易地址输入到主合约中,通过调用主合约中的方法来生成子合约。当子合约需要升级时,将新的子合约交易地址输入新的主合约,此后调用主合约中方法时,合约将基于新的主合约生成以完成升级。
通过将新旧合约全部存储在区块链中,通过修改在不同合约调用时的映射关系,可以使合约在不同版本间切换,从而实现升级或回退版本。
请参考图4,所述中心合约包括第一接口和第二接口,所述第一接口用于配置新的主合约交易地址,所述第二接口用于通过交易地址调用所述主合约,所述方法还包括步骤:
S401:获取主合约交易地址。
其中,交易地址可以通过区块链的地址生成算法来生成,例如,将私钥通过加密和特定的编码方式以得到公开的交易地址。例如将一个特定字节长度的随机数通过非对称加密和哈希计算得到哈希公钥数值,最后通过编码得到特点格式的交易地址。
S402:配置所述第二接口为对应的主合约交易地址。
S403:当接收到所述合约升级请求时通过所述第一接口生成新的主合约交易地址。
S404:更新所述第二接口的主合约交易地址为新的主合约交易地址。
主合约用于生成子合约,主合约拥有自己的地址和生成子合约的接口供管理系统调用。在本实施例中,当主合约需要修改和升级时,中心合约中提供了“设置智能合约生成模块合约交易地址”的第一接口对应的方法。
当需要更新主合约时,只需要调用第一接口对主合约交易地址进行更新,将主合约的调用地址映射到新的主合约交易地址,通过第二接口调用新的主合约,更新成功后即可使用新的主合约来生成新的子合约。
S405:将所述新的主合约分布式存储到所述区块链网络。
当需要更换主合约时,中心合约中将重新配置主合约,新旧合约中的方法接口不变,故不需要对新旧合约的交替作调整。
每个主合约有独一无二的区块链网络地址,当发布新合约时,新合约将带有主合约的地址,通过查看该地址,可以分辨新旧合约。
请参考图5,所述方法还包括:
S501:配置子合约交易地址。
步骤S303:调用所述新的主合约中对应子合约生成方法实例生成所述新的子合约具体包括:
S502:调用所述第一接口和第二接口获得最新的主合约。
S503:发送所述新的子合约交易地址至所述新的主合约以生成所述新的子合约。
中心合约中提供了“设置智能合约生成模块合约交易地址”的第一接口和“调用智能合约生成模块合约”的第二接口的两个方法。
当需要更新时只需要调用第一接口对主合约交易地址进行更新,更新成功后再次调用第二接口得到新的主合约,通过新的主合约间调用生成子合约,即可使用新的主合约来生成新的子合约。
在本实施例中,所述主合约具体为工厂控制器合约,所述子合约为包括多个非同质数据的数据合约。
从一般的业务视角来看,智能合约的业务逻辑主要包括如何定义数据的结构和读写方式和如何处理数据并对外提供服务接口。
通过将业务控制逻辑和数据从合约代码层面就做好分离形成主合约和子合约,不仅实现了升级修复,还能在复杂业务逻辑场景中提高效率。
具体的,通过工厂模式将合约分离成工厂控制器合约和数据合约,工厂模式是一种创建对象类的设计模式,可以通过工厂模式创建多个对象类,也可以通过工厂模式创建其他工厂,在本实施例中,通过工厂模式创建主合约和多个子合约,即控制器合约和数据合约,控制器合约通过访问数据合约获得数据,并对数据做逻辑处理,然后写回数据合约,控制器合约可以不需要存储数据,通过外部的输入来决定对数据合约的访问,也可以存储某个固定的数据合约的地址。数据合约专注于数据结构定义与所存储数据的读写裸接口。
本发明提供的区块链合约升级方法,通过配置中心合约和主合约,所述中心合约中包括主合约调用地址,所述主合约包括子合约生成方法实例,中心合约通过所述主合约调用地址调用对应主合约中的子合约生成方法实例生成子合约,在接收到合约升级请求后,控制中心合约调用新的主合约中对应子合约生成方法实例生成新的子合约来替换旧的主合约和子合约,实现了通过中心合约更新主合约来升级子合约,在合约部署之后,无需全盘重新发布所有合约即可实现合约的升级,从而简单方便地去修改智能合约来进行升级。而且还能通过修改接口中的调用地址在不同版本的合约之间进行切换,以及提高了区块链在复杂业务逻辑场景中提高效率。
实施例二
基于上述实施例一种提供的区块链合约升级方法,本实施例中提供一种区块链合约升级装置,具体地,图6示出了该区块链合约升级装置的可选的结构框图,该区块链合约升级装置被分割成至少一个程序模块,一个或者多个程序模块被存储于存储介质中,并由至少一个处理器所执行,以完成本发明。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述区块链合约升级装置在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图6所示,应用于区块链合约升级装置具体包括以下组成部分:
第一配置模块61,用于配置中心合约和主合约,所述中心合约中包括主合约调用地址;
调用模块62,用于控制中心合约通过所述主合约调用地址调用对应主合约中的子合约生成方法实例生成子合约;
第二配置模块63,当接收到合约升级请求后,配置新的主合约;
升级模块64,用于控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约。
实施例三
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的直播服务器,或者多个直播服务器所组成的直播服务器集群)等。如图7所示,本实施例的计算机设备30至少一个包括但不限于:可通过系统总线相互通信连接的存储器301、处理器302。需要指出的是,图7仅示出了具有组件301-302的计算机设备30,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器301(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器301可以是计算机设备30的内部存储单元,例如该计算机设备30的硬盘或内存。在另一些实施例中,存储器301也可以是计算机设备30的外部存储设备,例如该计算机设备30上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,存储器301还可以既包括计算机设备30的内部存储单元也包括其外部存储设备。在本实施例中,存储器301通常用于存储安装于计算机设备30的操作系统和各类应用软件,例如实施例二的区块链合约升级装置的程序代码等。此外,存储器301还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器302在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器302通常用于控制计算机设备30的总体操作。
具体的,在本实施例中,处理器302用于执行处理器302中存储的直播内容文件的播放方法的程序,所述直播内容文件的播放方法的程序被执行时实现如下步骤:
配置所述中心合约和所述主合约,所述中心合约包括主合约调用地址;
控制所述中心合约通过所述主合约调用地址调用对应主合约中所述子合约的生成方法实例生成所述子合约;
当接收到合约升级请求后,配置新的主合约;
控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、直播服务器、App应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
配置所述中心合约和所述主合约,所述中心合约包括主合约调用地址;
控制所述中心合约通过所述主合约调用地址调用对应主合约中所述子合约的生成方法实例生成所述子合约;
当接收到合约升级请求后,配置新的主合约;
控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约。
上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。
本发明提供的区块链合约升级方法、装置、计算机设备及可读存储介质,通过配置中心合约和主合约,所述中心合约中包括主合约调用地址,所述主合约包括子合约生成方法实例,中心合约通过所述主合约调用地址调用对应主合约中的子合约生成方法实例生成子合约,在接收到合约升级请求后,控制中心合约调用新的主合约中对应子合约生成方法实例生成新的子合约来替换旧的主合约和子合约,实现了通过中心合约更新主合约来升级子合约,在合约部署之后,无需全盘重新发布所有合约即可实现合约的升级,从而简单方便地去修改智能合约来进行升级。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种区块链合约升级方法,其特征在于,所述区块链合约包括中心合约、主合约及子合约,所述主合约包括所述子合约的生成方法实例,所述方法包括:
配置所述中心合约和所述主合约,所述中心合约包括主合约调用地址;
控制所述中心合约通过所述主合约调用地址调用对应主合约中所述子合约的生成方法实例生成所述子合约;
当接收到合约升级请求后,配置新的主合约;
控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约;
其中,所述中心合约包括第一接口和第二接口,所述第一接口用于配置新的主合约交易地址,所述第二接口用于通过交易地址调用所述主合约;
所述方法还包括:配置子合约交易地址;
所述控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约,包括:
调用所述第一接口和第二接口获得所述新的主合约;
发送新的子合约交易地址至所述新的主合约以生成所述新的子合约。
2.根据权利要求1所述的区块链合约升级方法,其特征在于,所述方法还包括:
将所述主合约和所述子合约分布式存储到区块链网络;以及
将所述新的子合约分布式存储到所述区块链网络。
3.根据权利要求2所述的区块链合约升级方法,其特征在于,所述控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约具体包括:
获取新的子合约交易地址;
发布升级交易指令将所述新的子合约交易地址发送至所述新的主合约;
调用所述新的主合约中对应所述新的子合约生成方法实例生成所述新的子合约。
4.根据权利要求3所述的区块链合约升级方法,其特征在于,所述方法还包括:
获取主合约交易地址;
配置所述第二接口为所述主合约交易地址;
当接收到对所述合约升级请求时通过所述第一接口获得新的主合约交易地址;
更新所述第二接口为所述新的主合约交易地址。
5.根据权利要求4所述的区块链合约升级方法,其特征在于,所述方法还包括:
将所述新的主合约分布式存储到所述区块链网络。
6.根据权利要求5所述的区块链合约升级方法,其特征在于,所述主合约为工厂控制器合约,所述子合约为包括多个非同质数据的数据合约。
7.一种区块链合约升级装置,其特征在于,所述区块链合约包括中心合约、主合约及子合约,所述主合约包括所述子合约的生成方法实例,所述装置包括:
第一配置模块,用于配置所述中心合约和所述主合约,所述中心合约包括主合约调用地址;
调用模块,用于控制所述中心合约通过所述主合约调用地址调用对应主合约中所述子合约的生成方法实例生成所述子合约;
第二配置模块,用于当接收到合约升级请求后,配置新的主合约;
升级模块,用于控制所述中心合约调用所述新的主合约中对应新的子合约生成方法实例生成所述新的子合约;
其中,所述中心合约包括第一接口和第二接口,所述第一接口用于配置新的主合约交易地址,所述第二接口用于通过交易地址调用所述主合约;
所述升级模块,具体用于配置子合约交易地址;并调用所述第一接口和第二接口获得所述新的主合约;发送新的子合约交易地址至所述新的主合约以生成所述新的子合约。
8.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项的所述区块链合约升级方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项的所述区块链合约升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894885.7A CN112541756B (zh) | 2019-09-20 | 2019-09-20 | 区块链合约升级方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894885.7A CN112541756B (zh) | 2019-09-20 | 2019-09-20 | 区块链合约升级方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112541756A CN112541756A (zh) | 2021-03-23 |
CN112541756B true CN112541756B (zh) | 2023-07-04 |
Family
ID=75012539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910894885.7A Active CN112541756B (zh) | 2019-09-20 | 2019-09-20 | 区块链合约升级方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112541756B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919419A (zh) * | 2017-02-03 | 2017-07-04 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 区块链上的智能合约程序的更新方法及装置 |
CN108510389B (zh) * | 2018-03-30 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、设备及可读存储介质 |
CN109658238B (zh) * | 2018-10-26 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置 |
CN109445820A (zh) * | 2018-10-29 | 2019-03-08 | 深圳市元征科技股份有限公司 | 一种智能合约升级方法、系统、设备及计算机存储介质 |
CN109559229A (zh) * | 2018-11-30 | 2019-04-02 | 众安信息技术服务有限公司 | 基于区块链的更新智能合约组的方法 |
CN110168582A (zh) * | 2018-11-30 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 使用去中心化决策更新区块链智能合约 |
CN109977638A (zh) * | 2019-02-22 | 2019-07-05 | 亦非云互联网技术(上海)有限公司 | 基于以太坊的智能合约更新方法及系统、存储介质及终端 |
CN110018840B (zh) * | 2019-04-11 | 2021-12-03 | 深圳市迅雷网络技术有限公司 | 一种智能合约升级方法、装置、区块链节点设备及介质 |
CN110119430B (zh) * | 2019-04-29 | 2023-06-30 | 深圳市元征科技股份有限公司 | 一种智能合约管理方法、服务器及计算机可读存储介质 |
-
2019
- 2019-09-20 CN CN201910894885.7A patent/CN112541756B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112541756A (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108305072B (zh) | 部署区块链网络的方法、设备和计算机存储介质 | |
CN107147704B (zh) | 一种面向区块链的通用服务中间件系统 | |
CN111736956B (zh) | 一种容器服务部署方法、装置、设备及可读存储介质 | |
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
CN110008665B (zh) | 一种区块链的权限控制方法及装置 | |
KR102288521B1 (ko) | 블록체인 기반의 데이터 저장 장치 및 방법 | |
CN112217656B (zh) | Sd-wan系统中的网络设备的配置信息同步方法和装置 | |
CN111596932B (zh) | 一种镜像文件生成方法、装置和计算机可读存储介质 | |
US9507748B2 (en) | Platform runtime abstraction | |
CN110062041B (zh) | 一种基于区块链的iot设备变更的方法及装置 | |
CN105164660A (zh) | 基于云的服务设计承继 | |
CN110955448A (zh) | 智能合约分离方法、合约处理方法、装置、设备及介质 | |
CN109885612B (zh) | 区块链智能合约的同步生效方法及装置 | |
JP2022101479A (ja) | イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体 | |
CN105765533A (zh) | 用于固件虚拟化的方法和装置 | |
CN110738038A (zh) | 合同文本的生成方法、装置、设备及计算机可读存储介质 | |
CN113190287A (zh) | 外部设备对接方法、装置、计算机设备及可读存储介质 | |
CN113254156A (zh) | 一种容器组部署方法、装置、电子设备及存储介质 | |
CN111813418A (zh) | 分布式链路跟踪方法、装置、计算机设备及存储介质 | |
CN111813836A (zh) | 一种提高Ethereum区块链系统扩展性的方法 | |
CN106686031B (zh) | 将应用升级为SaaS模式的方法及装置 | |
CN112541756B (zh) | 区块链合约升级方法、装置、计算机设备及可读存储介质 | |
CN108595924B (zh) | 一种业务权限管理方法、装置、计算机设备及存储介质 | |
CN111447080B (zh) | 私有网络去中心化控制方法、装置及计算机可读存储介质 | |
CN104753902A (zh) | 一种业务系统验证方法及验证装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |