CN117811920A - 一种基于区块链的智能合约管理方法、系统、终端及介质 - Google Patents
一种基于区块链的智能合约管理方法、系统、终端及介质 Download PDFInfo
- Publication number
- CN117811920A CN117811920A CN202410227534.1A CN202410227534A CN117811920A CN 117811920 A CN117811920 A CN 117811920A CN 202410227534 A CN202410227534 A CN 202410227534A CN 117811920 A CN117811920 A CN 117811920A
- Authority
- CN
- China
- Prior art keywords
- dapp
- contract
- information
- instance
- intelligent
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 14
- 238000012795 verification Methods 0.000 claims description 18
- 230000000875 corresponding effect Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- LPLLVINFLBSFRP-UHFFFAOYSA-N 2-methylamino-1-phenylpropan-1-one Chemical compound CNC(C)C(=O)C1=CC=CC=C1 LPLLVINFLBSFRP-UHFFFAOYSA-N 0.000 description 1
- 240000003023 Cosmos bipinnatus Species 0.000 description 1
- 235000005956 Cosmos caudatus Nutrition 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0889—Techniques to speed-up the configuration process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的智能合约管理方法、系统、终端及介质,方法包括:获取DApp域名参数,并基于DApp域名参数创建DApp实例,并确定与DApp实例唯一对应的DApp ID信息;获取智能合约的合约ID信息,将合约ID信息与DApp ID信息进行绑定关联,以将智能合约部署至DApp实例,并得到DApp实例的合约列表信息;基于合约列表信息对已部署的智能合约进行批量管理。本发明通过构建DApp实例来对智能合约进行批量管理,提高智能合约管理的便利性,且本发明中智能合约被部署到同一个DApp实例下,并且DApp实例具有唯一的DApp ID信息,因此为区块链应用及其智能合约提供更高的可信度。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的智能合约管理方法、系统、终端及介质。
背景技术
随着区块链技术的发展,区块链应用市场也日趋成熟。区块链应用市场的业务需求量更是呈飞速发展的态势,各区块链系统上涌现了大量的智能合约应用。
然而,随着区块链应用的发展壮大,一个应用涉及到的智能合约数量日益增多,但是目前缺乏一个标准化的链上实例可以用于管理与区块链应用有关联性的智能合约,目前常见的约定俗成的智能合约管理方法只能使用代码指向和合约命名约定来实现。对于应用管理者来说每次修改DApp相关信息,都需要逐个更新智能合约,为智能合约管理造成了很大的不便利性。此外,现有的区块链系统中,没有区块链应用和智能合约绑定的依据,从而不利于区块链应用和智能合约的防伪。
因此,现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于区块链的智能合约管理方法、系统、终端及介质,旨在解决现有技术中缺乏一个标准化的链上实例可以用于管理与区块链应用有关联性的智能合约,以及现有的区块链系统中,没有区块链应用和智能合约绑定的依据,从而不利于区块链应用和智能合约的防伪等一些问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
第一方面,本发明提供一种基于区块链的智能合约管理方法,其中,所述方法包括:
获取DApp域名参数,并基于所述DApp域名参数创建DApp实例,并确定与所述DApp实例唯一对应的DApp ID信息;
获取智能合约的合约ID信息,将所述合约ID信息与所述DApp ID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,并得到所述DApp实例所对应的合约列表信息,所述合约列表信息用于反映所述DApp实例名下部署的所有智能合约;
基于所述合约列表信息,对已部署的所述智能合约进行批量管理。
在一种实现方式中,所述基于所述DApp域名参数创建DApp实例,确定与所述DApp实例唯一对应的DApp ID信息,包括:
基于所述DApp域名参数,生成创建所述DApp实例的交易;
根据创建所述DApp实例的交易,对所述DApp域名参数的唯一性进行校验,得到第一校验结果;
若所述第一校验结果为所述DApp域名参数唯一,则创建所述DApp实例成功,并为成功创建的所述DApp实例分配唯一的所述DApp ID信息。
在一种实现方式中,所述基于所述DApp域名参数创建DApp实例,确定与所述DApp实例唯一对应的DApp ID信息,还包括:
设置所述DApp实例的DApp信息,所述DApp信息包括:基础信息、第一关联信息以及第二关联信息;
其中,所述基础信息包括:所述DApp实例对应的DApp域名参数、DApp ID信息以及链上地址;
所述第一关联信息为所述DApp实例的元数据信息;
所述第二关联信息为所述DApp实例所对应的合约列表信息。
在一种实现方式中,所述获取智能合约的合约ID信息,将所述合约ID信息与所述DApp ID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,包括:
接收所述智能合约的部署交易,并基于所述部署交易,获取所述智能合约的合约ID信息;
获取所述DApp实例的链上地址,并基于所述DApp域名参数与所述合约ID信息,对所述链上地址的部署权限进行校验,得到第二校验结果;
若所述第二校验结果为所述链上地址的部署权限校验通过,则将所述合约ID信息与所述DApp ID信息进行绑定,以将所述智能合约部署至所述DApp实例。
在一种实现方式中,所述基于所述合约列表信息,对已部署的所述智能合约进行批量管理,包括:
接收更新交易,确定所述更新交易中的指定DApp参数,并根据所述指定DApp参数,从所述合约列表信息中确定指定合约以及与所述指定合约对应的指定合约ID信息;
获取所述DApp实例的链上地址,并基于所述指定DApp参数与所述指定合约ID信息,对所述链上地址的更新权限进行校验,得到第三校验结果;
若所述第三校验结果为所述链上地址的更新权限校验通过,则对所述指定合约的合约信息进行更新。
在一种实现方式中,所述方法还包括:
获取目标DApp域名参数,确定与所述目标DApp域名参数对应的目标DApp ID信息;
获取所述目标DApp ID信息所对应的目标合约列表,得到所述目标合约列表中的智能合约。
在一种实现方式中,所述方法还包括:
获取用户指定的目标合约的合约ID信息,并获取所述目标合约的合约ID信息所对应的目标DApp实例;
根据所述目标DApp实例,确定目标DApp信息;
将所述目标DApp信息返回给用户。
第二方面,本发明实施例还提供一种基于区块链的智能合约管理系统,其中,所述系统包括:
DApp实例创建模块,用于获取DApp域名参数,并基于所述DApp域名参数创建DApp实例,并确定与所述DApp实例唯一对应的DApp ID信息;
智能合约部署模块,用于获取智能合约的合约ID信息,将所述合约ID信息与所述DApp ID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,并得到所述DApp实例所对应的合约列表信息,所述合约列表信息用于反映所述DApp实例名下部署的所有智能合约;
合约批量管理模块,用于基于所述合约列表信息,对已部署的所述智能合约进行批量管理。
第三方面,本发明实施例还提供一种终端,其中,所述终端包括存储器、处理器及存储在存储器中并可在处理器上运行的基于区块链的智能合约管理程序,处理器执行基于区块链的智能合约管理程序时,实现上述方案中任一项的基于区块链的智能合约管理方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质上存储有基于区块链的智能合约管理程序,所述基于区块链的智能合约管理程序被处理器执行时,实现上述方案中任一项所述的基于区块链的智能合约管理方法的步骤。
有益效果:与现有技术相比,本发明提供了一种基于区块链的智能合约管理方法,本发明首先获取DApp域名参数,并基于所述DApp域名参数创建DApp实例,并确定与所述DApp实例唯一对应的DApp ID信息。接着,本发明获取智能合约的合约ID信息,将所述合约ID信息与所述DApp ID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,并得到所述DApp实例所对应的合约列表信息,所述合约列表信息用于反映所述DApp实例名下部署的所有智能合约。最后,基于所述合约列表信息对已部署的所述智能合约进行批量管理。可见,本发明通过构建DApp实例来对智能合约进行批量管理,提高智能合约管理的便利性,且本发明中与区块链应用关联的智能合约被部署到同一个DApp实例下,并且DApp实例具有唯一的DApp ID信息,因此为区块链应用及其智能合约提供更高的可信度。
附图说明
图1为本发明实施例提供的基于区块链的智能合约管理方法的较佳实施例的流程图。
图2为本发明实施例提供的基于区块链的智能合约管理方法的整体框架示意图。
图3为本发明实施例提供的基于区块链的智能合约管理方法中创建DApp实例的时序图。
图4为传统区块链用户与采用本实施例的区块链用户的智能合约的防伪安全性对比图。
图5为本发明实施例提供的基于区块链的智能合约管理方法中DApp实例的存储结构图。
图6为本发明实施例提供的基于区块链的智能合约管理方法中智能合约部署的时序图。
图7为本发明实施例提供的基于区块链的智能合约管理方法中查询智能合约的时序图。
图8为本发明实施例提供的基于区块链的智能合约管理方法中更新智能合约的时序图。
图9为传统区块链开发者与采用本实施例的区块链开发者对修改智能合约访问权限管理操作的对比图。
图10为本发明实施例提供的基于区块链的智能合约管理方法中查询智能合约的时序图。
图11为本发明实施例提供的基于区块链的智能合约管理系统的示意图。
图12为本发明实施例提供的终端的原理框图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
常见的约定俗成的智能合约管理方法只能使用代码指向和合约命名约定来实现。例如:ETH主网链上的Uniswap区块链应用,因其独特的业务形态,承载了大体量的用户和业务量,并且已经更新迭代到了4.0版本。在此过程中产生了大量的智能合约,比如通过EtherScan工具可以查询获得ETH主网链上部署运行的Uniswap合约,其命名规则:uniswap_v1-SwapRoutrt01,uniswap_v2-SwapRoutrt02,uniswap_v3-SwapRoutrt02,uniswap_v4-SwapRoutrt03等。依靠合约名称前缀绑定对应的DApp(去中心化应用)信息,且在ETH区块链系统中,合约命名无唯一性限制,从而很容易被冒名和仿制,难以避免造成用户和项目方的损失。
基于现有技术中存在的问题,本实施例提供一种基于区块链的智能合约管理方法,本实施例的基于区块链的智能合约管理方法可应用于终端中,所述终端可为电脑、智能电视、手机等智能化产品终端。如图1中所示,本实施例的基于区块链的智能合约管理方法包括如下步骤:
步骤S100、获取DApp域名参数,并基于所述DApp域名参数创建DApp实例,并确定与所述DApp实例唯一对应的DApp ID信息。
本实施例的基于区块链的智能合约管理方法,不局限于底层区块链系统,可以被应用于各大主流区块链系统,如图2中所示,比如ETH、Solana(一个开源项目)、Polkadot(将多个专用区块链连接到一个统一网络中的下一代区块链协议)、Aptos(公链项目)、Cosmos(一种多链架构)。并且本实施例也不拘泥于特定的区块链编程语言,可适用于多种主流区块链编程语言,比如,采用Solidity(一种面向智能合约的高级语言)、MOVE(编程语言)以及Rust(系统编程语言)。
具体地,本实施例首先获取DApp域名参数(DApp name),基于所述DApp域名参数,生成创建交易,该创建交易用于创建DApp实例。接着,根据所述创建交易,对所述DApp域名参数的唯一性进行校验,得到第一校验结果,该第一校验结果所反映的是此时获取到的DApp name是否已经在区块链上存在。若所述第一校验结果为所述DApp域名参数唯一,则说明在区块链上不存在与所述DApp name相同的域名参数,则就可成功创建DApp实例,并为成功创建的所述DApp实例分配唯一的所述DApp ID信息,以保证此时创建的DApp实例的全局唯一性。若所述第一校验结果为所述DApp域名参数被占用,则说明在区块链上存在与所述DApp name相同的域名参数,因此创建所述DApp实例失败。由此可见,本实施例创建的DApp实例拥有链上唯一的ID信息和DApp name,有效防止链上欺诈行为,为智能合约和区块链应用提供更高的可信度。
在具体应用时,如图3中所示,用户首先调用创建 DApp 接口并入参:DApp域名参数(DApp name),基于该DApp域名参数合成创建DApp实例的交易。然后将合成创建DApp实例的交易发送到待打包池,返回是否成功进入打包池。接着将创建DApp实例的交易打包入块,交易上链。终端在接收到该创建交易后,开始执行交易。具体地,本实施例可根据链上预先存储的DApp name表检索判断此时的DApp name是否唯一,也就是对DApp域名参数的唯一性进行校验,并返回第一校验结果。本实施例的预先存储的DApp name表中设置有区块链上已经存在的所有DApp name,如果此时的DApp域名参数与DApp name表中的某一个DApp name相同,则就表示此时的DApp域名参数不唯一。如果此时的DApp域名参数与DApp name表中的所有DApp name均不相同,则就表示此时的DApp域名参数唯一。当第一校验结果为此时的DApp域名参数唯一,则得到交易执行结果,即DApp实例创建成功。接着本实施例为DApp实例分配链上唯一的DApp ID信息,并将交易执行结果(即成功创建DApp实例的结果)和DApp存储在链上MAP,形成DApp实例与其对应的DApp ID信息的hash map数据结构。本实施例中,DApp域名参数(DApp_name)和智能合约的合约ID是通过链上的hash map数据结构进行关联映射的,链上MAP是在链上实现了hash map这种健值对的存储结构,链上Map可以是由智能合约语言实现并部署在链上的智能合约,也可以是由底层区块链系统提供的功能。
而如果第一校验结果为此时的DApp域名参数被占用,则创建DApp实例失败,则将交易执行结果(即失败创建DApp实例的结果)存储上链,以便用户可以查询交易执行结果。
由于在现有的区块链系统中,智能合约命名不做全局唯一校验,存在重名情况。而常见的相关联的一组智能合约按照命名约定进行关联,极容易造成冒名或错认的情况,导致依靠智能合约名称辨认所属应用的可信度低。而本实施例通过对链上DApp name进行全局唯一性校验,以便于将与区块链应用相关的智能合约被部署到同一个DApp实例下,具体如图4所示,为区块链应用及其智能合约提供更高的可信度。
本实施例成功创建的DApp实例的信息包含基础信息、第一关联信息和第二关联信息。所述基础信息在创建DApp实例时进行设置,所述基础信息包括:所述DApp实例对应的DApp域名参数DApp name、DApp ID信息以及链上地址DApp Creator,其中,所述创建的DApp实例的基础信息不可修改;在本实施例中,DApp name与DApp ID信息都是全网唯一的,其中DApp name在创建DApp实例时设置,DApp ID则在DApp实例创建成功时被分配。在DApp实例创建成功后,可以为DApp实例设置可修改的第一关联信息Meta Data(如图5中的第一关联信息),所述第一关联信息为所述DApp实例的元数据信息;当智能合约部署到DApp实例下时,此时会生成第二关联信息,即合约列表信息Smart Contract List,所述第二关联信息为所述DApp实例所对应的合约列表信息。所述第一关联信息包括:
(1)Logo URL:DApp Logo URL链接;
(2)Description:DApp描述文本信息;
(3)Website Link:DApp关联上层应用项目网站链接:
(4)Social Media Link:DApp关联上层应用项目社交媒体链接;
(5)Github Link:DApp关联上层应用项目代码库链接;
以及(6)自定义健值对信息存储。
本实施例将图5中的第一关联信息统一存储到链上DApp实例内,免除了传统区块链系统中在每一个智能合约中重复存储项目信息,有效的节省了链上存储空间。
步骤S200、获取智能合约的合约ID信息,将所述合约ID信息与所述DApp ID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,并得到所述DApp实例所对应的合约列表信息,所述合约列表信息用于反映所述DApp实例名下部署的所有智能合约。
本实施例所要实现的是区块链应用相关的智能合约被部署到同一个DApp实例下,为此,本实施例可采用如下步骤进行智能合约的部署,具体包括:
步骤1、DApp实例的链上地址调用部署智能合约接口,合成智能合约的部署交易。
步骤2、接收所述智能合约的部署交易,部署交易发送到待打包池,返回是否成功进入打包池。
步骤3、打包出块,交易上链。
步骤4、基于所述部署交易,获取智能合约的合约ID信息。接着,获取所述DApp实例的链上地址,并基于所述DApp域名参数与所述合约ID信息,对所述链上地址的部署权限进行校验,得到第二校验结果,该第二校验结果反映的是此时获取到的智能合约是否可以根据DApp实例的链上地址进行部署。
具体应用时,如图6所示,本实施例在执行该部署交易时,使用hash map数据结构存储在链上的DApp name和智能合约的合约ID信息来对链上地址的部署权限进行检索校验,校验此时获取到的智能合约是否可以根据链上地址来部署。具体地,本实施例的hashmap数据结构预先存储有智能合约的合约ID与DApp name之间的映射关系,而DApp name是在创建DApp 实例时设置的,只有当DApp name是全网唯一的时候,才可以成功创建DApp 实例。在成功创建DApp 实例时,本实施例为DApp实例分配了唯一的DApp ID信息,并且成功创建DApp 实例后,也就可以得到该DApp 实例的链上地址,因此本实施例基于DApp name就可以确定DApp实例以及该DApp实例对应的链上地址。本实施例的hash map数据结构存储的是智能合约的合约ID信息、DApp name以及链上地址三者之间的映射关系。当获取到智能合约的合约ID信息后,本实施例就可以基于创建的DApp实例的DApp域名参数(也就是DAppname)以及与区块链应用关联的智能合约的合约ID信息,与上述映射关系进行匹配,从而确定此时获取到的智能合约是否可以根据链上地址进行部署。
步骤5、如果第二校验结果为所述链上地址的部署权限校验通过,则初始化智能合约的信息,将智能合约的信息存储上链,同时在链上将合约ID信息与所述DApp ID信息进行绑定关联,此时智能合约成功部署至DApp实例并返回部署交易执行成功的结果。当与区块链应用关联的智能合约部署成功后,本实施例可分配智能合约ID(SmartContract ID),并将部署交易执行成功的结果和新建合约信息(如智能合约ID)存储上链。
步骤6、如果所述第二校验结果为所述链上地址的部署权限校验不通过,则说明此时获取到的智能合约不可以根据DApp实例的链上地址进行部署,则返回部署交易执行失败的结果,并将部署交易执行失败的结果存储上链,以便用户查询。本实施例通过将与区块链应用相关的智能合约被部署到同一个DApp实例下,形成DApp信息的第二关联信息,即合约列表信息(Smart Contract List),如图5中的第二关联信息,该合约列表信息将DApp ID和智能合约ID(Smart Contract ID)进行绑定关联,记录着与DApp关联的智能合约的信息,其反映了部署在DApp 实例下的所有智能合约的信息,因此便于对智能合约进行批量查询、管理。本实施例通过将智能合约被部署到同一个DApp实例,免除了传统区块链系统中在每一个智能合约中重复存储项目信息,有效的节省了链上存储空间。
在另一种实现方式中,本实施例还可基于DApp实例来查询智能合约。具体地,本实施例可首先获取目标DApp域名参数,该目标DApp域名参数可为用户输入的DApp name,然后确定目标DApp域名参数对应的目标DApp ID信息,该目标DApp ID信息也就是基于DAppname创建的DApp实例的DApp ID。接着,由于智能合约是部署在DApp实例下的,因此在得到目标DApp ID信息后,就可以得到该DApp实例下的目标合约列表,进而得到目标合约列表中的所有的智能合约。
步骤S300、基于所述合约列表信息,对已部署的所述智能合约进行批量管理。
当智能合约部署完成后,本实施例可获取所述DApp实例所对应的合约列表信息,所述合约列表信息包括部署在所述DApp实例名下所有的智能合约的信息。如图7中所示,本实施例的链上地址根据DApp name在链上查询DApp实例名下的合约列表信息。接着,本实施例基于所述合约列表信息,对部署在所述DApp实例下的所有智能合约进行批量管理。
在一种实现方式中,当对合约列表信息中的智能合约进行更新时,包括如下步骤:
步骤1、首先调用更新合约接口,上传指定DApp参数(如指定的DApp name或DAppID信息),然后合成智能合约的更新交易。
步骤2、将更新交易发送到待打包池,返回是否成功进入打包池。
步骤3、将更新交易打包出块,交易上链。
步骤4、接收更新交易,确定所述更新交易中的指定DApp参数(如DApp name或DAppID信息),由于合约列表信息反映的是此时创建的DApp实例名下部署的所有智能合约,而合约列表信息中的DApp ID信息与合约ID信息绑定关联。因此,本实施例获取所述指定DApp参数,然后从所述合约列表信息中确定指定合约以及与所述指定合约对应的指定合约ID信息。接着,获取所述DApp实例的链上地址,并基于所述指定DApp参数与所述指定合约ID信息,对所述链上地址的更新权限进行校验,得到第三校验结果,该第三校验结果用于反映基于所述指定DApp参数与所述指定合约ID信息确定的指定合约是否可以根据DApp实例的链上地址进行更新。
在具体应用时,如图8中所示,本实施例的hash map数据结构存储的是智能合约的合约ID信息、DApp name以及链上地址三者之间的映射关系,因此可将指定DApp参数和指定合约ID信息与上述映射关系进行匹配,确定此时指定DApp参数和指定合约ID信息是否与DApp 实例的链上地址匹配成功,实现对链上地址更新权限的校验,从而得到第三校验结果。
步骤5、若所述第三校验结果为所述链上地址的更新权限校验通过,则说明此时指定合约可以根据创建的DApp实例的链上地址进行更新,本实施例即可对所述指定合约的合约信息进行更新,返回更新交易执行成功的结果,并将更新交易执行成功的结果和更新后合约信息存储上链。
步骤6、如果所述第三校验结果为所述链上地址的更新权限校验不通过,则说明此时指定合约不可以根据创建的DApp实例的链上地址进行更新,本实施例则返回更新交易执行成功的结果,并将更新交易执行失败的结果存储上链,以便用户查询结果。
在现有区块链系统中,没有标准化的链上实例可以用于管理有关联性的智能合约。对于应用管理者来说,如果需要修改智能合约的访问权限,必需挨个合约逐步修改,无法做到批量修改,为智能合约管理造成了很大的不便利性。而本实施例可对有关联性智能合约的归集和封装,方便统一管理和操作智能合约,可以对一组智能合约进行批量修改访问权限的操作,如图9所示,为区块链应用开发者提供了更高效的智能合约操作便利性。
在另一种实现方式中,本实施例还可通过智能合约来查看DApp信息。具体地,本实施例可获取用户指定的目标合约的合约ID信息,并获取所述目标合约的合约ID信息所对应的目标DApp实例,然后根据所述目标DApp实例,确定目标DApp信息,返回所述目标DApp信息,所述目标DApp信息包括所述目标DApp实例的基础信息、第一关联信息和第二关联信息,具体流程如图10所示。本实施例返回至用户的目标DApp信息中至少包括图5中的基础信息和第一关联信息。
综上,本实施例与现有区块链系统的智能合约管理方案相比至少具有以下有益效果:
(1)更高效的操作便利性:本实施例可对有关联性智能合约的归集和封装,方便统一管理和操作智能合约,为区块链应用开发者提供了更高效的智能合约操作便利性。
(2)更高的可信度:本实施例为DApp实例提供全网唯一的链上域名,智能合约通过绑定DApp实例,也具备了一定程度的防伪能力。有效防止了因合约重名或相似导致的用户和项目方的损失,为智能合约提供了更高的可信度。
(3)节省链上存储空间:本实施例的区块链应用项目信息可以统一存储到链上DApp内,免除了传统区块链系统中在每一个智能合约中重复存储项目信息,有效的节省了链上存储空间。
基于上述实施例,本发明还提供一种基于区块链的智能合约管理系统,如图11所示,所述系统包括:DApp实例创建模块10、智能合约部署模块20以及合约批量管理模块30。具体地,所述DApp实例创建模块10,用于获取DApp域名参数,并基于所述DApp域名参数创建DApp实例,并确定与所述DApp实例唯一对应的DApp ID信息。所述智能合约部署模块20,用于获取智能合约的合约ID信息,将所述合约ID信息与所述DApp ID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,并得到所述DApp实例所对应的合约列表信息,所述合约列表信息用于反映所述DApp实例名下部署的所有智能合约。所述合约批量管理模块30,用于基于所述合约列表信息,对已部署的所述智能合约进行批量管理。
在一种实现方式中,所述DApp实例创建模块10,包括:
交易合成单元,用于基于所述DApp域名参数,生成创建所述DApp实例的交易;
域名校验单元,用于根据创建所述DApp实例的交易,对所述DApp域名参数的唯一性进行校验,得到第一校验结果;
DApp创建成功单元,用于若所述第一校验结果为所述DApp域名参数唯一,则创建所述DApp实例成功,并为成功创建的所述DApp实例分配唯一的所述DApp ID信息。
在一种实现方式中,所述DApp实例创建模块10,还包括:
DApp信息设置单元,用于在创建所述DApp实例成功之后,设置所述DApp实例的DApp信息,所述DApp信息包括:基础信息、第一关联信息以及第二关联信息;
其中,所述基础信息包括:所述DApp实例对应的DApp域名参数、DApp ID信息以及链上地址;
所述第一关联信息为所述DApp实例的元数据信息;
所述第二关联信息为所述DApp实例所对应的合约列表信息。
在一种实现方式中,所述智能合约部署模块20,包括:
合约ID获取单元,用于接收所述智能合约的部署交易,并基于所述部署交易,获取与区块链应用关联的所述智能合约的合约ID信息;
部署权限校验单元,用于获取所述DApp实例的链上地址,并基于所述DApp域名参数与所述合约ID信息,对所述链上地址的部署权限进行校验,得到第二校验结果;
合约部署成功单元,用于若所述第二校验结果为所述链上地址的部署权限校验通过,则将所述合约ID信息与所述DApp ID信息进行绑定,以将所述智能合约部署至所述DApp实例。
在一种实现方式中,所述合约批量管理模块30,包括:
指定合约确定单元,用于接收更新交易,确定所述更新交易中的指定DApp参数,并根据所述指定DApp参数,从所述合约列表信息中确定指定合约以及与所述指定合约对应的指定合约ID信息;
更新权限校验单元,用于获取所述DApp实例的链上地址,并基于所述指定DApp参数与所述指定合约ID信息,对所述链上地址的更新权限进行校验,得到第三校验结果;
合约更新成功单元,用于若所述第三校验结果为所述链上地址的更新权限校验通过,则对所述指定合约的合约信息进行更新。
在一种实现方式中,所述装置还包括:
ID信息确定单元,用于获取目标DApp域名参数,确定与所述目标DApp域名参数对应的目标DApp ID信息;
合约查询单元,用于获取所述目标DApp ID信息所对应的目标合约列表,得到所述目标合约列表中的智能合约。
在一种实现方式中,所述装置还包括:
目标DApp确定单元,用于获取用户指定的目标合约的合约ID信息,并获取所述目标合约的合约ID信息所对应的目标DApp实例;
目标DApp信息确定单元,用于根据所述目标DApp实例,确定目标DApp信息;
信息返回单元,用于将所述目标DApp信息返回给用户。
本实施例的基于区块链的智能合约管理系统中各个模块的工作原理与上述方法实施例中各个步骤的原理相同,此处不再赘述。
基于上述实施例,本发明还提供了一种终端,所述终端的原理框图可以如图12所示。终端可以包括一个或多个处理器100(图12中仅示出一个),存储器101以及存储在存储器101中并可在一个或多个处理器100上运行的计算机程序102,例如,基于区块链的智能合约管理系统的数据交互程序。一个或多个处理器100执行计算机程序102时可以实现基于区块链的智能合约管理系统的数据交互方法实施例中的各个步骤。或者,一个或多个处理器100执行计算机程序102时可以实现基于区块链的智能合约管理系统的数据交互方法实施例中各模块/单元的功能,此处不作限制。
在一个实施例中,所称处理器100可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在一个实施例中,存储器101可以是电子设备的内部存储单元,例如电子设备的硬盘或内存。存储器101也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,存储器101还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器101用于存储计算机程序以及终端所需的其他程序和数据。存储器101还可以用于暂时地存储已经输出或者将要输出的数据。
本领域技术人员可以理解,图12中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、运营数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双运营数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于区块链的智能合约管理方法,其特征在于,所述方法包括:
获取DApp域名参数,并基于所述DApp域名参数创建DApp实例,并确定与所述DApp实例唯一对应的DApp ID信息;
获取智能合约的合约ID信息,将所述合约ID信息与所述DApp ID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,并得到所述DApp实例所对应的合约列表信息,所述合约列表信息用于反映所述DApp实例名下部署的所有智能合约;
基于所述合约列表信息,对已部署的所述智能合约进行批量管理。
2.根据权利要求1所述的基于区块链的智能合约管理方法,其特征在于,所述基于所述DApp域名参数创建DApp实例,确定与所述DApp实例唯一对应的DApp ID信息,包括:
基于所述DApp域名参数,生成创建所述DApp实例的交易;
根据创建所述DApp实例的交易,对所述DApp域名参数的唯一性进行校验,得到第一校验结果;
若所述第一校验结果为所述DApp域名参数唯一,则创建所述DApp实例成功,并为成功创建的所述DApp实例分配唯一的所述DApp ID信息。
3.根据权利要求2所述的基于区块链的智能合约管理方法,其特征在于,所述基于所述DApp域名参数创建DApp实例,确定与所述DApp实例唯一对应的DApp ID信息,还包括:
设置所述DApp实例的DApp信息,所述DApp信息包括:基础信息、第一关联信息以及第二关联信息;
其中,所述基础信息包括:所述DApp实例对应的DApp域名参数、DApp ID信息以及链上地址;
所述第一关联信息为所述DApp实例的元数据信息;
所述第二关联信息为所述DApp实例所对应的合约列表信息。
4.根据权利要求1所述的基于区块链的智能合约管理方法,其特征在于,所述获取智能合约的合约ID信息,将所述合约ID信息与所述DApp ID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,包括:
接收所述智能合约的部署交易,并基于所述部署交易,获取所述智能合约的合约ID信息;
获取所述DApp实例的链上地址,并基于所述DApp域名参数与所述合约ID信息,对所述链上地址的部署权限进行校验,得到第二校验结果;
若所述第二校验结果为所述链上地址的部署权限校验通过,则将所述合约ID信息与所述DApp ID信息进行绑定,以将所述智能合约部署至所述DApp实例。
5.根据权利要求1所述的基于区块链的智能合约管理方法,其特征在于,所述基于所述合约列表信息,对已部署的所述智能合约进行批量管理,包括:
接收更新交易,确定所述更新交易中的指定DApp参数,并根据所述指定DApp参数,从所述合约列表信息中确定指定合约以及与所述指定合约对应的指定合约ID信息;
获取所述DApp实例的链上地址,并基于所述指定DApp参数与所述指定合约ID信息,对所述链上地址的更新权限进行校验,得到第三校验结果;
若所述第三校验结果为所述链上地址的更新权限校验通过,则对所述指定合约的合约信息进行更新。
6.根据权利要求1所述的基于区块链的智能合约管理方法,其特征在于,所述方法还包括:
获取目标DApp域名参数,确定与所述目标DApp域名参数对应的目标DApp ID信息;
获取所述目标DApp ID信息所对应的目标合约列表,得到所述目标合约列表中的智能合约。
7.根据权利要求1所述的基于区块链的智能合约管理方法,其特征在于,所述方法还包括:
获取用户指定的目标合约的合约ID信息,并获取所述目标合约的合约ID信息所对应的目标DApp实例;
根据所述目标DApp实例,确定目标DApp信息;
将所述目标DApp信息返回给用户。
8.一种基于区块链的智能合约管理系统,其特征在于,所述系统包括:
DApp实例创建模块,用于获取DApp域名参数,并基于所述DApp域名参数创建DApp实例,并确定与所述DApp实例唯一对应的DApp ID信息;
智能合约部署模块,用于获取智能合约的合约ID信息,将所述合约ID信息与所述DAppID信息进行绑定关联,以将所述智能合约部署至所述DApp实例,并得到所述DApp实例所对应的合约列表信息,所述合约列表信息用于反映所述DApp实例名下部署的所有智能合约;
合约批量管理模块,用于基于所述合约列表信息,对已部署的所述智能合约进行批量管理。
9.一种终端,其特征在于,所述终端包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的基于区块链的智能合约管理程序,所述处理器执行基于区块链的智能合约管理程序时,实现如权利要求1-7任一项所述的基于区块链的智能合约管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于区块链的智能合约管理程序,所述基于区块链的智能合约管理程序被处理器执行时,实现如权利要求1-7任一项所述的基于区块链的智能合约管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410227534.1A CN117811920B (zh) | 2024-02-29 | 2024-02-29 | 一种基于区块链的智能合约管理方法、系统、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410227534.1A CN117811920B (zh) | 2024-02-29 | 2024-02-29 | 一种基于区块链的智能合约管理方法、系统、终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117811920A true CN117811920A (zh) | 2024-04-02 |
CN117811920B CN117811920B (zh) | 2024-06-11 |
Family
ID=90432006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410227534.1A Active CN117811920B (zh) | 2024-02-29 | 2024-02-29 | 一种基于区块链的智能合约管理方法、系统、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117811920B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221572A (zh) * | 2020-01-13 | 2020-06-02 | 北京字节跳动网络技术有限公司 | 一种自动适配运行环境的方法、装置、介质和设备 |
CN113691597A (zh) * | 2019-11-27 | 2021-11-23 | 腾讯科技(深圳)有限公司 | 区块链合约部署方法、装置、设备以及存储介质 |
WO2022246193A1 (en) * | 2021-05-20 | 2022-11-24 | Verisign, Inc. | Lifecycle administration of domain name blockchain addresses |
CN115543924A (zh) * | 2022-11-29 | 2022-12-30 | 粤港澳大湾区数字经济研究院(福田) | 一种基于可信管理平台的任务处理方法及相关装置 |
CN115567501A (zh) * | 2022-09-20 | 2023-01-03 | 上海万向区块链股份公司 | 基于PoS共识的web3 Dapp跨链系统及方法 |
CN116074280A (zh) * | 2021-10-29 | 2023-05-05 | 腾讯科技(深圳)有限公司 | 应用入侵防御系统识别方法、装置、设备和存储介质 |
-
2024
- 2024-02-29 CN CN202410227534.1A patent/CN117811920B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691597A (zh) * | 2019-11-27 | 2021-11-23 | 腾讯科技(深圳)有限公司 | 区块链合约部署方法、装置、设备以及存储介质 |
CN111221572A (zh) * | 2020-01-13 | 2020-06-02 | 北京字节跳动网络技术有限公司 | 一种自动适配运行环境的方法、装置、介质和设备 |
WO2022246193A1 (en) * | 2021-05-20 | 2022-11-24 | Verisign, Inc. | Lifecycle administration of domain name blockchain addresses |
CN116074280A (zh) * | 2021-10-29 | 2023-05-05 | 腾讯科技(深圳)有限公司 | 应用入侵防御系统识别方法、装置、设备和存储介质 |
CN115567501A (zh) * | 2022-09-20 | 2023-01-03 | 上海万向区块链股份公司 | 基于PoS共识的web3 Dapp跨链系统及方法 |
CN115543924A (zh) * | 2022-11-29 | 2022-12-30 | 粤港澳大湾区数字经济研究院(福田) | 一种基于可信管理平台的任务处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117811920B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325729B (zh) | 一种生成电子合同的方法及服务器 | |
CN1641583B (zh) | 自描述软件映象更新组件 | |
CN112882729B (zh) | 应用镜像升级方法、装置、计算机设备和存储介质 | |
CN110008665B (zh) | 一种区块链的权限控制方法及装置 | |
CN107066498B (zh) | 键值kv存储方法和装置 | |
CN105100051A (zh) | 实现数据资源访问权限控制的方法及系统 | |
CN106155775B (zh) | 消息处理方法、设备及系统 | |
CN115562690B (zh) | 基于Docker容器的算法服务处理方法、装置及介质 | |
CN113609167B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN110109712A (zh) | 业务组件加载方法、装置、计算机设备和存储介质 | |
US20080320461A1 (en) | Method and Apparatus for Reliable In-Place Update | |
CN110489138A (zh) | 一种应用更新方法、装置和存储介质 | |
WO2022121613A1 (zh) | 基于智能合约的数据处理方法、装置、设备及存储介质 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN117811920B (zh) | 一种基于区块链的智能合约管理方法、系统、终端及介质 | |
CN112148351B (zh) | 一种应用软件跨版本兼容的方法和系统 | |
CN101266538B (zh) | 一种智能存储卡的接口访问控制方法 | |
CN112181921A (zh) | 数据处理方法及装置 | |
CN110879900A (zh) | 一种基于区块链系统的数据处理方法及装置 | |
CN114238240B (zh) | 一种分布式多集群的数据存储方法、装置及存储介质 | |
CN113806817B (zh) | 构建孪生nft的方法、全量可信存储的nft协议和系统 | |
CN115510161A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN115145954A (zh) | 一种数据查询方法、数据存储方法及装置 | |
CN108614714A (zh) | 一种动态库更新方法、装置及存储介质 | |
CN103645917A (zh) | Java卡的Java代码补丁方法 |
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 |