CN113342429A - 智能合约数据处理方法、装置、计算机设备及存储介质 - Google Patents
智能合约数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113342429A CN113342429A CN202110642745.8A CN202110642745A CN113342429A CN 113342429 A CN113342429 A CN 113342429A CN 202110642745 A CN202110642745 A CN 202110642745A CN 113342429 A CN113342429 A CN 113342429A
- Authority
- CN
- China
- Prior art keywords
- class
- intelligent contract
- parent class
- subclass
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4492—Inheritance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种智能合约数据处理方法、装置、计算机设备及存储介质。当接收到针对第一智能合约的执行指令,基于执行指令确定部署在区块链网络中的第一智能合约的第一源程序;当编译第一源程序时,若检测到第一智能合约的第一源程序包括继承父类的子类,从第一源程序中获取子类继承的父类的类标识和父类所属的第二智能合约的合约地址;根据父类的类标识和第二智能合约的合约地址,在第二智能合约的第二源程序中确定父类,基于父类获取子类继承的目标父类数据;将目标父类数据复制到子类中,以执行第一智能合约。使得子类可以直接从已经部署的父类中获取所需要使用的程序数据,降低了开发的复杂度。
Description
技术领域
本申请涉及智能合约技术领域,具体涉及一种智能合约数据处理方法、装置、计算机设备及存储介质。
背景技术
区块链作为一种新兴的分布式基础架构,相当于一个去中心化的数据存储模块,由于区块链的去中心化和数据不易更改的特性,可以将智能合约的源程序部署在区块链网络中,由区块链网络中的节点编译智能合约的源程序后执行智能合约,在对现有技术的研究和实践过程中,本申请的发明人发现,智能合约的源程序不能实现继承的功能,当智能合约源程序中的类,需要使用其他已经部署的类所包含的方法和/或属性等程序数据时,无法从其他已经部署的类中直接获取所需要使用的程序数据,增加了开发的复杂度。
发明内容
本申请实施例提供一种智能合约数据处理方法、装置、计算机设备及存储介质,使智能合约源程序的类与类之间具有继承的功能,降低了开发的复杂度。
本申请实施例提供一种智能合约数据处理方法,包括:
当接收到针对第一智能合约的执行指令,基于所述执行指令确定部署在区块链网络中的所述第一智能合约的第一源程序;
当编译所述第一源程序时,若检测到所述第一智能合约的第一源程序包括继承父类的子类,从所述第一源程序中获取所述子类继承的父类的类标识和所述父类所属的第二智能合约的合约地址;
根据所述父类的类标识和所述第二智能合约的合约地址,在所述第二智能合约的第二源程序中确定所述父类,基于所述父类获取所述子类继承的目标父类数据;
将所述目标父类数据复制到所述子类中,以执行所述第一智能合约。
相应的,本申请实施例还提供一种智能合约数据处理装置,包括:
接收单元,用于当接收到针对第一智能合约的执行指令,基于所述执行指令确定部署在区块链网络中的所述第一智能合约的第一源程序;
第一获取单元,用于当编译所述第一源程序时,若检测到所述第一智能合约的第一源程序包括继承父类的子类,从所述第一源程序中获取所述子类继承的父类的类标识和所述父类所属的第二智能合约的合约地址;
第二获取单元,用于根据所述父类的类标识和所述第二智能合约的合约地址,在所述第二智能合约的第二源程序中确定所述父类,基于所述父类获取所述子类继承的目标父类数据;
复制单元,用于将所述目标父类数据复制到所述子类中,以执行所述第一智能合约。
可选的,所述第一获取单元还用于:
获取所述区块链网络中的智能合约的预设编译逻辑,所述预设编译逻辑包括自定义的子类编译逻辑;
当编译所述第一源程序时,基于所述自定义的子类编译逻辑识别所述第一源程序中的继承关键字;
若识别出所述继承关键字,基于所述自定义的子类编译逻辑和所述继承关键字确定所述第一源程序中的子类、所述父类的类标识和所述第二智能合约的合约地址。
可选的,所述第一获取单元还用于:
基于所述自定义的子类编译逻辑中的目标字符串格式以及所述继承关键字,识别所述第一源程序中满足所述目标字符串格式的目标字符串,所述目标字符串格式为描述子类的关联信息的字符串对应的格式;
确定所述继承关键字在所述目标字符串中的所处位置;
根据所述继承关键字在所述目标字符串中的所处位置,和所述目标字符串格式中所述继承关键字前后的所述关联信息的类型,确定所述目标字符串中的所述子类、所述父类的类标识和所述第二智能合约的合约地址。
可选的,所述第一获取单元还用于:
根据所述继承关键字在所述目标字符串中的所处位置,和所述目标字符串格式中所述继承关键字前后的所述关联信息的类型,确定所述继承关键字之前相邻的字符为所述子类;
确定所述继承关键字之后相邻的字符为所述父类的类标识;
确定所述父类的类标识之后相邻的字符为所述第二智能合约的合约地址。
可选的,所述第二获取单元还用于:
根据所述第二智能合约的合约地址,在所述区块链网络中确定所述第二源程序;
根据所述父类的类标识在所述第二源程序中获取所述父类对应的第一程序段;
获取所述第一程序段中信息的访问权限;
根据所述第一程序段中信息的访问权限从所述第一程序段中,获取所述子类继承的目标父类数据。
可选的,所述第二获取单元还用于:
当所述第一程序段中信息的访问权限为所述私有访问权限时,若在所述区块链网络中所述第一智能合约的部署用户与所述第二智能合约的部署用户相同,确定访问权限为所述私有访问权限的数据,为所述目标父类数据;
当所述第一程序段中信息的访问权限为所述公有访问权限时,确定访问权限为所述公有访问权限的数据,为所述目标父类数据;
当所述第一程序段中信息的访问权限为所述保护访问权限时,若在所述区块链网络中所述第一智能合约的部署用户获取所述第二智能合约的部署用户所授予的允许访问权限,确定访问权限为所述保护访问权限的数据,为所述目标父类数据。
可选的,所述复制单元还用于:
复制所述第二源程序中的所述目标父类数据;
编译所述目标父类数据复制产生的数据,得到所述目标父类数据对应的第一编译后程序;
确定所述第一源程序中所述子类的待编译数据,对所述待编译数据进行编译得到所述子类对应的第二编译后程序;
将所述第一编译后程序添加到所述第二编译后程序中,以执行所述第一智能合约。
可选的,所述装置还用于:
接收子类编辑指令,所述子类编辑指令包括子类对应的第二程序段,所述第二程序段中包括所述父类的类标识、所述第二智能合约的合约地址、所述子类使用的应用实例和所述目标父类数据的数据标识;
基于所述子类编辑指令,在所述第一智能合约的所述第一源程序中添加所述子类的所述程序段。
可选的,所述目标父类数据包括方法,所述数据标识包括方法标识,所述子类和所述父类中相同的所述方法的应用实例不同,所述复制单元还用于:
若所述目标父类数据为方法,将所述目标父类数据复制到所述子类中;
将所述子类中方法的应用实例,应用在所述目标父类数据复制产生的数据中,以执行所述第一智能合约。
可选的,所述目标父类数据包括父类属性,所述复制单元还用于:
若所述子类的所述程序段中未设置所述父类属性的属性值,将父类中的所述父类属性和属性值复制到所述子类中,以执行所述第一智能合约;
若所述子类的所述第二程序段中包括所述父类属性的属性值,将父类中的父类属性复制到所述子类中,将所述程序段中所述父类属性对应的属性值,应用到所述父类属性复制得到的属性中,以执行所述第一智能合约。
同样的,本申请实施例还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述智能合约数据处理方法任一项的步骤。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述智能合约数据处理方法任一项的步骤。
本申请实施例提供一种智能合约数据处理方法、装置、计算机设备及存储介质,当设备节点根据接收到的执行指令编译第一智能合约时,若检测到第一智能合约的第一源程序中具有预先设置的继承父类的子类,则节点设备可以在确定子类从父类中所需继承的目标父类数据之后,将目标父类数据直接复制到子类中,使得子类可以直接从已经部署的父类中获取所需要使用的程序数据,从而使智能合约源程序的类与类之间具有继承的功能,增加了智能合约源程序的重复使用率,降低了开发的复杂度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的智能合约数据处理装置的系统示意图;
图2是本申请实施例提供的智能合约数据处理方法的流程示意图;
图3是本申请实施例提供的智能合约数据处理方法的另一流程示意图;
图4是本申请实施例提供的智能合约数据处理装置的结构示意图;
图5是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供一种智能合约数据处理方法、装置、计算机设备及存储介质。具体地,本申请实施例的智能合约数据处理方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(Personal Computer,PC)、个人数字助理(Personal DigitalAssistant,PDA)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络服务、以及大数据和人工智能平台等基础云计算服务的云服务器。此外,需要了解的是,区块链中的智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,可以由solidity语言编写形成源程序存储在区块链中。
请参阅图1,图1为本申请实施例提供的智能合约数据处理装置的系统示意图。该系统可以包括至少一个作为区块链网络中的节点设备的终端,且终端可以用于执行部署在区块链网络中的智能合约。终端执行智能合约时,当接收到针对第一智能合约的执行指令,基于执行指令确定部署在区块链网络中的第一智能合约的第一源程序;当编译第一源程序时,若检测到第一智能合约的第一源程序包括继承父类的子类,从第一源程序中获取子类继承的父类的类标识和父类所属的第二智能合约的合约地址;根据父类的类标识和第二智能合约的合约地址,在第二智能合约的第二源程序中确定父类,基于父类获取子类继承的目标父类数据;将目标父类数据复制到子类中,以执行第一智能合约。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从智能合约数据处理装置的角度进行描述,该智能合约数据处理装置具体可以集成在终端设备中,该终端设备可以包括智能手机、笔记本电脑、平板电脑以及个人计算机等设备。
本申请实施例提供的一种智能合约数据处理方法,该方法可以由终端的处理器执行,如图2所示,该智能合约数据处理方法的具体流程主要包括步骤201至步骤204,详细说明如下:
步骤201、当接收到针对第一智能合约的执行指令,基于执行指令确定部署在区块链网络中的第一智能合约的第一源程序。
在本申请实施例中,区块链网络中具有至少一条由多个区块链接形成的区块链,区块链网络中部署的第一智能合约和第二智能合约等多个智能合约以数据的形式存储在区块链的区块中。区块链网络中还具有多个节点设备,节点设备可以对区块链进行操作。部署在区块链网络中的智能合约可以通过节点设备中安装的虚拟机进行编译且执行。
在本申请实施例中,执行指令用于指示节点设备中的虚拟机执行相应的智能合约。执行指令可以包括待执行智能合约的合约标识,以使节点设备根据合约标识确定具体执行的智能合约。其中,合约标识可以是智能合约的合约地址、合约名称和/或合约编号等。
例如,当节点设备接收到用于指示执行第一智能合约的执行指令时,从执行指令中获取第一智能合约的合约标识,根据合约标识在区块链网路中获取形成第一智能合约的第一源程序。
步骤202、当编译第一源程序时,若检测到第一智能合约的第一源程序包括继承父类的子类,从第一源程序中获取子类继承的父类的类标识和父类所属的第二智能合约的合约地址。
在本申请实施例中,类标识是唯一确定智能合约的源程序中类的指示信息,其中,类标识可以是类的名称和/或类的编号等信息。合约地址是区块链网络中部署的多个智能合约的辨识信息。
在本申请的一种实施方式中,继承是面向对象软件技术当中的一个概念,子类可以继承父类,从而使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
在本申请的一种实施方式中,子类所属的第一智能合约和父类所属的第二智能合约可以是同一个智能合约,也可以是不同的智能合约。
在本申请实施例中,步骤202中“当编译第一源程序时,若检测到第一智能合约的第一源程序包括继承父类的子类,从第一源程序中获取子类继承的父类的类标识和父类所属的第二智能合约的合约地址”可以通过如下步骤S2021至步骤S2023实现:
步骤S2021:获取区块链网络中的智能合约的预设编译逻辑,预设编译逻辑包括自定义的子类编译逻辑。
在本申请实施例中,预设编译逻辑是用于编译智能合约的编译器在编译智能合约时所参照的逻辑,在预设编译逻辑中添加自定义的子类编译逻辑。其中,自定义的子类编译逻辑用于将第一源程序中设置的,子类继承父类的目标父类数据的继承过程编译形成节点设备可以识别的二进制语言,从而使得第一源程序中的继承方法可以执行。为了使得编译器能够编译源程序中的继承过程,从而实现子类继承父类的目标父类数据,因此,需要预先在预设编译逻辑中增加自定义的子类编译逻辑。
步骤S2022:当编译第一源程序时,基于自定义的子类编译逻辑识别第一源程序中的继承关键字。
在本申请实施例中,继承关键字是智能合约源程序中是否存在的继承方法的唯一标识信息。其中,继承关键字可以是继承方法的名称等信息,例如,继承关键字可以是extend。
步骤S2023:若识别出继承关键字,基于自定义的子类编译逻辑和继承关键字确定第一源程序中的子类、父类的类标识和第二智能合约的合约地址。
在本申请实施例中,上述步骤S2023中“若识别出继承关键字,基于自定义的子类编译逻辑和继承关键字确定第一源程序中的子类、父类的类标识和第二智能合约的合约地址”的具体实现方式可以是基于自定义的子类编译逻辑中的目标字符串格式以及继承关键字,识别第一源程序中满足目标字符串格式的目标字符串,目标字符串格式为描述子类的关联信息的字符串对应的格式;确定继承关键字在目标字符串中的所处位置;根据继承关键字在目标字符串中的所处位置,和目标字符串格式中继承关键字前后的关联信息的类型,确定目标字符串中的子类、父类的类标识和第二智能合约的合约地址。
在本申请实施例中,如果目标字符串格式是从左往右依次为子类的类标识、继承关键字、父类的类标识和第二智能合约的合约地址,且子类的类标识、继承关键字、父类的类标识和第二智能合约的合约地址相互之间具有空字符,此时当确定了第一源程序中的字符串格式以及继承关键字在字符串格式中的所处位置之后,要想进行一步根据继承关键字在字符串格式中的所处位置和继承关键字前后的关联信息的类型,获取第一源程序中的子类,具体实现方式可以是:根据继承关键字在目标字符串中的所处位置,确定继承关键字之前相邻的字符为子类。
在本申请实施例中,如果目标字符串格式是从左往右依次为子类的类标识、继承关键字、父类的类标识和第二智能合约的合约地址,当确定了第一源程序中的字符串格式以及继承关键字在字符串格式中的所处位置之后,要想进行一步根据继承关键字在字符串格式中的所处位置和目标顺序,获取第一源程序中设置的父类的类标识和第二智能合约的合约地址,具体实现方式可以是根据继承关键字在字符串格式中的所处位置和继承关键字前后的关联信息的类型,确定继承关键字之后相邻的字符为父类的类标识;确定父类的类标识之后相邻的字符为第二智能合约的合约地址。
在本申请实施例中,继承关键字、子类的类标识、父类的类标识和第二智能合约的合约地址组成的目标字符串格式不受限制,可以根据实际情况灵活限定,例如当子类的类标识、继承关键字、以及父类的类标识和第二智能合约的合约地址在不同的段落,且各个段落具有不同的段落编号,此时目标字符串格式可以是各个段落编号按照各个段落编号的大小顺序形成的格式。
步骤203、根据父类的类标识和第二智能合约的合约地址,在第二智能合约的第二源程序中确定父类,基于父类获取子类继承的目标父类数据。
在本申请实施例中,上述步骤203中“根据父类的类标识和第二智能合约的合约地址,在第二智能合约的第二源程序中确定父类,基于父类获取子类继承的目标父类数据”具体可以通过如下步骤S2031至步骤S2034实现:
步骤S2031:根据第二智能合约的合约地址,在区块链网络中确定第二源程序。
在本申请实施例中,由于合约地址是智能合约的辨识信息,且第二智能合约由第二源程序组成,因此可以根据第二智能合约的合约地址从区块链网络中的多个智能合约中确定组成第二智能合约的第二源程序。
步骤S2032:根据父类的类标识在第二源程序中获取父类对应的第一程序段。
在本申请实施例中,由于第二源程序中包括形成第二智能合约的多个类,类标识是类的唯一指示信息,因此可以根据父类的类标识在第二源程序中确定父类的位置,并且获取组成父类的程序段落,形成第一程序段。
步骤S2033:获取第一程序段中信息的访问权限。
步骤S2034:根据第一程序段中信息的访问权限从第一程序段中,获取子类继承的目标父类数据。
在本申请实施例中,访问权限是子类对父类数据进行继承的权限,由于第一程序段包含的各个数据的特性不同,因此各个数据的访问权限不同,因此需要根据访问权限确定子类实际可以从父类中继承的数据,即为目标父类数据。此外,第一程序段可以包括父类的方法数据和/或父类的属性数据,属于同一个方法和/或属性的数据的访问权限相同。
在本申请实施例中,第一程序段所包含数据的访问权限可以是私有访问权限、公有访问权限和/或保护访问权限,上述步骤S2034中“根据第一程序段中信息的访问权限从第一程序段中,获取子类继承的目标父类数据”可以通过如下步骤S20341至步骤S20343实现:
步骤S20341:当第一程序段中信息的访问权限为私有访问权限时,若在区块链网络中第一智能合约的部署用户与第二智能合约的部署用户相同,确定访问权限为私有访问权限的数据,为目标父类数据。
在本申请实施例中,当第一程序段中的某些类标识之前具有私有访问权限的标识时,则表明该类标识对应的类所包括的数据的访问权限都是私有访问权限。例如,如果第一程序段中的A类之前具有private标识,则表明A类包含的数据的访问权限是私有访问权限,之后部署用户与A类所属智能合约的部署用户相同时,才能继承A类。
步骤S20342:当第一程序段中信息的访问权限为公有访问权限时,确定访问权限为公有访问权限的数据,为目标父类数据。
在本申请实施例中,当第一程序段中的某些类标识之前具有公有访问权限的标识时,则表明该类标识对应的类所包括的数据的访问权限都是公有访问权限。例如,如果第一程序段中的B类之前具有public标识,则表明B类包含的数据的访问权限是公有访问权限,其他智能合约中的类或同一智能合约的不同类都可以继承该B类。
步骤S20343:当第一程序段中信息的访问权限为保护访问权限时,若在区块链网络中第一智能合约的部署用户获取第二智能合约的部署用户所授予的允许访问权限,确定访问权限为保护访问权限的数据,为目标父类数据。
在本申请实施例中,当第一程序段中的某些类标识之前具有保护访问权限的标识时,则表明该类标识对应的类所包括的数据的访问权限都是保护访问权限。例如,如果第一程序段中的C类之前具有protect标识,则表明C类包含的数据的访问权限是保护访问权限,其他智能合约或同一智能合约中的其他类,只有经过C类所属智能合约的部署用户的权限授予才可以继承该C类。
步骤204、将目标父类数据复制到子类中,以执行第一智能合约。
在本申请实施例中,上述步骤204中“将目标父类数据复制到子类中,以执行第一智能合约”可以通过如下步骤S2041至步骤S2044实现:
步骤S2041:复制第二源程序中的目标父类数据。
在本申请实施例中,由于第一程序段中子类的程序段,不包括继承的目标父类数据的程序段,然而子类的程序段在执行时需要依据目标父类数据对应的程序段,因此需要复制第二程序段中目标父类数据对应的程序段,以保证子类的执行。
步骤S2042:编译目标父类数据复制产生的数据,得到目标父类数据对应的第一编译后程序。
在本申请实施例中,当复制了目标父类数据在第二源程序中的程序段后,为了提升被继承的目标父类数据的程序段的重复利用率,可以不将目标父类数据对应的程序段添加到子类的程序段中,而是由执行第一源程序的虚拟机直接编译复制目标父类数据产生的数据,形成第一编译后程序,将第一编译后程序直接应用到第一源程序的执行中。
步骤S2043:确定第一源程序中子类的待编译数据,对待编译数据进行编译得到子类对应的第二编译后程序。
步骤S2044:将第一编译后程序添加到第二编译后程序中,以执行第一智能合约。
在本申请实施例中,由于第一源程序和第二源程序都是用户编写的程序语言,终端设备无法识别,因此需要将第一源程序和第二程序段中包括的目标父类数据进行编译,形成终端设备可以识别的二进制语言。
在本申请实施例中,为了增加程序的复用性,所以子类继承的目标父类数据不需要在子类中再次部署,但为了保证子类的正确执行,只需要在编译时将目标父类的编译后程序添加到子类的编译后程序中,即可使得节点设备能够在执行子类时识别出继承的目标父类数据,保证子类的顺利执行。
在本申请的一种实施方式中,在编译且执行第一智能合约的第一源程序。实现子类继承父类的目标父类数据之前,还需要根据用户的相关操作,在第一源程序中编辑子类,由于子类由用户编辑,所以节点设备只需要接收用户传输的子类编辑指令,根据子类编辑指令在第一源程序中形成子类的第一内容数据,子类编辑指令中可以包括用户编写的子类的全部内容。具体实现方式可以是接收子类编辑指令,子类编辑指令包括子类对应的第二程序段,第二程序段中包括父类的类标识、第二智能合约的合约地址、子类使用的应用实例和目标父类数据的数据标识;基于子类编辑指令,在第一智能合约的第一源程序中添加子类的程序段。
在本申请实施例中,由于类的内部封装了属性和方法,所以子类从父类继承的目标父类数据中可以包括方法,相应的,目标父类数据的数据标识也包括方法标识,子类和父类中相同的方法的应用实例不同,在此情况下,上述步骤204中“将目标父类数据复制到子类中,以执行第一智能合约”可以通过如下步骤S2045至步骤S2046实现:
步骤S2045:若目标父类数据为方法,将目标父类数据复制到子类中。
步骤S2046:将子类中方法的应用实例,应用在目标父类数据复制产生的数据中,以执行第一智能合约。
在本申请实施例中,当目标父类数据为方法时,将目标父类数据编译后的第一编译后程序添加到子类数据编译后的第二编译后程序中之后,可以直接将子类中基于父类方法的应用实例应用在方法中。例如,若复制的父类方法是a+b,子类中的应用实例是a=1,b=2,则直接将子类中a与b的值应用在父类方法的a+b中,得出结果。
在本申请实施例中,同样的,由于类的内部封装了属性和方法,所以子类从父类继承的目标父类数据中可以包括父类属性,在此情况下,上述步骤204中“将目标父类数据复制到子类中,以执行第一智能合约”可以通过如下步骤S2047至步骤S2048实现:
步骤S2047:若子类的第二程序段中未设置父类属性的属性值,将父类中的父类属性和属性值复制到子类中,以执行第一智能合约。
在本申请实施例中,由于子类中没有设置继承的父类属性的属性值,然而在运行子类时,需要相关的属性值,因此可以将继承的父类属性的属性值也复制到子类中,保证子类的执行。
步骤S2048:若子类的第二程序段中包括父类属性的属性值,将父类中的父类属性复制到子类中,将第二程序段中父类属性对应的属性值,应用到父类属性复制得到的属性中,以执行第一智能合约。
在本申请实施例中,若子类中设置了继承的父类属性的属性值时,为了避免子类中的属性值与父类中设置的相同属性的属性值发生冲突,可以只将子类所需继承的父类属性复制到子类中,然后将子类中的属性值应用到父类属性中。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供一种智能合约数据处理方法,当设备节点根据接收到的执行指令编译第一智能合约时,若检测到第一智能合约的第一源程序中具有预先设置的继承父类的子类,则节点设备可以在确定子类从父类中所需继承的目标父类数据之后,将目标父类数据直接复制到子类中,使得子类可以直接从已经部署的父类中获取所需要使用的程序数据,从而使智能合约源程序的类与类之间具有继承的功能,增加了智能合约源程序的重复使用率,降低了开发的复杂度。
请参阅图3,图3为本申请实施例提供的智能合约数据处理方法的另一流程示意图。该方法的具体流程可以如下:
步骤301、当接收到针对第一智能合约的执行指令,基于执行指令确定部署在区块链网络中的第一智能合约的第一源程序。
例如,当节点设备接收到用于指示执行第一智能合约的执行指令时,从执行指令中获取第一智能合约的合约标识,根据合约标识在区块链网路中获取形成第一智能合约的第一源程序。
步骤302、获取区块链网络中的智能合约的预设编译逻辑,预设编译逻辑包括自定义的子类编译逻辑。
例如,预设编译逻辑是用于编译智能合约的编译器在编译智能合约时所参照的逻辑,自定义的子类编译逻辑用于将第一源程序中设置的子类继承父类的目标父类数据的继承过程编译形成节点设备可以识别的二进制语言,从而使得第一源程序中的继承方法可以执行。
步骤303、编译第一源程序时,基于自定义的子类编译逻辑识别第一源程序中的继承关键字。
例如,继承关键字是智能合约源程序中是否存在的继承方法的唯一标识信息,用于标识智能合约的源程序中类与类之间的继承关系。其中,继承关键字可以是继承方法的名称等信息,例如,继承关键字可以是extend。
步骤304、若识别出继承关键字,基于自定义的子类编译逻辑和继承关键字确定第一源程序中的子类、父类的类标识和第二智能合约的合约地址。
例如,获取自定义的子类编译逻辑,自定义的子类编译逻辑包括继承关键字、子类的类标识、父类的类标识和第二智能合约的合约地址按照目标顺序组成的目标字符串格式;当编译第一源程序时,若识别出第一源程序中包括符合目标字符串格式的目标字符串,从目标字符串中识别出继承关键字和继承关键字在目标字符串中的所处位置;根据继承关键字在目标字符串中的所处位置和目标顺序,确定第一源程序中的子类、父类的类标识和第二智能合约的合约地址。
其中,目标顺序可以是从左往右依次为子类的类标识、继承关键字、父类的类标识和第二智能合约的合约地址,且子类的类标识、继承关键字、父类的类标识和第二智能合约的合约地址相互之间具有空字符。因此,可以确定继承关键字之前相邻的字符为子类的类标识,可以确定继承关键字之后相邻的字符为父类的类标识;确定父类的类标识之后相邻的字符为第二智能合约的合约地址。
此外,继承关键字、子类的类标识、父类的类标识和第二智能合约的合约地址按照目标顺序组成的字符串格式不受限制,可以根据实际情况灵活限定,例如当子类的类标识、继承关键字、以及父类的类标识和第二智能合约的合约地址在不同的段落,且各个段落具有不同的段落编号,此时目标顺序可以是各个段落编号的大小顺序,字符串格式也可以是各个段落编号形成的格式。
步骤305、根据第二智能合约的合约地址,在区块链网络中确定第二源程序。
步骤306、根据父类的类标识在第二源程序中获取父类的第一程序段。
步骤307、获取第一程序段信息的访问权限,根据第一程序段信息的访问权限从第一程序段中,获取子类继承的目标父类数据。
例如,第一程序段信息的访问权限可以是私有访问权限、公有访问权限和/或保护访问权限,访问权限不同的第一程序段信息,可以实现继承的子类的条件也不同。
步骤308、将目标父类数据复制到子类中,以执行第一智能合约。
例如,复制第二源程序中的目标父类数据,编译目标父类数据复制产生的数据形成目标父类数据的编译后程序,编译子类的第一内容数据形成子类的编译后程序,将目标父类数据的编译后程序添加到子类的编译后程序中,以执行第一智能合约。
其中,若目标父类数据为方法,将目标父类数据复制到子类中,将子类中方法的应用实例应用在目标父类数据复制产生的数据中,以执行第一智能合约中子类的方法的应用实例。
此外,若目标父类数据为父类属性,若子类的程序段中未设置父类属性的属性值,将父类中的父类属性和属性值复制到子类中,将复制产生的属性值应用到复制产生的属性中,以执行第一智能合约。若子类的第二程序段中包括父类属性的属性值,将父类中的父类属性复制到子类中,将程序段中的属性值应用到复制产生的属性中,以执行第一智能合约。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供一种智能合约数据处理方法,当设备节点根据接收到的执行指令编译第一智能合约时,若检测到第一智能合约的第一源程序中具有预先设置的继承父类的子类,则节点设备可以在确定子类从父类中所需继承的目标父类数据之后,将目标父类数据直接复制到子类中,使得子类可以直接从已经部署的父类中获取所需要使用的程序数据,从而使智能合约源程序的类与类之间具有继承的功能,增加了智能合约源程序的重复使用率,降低了开发的复杂度。
为便于更好的实施本申请实施例的智能合约数据处理方法,本申请实施例还提供一种智能合约数据处理装置。请参阅图4,图4为本申请实施例提供的智能合约数据处理装置的结构示意图。该智能合约数据处理装置可以包括接收单元401、第一获取单元402、第二获取单元403和复制单元404。
其中,接收单元401,用于当接收到针对第一智能合约的执行指令,基于执行指令确定部署在区块链网络中的第一智能合约的第一源程序;
第一获取单元402,用于当编译第一源程序时,若检测到第一智能合约的第一源程序包括继承父类的子类,从第一源程序中获取子类继承的父类的类标识和父类所属的第二智能合约的合约地址;
第二获取单元403,用于根据父类的类标识和第二智能合约的合约地址,在第二智能合约的第二源程序中确定父类,基于父类获取子类继承的目标父类数据;
复制单元404,用于将目标父类数据复制到子类中,以执行第一智能合约。
可选的,第一获取单元402还用于:
获取区块链网络中的智能合约的预设编译逻辑,预设编译逻辑包括自定义的子类编译逻辑;
当编译第一源程序时,基于自定义的子类编译逻辑识别第一源程序中的继承关键字;
若识别出继承关键字,基于自定义的子类编译逻辑和继承关键字确定第一源程序中的子类、父类的类标识和第二智能合约的合约地址。
可选的,第一获取单元402还用于:
基于自定义的子类编译逻辑中的目标字符串格式以及继承关键字,识别第一源程序中满足目标字符串格式的目标字符串,目标字符串格式为描述子类的关联信息的字符串对应的格式;
确定继承关键字在目标字符串中的所处位置;
根据继承关键字在目标字符串中的所处位置,和目标字符串格式中继承关键字前后的关联信息的类型,确定目标字符串中的子类、父类的类标识和第二智能合约的合约地址。
可选的,第一获取单元402还用于:
根据继承关键字在目标字符串中的所处位置,和目标字符串格式中继承关键字前后的关联信息的类型,确定继承关键字之前相邻的字符为子类;
确定继承关键字之后相邻的字符为父类的类标识;
确定父类的类标识之后相邻的字符为第二智能合约的合约地址。
可选的,第二获取单元403还用于:
根据第二智能合约的合约地址,在区块链网络中确定第二源程序;
根据父类的类标识在第二源程序中获取父类对应的第一程序段;
获取第一程序段中信息的访问权限;
根据第一程序段中信息的访问权限从第一程序段中,获取子类继承的目标父类数据。
可选的,第二获取单元403还用于:
当第一程序段中信息的访问权限为私有访问权限时,若在区块链网络中第一智能合约的部署用户与第二智能合约的部署用户相同,确定访问权限为私有访问权限的数据,为目标父类数据;
当第一程序段中信息的访问权限为公有访问权限时,确定访问权限为公有访问权限的数据,为目标父类数据;
当第一程序段中信息的访问权限为保护访问权限时,若在区块链网络中第一智能合约的部署用户获取第二智能合约的部署用户所授予的允许访问权限,确定访问权限为保护访问权限的数据,为目标父类数据。
可选的,复制单元404还用于:
复制第二源程序中的目标父类数据;
编译目标父类数据复制产生的数据,得到目标父类数据对应的第一编译后程序;
确定第一源程序中子类的待编译数据,对待编译数据进行编译得到子类对应的第二编译后程序;
将第一编译后程序添加到第二编译后程序中,以执行第一智能合约。
可选的,装置还用于:
接收子类编辑指令,子类编辑指令包括子类对应的第二程序段,第二程序段中包括父类的类标识、第二智能合约的合约地址、子类使用的应用实例和目标父类数据的数据标识;
基于子类编辑指令,在第一智能合约的第一源程序中添加子类的程序段。
可选的,目标父类数据包括方法,数据标识包括方法标识,子类和父类中相同的方法的应用实例不同,复制单元404还用于:
若目标父类数据为方法,将目标父类数据复制到子类中;
将子类中方法的应用实例,应用在目标父类数据复制产生的数据中,以执行第一智能合约。
可选的,目标父类数据包括父类属性,复制单元404还用于:
若子类的第二程序段中未设置父类属性的属性值,将父类中的父类属性和属性值复制到子类中,以执行第一智能合约;
若子类的第二程序段中包括父类属性的属性值,将父类中的父类属性复制到子类中,将第二程序段中父类属性对应的属性值,应用到父类属性复制得到的属性中,以执行第一智能合约。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的智能合约数据处理装置,当接收单元401接收到针对第一智能合约的执行指令,基于执行指令确定部署在区块链网络中的第一智能合约的第一源程序;之后,当第一获取单元402编译第一源程序时,若检测到第一智能合约的第一源程序包括继承父类的子类,从第一源程序中获取子类继承的父类的类标识和父类所属的第二智能合约的合约地址;接着,第二获取单元403根据父类的类标识和第二智能合约的合约地址,在第二智能合约的第二源程序中确定父类,基于父类获取子类继承的目标父类数据;最后,复制单元404将目标父类数据复制到子类中,以执行第一智能合约。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理等终端设备。如图5所示,图5为本申请实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备500进行整体监控。
在本申请实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
当接收到针对第一智能合约的执行指令,基于执行指令确定部署在区块链网络中的第一智能合约的第一源程序;当编译第一源程序时,若检测到第一智能合约的第一源程序包括继承父类的子类,从第一源程序中获取子类继承的父类的类标识和父类所属的第二智能合约的合约地址;根据父类的类标识和第二智能合约的合约地址,在第二智能合约的第二源程序中确定父类,基于父类获取子类继承的目标父类数据;将目标父类数据复制到子类中,以执行第一智能合约。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图5所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图5中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
在本申请实施例中,通过处理器501处理接收到的针对第一智能合约的执行指令,然后根据执行指令确定第一智能合约的第一源程序中设置的子类,进一步根据第一源程序中设置的子类所继承父类的类标识和父类所属第二智能合约的合约地址找到父类,从而在父类中确定子类所需继承的目标父类数据,然后处理器501复制确定的目标父类数据,利用虚拟机中的编译器编译复制后的目标父类数据,并且编译子类的第一内容数据,将复制后的目标父类数据编译形成的编译后程序添加到第一内容数据编译形成的编译后程序中,以确保子类所在的第一智能合约的第一源程序能够顺利执行。
射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图5中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,可以当根据接收到的执行指令编译第一智能合约时,若检测到第一智能合约的第一源程序中具有预先设置的继承父类的子类,则节点设备可以在确定子类从父类中所需继承的目标父类数据之后,将目标父类数据直接复制到子类中,使得子类可以直接从已经部署的父类中获取所需要使用的程序数据,从而使智能合约源程序的类与类之间具有继承的功能,增加了智能合约源程序的重复使用率,降低了开发的复杂度。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种智能合约数据处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
当接收到针对第一智能合约的执行指令,基于执行指令确定部署在区块链网络中的第一智能合约的第一源程序;当编译第一源程序时,若检测到第一智能合约的第一源程序包括继承父类的子类,从第一源程序中获取子类继承的父类的类标识和父类所属的第二智能合约的合约地址;根据父类的类标识和第二智能合约的合约地址,在第二智能合约的第二源程序中确定父类,基于父类获取子类继承的目标父类数据;将目标父类数据复制到子类中,以执行第一智能合约。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(Read Only Memory,ROM)、随机存取记忆体(Random Access Memory,RAM)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种智能合约数据处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种智能合约数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上对本申请实施例所提供的一种智能合约数据处理方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的范围。
Claims (13)
1.一种智能合约数据处理方法,其特征在于,包括:
当接收到针对第一智能合约的执行指令,基于所述执行指令确定部署在区块链网络中的所述第一智能合约的第一源程序;
当编译所述第一源程序时,若检测到所述第一智能合约的第一源程序包括继承父类的子类,从所述第一源程序中获取所述子类继承的父类的类标识和所述父类所属的第二智能合约的合约地址;
根据所述父类的类标识和所述第二智能合约的合约地址,在所述第二智能合约的第二源程序中确定所述父类,基于所述父类获取所述子类继承的目标父类数据;
将所述目标父类数据复制到所述子类中,以执行所述第一智能合约。
2.根据权利要求1所述的方法,其特征在于,所述当编译所述第一源程序时,若检测到所述第一智能合约的第一源程序包括继承父类的子类,从所述第一源程序中获取所述子类继承的父类的类标识和所述父类所属的第二智能合约的合约地址,包括:
获取所述区块链网络中的智能合约的预设编译逻辑,所述预设编译逻辑包括自定义的子类编译逻辑;
当编译所述第一源程序时,基于所述自定义的子类编译逻辑识别所述第一源程序中的继承关键字;
若识别出所述继承关键字,基于所述自定义的子类编译逻辑和所述继承关键字确定所述第一源程序中的子类、所述父类的类标识和所述第二智能合约的合约地址。
3.根据权利要求2所述的方法,其特征在于,所述若识别出所述继承关键字,基于所述自定义的子类编译逻辑和所述继承关键字确定所述第一源程序中的子类、所述父类的类标识和所述第二智能合约的合约地址,包括:
基于所述自定义的子类编译逻辑中的目标字符串格式以及所述继承关键字,识别所述第一源程序中满足所述目标字符串格式的目标字符串,所述目标字符串格式为描述子类的关联信息的字符串对应的格式;
确定所述继承关键字在所述目标字符串中的所处位置;
根据所述继承关键字在所述目标字符串中的所处位置,和所述目标字符串格式中所述继承关键字前后的所述关联信息的类型,确定所述目标字符串中的所述子类、所述父类的类标识和所述第二智能合约的合约地址。
4.根据权利要求3所述的方法,其特征在于,所述根据所述继承关键字在所述目标字符串中的所处位置,和所述目标字符串格式中所述继承关键字前后的所述关联信息的类型,确定所述目标字符串中的所述子类、所述父类的类标识和所述第二智能合约的合约地址,包括:
根据所述继承关键字在所述目标字符串中的所处位置,和所述目标字符串格式中所述继承关键字前后的所述关联信息的类型,确定所述继承关键字之前相邻的字符为所述子类;
确定所述继承关键字之后相邻的字符为所述父类的类标识;
确定所述父类的类标识之后相邻的字符为所述第二智能合约的合约地址。
5.根据权利要求1所述的方法,其特征在于,所述根据所述父类的类标识和所述第二智能合约的合约地址,在所述第二智能合约的第二源程序中确定所述父类,基于所述父类获取所述子类继承的目标父类数据,包括:
根据所述第二智能合约的合约地址,在所述区块链网络中确定所述第二源程序;
根据所述父类的类标识在所述第二源程序中获取所述父类对应的第一程序段;
获取所述第一程序段中信息的访问权限;
根据所述第一程序段中信息的访问权限从所述第一程序段中,获取所述子类继承的目标父类数据。
6.根据权利要求5所述的方法,其特征在于,所述访问权限包括私有访问权限、公有访问权限和/或保护访问权限,所述根据所述第一程序段中信息的访问权限从所述第一程序段中,获取所述子类继承的目标父类数据,包括:
当所述第一程序段中信息的访问权限为所述私有访问权限时,若在所述区块链网络中所述第一智能合约的部署用户与所述第二智能合约的部署用户相同,确定访问权限为所述私有访问权限的数据,为所述目标父类数据;
当所述第一程序段中信息的访问权限为所述公有访问权限时,确定访问权限为所述公有访问权限的数据,为所述目标父类数据;
当所述第一程序段中信息的访问权限为所述保护访问权限时,若在所述区块链网络中所述第一智能合约的部署用户获取所述第二智能合约的部署用户所授予的允许访问权限,确定访问权限为所述保护访问权限的数据,为所述目标父类数据。
7.根据权利要求1所述的方法,其特征在于,所述将所述目标父类数据复制到所述子类中,以执行所述第一智能合约,包括:
复制所述第二源程序中的所述目标父类数据;
编译所述目标父类数据复制产生的数据,得到所述目标父类数据对应的第一编译后程序;
确定所述第一源程序中所述子类的待编译数据,对所述待编译数据进行编译得到所述子类对应的第二编译后程序;
将所述第一编译后程序添加到所述第二编译后程序中,以执行所述第一智能合约。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
接收子类编辑指令,所述子类编辑指令包括子类对应的第二程序段,所述第二程序段中包括所述父类的类标识、所述第二智能合约的合约地址、所述子类使用的应用实例和所述目标父类数据的数据标识;
基于所述子类编辑指令,在所述第一智能合约的所述第一源程序中添加所述子类的所述程序段。
9.根据权利要求8所述的方法,其特征在于,所述目标父类数据包括方法,所述数据标识包括方法标识,所述子类和所述父类中相同的所述方法的应用实例不同,所述将所述目标父类数据复制到所述子类中,以执行所述第一智能合约,包括:
若所述目标父类数据为方法,将所述目标父类数据复制到所述子类中;
将所述子类中方法的应用实例,应用在所述目标父类数据复制产生的数据中,以执行所述第一智能合约。
10.根据权利要求8所述的方法,其特征在于,所述目标父类数据包括父类属性,所述将所述目标父类数据复制到所述子类中,以执行所述第一智能合约,包括:
若所述子类的所述第二程序段中未设置所述父类属性的属性值,将父类中的所述父类属性和属性值复制到所述子类中,以执行所述第一智能合约;
若所述子类的所述第二程序段中包括所述父类属性的属性值,将父类中的父类属性复制到所述子类中,将所述第二程序段中所述父类属性对应的属性值,应用到所述父类属性复制得到的属性中,以执行所述第一智能合约。
11.一种智能合约数据处理装置,其特征在于,包括:
接收单元,用于当接收到针对第一智能合约的执行指令,基于所述执行指令确定部署在区块链网络中的所述第一智能合约的第一源程序;
第一获取单元,用于当编译所述第一源程序时,若检测到所述第一智能合约的第一源程序包括继承父类的子类,从所述第一源程序中获取所述子类继承的父类的类标识和所述父类所属的第二智能合约的合约地址;
第二获取单元,用于根据所述父类的类标识和所述第二智能合约的合约地址,在所述第二智能合约的第二源程序中确定所述父类,基于所述父类获取所述子类继承的目标父类数据;
复制单元,用于将所述目标父类数据复制到所述子类中,以执行所述第一智能合约。
12.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现如权利要求1至10任一项所述智能合约数据处理方法中的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述智能合约数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110642745.8A CN113342429B (zh) | 2021-06-09 | 2021-06-09 | 智能合约数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110642745.8A CN113342429B (zh) | 2021-06-09 | 2021-06-09 | 智能合约数据处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342429A true CN113342429A (zh) | 2021-09-03 |
CN113342429B CN113342429B (zh) | 2023-08-08 |
Family
ID=77475594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110642745.8A Active CN113342429B (zh) | 2021-06-09 | 2021-06-09 | 智能合约数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342429B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117008884A (zh) * | 2023-07-06 | 2023-11-07 | 广州三七极耀网络科技有限公司 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005089337A2 (en) * | 2004-03-15 | 2005-09-29 | Bungee Labs, Inc. | Dynnamic runtime object aggregation with proxy compilation |
US20060150146A1 (en) * | 2004-12-15 | 2006-07-06 | Microsoft Corporation | Static inheritance systems and methods |
CN102073461A (zh) * | 2010-12-07 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 输入输出请求调度方法、存储控制器和存储阵列 |
WO2019024674A1 (zh) * | 2017-07-31 | 2019-02-07 | 众安信息技术服务有限公司 | 智能合约处理方法及装置 |
CN110532176A (zh) * | 2019-07-31 | 2019-12-03 | 平安科技(深圳)有限公司 | 一种智能合约的形式化验证方法、电子装置及存储介质 |
US20190392429A1 (en) * | 2018-06-22 | 2019-12-26 | Innoplexus Ag | Capital inheritance system and method for facilitating transfer of digital cryptocurrency |
WO2020119382A1 (zh) * | 2018-12-12 | 2020-06-18 | 阿里巴巴集团控股有限公司 | 一种基于区块链智能合约的数据处理方法及系统 |
CN111813836A (zh) * | 2020-08-13 | 2020-10-23 | 广州东港安全印刷有限公司 | 一种提高Ethereum区块链系统扩展性的方法 |
CN112308716A (zh) * | 2020-10-28 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 区块链智能合约执行方法、装置、设备及计算机存储介质 |
-
2021
- 2021-06-09 CN CN202110642745.8A patent/CN113342429B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005089337A2 (en) * | 2004-03-15 | 2005-09-29 | Bungee Labs, Inc. | Dynnamic runtime object aggregation with proxy compilation |
US20060150146A1 (en) * | 2004-12-15 | 2006-07-06 | Microsoft Corporation | Static inheritance systems and methods |
CN102073461A (zh) * | 2010-12-07 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 输入输出请求调度方法、存储控制器和存储阵列 |
WO2019024674A1 (zh) * | 2017-07-31 | 2019-02-07 | 众安信息技术服务有限公司 | 智能合约处理方法及装置 |
US20190392429A1 (en) * | 2018-06-22 | 2019-12-26 | Innoplexus Ag | Capital inheritance system and method for facilitating transfer of digital cryptocurrency |
US20190392432A1 (en) * | 2018-06-22 | 2019-12-26 | Innoplexus Ag | Capital inheritance system and method for facilitating transfer of digital cryptocurrency |
WO2020119382A1 (zh) * | 2018-12-12 | 2020-06-18 | 阿里巴巴集团控股有限公司 | 一种基于区块链智能合约的数据处理方法及系统 |
CN110532176A (zh) * | 2019-07-31 | 2019-12-03 | 平安科技(深圳)有限公司 | 一种智能合约的形式化验证方法、电子装置及存储介质 |
CN111813836A (zh) * | 2020-08-13 | 2020-10-23 | 广州东港安全印刷有限公司 | 一种提高Ethereum区块链系统扩展性的方法 |
CN112308716A (zh) * | 2020-10-28 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 区块链智能合约执行方法、装置、设备及计算机存储介质 |
Non-Patent Citations (3)
Title |
---|
腾讯云: "solidity语言开发以太坊智能合约中的继承", Retrieved from the Internet <URL:《https://cloud.tencent.com/developer/article/1370317》> * |
镰刀韭菜: "【区块链】以太坊Solidity编程:智能合约实现之函数与合约", Retrieved from the Internet <URL:《https://blog.csdn.net/ARPOSPF/article/details/104578619》> * |
魏红心: "智能合约基础语言(九)——Solidity继承", Retrieved from the Internet <URL:《https://zhuanlan.zhihu.com/p/46404921》> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117008884A (zh) * | 2023-07-06 | 2023-11-07 | 广州三七极耀网络科技有限公司 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
CN117008884B (zh) * | 2023-07-06 | 2024-05-17 | 广州三七极耀网络科技有限公司 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113342429B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105022628B (zh) | 一种可扩展的软件应用平台 | |
CN107844189A (zh) | 一种降低黑屏耗电的方法、系统、终端及计算机可读存储介质 | |
CN113127050B (zh) | 一种应用资源打包过程监控方法、装置、设备和介质 | |
CN112882764A (zh) | 组件加载方法、装置、计算机设备及存储介质 | |
CN113408260A (zh) | 一种项目工程生成方法、装置、计算机设备及存储介质 | |
CN113342429B (zh) | 智能合约数据处理方法、装置、计算机设备及存储介质 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
WO2024164540A1 (zh) | 一种访问规则部署方法、装置、设备、非易失性可读存储介质及云平台 | |
CN103077032A (zh) | 应用程序的操作方法及应用程序的客户端 | |
CN103309677B (zh) | 内置资源管理方法、装置及终端 | |
CN107656726A (zh) | 一种互联网信息及技术共享平台及方法 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
CN112955865A (zh) | 应用视图层次的静态协调 | |
US10303462B2 (en) | Windows support of a pluggable ecosystem for universal windows application stores | |
CN112306493A (zh) | 热修复补丁生成方法、装置、存储介质及计算机设备 | |
CN114676371A (zh) | 页面的元素信息替换方法、装置、计算机设备及存储介质 | |
CN114546410A (zh) | 一种基于设计模式的代码优化方法及相关设备 | |
CN1971511A (zh) | 一种软件集成的方法及装置 | |
CN113935847A (zh) | 线上流程的风险处理方法、装置、服务器及介质 | |
CN113448585A (zh) | 一种对线程池的优化方法、装置、电子设备和存储介质 | |
CN112748952A (zh) | 一种环形依赖关系的检测方法、装置、设备和存储介质 | |
CN111376248B (zh) | 机器人、机器人的决策方法及终端设备 | |
CN115480819A (zh) | 开发环境配置方法、装置、电子设备和可读存储介质 | |
CN113934453B (zh) | 风险检测方法、装置及存储介质 | |
CN114691145A (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 |