CN114968422A - 基于变量状态自动执行合约的方法和装置 - Google Patents
基于变量状态自动执行合约的方法和装置 Download PDFInfo
- Publication number
- CN114968422A CN114968422A CN202210600436.9A CN202210600436A CN114968422A CN 114968422 A CN114968422 A CN 114968422A CN 202210600436 A CN202210600436 A CN 202210600436A CN 114968422 A CN114968422 A CN 114968422A
- Authority
- CN
- China
- Prior art keywords
- callback
- contract
- variable
- list
- transaction
- 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
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/4482—Procedural
- G06F9/4484—Executing subprograms
-
- 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/4498—Finite state machines
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供了一种基于变量状态自动执行合约的方法和装置。该方法的一具体实施方式包括:根据目标交易的执行结果确定目标类型的第一变量的状态发生改变,其中,上述目标交易调用第一合约;在上述第一合约的合约状态中确定是否包含针对上述第一变量的回调列表,其中,上述回调列表中的回调项包括回调合约的信息和回调参数;响应于确定包含针对上述第一变量的回调列表,基于上述回调列表中回调项的回调参数,执行回调合约。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种基于变量状态自动执行合约的方法和装置。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链***中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
区块链可以理解为一个分布式的状态机:所有节点从同一个创世状态开始,依次运行达成共识的区块内的交易,驱动各个节点的状态按照相同操作序列(增加,删除,修改)不断变化,实现所有节点在执行完相同编号区块内的交易后,状态一致,我们把这个状态称之为世界状态。世界状态里面记录了各种信息,比如账户余额,智能合约字节码,各个智能合约自定义的数据,链的配置参数等。世界状态表示的是当前状态,即记录的各状态数据的当前数值。在一些区块链的应用场景中,有时需要根据世界状态中某些变量的值来执行某些预设操作,例如,在基于区块链的隐私计算过程中,需要世界状态中某些变量的值满足一定的运行条件(比如,收集到足够的数据使用授权)才可以启动对应的隐私计算。针对这些场景,如何及时感知世界状态中变量的变化,并基于世界状态中变量的改变高效执行预设操作具有重要的现实意义和价值。
发明内容
本说明书的一个或多个实施例描述了一种基于变量状态自动执行合约的方法和装置。
根据第一方面,提供了一种基于变量状态自动执行合约的方法,上述方法包括:根据目标交易的执行结果确定目标类型的第一变量的状态发生改变,其中,上述目标交易调用第一合约;在上述第一合约的合约状态中确定是否包含针对上述第一变量的回调列表,其中,上述回调列表中的回调项包括回调合约的信息和回调参数;响应于确定包含针对上述第一变量的回调列表,基于上述回调列表中回调项的回调参数,执行回调合约。
根据第二方面,提供了一种基于变量状态自动执行合约的装置,上述装置包括:第一确定单元,配置为根据目标交易的执行结果确定目标类型的第一变量的状态发生改变,其中,上述目标交易调用第一合约;第二确定单元,配置为在上述第一合约的合约状态中确定是否包含针对上述第一变量的回调列表,其中,上述回调列表中的回调项包括回调合约的信息和回调参数;执行单元,配置为响应于确定包含针对上述第一变量的回调列表,基于上述回调列表中回调项的回调参数,执行回调合约。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当上述计算机程序在计算机中执行时,令计算机执行如第一方面中任一实现方式描述的方法。
根据第四方面,提供了一种区块链的节点,包括存储器和处理器,其特征在于,上述存储器中存储有可执行代码,上述处理器执行上述可执行代码时,实现如第一方面中任一实现方式描述的方法。
根据本说明书实施例提供的基于变量状态自动执行合约的方法和装置,在使用合约定义变量时,可以将状态改变后会影响预设操作执行的变量的类型声明为目标类型,其中,目标类型的第一变量可以通过第一合约定义。区块链的节点首先可以根据目标交易的执行结果确定目标类型的第一变量的状态发生改变,之后,在第一合约的合约状态中确定是否包含针对第一变量的回调列表,回调列表中的回调项包括回调合约的信息和回调参数。如果确定第一合约的合约状态中包含针对第一变量的回调列表,基于回调列表中回调项的回调参数执行回调合约,基于回调合约可以执行预设操作,从而实现了及时感知世界状态中目标类型的变量的状态变化,并基于目标类型的变量的状态的改变自动执行预设操作。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了一个实施例中的区块链架构图;
图2示出了本说明书实施例可以应用于其中的一个应用场景的示意图;
图3示出了根据一个实施例的基于变量状态自动执行合约的方法的流程示意图;
图4示出了针对第一变量注册回调项的一个例子的流程示意图;
图5示出了针对第一变量注销回调项的一个例子的流程示意图;
图6示出了根据一个实施例的基于变量状态自动执行合约的装置的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
为了进一步说明区块链技术,图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链100中例如包含6个节点。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接。这些节点上可存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点可通过执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点可存储相同的状态数据库。可以理解,图1中虽然示出了区块链中包括6个节点,本说明书实施例不限于此,而是可以包括其他数目的节点。具体是,区块链中包含的节点可以满足拜占庭容错(Byzantine Fault Tolerance,BFT)要求。所述的拜占庭容错要求可以理解为在区块链内部可以存在拜占庭节点,而区块链对外不体现拜占庭行为。一般的,一些拜占庭容错算法中要求节点个数大于3f+1,f为拜占庭节点个数,例如实用拜占庭容错算法PBFT (Practical Byzantine Fault Tolerance)。
区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。在交易调用区块链中的智能合约的情况中,From字段表示发起该交易的账户地址,To字段表示交易所调用的合约的账户地址,Data字段中包括调用合约中的函数名、及对该函数的传入参数等数据,以用于在交易执行时从区块链中获取该函数的代码并执行该函数的代码。
区块链中可提供智能合约的功能。区块链上的智能合约是在区块链***上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,使得以太坊网络中每个节点分布式地运行智能合约代码。需要说明的是,除了可以由用户创建智能合约,也可以在创世块中由***设置智能合约。这类合约一般称为创世合约。一般的,创世合约中可以设置一些区块链的数据结构、参数、属性和方法。此外,具有***管理员权限的账户可以创建***级的合约,或者修改***级的合约(简称为***合约)。其中,所述***合约可用于在区块链中增加不同业务的数据的数据结构。
在部署合约的场景中,例如,Bob将一个包含创建智能合约信息(即部署合约)的交易发送到如图1所示的区块链中,该交易的data字段包括待创建的合约的代码(如字节码或者机器码),交易的to字段为空,以表示该交易用于部署合约。节点间通过共识机制达成一致后,确定合约的合约地址“0x6f8ae93…”,各个节点在状态数据库中添加与该智能合约的合约地址对应的合约账户,分配与该合约账户对应的状态存储,并将合约代码保存在该合约的状态存储中,从而合约创建成功。
在调用合约的场景中,例如,Bob将一个用于调用智能合约的交易发送到如图1所示的区块链中,该交易的from字段是交易发起方(即Bob)的账户的地址,to字段中的“0x6f8ae93…”代表了被调用的智能合约的地址,交易的data字段包括调用智能合约的方法和参数。在区块链中对该交易进行共识之后,区块链中的各个节点可分别执行该交易,从而分别执行该合约,基于该合约的执行更新状态数据库。
如前所述,在一些区块链的应用场景中,有时需要根据世界状态中某些变量的值来执行预设操作。举例来说,在基于区块链的隐私计算过程中,需要收集到足够的数据使用授权才可以启动隐私计算操作对应的工作流合约。为此,在一种方案中,隐私计算对应的工作流合约的数据授权添加功能除了添加授权外,还需要检查基于交易添加授权后是否已经获得了所需的数据访问授权,并在授权满足要求后,主动以工作流发起者身份在本交易的执行过程中去启动工作流合约。这种方案需要将根据授权添加情况自动启动工作流合约的逻辑写入合约体,不够灵活,无法应对合约开发时未预期到的功能需求。且为了扩充合约能力而对合约进行升级还会牵涉到相关各方面的审核。根据另一种方案,区块链支持通过交易查询工作流合约已获得的授权状态,工作流发起者外部定期调用查询接口,在确定工作流合约获得足够授权后,发送交易启动工作流。这种方案需要外部定期通过交易采用轮询方式去查询授权状态,缺乏实时性,也使得计算具有较高的能耗。
为此,本说明书的实施例提供了一种基于变量状态自动执行合约的方法,从而实现了及时感知世界状态中变量的状态变化,并基于变量状态的改变自动执行预设操作。
如图2所示,图2示出了本说明书实施例可以应用于其中的一个应用场景的示意图,本应用场景可以是基于区块链进行隐私计算的场景。本场景中,数据使用授权数量达到一定量之后,可以启动对应的隐私计算。也就是说,用于表示授权数据数量的变量N1的值在改变后会影响隐私计算对应操作的执行,因此,在通过合约C1定义变量N1时,将变量N1的类型声明为目标类型,并将变量N1的信息存储在合约C1的合约状态中。作为示例,可以允许用户查询世界状态中目标类型的变量的状态。
区块链的节点可以接收调用方B发送的用于注册回调项的交易Tx1,交易Tx1可以调用合约 C1,交易Tx1可以包括变量N1的变量名、回调合约的回调参数和回调合约的信息(例如,回调合约的合约地址)。本例中,回调合约可以用于判断当前时刻变量N1是否超过预设的数量阈值,当变量N1超过预设数量阈值时,调用用于进行隐私计算的工作流合约进行相关的隐私计算操作。区块链的节点可以执行交易Tx1,在针对变量N1预先设置的回调列表中添加回调项,其中,回调项可以包括回调合约的信息、调用方B的账户和回调合约的回调参数。作为示例,变量N1对应的回调列表可以存储在合约C1的合约状态中。
这样,数据所有者A可以向区块链的节点发送用于将授权信息上链的目标交易,该目标交易可以调用合约C1。区块链的节点可以接收和执行数据所有者A发送的目标交易,并根据目标交易的执行结果确定目标类型的变量N1的状态发生改变。此时,区块链的节点可以在合约C1 的合约状态中确定是否包含针对变量N1的回调列表,回调列表中的回调项可以包括回调合约的信息和回调参数。如果合约C1的合约状态中包括针对变量N1的回调列表,则基于回调列表中的回调项的回调参数执行回调合约,该回调合约可以判断当前时刻变量N1的值是否超过预设的数量阈值,如果超过,则调用用于进行隐私计算的工作流合约进行相关的隐私计算操作。从而实现了及时感知变量N1的变化,并基于变量N1的世界状态的改变自动调用隐私计算对应的工作流合约,进行隐私计算操作。本方法不需要在隐私计算对应的工作流合约的合约体中规定变量N1的世界状态发生改变后需要执行的动作,而是由调用方B通过注册回调项的方式来进行定制,具有灵活性。此外,本方法不需要外部定期通过交易采用轮询方式去查询变量N1 的值,节约了能耗。
继续参见图3,图3示出了根据一个实施例的基于变量状态自动执行合约的方法的流程示意图。可以理解,该方法可以通过区块链的节点来执行,区块链的节点可以由任何具有计算、处理能力的装置、设备、设备集群等来实现。
如图3所示,该基于变量状态自动执行合约的方法,可以包括以下步骤:
步骤301,根据目标交易的执行结果确定目标类型的第一变量的状态发生变化。
在本实施例中,区块链的节点可以接收和执行用户发送的目标交易,执行完该目标交易后,区块链的节点可以根据该目标交易的执行结果确定目标类型的第一变量的状态发生改变。也就是说,目标交易的执行结果会改变世界状态中目标类型的第一变量的状态。这里,目标类型的第一变量可以是预先通过第一合约定义的,在通过第一合约定义第一变量的时候,可以将第一变量的类型声明为目标类型,并将第一变量的信息(例如,变量值、变量名、属性等等)存储在第一合约的合约状态中。上述目标交易可以调用第一合约,以改变第一合约的合约状态中记录的第一变量的变量值。
为了在第一变量的状态发生变化后,自动执行预设操作,用户可以在针对第一变量预设的回调列表中注册针对第一变量的回调项,其中,针对第一变量的回调列表可以存储在第一合约的合约状态中。这里,用户可以是调用回调合约的调用方。这样,区块链的节点可以基于当前世界状态中第一变量的状态自动执行该回调合约,举例来说,当确定某交易执行后第一合约的合约状态中第一变量的状态发生改变时,可以调用用户预先针对第一变量注册的回调列表中的回调项。
在一些可选的实现方式中,如图4所示,图4示出了针对第一变量注册回调项的一个例子的流程示意图。图4所示的例子中,可以通过以下方式针对第一变量注册回调项:
S401,回调合约的调用方可以向区块链发送用于注册回调项的第一交易。
在本实现方式中,该第一交易可以包括第一变量的变量名、回调合约的信息和回调合约的回调参数。这里,回调合约的信息可以包括回调合约的代码、回调合约的地址等等。回调参数可以是指调用回调合约时使用的参数。实践中,调用方可以根据实际的业务需要设置回调合约的回调参数,以及在回调合约中定义对应的业务逻辑,即定义针对第一变量的状态变化要对应执行的操作。例如,在隐私计算的业务场景中,假设第一变量为隐私计算中的数据访问授权量,回调合约可以用于判断当前时刻数据访问授权量是否超过预设的数量阈值,当数据访问授权量超过该数量阈值时,调用预设的工作流合约,该工作流合约可以用于进行隐私计算的相关操作。具体的,可以在回调合约中定义隐私计算对应的工作流合约的合约地址,以及调用隐私计算的对应工作流合约的业务逻辑,比如,业务逻辑可以是当授权数据数量超过预设值时调用隐私计算的对应的工作流合约。又例如,在一个根据账号的账号余额发送邮件的业务场景中,可以在回调合约中定义发送邮件的业务逻辑,比如,业务逻辑可以是当账户余额少于预设值时,向账户对应的邮箱自动发送预设内容邮件。
区块链的节点可以接收调用方发送的用于注册回调项的第一交易,该第一交易可以调用第一合约。
S403,区块链的节点可以执行第一交易,在针对第一变量预先设置的回调列表中添加回调项。
在本实现方式中,区块链的节点可以执行第一交易,调用第一合约,在针对第一变量预先设置的回调列表中添加一个回调项,该回调项可以包括回调合约的信息、调用方的账户、回调合约的回调参数等等。其中,针对第一变量的回调列表可以存储在第一合约的合约状态中。可以理解,当有调用方针对第一变量注册回调项时,才会针对第一变量设置回调列表。如果没有调用方针对第一变量注册回调项,或者针对第一变量注册的回调项在注册后又被注销,则可以不针对第一变量设置回调列表。通过本实现方式,调用方可以根据实际的业务需要针对第一变量设置回调项,并在回调项包括的回调合约中定义针对第一变量的状态变化要执行的操作。本方式通过注册回调项来定制当第一变量的状态变化时要执行的操作,而不需要修改与业务相关的其他已有合约,因此,具有灵活性。
在一些可选的实现方式中,如图5所示,图5示出了针对第一变量注销回调项的一个例子的流程示意图。图5所示的例子中,调用方还可以通过以下方式注销针对第一变量注册的回调项:
S501,回调合约的调用方可以向区块链发送用于注销回调项的第二交易。
在本实现方式中,该第二交易可以包括调用方的账户和第一变量的变量名。
区块链的节点可以接收调用方发送的用于注销回调项的第二交易,该第二交易可以调用第一合约。
S503,区块链的节点可以执行第二交易,在针对第一变量对应的回调列表中删除包含调用方的账户的回调项。
在本实现方式中,区块链的节点可以执行第二交易,以调用第一合约,在针对第一变量对应的回调列表中删除包含调用方的账户的回调项。具体的,区块链的节点可以根据第二交易中包括的第一变量的变量名,在第一合约的合约状态中查找针对第一变量的回调列表,然后从查找到的回调列表中删除包含调用方的账户的回调项。通过本实现方式,调用方可以根据实际的业务需要删除之前针对第一变量设置的回调项,从而实现回调项的灵活设置。
步骤302,在第一合约的合约状态中确定是否包含针对第一变量的回调列表。
在本实施例中,在根据目标交易的执行结果确定目标类型的第一变量的状态发生改变后,区块链的节点可以在第一合约的合约状态中确定是否包含针对第一变量的回调列表。其中,回调列表中可以包括回调项,回调项可以包括回调合约的信息、回调参数等等。
步骤303,响应于确定包含针对第一变量的回调列表,基于回调列表中回调项的回调参数,执行回调合约。
在本实施例中,如果区块链的节点确定在第一合约的合约状态中包含针对第一变量的回调列表,则区块链的节点可以基于该回调列表中的回调项的回调参数,执行回调合约。实践中,针对第一变量的回调列表中可以包括一条或多条回调项,例如,可以包括一个调用方注册的一条回调项,还可以包括多个调用方注册的多个回调项。
在一些可选的实现方式中,步骤303中的基于回调列表中回调项的回调参数,执行回调合约,可以具体如下进行:在目标交易执行完成后,基于回调列表中回调项的回调参数,执行回调项包括的回调合约的信息所对应的回调合约。通过本实现方式,可以在目标交易执行完成后,立即执行第一变量的回调列表中包含的回调项对应的回调合约。
在另一些可选的实现方式中,上述目标交易可以是目标区块中的交易,该目标区块可以是达成共识的区块,该目标区块内可以包括一个或者多个交易。以及步骤303中的基于回调列表中回调项的回调参数,执行回调合约,还可以具体如下进行:
首先,区块链的节点可以判断当前时刻目标区块中包含的多个交易是否执行完成。
其次,响应于确定当前时刻目标区块中包含的交易没有执行完成,可以将第一变量的变量名添加到预设的待调用列表中。
然后,响应于确定当前时刻目标区块中包含的交易执行完成,将第一变量的变量名添加到待调用列表之后,基于待调用列表中包含的变量名,从对应变量的回调列表的回调项中确定对应的回调合约和回调参数,并通过确定的回调参数调用对应的回调合约。
在本实现方式中,如果目标交易所在的目标区块中包括多个交易,则区块链的节点可以判断当前时刻目标区块中的多个交易是否都执行完成。如果目标区块中的多个交易没有都执行完成,则可以将第一变量的变量名添加到预设的待调用列表中,实践中,待调用列表中可以包括一个或者多个目标类型的变量的变量名。如果目标区块中的多个交易都执行完成,则可以在将第一变量的变量名添加到待调用列表之后,根据待调用列表中包含的至少一个变量的变量名执行对应的回调合约。以第一变量为例,区块链的节点可以根据第一变量的变量名从第一合约的合约状态中查询第一变量的回调列表,而后从第一变量的回调列表的回调项中确定对应的回调合约和回调参数,并通过确定的回调参数调用对应的回调合约。通过本实现方式,可以在目标区块中的多个交易都执行完之后,再执行回调合约,从而增加了回调合约执行的灵活性。
可选的,区块链的节点还可以对待调用列表中包含的变量名对应的回调项进行排序。举例来说,区块链的节点首先可以获取待调用列表中变量名对应的变量的回调列表中的回调项,然后可以采用各种方式对获取的调用项进行排序,例如,随机排序。对待调用列表中包含变量名对应的回调项进行排序后,区块链的节点可以根据排序结果顺序执行各个回调项,具体的,对于某一个回调项,可以基于该回调项的回调参数调用对应的回调合约。
作为一个示例,目标类型的变量的回调列表中的回调项除了包括回调合约的信息、回调参数等之外,还可以包括回调优先级。作为示例,回调优先级可以是调用方在注册回调项的时候设置的。举例来说,调用方可以在注册回调项的时候,设置愿意为执行回调合约所付的费用,所付费用越高优先级越高。也就是说,区块链的节点可以根据付费高低确定回调项的优先级。基于此,上述对待调用列表中包含的变量名对应的回调项进行排序,可以具体如下进行:根据待调用列表中各变量名对应的回调项的回调优先级,对待调用列表中包含的各变量名对应的回调项进行排序。例如,可以按回调优先级由高到低的顺序进行排序。通过本实现方式中,可以基于回调项的回调优先级,来控制待调用列表中变量名对应的回调项的执行顺序。
作为另一示例,上述对待调用列表中包含的变量名对应的回调项进行排序,还可以具体如下进行:
首先,可以根据待调用列表中各变量名对应的回调项的回调合约、回调方账户,以及目标交易所在的目标区块的区块号,计算哈希。可以理解,实践中,还可以根据实际需要确定用于计算哈希的信息,不限于使用回调合约、回调方账户和区块号。例如,可以使用回调合约和回调方账户计算哈希。又例如,还可以使用回调合约、回调方账户和回调项的注册时间等计算哈希等等。
然后,根据哈希的计算结果,对待调用列表中包含的变量名对应的回调项进行排序。例如,可以按哈希计算结果由大到小或者由小到大的顺序进行排序。通过本实现方式中,可以基于哈希计算,确定待调用列表中变量名对应的回调项的执行顺序。
回顾以上过程,在本说明书的实施例中,在使用合约定义变量时,可以将状态改变后会影响预设操作执行的第一变量的类型声明为目标类型,其中,目标类型的第一变量可以通过第一合约定义。区块链的节点首先可以根据目标交易的执行结果确定目标类型的第一变量的状态发生改变,之后,在第一合约的合约状态中确定是否包含针对第一变量的回调列表,回调列表中的回调项包括回调合约的信息和回调参数。如果确定第一合约的合约状态中包含针对第一变量的回调列表,基于回调列表中回调项的回调参数执行回调合约,基于回调合约可以执行预设操作,从而实现了及时感知世界状态中目标类型的变量的状态变化,并基于目标类型的变量的状态的改变自动执行预设操作。
根据另一方面的实施例,提供了一种基于变量状态自动执行合约的装置。上述基于变量状态自动执行合约的装置可以部署在区块链的节点,区块链的节点可以由任何具有计算、处理能力的装置、设备、设备集群等来实现。
图6示出了根据一个实施例的基于变量状态自动执行合约的装置的示意性框图。如图6所示,该基于变量状态自动执行合约的装置600包括:第一确定单元601,配置为根据目标交易的执行结果确定目标类型的第一变量的状态发生改变,其中,上述目标交易调用第一合约;第二确定单元602,配置为在上述第一合约的合约状态中确定是否包含针对上述第一变量的回调列表,其中,上述回调列表中的回调项包括回调合约的信息和回调参数;执行单元603,配置为响应于确定包含针对上述第一变量的回调列表,基于上述回调列表中回调项的回调参数,执行回调合约。
在本实施例的一些可选的实现方式中,上述装置600还包括:第一接收单元(图中未示出),配置为接收调用方发送的用于注册回调项的第一交易,上述第一交易调用上述第一合约,其中,上述第一交易包括上述第一变量的变量名、回调合约的回调参数和回调合约的信息;添加单元(图中未示出),配置为执行上述第一交易,在针对上述第一变量预先设置的回调列表中添加回调项,其中,上述回调项包括上述回调合约的信息、上述调用方的账户和上述回调参数。
在本实施例的一些可选的实现方式中,上述装置600还包括:第二接收单元(图中未示出),配置为接收上述调用方发送的用于注销回调项的第二交易,上述第二交易调用上述第一合约,其中,上述第二交易包括上述第一变量的变量名;删除单元(图中未示出),配置为执行上述第二交易,在针对上述第一变量对应的回调列表中删除包含上述调用方的账户的回调项。
在本实施例的一些可选的实现方式中,上述执行单元603进一步配置为:在上述目标交易执行完成后,基于上述回调列表中回调项的回调参数,执行回调合约。
在本实施例的一些可选的实现方式中,上述目标交易为目标区块中的交易,以及上述执行单元603包括:变量名添加模块(图中未示出),配置为响应于确定当前时刻上述目标区块中包含的交易没有执行完成,将上述第一变量的变量名添加到预设的待调用列表中;合约调用模块(图中未示出),配置为响应于确定当前时刻上述目标区块中包含的交易执行完成,将上述第一变量的变量名添加到上述待调用列表之后,基于上述待调用列表中包含的变量名,从对应变量的回调列表的回调项中确定对应的回调合约和回调参数,并通过确定的回调参数调用对应的回调合约。
在本实施例的一些可选的实现方式中,上述装置600还包括:排序模块(图中未示出),配置为对上述待调用列表中包含的变量名对应的回调项进行排序。
在本实施例的一些可选的实现方式中,回调项还包括回调优先级,以及上述排序模块进一步配置为:根据待调用列表中各变量名对应的回调项的回调优先级,对上述待调用列表中包含的各变量名对应的回调项进行排序。
在本实施例的一些可选的实现方式中,上述排序模块进一步配置为:根据待调用列表中各变量名对应的回调项的回调合约、回调方账户,以及目标交易所在的目标区块的区块号,计算哈希;根据哈希的计算结果,对上述待调用列表中包含的变量名对应的回调项进行排序。
在本实施例的一些可选的实现方式中,上述第一变量为隐私计算中的数据访问授权量,以及上述回调合约用于判断当前时刻数据访问授权量是否超过预设的数量阈值,当数据访问授权量超过上述数量阈值时,调用预设的工作流合约,其中,上述工作流合约用于进行隐私计算的相关操作。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当上述计算机程序在计算机中执行时,令计算机执行图3所描述的方法。
根据再一方面的实施例,还提供一种区块链的节点,包括存储器和处理器,其特征在于,上述存储器中存储有可执行代码,上述处理器执行上述可执行代码时,实现图3所描述的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、 CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language) 等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、 Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器***。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(***)、和计算机程序产品的流程图和 /或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和 /或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、***或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (20)
1.一种基于变量状态自动执行合约的方法,所述方法包括:
根据目标交易的执行结果确定目标类型的第一变量的状态发生改变,其中,所述目标交易调用第一合约;
在所述第一合约的合约状态中确定是否包含针对所述第一变量的回调列表,其中,所述回调列表中的回调项包括回调合约的信息和回调参数;
响应于确定包含针对所述第一变量的回调列表,基于所述回调列表中回调项的回调参数,执行回调合约。
2.根据权利要求1所述的方法,其中,所述方法还包括:
接收调用方发送的用于注册回调项的第一交易,所述第一交易调用所述第一合约,其中,所述第一交易包括所述第一变量的变量名、回调合约的回调参数和回调合约的信息;
执行所述第一交易,在针对所述第一变量预先设置的回调列表中添加回调项,其中,所述回调项包括所述回调合约的信息、所述调用方的账户和所述回调参数。
3.根据权利要求2所述的方法,其中,所述方法还包括:
接收所述调用方发送的用于注销回调项的第二交易,所述第二交易调用所述第一合约,其中,所述第二交易包括所述第一变量的变量名;
执行所述第二交易,在针对所述第一变量对应的回调列表中删除包含所述调用方的账户的回调项。
4.根据权利要求1所述的方法,其中,所述基于所述回调列表中回调项的回调参数,执行回调合约,包括:
在所述目标交易执行完成后,基于所述回调列表中回调项的回调参数,执行回调合约。
5.根据权利要求1所述的方法,其中,所述目标交易为目标区块中的交易,以及
所述基于所述回调列表中回调项的回调参数,执行回调合约,包括:
响应于确定当前时刻所述目标区块中包含的交易没有执行完成,将所述第一变量的变量名添加到预设的待调用列表中;
响应于确定当前时刻所述目标区块中包含的交易执行完成,将所述第一变量的变量名添加到所述待调用列表之后,基于所述待调用列表中包含的变量名,从对应变量的回调列表的回调项中确定对应的回调合约和回调参数,并通过确定的回调参数调用对应的回调合约。
6.根据权利要求5所述的方法,其中,所述方法还包括:
对所述待调用列表中包含的变量名对应的回调项进行排序。
7.根据权利要求6所述的方法,其中,回调项还包括回调优先级,以及所述对待调用列表中包含的变量名对应的回调项进行排序,包括:
根据待调用列表中各变量名对应的回调项的回调优先级,对所述待调用列表中包含的各变量名对应的回调项进行排序。
8.根据权利要求6所述的方法,其中,所述对所述待调用列表中包含的变量名对应的回调项进行排序,包括:
根据待调用列表中各变量名对应的回调项的回调合约、回调方账户,以及目标交易所在的目标区块的区块号,计算哈希;
根据哈希的计算结果,对所述待调用列表中包含的变量名对应的回调项进行排序。
9.根据权利要求1所述的方法,其中,所述第一变量为隐私计算中的数据访问授权量,以及所述回调合约用于判断当前时刻数据访问授权量是否超过预设的数量阈值,当数据访问授权量超过所述数量阈值时,调用预设的工作流合约,其中,所述工作流合约用于进行隐私计算的相关操作。
10.一种基于变量状态自动执行合约的装置,所述装置包括:
第一确定单元,配置为根据目标交易的执行结果确定目标类型的第一变量的状态发生改变,其中,所述目标交易调用第一合约;
第二确定单元,配置为在所述第一合约的合约状态中确定是否包含针对所述第一变量的回调列表,其中,所述回调列表中的回调项包括回调合约的信息和回调参数;
执行单元,配置为响应于确定包含针对所述第一变量的回调列表,基于所述回调列表中回调项的回调参数,执行回调合约。
11.根据权利要求10所述的装置,其中,所述装置还包括:
第一接收单元,配置为接收调用方发送的用于注册回调项的第一交易,所述第一交易调用所述第一合约,其中,所述第一交易包括所述第一变量的变量名、回调合约的回调参数和回调合约的信息;
添加单元,配置为执行所述第一交易,在针对所述第一变量预先设置的回调列表中添加回调项,其中,所述回调项包括所述回调合约的信息、所述调用方的账户和所述回调参数。
12.根据权利要求11所述的装置,其中,所述装置还包括:
第二接收单元,配置为接收所述调用方发送的用于注销回调项的第二交易,所述第二交易调用所述第一合约,其中,所述第二交易包括所述第一变量的变量名;
删除单元,配置为执行所述第二交易,在针对所述第一变量对应的回调列表中删除包含所述调用方的账户的回调项。
13.根据权利要求10所述的装置,其中,所述执行单元进一步配置为:
在所述目标交易执行完成后,基于所述回调列表中回调项的回调参数,执行回调合约。
14.根据权利要求10所述的装置,其中,所述目标交易为目标区块中的交易,以及
所述执行单元包括:
变量名添加模块,配置为响应于确定当前时刻所述目标区块中包含的交易没有执行完成,将所述第一变量的变量名添加到预设的待调用列表中;
合约调用模块,配置为响应于确定当前时刻所述目标区块中包含的交易执行完成,将所述第一变量的变量名添加到所述待调用列表之后,基于所述待调用列表中包含的变量名,从对应变量的回调列表的回调项中确定对应的回调合约和回调参数,并通过确定的回调参数调用对应的回调合约。
15.根据权利要求14所述的装置,其中,所述装置还包括:
排序模块,配置为对所述待调用列表中包含的变量名对应的回调项进行排序。
16.根据权利要求15所述的装置,其中,回调项还包括回调优先级,以及所述排序模块进一步配置为:
根据待调用列表中各变量名对应的回调项的回调优先级,对所述待调用列表中包含的各变量名对应的回调项进行排序。
17.根据权利要求15所述的装置,其中,所述排序模块进一步配置为:
根据待调用列表中各变量名对应的回调项的回调合约、回调方账户,以及目标交易所在的目标区块的区块号,计算哈希;
根据哈希的计算结果,对所述待调用列表中包含的变量名对应的回调项进行排序。
18.根据权利要求10所述的装置,其中,所述第一变量为隐私计算中的数据访问授权量,以及所述回调合约用于判断当前时刻数据访问授权量是否超过预设的数量阈值,当数据访问授权量超过所述数量阈值时,调用预设的工作流合约,其中,所述工作流合约用于进行隐私计算的相关操作。
19.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-9中任一项所述的方法。
20.一种区块链的节点,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-9中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210600436.9A CN114968422A (zh) | 2022-05-30 | 2022-05-30 | 基于变量状态自动执行合约的方法和装置 |
PCT/CN2022/135342 WO2023231342A1 (zh) | 2022-05-30 | 2022-11-30 | 基于变量状态自动执行合约的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210600436.9A CN114968422A (zh) | 2022-05-30 | 2022-05-30 | 基于变量状态自动执行合约的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968422A true CN114968422A (zh) | 2022-08-30 |
Family
ID=82958417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210600436.9A Pending CN114968422A (zh) | 2022-05-30 | 2022-05-30 | 基于变量状态自动执行合约的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114968422A (zh) |
WO (1) | WO2023231342A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023231342A1 (zh) * | 2022-05-30 | 2023-12-07 | 蚂蚁区块链科技(上海)有限公司 | 基于变量状态自动执行合约的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037211B2 (en) * | 2016-08-04 | 2021-06-15 | Clarovia Holdings, Llc | Systems and methods for using smart contracts to control the trade, supply, manufacture, and distribution of commodities |
CN110929229A (zh) * | 2019-11-26 | 2020-03-27 | 中国石油大学(华东) | 一种基于区块链的office文档可信性验证方法及*** |
CN112819621B (zh) * | 2021-01-22 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 一种智能合约资损测试方法及*** |
CN114968422A (zh) * | 2022-05-30 | 2022-08-30 | 蚂蚁区块链科技(上海)有限公司 | 基于变量状态自动执行合约的方法和装置 |
-
2022
- 2022-05-30 CN CN202210600436.9A patent/CN114968422A/zh active Pending
- 2022-11-30 WO PCT/CN2022/135342 patent/WO2023231342A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023231342A1 (zh) * | 2022-05-30 | 2023-12-07 | 蚂蚁区块链科技(上海)有限公司 | 基于变量状态自动执行合约的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023231342A1 (zh) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020542B (zh) | 数据读写方法及装置、电子设备 | |
CN110992038B (zh) | 交易处理方法、装置及设备 | |
TWI694700B (zh) | 資料處理方法和裝置、用戶端 | |
CN114827165B (zh) | 对多个交易进行分组的方法和区块链节点 | |
WO2023160083A1 (zh) | 执行交易的方法、区块链、主节点和从节点 | |
CN107578338B (zh) | 一种业务发布方法、装置及设备 | |
WO2019085601A1 (zh) | 一种任务执行的方法及装置 | |
WO2023160085A1 (zh) | 执行交易的方法、区块链、主节点和从节点 | |
CN109145053B (zh) | 数据处理方法和装置、客户端、服务器 | |
CN114936256A (zh) | 在区块链中执行交易的方法和区块链节点 | |
CN114968422A (zh) | 基于变量状态自动执行合约的方法和装置 | |
CN114785800B (zh) | 跨链通信方法、装置、存储介质及计算设备 | |
CN115150409B (zh) | 在区块链***中执行交易的方法、区块链***、节点及计算机可读存储介质 | |
CN115098483A (zh) | 一种预执行缓存数据清理方法和区块链节点 | |
CN116032756A (zh) | 基于区块链更新应用程序的配置信息的方法和区块链节点 | |
CN115098114A (zh) | 一种基于区块链的分布式应用部署方法及装置 | |
EP3779691B1 (en) | Data processing method and apparatus | |
CN114268540B (zh) | 规则引擎的优化方法、装置及设备 | |
CN115063238A (zh) | 基于区块链处理数字资源的方法和区块链的节点 | |
WO2024092932A1 (zh) | 交易执行方法和区块链节点 | |
CN116647566A (zh) | 基于区块链的访问管理方法和装置 | |
CN115880071A (zh) | 处理数字资源的方法和区块链的节点 | |
CN115731040A (zh) | 基于区块链的藏品管理方法、区块链节点和*** | |
CN116226277A (zh) | 一种nft资源转移方法和区块链节点 | |
CN114638702A (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 |