CN110249307A - 用于在区块链上执行原生合约的***和方法 - Google Patents

用于在区块链上执行原生合约的***和方法 Download PDF

Info

Publication number
CN110249307A
CN110249307A CN201880008016.3A CN201880008016A CN110249307A CN 110249307 A CN110249307 A CN 110249307A CN 201880008016 A CN201880008016 A CN 201880008016A CN 110249307 A CN110249307 A CN 110249307A
Authority
CN
China
Prior art keywords
block chain
contract
chain contract
type
execute
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
Application number
CN201880008016.3A
Other languages
English (en)
Other versions
CN110249307B (zh
Inventor
孙赫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110249307A publication Critical patent/CN110249307A/zh
Application granted granted Critical
Publication of CN110249307B publication Critical patent/CN110249307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Strategic Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Bioethics (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

一种计算机实施的用于在区块链上实现原生合约的方法,包括:获取与区块链合约相关的组合字节码,其中,所述组合字节码包括表示所述区块链合约的类型的指示符;至少基于所述指示符确定所述区块链合约的类型;以及基于确定的所述区块链合约的类型执行所述区块链合约。

Description

用于在区块链上执行原生合约的***和方法
技术领域
本申请总体涉及用于在区块链上执行原生合约(native contract)的***和方法。
背景技术
区块链技术允许以去中心化方式存储数据。数据可存储在相互之间具有优先关系的一系列数据块中,这些数据块形成区块的链。区块的链由节点网络维护,该节点网络也负责在将数据存储到区块中之前验证数据。由于节点采用了密码技术和共识技术,所以存储在区块链中的数据几乎是不可改变的。节点网络也被称为区块链共识网络。近来,区块链技术已经扩展为提供用于执行区块链合约(或称为智能合约)的框架。区块链合约是一种计算机协议,其旨在以数字方式促进、验证或施行合约的协商或履行。例如,区块链合约允许在没有第三方的情况下执行可信交易。
当前的智能合约大多是运行在以太坊虚拟机(EVM)上的Solidity合约,因为它们需要以Solidity语言编写。Solidity合约是驻留在以太坊区块链上的特定地址处的代码(合约函数)和数据(合约状态)的集合。一些其他智能合约是原生合约。原生合约可以以非Solidity的语言编写。原生合约不应与预编译合约混淆。预编译合约是运行在EVM之外但是可从EVM调用的可重用函数(reusable function)。例如,SHA256、RIPEMD160和ECRECOVER被作为预编译合约来实施。原生合约允许程序员编写非确定性、无限运行和沙盒转义代码。对于原生合约,开发人员不受限于GAS(在以太坊上进行的每次操作的执行费用)和GAS限制,并且代码运行明显快于EVM。然而,当前的区块链***需要以Solidity编写的合约,并且缺乏对执行原生合约的足够支持。
发明内容
本申请的不同实施例包括用于在区块链上实现原生合约的***、方法和非暂时性计算机可读介质。
根据一个方面,一种计算机实施的用于在区块链上实现原生合约的方法,包括:获取与区块链合约相关的组合字节码,其中,组合字节码包括表示区块链合约的类型的指示符;至少基于指示符确定区块链合约的类型;以及基于确定的区块链合约的类型执行区块链合约。
在一些实施例中,组合字节码包括从区块链合约的源代码编译的动态库文件的字节码。在一个示例中,源代码为C++。
在一些实施例中,至少基于指示符确定区块链合约的类型包括:确定区块链合约的类型是否为原生合约。
在一些实施例中,基于确定的区块链合约的类型执行区块链合约包括:响应于确定区块链合约为原生合约,触发区块链虚拟机执行区块链合约。触发虚拟机执行区块链合约包括:至少基于指示符确定与该类型相应的虚拟机;以及触发确定的虚拟机以执行动态库文件。
在一些实施例中,基于确定的区块链合约的类型执行区块链合约包括:响应于确定区块链合约为原生合约,创建子进程来执行区块链合约。创建子进程来执行区块链合约包括:创建可执行文件;以及生成子进程以启动可执行文件来执行动态库文件。子进程和区块链虚拟机经由套接字(socket)或共享存储器通信。
在一些实施例中,基于确定的区块链合约的类型执行区块链合约包括:响应于确定区块链合约为原生合约,启动Docker容器来执行区块链合约。启动Docker容器来执行区块链合约包括:创建Docker容器;以及启动Docker容器来执行所述动态库文件。Docker容器和区块链虚拟机经由套接字通信。
根据另一个方面,一种非暂时性计算机可读存储介质,配置有可由一个或多个处理器执行的指令,以使一个或多个处理器执行包括以下的操作:获取与区块链合约相关的组合字节码,其中,组合字节码包括表示区块链合约的类型的指示符;至少基于指示符确定区块链合约的类型;以及基于确定的区块链合约的类型执行区块链合约。
根据另一个方面,一种用于在区块链上实现原生合约的***,包括一个或多个处理器和一个或多个非暂时性计算机可读存储器,该非暂时性计算机可读存储器耦接到一个或多个处理器并配置有可由一个或多个处理器执行的指令,以使该***执行操作,包括:获取与区块链合约相关的组合字节码,其中,组合字节码包括表示区块链合约的类型的指示符;至少基于指示符确定区块链合约的类型;以及基于确定的区块链合约的类型执行区块链合约。
在参照附图考虑以下描述和所附权利要求时,本文公开的***、方法和非暂时性计算机可读介质的这些和其他特征,以及结构的相关元件的操作的方法和功能以及部件的组合和制造的经济情况将变得更为明显,本文的所有附图形成本说明书的一部分,在不同的附图中,相同的附图标记指代相应的部件。然而,应明确理解,附图仅用于示例和说明,并不旨在限定本发明。
附图说明
本技术的不同实施例的某些特征在所附权利要求书中详细阐述。通过参照下述示例性实施例的详细说明,将获得对该技术的特征和优点的更好理解,在示例性实施例中利用了本发明的原理,示例性实施例中的附图:
图1A示出根据不同实施例的用于在区块链上实施原生合约的示例性***。
图1B示出根据不同实施例的用于实施区块链合约的示例性框架。
图2示出根据不同实施例的用于添加指示符的示例性方法。
图3A示出根据不同实施例的用于在区块链上实施原生合约的示例性方法。
图3B示出根据不同实施例的用于在区块链上实施原生合约的示例性方法。
图3C示出根据不同实施例的用于在区块链上实施原生合约的示例性方法。
图4示出根据不同实施例的用于在区块链上实施原生合约的示例性方法的流程图。
图5示出根据不同实施例的用于在区块链上实施原生合约的示例性计算机***的框图。
图6示出示例性计算机***的框图,在该示例性计算机***中可以实施本文描述的任何实施例。
具体实施方式
区块链可被视为去中心化数据库,通常被称为分布式账本,因为操作是由点对点(Peer-to-Peer,P2P)网络中的不同节点(例如,计算设备)来执行的。任何信息都可写至区块链,并且保存至该区块链或从该区块链读取。例如,节点是支持区块链网络并保持其平稳运行的计算设备或大型计算机***。每个节点可提供区块链的一部分或全部功能。例如,提供共识验证的节点可称为共识参与节点(或共识节点)。
图1A示出根据不同实施例的用于执行各种公开步骤和方法的示例性***100。如图所示,区块链网络可包括多个区块链节点(例如,节点1、节点2、节点3、节点4、节点i等)。区块链节点可形成网络(例如,点对点网络),其中一个区块链节点与另一个区块链节点通信。如图所示的区块链节点的顺序和数量只是示例性的,且是为了简单说明。可在服务器、计算机等中实施区块链节点。每个区块链节点可对应经由诸如TCP/IP的各种类型的通信方法耦接在一起的一个或多个物理硬件设备或虚拟设备。按照分类,区块链节点可包括全量节点、Geth节点、共识节点等。
在不同实施例中,用户A和用户B可使用诸如笔记本电脑和手机的相应设备来触发区块链节点执行交易,这些交易可通过区块链合约(例如,智能合约)来执行。例如,用户A可能想要通过将用户A的账号中的某些资产转移到用户B的账号来与用户B交易。用户A和用户B可使用安装有用于交易的适当区块链软件(例如,加密货币钱包)的相应设备。用户A的设备可称为发起节点A,其发起与用户B的设备(称为接收节点B)的交易。节点A可通过与节点1的通信来访问区块链,节点B可通过与节点2的通信来访问区块链。例如,节点A和节点B可经过节点1和节点2向区块链提交交易,以请求将交易添加到区块链。在区块链之外,节点A和节点B可具有其他通信渠道(例如,不经过节点1和节点2的常规互联网通信)。在一些实施例中,节点A上的区块链软件可视为区块链节点1的前端,区块链节点1运行区块链软件的后端。
图1A中的每个节点可包括处理器和非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质配置有可由处理器执行的指令,以使节点执行这里描述的用于在区块链上实施原生合约的各种步骤。每个节点可安装有软件(例如,交易程序)和/或硬件(例如,有线、无线连接),以与其他节点和/或其他设备通信。例如,诸如节点A和节点B的用户设备可安装有诸如加密货币钱包的用户端软件,区块链节点可安装有区块链交易处理软件。节点硬件和软件的更多细节在下文参照图5和图6进行描述。
区块链节点可各自包括存储器或耦接到存储器。在一些实施例中,存储器可存储池数据库(pool database)。池数据库可以以分布式被多个区块链节点访问。例如,池数据库可以分别存储在区块链节点的存储器中。池数据库可存储由一个或多个用户设备(诸如由用户操作的节点A)提交的多个交易。在关于以太***的一些实施例中,在接收到未确认交易的交易请求之后,接收方区块链节点可以对交易执行初步验证。例如,参照图1A,节点1可以在从节点A接收到交易后执行初步验证。一旦验证,交易就可被存储在接收方区块链节点的池数据库中,该接收方区块链节点也可将该交易发送到一个或多个其他区块链节点(例如,节点3、节点4),其重复由接收方节点进行的处理。一旦对应池数据库中的交易达到一定水平,区块链节点就可各自根据共识规则或其他方法来验证对应池数据库中的一批交易。如果交易涉及区块链合约,区块链节点可以在本地执行区块链合约。成功验证一批交易(例如,根据共识规则)的特定区块链节点可以封装交易以添加到区块链的本地副本中,并将结果传播到其他区块链节点。该特定区块链节点可以是首个完成成功验证的节点、已获得验证特权的节点或基于另一个共识规则确定的节点。其他区块链节点可以在本地执行交易,相互验证执行结果(例如,通过执行哈希计算),并将他们的区块链副本与特定区块链节点的副本同步。通过更新区块链的本地副本,区块链节点可以将这些信息写入本地存储器。如果验证在某些点失败,则交易被拒绝。
图1B示出根据不同实施例的用于实施区块链合约的示例性框架。下面给出的操作旨在示例。按照实施例,示例性步骤可包括以不同顺序或并行执行的附加步骤、较少步骤或替代步骤。
在不同实施例中,为了部署区块链合约,节点A可以使用编译器来编译区块链合约源代码,该编译器返回字节码。节点A可以构造并签名包括字节码的交易。例如,交易可包括诸如nonce(随机数)、gasPrice(交易价格)、gasLimit(交易限制)、to(至)(例如,待调用的区块链合约或接收方账号的地址)、value(值)、data(数据)(例如,字节码)等信息。节点A可经由远程过程调用(RPC)接口将交易发送到区块链节点1。RPC是指当计算机程序促使过程(例如,子进程)在不同的地址空间(例如,在诸如共享网络上的节点1的另一台计算机上)执行时,该计算机程序被编码为正常(本地)过程调用,而无需程序员明确地编码远程交互的细节。节点1可通过验证签名来验证交易是否有效。一旦验证,节点1就可将交易广播到区块链网络,该区块链网络包括不同的其他区块链节点。区块链节点可通过本地虚拟机(VM)上的计算来验证交易,并将验证的交易打包到区块链的新区块中。新区块将被同步到所有区块链节点。
目前的诸如以太***的区块链平台只支持Solidity合约。Solidity是一种面向合约的编程语言,用于编写由以太虚拟机(EVM)实施的区块链合约。这些区块链***不支持诸如C++、Java、Python等其他编程语言的合约语言。因此,区块链***不支持或不执行原生合约(例如,以C++或其他非Solidity语言编写的区块链合约)。现有技术的这种缺陷抑制了区块链***的发展并且限制了区块链***的应用。
为了至少缓解当前技术的缺陷、提供上述技术问题的技术解决方案并改进计算机功能,公开了用于在区块链上实施原生合约的***和方法。可以通过使用动态库来扩展智能合约的应用以实现对原生合约的支持。作为示例,下面的***和方法是基于C++***描述的。本领域的普通技术人员将理解所公开的***和方法在各种其他计算机语言***上的应用。
图2示出根据不同实施例的用于添加指示符的示例性方法。下面给出的操作旨在示例性的。按照实施例,示例性步骤可包括以不同的顺序或并行执行的附加步骤、较少步骤或替代步骤。虽然图2使用C++作为示例性编程语言,但是可使用其他不同的编程语言来编写区块链合约。
在步骤201,用户可在用户设备上以C++编程区块链合约。示出了示例性C++源代码的一部分。源代码可被发送到编译器(例如,C++编译器)。编译器可以在用户设备上,或者在耦接至用户设备的另一台设备上。
在步骤202,编译器可将源代码(例如,.cpp文件)编译为区块链合约的字节码(例如,.so文件)。在一些实施例中,用户可以在前端以各种编程语言(例如,Java、C++、Python)构建区块链合约。前端软件可被加载到用户设备。然后,与前端关联的编译器可以将区块链合约编译成字节码。编译器可以是将以一种编程语言(源语言)编写的计算机代码转换成另一种编程语言(目标语言)的计算机软件。编译器可以将源代码从高级编程语言转换为低级语言(例如汇编语言、目标代码或机器码),以创建可执行程序。字节码,也称为可移植代码或p代码,是为软件解释器高效执行而设计的指令集的形式。区块链合约可用各种编程语言的人类可读的源代码编写,而字节码可称为机器码或目标代码。与人类可读的源代码不同,字节码是压缩数字代码、常量和参数(例如,数字地址),其编码编译器对程序对象的类型、范围和嵌套深度等事项进行解析和语义分析的结果。在这种情况下,字节码可被区块链节点读取以执行区块链合约。
作为示例,示出了编译后的字节码的十六进制区域的前几个字节。为了清晰起见,字节码的某些部分诸如地址区和ASCII区没有被示出。字节码可以是十六进制。在本说明书中,C++字节码可以被包含在动态库文件(例如,.so文件)中,该动态库文件包含用于与C++对应的虚拟机执行程序的指令。在不同实施例中,动态库存在于可执行文件或应用程序之外。在运行期间,在动态库与可执行文件或应用程序之间建立链接。在程序执行期间,包括特殊功能的动态库被启动,其可以最小化总体程序大小并有助于提高应用程序性能,从而减少存储器消耗。
在步骤203,用户设备(例如,钱包软件)可以在区块链合约的编译后的字节码中***指示符。作为这里所示的示例,指示符可以被添加到字节码的最前面。指示符可包括指示区块链合约的类型(例如,区块链合约是否为原生合约,区块链合约的编程语言等)的一个字节数据。在此示例中,指示符是03,其表示原生合约以及引用C++。指示符也可以是十六进制。所以,这里03指的是0x03。可替换地使用其他各种表示。指示符也可以被***到字节码的另一位置。
在一些实施例中,用户设备(例如,安装有数字加密货币钱包或另一区块链平台软件)可提示用户输入、选择或以其他方式识别区块链合约的合约类型(例如,原生合约、Solidity合约、Java编写的合约、C++编写的合约、Python编写的合约等)。基于用户提供的信息,用户设备可以应用指示符来表示合约类型。可替换地,用户设备可自动检测合约类型并应用指示符来表示合约类型。例如,“03”或“0x03”可表示原生合约,“05”或“0x05”可表示Solidity合约。在另一示例中,“01”或“0x01”可表示Solidity语言的合约,“02”或“0x02”可表示Java语言的合约,“03”或“0x03”可表示C++语言的合约,“04”或“0x04”可表示Python语言的合约,等等。指示符可以为字节码或者可替换的格式。尽管经常采用十六进制表示法,但指示符可不限于上述表示法的示例。本领域的普通技术人员可理解各种类型的指示符表示法的使用。指示符可被添加到区块链合约的编译后字节码的前面或其他位置。在一个示例中,指示符被添加到字节码的前面。指示符可占用一个字节或另一数据单位。
在指示符被添加到编译后的字节码后,就得到了组合字节码。在步骤203之后,用户设备可将组合字节码发送到区块链节点,并且该区块链节点或区块链网络的另一区块链节点可基于指示符触发虚拟机来执行区块链合约。
在一些实施例中,在将指示符添加至字节码后,用户设备可以将区块链合约传送到一个或多个共识节点。共识节点可接收包括指示符和区块链合约的编译后的字节码的组合字节码。在接收到合约被部署的消息后,共识节点可获取组合字节码的一部分(例如,组合字节码的第一字节处的指示符),并激活相应的虚拟机以基于所获得的合约代码部分来执行和存储合约。在不同实施例中,虚拟机可以将字节码转换为可由处理器运行的汇编语言或其他指令集。例如,如果合约代码为C++,则可调用GNU编译器集合(GCC)来执行合约;如果合约代码为Java,则可调用Java虚拟机(JVM)来执行合约;如果合约代码是Solidity,则可调用以太虚拟机(EVM)来执行合约;如果合约代码是Python,则可调用Python虚拟机(PVM)来执行合约。以上虚拟机只是示例性,并可被替代品替代。
图3A至图3C分别示出根据不同实施例的用于在区块链上实施原生合约的示例性方法的流程图。该方法可由包括各种软件和硬件的区块链***(例如,***100)实施。例如,区块链***可包括作为第一软件的可选客户端和作为第二软件的虚拟机,并且可访问源代码文件apply.cpp。下面给出的操作旨在说明性。按照实施例,示例性步骤可包括以不同顺序或并行执行的附加步骤、较少步骤或替代步骤。关于图3A至图3C的方法可以共用下面描述的共同步骤1至步骤5。
在一些实施例中,在步骤1,前端软件可提示用户识别要执行的区块链合约的类型。可通过区块链节点或通过耦接至区块链节点的设备(例如,用户设备)来提供前端。在本文中,区块链合约的类型可以指区块链合约的类别或分类。例如,类型可以基于区块链合约的编程语言。可以以Java、C++、Solidity、Python等语言来编写区块链合约。以Solidity编写的区块链合约可称为Solidity合约。以Java、C++、Python或者其他与区块链***相同的语言编写的区块链合约可称为原生合约。尽管如此,区块链合约的类型可以指与区块链合约的编程语言无关的类别或分类。
在一个示例中,用户可被要求识别合约类型,该类型可以由指示符表示。用户可通过用户接口识别合约类型。如果指示原生合约,则执行此方法的下一步。
在一些实施例中,在步骤2,在C++平台中,可向用户提供接口(例如,通用接口)以访问区块链并执行原生合约。可通过动态加载来提供接口。接口可能需要预先确定的输入和输出格式,以便用户实施原生合约。输入和输出格式可包括调用数据的方法。根据这些要求,用户可在接口上为原生合约提供源代码。
在一些实施例中,在步骤3,编译器编译原生合约(例如,C++语言的源代码文件(.cpp))以生成相应的动态库文件(例如,.so文件)。动态库文件可以是诸如字节码的机器码。此步骤的细节可参照上面的图2。
在一些实施例中,在步骤4,原生合约可被部署在区块链***中。例如,指示符可被添加到字节码以获得组合字节码。也就是说,组合字节码可包括指示符和动态库文件的编译后的字节码。组合字节码可被发送到区块链节点(例如,后端软件)。此步骤的细节可参照上面的图2。
在一些实施例中,在步骤5,区块链节点可至少基于指示符来确定区块链合约是否是原生合约。例如,共识节点可提取对应于指示符的字节码的部分以确定区块链合约是否是原生合约。
在一些实施例中,共识节点的后端可以通过6.1-6.3三个步骤中的任一个来执行原生合约。步骤6.1被示出在图3A中,步骤6.2被示出在图3B中,步骤6.3被示出在图3C中。
对于步骤6.1,区块链节点可通过动态链接和/或加载动态库文件(或组合字节码)来直接执行区块链***中的区块链合约并返回结果。例如,区块链节点可通过动态链接和/或加载动态库文件来触发与区块链合约相应的虚拟机以执行区块链合约并返回结果。可选地,区块链节点可以建立相应的本地动态库文件,用于动态链接和/或加载动态库文件。
对于步骤6.2,共识节点可(例如,经由fork函数)创建子进程来执行动态库文件(或组合字节码)。例如,共识节点可触发虚拟机来调用客户端,以将调用的逻辑编译成可执行文件(客户端)。可执行文件可被用于通过链接和/或加载动态库文件来执行动态库文件,并将执行结果返回到虚拟机。子进程和区块链***(例如,虚拟机或区块链***的替代组件)可经由套接字或共享存储器进行通信。在接收到执行结果之后,区块链***可继续执行下一笔交易。
对于步骤6.3,共识节点可以将执行逻辑保存为Docker。当用户调用来执行原生合约时,Docker被激活来调用并执行动态库文件,并将执行结果返回给区块链***。在获得执行结果后,区块链***可以继续执行下一笔交易。Docker和区块链***(例如,虚拟机或区块链***的替代组件)可以经由套接字进行通信。
作为轻量级、便携和自给自足的容器,Docker能够轻松打包、运输和运行应用程序。Docker容器共享操作***,因为主机操作***与正在运行的Docker容器共享其内核,而虚拟机应用程序各自具有客户操作***。Docker使得可设置类似于活动服务器的本地开发环境,从同一个主机上运行多个开发环境,每个开发环境都具有独有的软件、操作***和配置,在新的服务器或不同的服务器上测试项目,并允许任何人以完全相同的设置处理同一个项目,而不管本地主机环境如何。这里,Docker提供了执行区块链合约的虚拟环境,其可以保护共识节点规避由执行引起的问题(如***重启、bug、恶意代码执行等)。
图4示出根据不同实施例的用于在区块链上实施原生合约的示例性方法450的流程图。方法450可由图1A的***100的一个或多个组件(例如,节点1、节点2,…、节点i,或节点1和节点A的组合等)来实施。方法450可由与硬件机器(例如,服务器)和软件(例如,区块链软件)相应的共识节点来实施。方法450可由一个或多个***或设备(例如,计算机、服务器)来实施。***或设备可包括一个或多个处理器和一个或多个非暂时性计算机可读存储介质(例如,一个或多个存储器),所述非暂时性计算机可读存储介质耦接至一个或多个处理器并且配置有可由一个或多个处理器执行以使***或设备(例如,处理器)执行方法450的指令。下面给出的方法450的操作旨在示例性。按照实施例,示例性方法450可包括以不同的顺序或并行执行的附加步骤、较少步骤或替代步骤。
步骤451包括:获取与区块链合约相关联的组合字节码,其中,组合字节码包括表示区块链合约的类型的指示符。在一些实施例中,组合字节码包括从区块链合约的源代码编译的动态库文件的字节码。在一个示例中,源代码是C++。词语“组合”可表示包括指示符,因为组合字节码可包括(1)指示符和(2)来自源代码的编译后的字节码。指示符可以是或不是字节码格式。
步骤452包括:至少基于指示符确定区块链合约的类型。在一些实施例中,至少基于指示符确定区块链合约的类型包括:确定区块链合约的类型是否为原生合约。
步骤453包括:基于确定的区块链合约的类型执行区块链合约。
在一些实施例中,在步骤454中,基于确定的区块链合约的类型执行区块链合约包括:响应于确定区块链合约为原生合约,触发区块链虚拟机执行区块链合约。触发虚拟机执行区块链合约包括:至少基于指示符确定与该类型对应的虚拟机;以及触发所确定的虚拟机来执行动态库文件。
在一些实施例中,在步骤455中,基于确定的区块链合约的类型执行区块链合约包括:响应于确定区块链合约为原生合约,创建子进程执行区块链合约。创建子进程执行区块链合约包括:创建可执行文件;以及生成子进程来启动可执行文件以执行动态库文件。子进程和区块链虚拟机经由套接字或共享存储器进行通信。
在一些实施例中,在步骤456中,基于确定的区块链合约的类型执行区块链合约包括:响应于确定区块链合约为原生合约,启动Docker容器执行区块链合约。启动Docker容器执行区块链合约包括:创建Docker容器;以及启动Docker容器来执行动态库文件。Docker容器和区块链虚拟机经由套接字进行通信。
在当前技术中,区块链节点的区块链软件不太可能集成各种类型的虚拟机,尽管区块链节点的硬件机器可以访问这些虚拟机(例如,先行安装在硬件机器或***配置中)。通过公开的方法,区块链节点能够基于接收到的合约的字节码来确定合约类型(例如,是原生合约还是Solidity合约,合约的编程语言),并触发相应的方法来执行合约。通过使用动态库文件,区块链***可以支持原生合约执行,而无需转换为Solidity合约。因此,区块链合约***的应用范围和兼容性得到了扩展,因为区块链合约不再需要以Solidity语言编写,而原生合约可以像Solidity合约一样被执行。
本文描述的技术由一个或多个专用计算设备来实施。专用计算设备可以是台式计算机***、服务器计算机***、便携式计算机***、手持设备、网络设备、或结合硬接线和/或程序逻辑来实现技术的任何其他设备或设备的组合。计算设备一般由操作***软件控制和协调。常规的操作***控制和调度用于执行的计算机进程、执行存储器管理、提供文件***、网络、I/O服务,以及提供用户界面功能,诸如图形用户界面(“GUI”),等等。
图5示出根据不同实施例的用于在区块链上实现原生合约的示例性计算机***550的框图。***550可以是图1A中的***100或类似设备的节点1、节点A和节点1的组合、节点2、…、节点i的示例性实施。方法450可由计算机***550实施。计算机***550可包括一个或多个处理器和一个或多个非暂时性计算机可读存储介质(例如,一个或多个存储器),该非暂时性计算机可读存储介质耦接至一个或多个处理器并且配置有可由一个或多个处理器执行以使***或设备(例如,处理器)执行方法450的指令。计算机***550可包括与指令(例如,软件指令)相对应的各种单元/模块。在一些实施例中,计算机***550可包括:被配置为获取与区块链合约相关联的组合字节码的获取模块551,其中组合字节码包括表示区块链合约的类型的指示符;被配置为至少基于指示符来确定区块链合约的类型的确定模块552;以及被配置为基于确定的区块链合约的类型执行区块链合约的执行模块553。
图6是示出计算机***600的框图,在计算机***600上可实施本文描述的任何实施例。***600可以在本文描述的任何节点中实施,并配置为执行用于在区块链上实施原生合约的相应步骤。计算机***600包括用于交流信息的总线602或其他通信机制、与总线602耦接的用于处理信息的一个或多个硬件处理器604。例如,硬件处理器604可以是一个或多个通用微处理器。
计算机***600还包括耦接到总线602的用于存储信息和要由处理器604执行的指令的主存储器606,诸如随机存取存储器(RAM)、缓存和/或其他动态存储设备。主存储器606也可用于在要由处理器604执行的指令的执行期间存储临时变量或其他中间信息。当这些指令存储在处理器604可访问的存储介质中时,将计算机***600呈现到为执行指令中指定的操作而定制的专用机器中。计算机***600还包括只读存储器(ROM)608或耦接到总线602的用于存储静态信息和处理器604的指令的其他静态存储设备。提供诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等的存储设备610并将其耦接到总线602以存储信息和指令。
计算机***600可使用定制的硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑,其与计算机***结合而使得计算机***600成为专用机器或将计算机***600编程成为专用机器,来实现本文描述的技术。根据一个实施例,本文描述的操作、方法和过程由计算机***600响应于处理器604执行主存储器606中包含的一个或多个指令的一个或多个序列来执行。这些指令可以从诸如存储设备610的另一存储介质读取到主存储器606中。执行主存储器606中包含的指令序列会使得处理器604执行本文描述的处理步骤。在替代的实施例中,可使用硬接线电路代替软件指令或与软件指令的组合。
主存储器606、ROM 608和/或存储器610可包括非暂时性存储介质。术语“非暂时性介质”及类似术语,在本文使用时,是指存储使得机器以特定方式操作的数据和/或指令的介质,该介质不包括暂时性信号。这种非暂时性介质可包括非易失性介质和/或易失性介质。例如,非易失性介质包括光盘或磁盘,诸如存储设备610。易失性介质包括动态存储器,诸如主存储器606。非暂时性介质的常规形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储芯片或内存盒、及其网络形式。
计算机***600还包括耦接到总线602的网络接口618。网络接口618为连接到一个或多个本地网络的一个或多个网络链接提供双向数据通信耦合。例如,网络接口618可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器、或者向相应类型的电话线提供数据通信连接的调制解调器。作为另一示例,网络接口618可以是局域网(LAN)卡以提供数据通信连接至兼容的LAN(或与WAN通信的WAN组件)。也可实施无线链接。在任何这种实施中例,网络接口618发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
计算机***600可通过网络、网络链接和网络接口618来发送消息和接收包括程序代码的数据。在Internet示例中,服务器可通过Internet、ISP、本地网络和网络接口618来传送应用程序的请求代码。
接收到的代码可在接收时由处理器604执行,和/或存储在存储设备610或其他非易失性存储器中,用于以后执行。
在先前部分中描述的每一过程、方法和算法可被包含在代码模块中并可由代码模块完全或部分自动执行,代码模块由包括计算机硬件的一个或多个计算机***或计算机处理器执行。这些过程和算法可以部分或全部在专用电路中实施。
上述各种特征和过程可以彼此独立使用,或者可以以各种方式组合使用。所有可能的组合和子组合均属于本说明书的范围。此外,可在某些实施中省去某些方法或过程框。本文描述的方法和过程也不限于任何特定的顺序,并且与之相关的框或状态可以以适当的其他顺序执行。例如,所描述的框或状态可以以具体公开之外的顺序执行,或者多个框或状态可以在单个框或状态中组合。示例性框或状态可以串行、并行或以某些其他方式执行。框或状态可被添加到公开的示例性实施例中或从公开的示例性实施例中移除。本文描述的示例性***和组件可以与所描述的不同地配置。例如,与所公开的示例性实施例相比,可添加、移除或重新排列元件。
可通过算法至少部分地执行本文描述的示例性方法的各种操作。该算法可包含在存储在存储器(例如,上文描述的非暂时性计算机可读存储介质)中的程序代码或指令中。这种算法可包括机器学习算法。在一些实施例中,机器学习算法可不明确地对计算机进行编程以执行功能,而是可从训练数据中学习以生成执行该功能的预测模型。
可由临时配置(例如,通过软件)或永久配置以执行相关操作的一个或多个处理器来至少部分地执行本文描述的示例性方法的各种操作。无论是临时配置还是永久配置,这些处理器都可以构成处理器实现的引擎,其操作以执行本文描述的一个或多个操作或功能。
类似地,可至少部分地由处理器实现本文描述的方法,一个或多个特定处理器是硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的引擎执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,至少一些操作可以由一组计算机(例如,包括处理器的机器)执行,这些操作可以经由网络(例如,Internet)并且经由一个或多个适当的接口(例如,应用程序接口(API))访问。
某些操作的性能可以分布在处理器之间,不仅驻留在单台机器内,而且部署在多台机器上。在一些示例性实施例中,处理器或处理器实现的引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他示例性实施例中,处理器或处理器实现的引擎可以分布在多个地理位置。
在本文中,多个实例可实现被描述为单个实例的组件、操作或结构。虽然一种或多种方法的单个操作被示出并描述为单独的操作,但是可同时执行一个或多个单个操作,并且不需要按照所示的顺序执行操作。在示例性配置中作为单独组件给出的结构和功能可实现为组合结构或组件。类似地,作为单个组件给出的结构和功能可实现为单独组件。这些和其他变更、修改、添加和改进属于本文主题的范围。
尽管参照具体的示例性实施例描述了主题的概况,但可以在不偏离本说明书的实施例的更宽范围的情况下,对这些实施例进行各种修改和更改。在此,仅为了方便,主题的这些实施例可被单独或者总体地称为术语“发明”,而不旨在自愿将本申请的范围限制在任何单个公开或者构思上,如果事实上超过一个公开或构思被公开的话。具体实施方式不应该被理解为限制性的,并且各个实施例的范围仅由所附的权利要求连同与这些权利要求的主题等同的全部范围来限定。

Claims (23)

1.一种计算机实施的用于在区块链上实现原生合约的方法,包括:
获取与区块链合约相关的组合字节码,其中,所述组合字节码包括表示所述区块链合约的类型的指示符;
至少基于所述指示符确定所述区块链合约的类型;以及
基于确定的所述区块链合约的类型执行所述区块链合约。
2.根据权利要求1所述的方法,其中:
所述组合字节码包括从所述区块链合约的源代码编译的动态库文件的字节码。
3.根据权利要求2所述的方法,其中,至少基于所述指示符确定所述区块链合约的类型包括:
确定所述区块链合约的类型是否为原生合约。
4.根据权利要求3所述的方法,其中,基于确定的所述区块链合约的类型执行所述区块链合约包括:
响应于确定所述区块链合约为原生合约,触发区块链虚拟机执行所述区块链合约。
5.根据权利要求4所述的方法,其中,触发所述虚拟机执行所述区块链合约包括:
至少基于所述指示符确定与所述类型相应的虚拟机;以及
触发确定的所述虚拟机以执行所述动态库文件。
6.根据权利要求3所述的方法,其中,基于确定的所述区块链合约的类型执行所述区块链合约包括:
响应于确定所述区块链合约为原生合约,创建子进程来执行所述区块链合约。
7.根据权利要求6所述的方法,其中,创建子进程来执行所述区块链合约包括:
创建可执行文件;以及
生成所述子进程以启动所述可执行文件来执行所述动态库文件。
8.根据权利要求6所述的方法,其中:
所述子进程和区块链虚拟机经由套接字或共享存储器通信。
9.根据权利要求3所述的方法,其中,基于确定的所述区块链合约的类型执行所述区块链合约包括:
响应于确定所述区块链合约为原生合约,启动Docker容器来执行所述区块链合约。
10.根据权利要求9所述的方法,其中,启动所述Docker容器来执行所述区块链合约包括:
创建Docker容器;以及
启动所述Docker容器来执行所述动态库文件。
11.根据权利要求9所述的方法,其中:
所述Docker容器和区块链虚拟机经由套接字通信。
12.一种非暂时性计算机可读存储介质,配置有能够由一个或多个处理器执行的指令,以使所述一个或多个处理器执行包括以下的操作:
获取与区块链合约相关的组合字节码,其中,所述组合字节码包括表示所述区块链合约的类型的指示符;
至少基于所述指示符确定所述区块链合约的类型;以及
基于所述确定的区块链合约的类型执行所述区块链合约。
13.根据权利要求12所述的存储介质,其中:
所述组合字节码包括从所述区块链合约的源代码编译的动态库文件的字节码。
14.根据权利要求13所述的存储介质,其中,至少基于所述指示符确定所述区块链合约的类型包括:
确定所述区块链合约的类型是否为原生合约。
15.根据权利要求14所述的存储介质,其中,基于所述确定的区块链合约的类型执行所述区块链合约包括:
响应于确定所述区块链合约为原生合约,触发区块链虚拟机执行所述区块链合约。
16.根据权利要求15所述的存储介质,其中,触发所述虚拟机执行所述区块链合约包括:
至少基于所述指示符确定与所述类型相应的虚拟机;以及
触发确定的虚拟机以执行所述动态库文件。
17.根据权利要求14所述的存储介质,其中,基于所述确定的区块链合约的类型执行所述区块链合约包括:
响应于确定所述区块链合约为原生合约,创建子进程来执行所述区块链合约。
18.根据权利要求17所述的存储介质,其中,创建子进程来执行所述区块链合约包括:
创建可执行文件;以及
生成所述子进程以启动所述可执行文件来执行所述动态库文件。
19.根据权利要求17所述的存储介质,其中:
所述子进程和区块链虚拟机经由套接字或共享存储器通信。
20.根据权利要求14所述的存储介质,其中,基于所述确定的区块链合约的类型执行所述区块链合约包括:
响应于确定所述区块链合约为原生合约,启动Docker容器来执行所述区块链合约。
21.根据权利要求20所述的存储介质,其中,启动所述Docker容器来执行所述区块链合约包括:
创建Docker容器;以及
启动所述Docker容器来执行所述动态库文件。
22.根据权利要求20所述的存储介质,其中:
所述Docker容器和区块链虚拟机经由套接字通信。
23.一种用于在区块链上实施原生合约的***,包括一个或多个处理器和一个或多个非暂时性计算机可读存储器,所述非暂时性计算机可读存储器耦接到所述一个或多个处理器并配置有能够由所述一个或多个处理器执行的指令以使所述***执行操作,包括:
获取与区块链合约相关的组合字节码,其中,所述组合字节码包括表示所述区块链合约的类型的指示符;
至少基于所述指示符确定所述区块链合约的类型;以及
基于所述确定的区块链合约的类型执行所述区块链合约。
CN201880008016.3A 2018-12-29 2018-12-29 用于在区块链上执行原生合约的***和方法 Active CN110249307B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/125623 WO2019072310A2 (en) 2018-12-29 2018-12-29 SYSTEM AND METHOD FOR IMPLEMENTING NATIVE CONTRACT ON BLOCK CHAIN

Publications (2)

Publication Number Publication Date
CN110249307A true CN110249307A (zh) 2019-09-17
CN110249307B CN110249307B (zh) 2022-05-31

Family

ID=66100137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880008016.3A Active CN110249307B (zh) 2018-12-29 2018-12-29 用于在区块链上执行原生合约的***和方法

Country Status (9)

Country Link
US (1) US11086847B2 (zh)
EP (1) EP3542494B1 (zh)
JP (1) JP6856749B2 (zh)
KR (1) KR102237015B1 (zh)
CN (1) CN110249307B (zh)
ES (1) ES2864179T3 (zh)
PH (1) PH12019501153A1 (zh)
PL (1) PL3542494T3 (zh)
WO (1) WO2019072310A2 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019120316A3 (en) * 2019-03-26 2020-02-20 Alibaba Group Holding Limited System and method for implementing different types of blockchain contracts
CN110855688A (zh) * 2019-11-18 2020-02-28 腾讯科技(深圳)有限公司 一种区块链信息处理方法及相关设备
CN111179086A (zh) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 一种基于WebAssembly的智能合约虚拟机
CN111240830A (zh) * 2019-12-31 2020-06-05 陕西医链区块链集团有限公司 一种公链合约资源分配方法、装置、电子设备、存储介质
CN111258714A (zh) * 2020-01-13 2020-06-09 电子科技大学 一种区块链智能合约执行方法
CN111338616A (zh) * 2020-03-24 2020-06-26 北京自如信息科技有限公司 协议解析代码的生成方法、装置及电子设备
US10733152B2 (en) 2018-12-29 2020-08-04 Alibaba Group Holding Limited System and method for implementing native contract on blockchain
CN111770206A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN112491887A (zh) * 2019-09-25 2021-03-12 支付宝(杭州)信息技术有限公司 基于fpga实现虚拟机运算的方法及装置
CN112686672A (zh) * 2021-01-08 2021-04-20 新晨科技股份有限公司 区块链上背书签名压缩方法、电子设备及存储介质
CN112835975A (zh) * 2020-06-05 2021-05-25 支付宝(杭州)信息技术有限公司 一种在区块链中部署、更新、调用智能合约的方法
CN112866392A (zh) * 2020-08-31 2021-05-28 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点、***和存储介质
WO2021102616A1 (zh) * 2019-11-25 2021-06-03 深圳市网心科技有限公司 一种智能合约开发方法、装置及电子设备和存储介质
US11086847B2 (en) 2018-12-29 2021-08-10 Advanced New Technologies Co., Ltd. System and method for implementing native contract on blockchain
CN113256296A (zh) * 2021-07-01 2021-08-13 支付宝(杭州)信息技术有限公司 智能合约执行方法、***、装置和存储介质

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110914851B (zh) * 2019-03-27 2024-02-06 创新先进技术有限公司 提高区块链网络与外部数据源之间的通信的完整性
JP6811339B2 (ja) 2019-03-27 2021-01-13 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
CN110999255B (zh) 2019-03-29 2021-12-21 创新先进技术有限公司 检索区块链网络的访问数据的方法及装置
JP7221799B2 (ja) * 2019-05-31 2023-02-14 株式会社日立製作所 情報処理システム、及び情報処理システムの制御方法
WO2019170175A2 (en) * 2019-06-28 2019-09-12 Alibaba Group Holding Limited System and method for executing different types of blockchain contracts
CN110392052B (zh) * 2019-07-22 2021-05-25 中国工商银行股份有限公司 一种区块链智能合约处理***及方法
JP7394211B2 (ja) * 2019-08-19 2023-12-07 杭州趣鏈科技有限公司 スマートコントラクトの並行実行の方法、装置、機器、及び媒体
CN110543407B (zh) * 2019-08-21 2021-11-05 杭州趣链科技有限公司 一种Solidity智能合约性能静态分析方法
CN110659907B (zh) * 2019-09-24 2021-11-12 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
CN111026461B (zh) * 2019-12-06 2022-04-22 联想(北京)有限公司 用于区块链***的数据处理方法、装置和电子设备
CN111324396B (zh) * 2020-03-19 2023-09-15 深圳市迅雷网络技术有限公司 一种区块链智能合约执行方法、装置及设备
CN111752850B (zh) * 2020-07-13 2021-08-20 腾讯科技(深圳)有限公司 区块链***的测试方法及相关设备
CN111562969B (zh) * 2020-07-15 2020-10-20 百度在线网络技术(北京)有限公司 一种区块链的智能合约实现方法、装置、设备和介质
CN111815310B (zh) 2020-08-31 2021-08-17 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN112363804B (zh) * 2020-11-16 2024-01-26 北京差旅天下网络科技有限责任公司 区块链jvm应用方法、设备和存储介质
CN112286643B (zh) * 2020-12-24 2021-04-20 北京百度网讯科技有限公司 以太坊虚拟机的事务处理方法、装置、设备和介质
CN112306645B (zh) * 2020-12-24 2021-05-04 北京百度网讯科技有限公司 以太坊虚拟机的事务处理方法、装置、设备和介质
KR102548117B1 (ko) * 2021-04-14 2023-06-27 아주대학교 산학협력단 블록체인을 이용한 미래 이벤트에 대한 스마트컨트랙트 처리 방법 및 노드 장치
CN113312429B (zh) * 2021-06-22 2023-01-17 工银科技有限公司 区块链中的智能合约管理***、方法、介质和产品
CN113360251B (zh) * 2021-08-11 2021-12-21 北京微芯感知科技有限公司 智能合约执行与跨合约调用方法、装置及存储介质
CN113360893B (zh) * 2021-08-11 2021-11-30 北京微芯感知科技有限公司 基于容器的智能合约执行方法、装置及存储介质
US11960579B2 (en) 2022-02-17 2024-04-16 Bank Of America Corporation Smart glass and blockchain digital signature implementation
GB2618105A (en) * 2022-04-27 2023-11-01 Nchain Licensing Ag Protocol for communicating compact scripts
US11928438B1 (en) * 2023-07-07 2024-03-12 Northern Trust Corporation Computing technologies for large language models

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598549A (zh) * 2016-12-08 2017-04-26 天津米游科技有限公司 一种基于区块链的智能合约***及实现方法
CN106598579A (zh) * 2016-12-06 2017-04-26 北京果仁宝科技有限公司 区块链上集成动态类型编程语言方法和装置
US20170115976A1 (en) * 2015-10-23 2017-04-27 Oracle International Corporation Managing highly scalable continuous delivery pipelines
CN107392619A (zh) * 2017-07-31 2017-11-24 众安信息技术服务有限公司 智能合约处理方法及装置
US20170352012A1 (en) * 2016-04-18 2017-12-07 R3 Ltd. Secure processing of electronic transactions by a decentralized, distributed ledger system
US20170353309A1 (en) * 2016-06-06 2017-12-07 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
CN107833060A (zh) * 2017-11-13 2018-03-23 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及***
CN108664650A (zh) * 2018-05-17 2018-10-16 百度在线网络技术(北京)有限公司 一种区块链网络的事务处理方法、装置、设备及存储介质
CN108765158A (zh) * 2018-05-31 2018-11-06 杭州秘猿科技有限公司 一种基于区块链的智能合约引擎***及其合约执行方法
CN108830720A (zh) * 2018-06-21 2018-11-16 北京京东尚科信息技术有限公司 智能合约运行方法、装置、***和计算机可读存储介质
US20180365201A1 (en) * 2017-06-14 2018-12-20 Clause, Inc. System and method for compound data-driven contracts and documentation

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092147A (en) 1997-04-15 2000-07-18 Sun Microsystems, Inc. Virtual machine with securely distributed bytecode verification
EP1898597B1 (en) 2006-09-07 2008-12-03 Research In Motion Limited Mediated registration of client applications and content providers with push content delivery system
US20080115125A1 (en) 2006-11-13 2008-05-15 Cingular Wireless Ii, Llc Optimizing static dictionary usage for signal compression and for hypertext transfer protocol compression in a wireless network
US9164749B2 (en) 2008-08-29 2015-10-20 Red Hat, Inc. Differential software provisioning on virtual machines having different configurations
US9274919B2 (en) 2011-04-29 2016-03-01 Dynatrace Software Gmbh Transaction tracing mechanism of distributed heterogenous transactions having instrumented byte code with constant memory consumption and independent of instrumented method call depth
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9942250B2 (en) 2014-08-06 2018-04-10 Norse Networks, Inc. Network appliance for dynamic protection from risky network activities
US11159599B2 (en) 2014-10-10 2021-10-26 Dynatrace Llc Method and system for real-time modeling of communication, virtualization and transaction execution related topological aspects of monitored software applications and hardware entities
US9967334B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
AU2016324172A1 (en) 2015-09-17 2018-04-19 Washlava, Inc. System for commercial laundry services and facilities
US20170230285A1 (en) 2015-10-28 2017-08-10 Fractal Industries, Inc. Regulation based switching system for electronic message routing
US11130042B2 (en) 2016-02-02 2021-09-28 Bao Tran Smart device
EP3423999A1 (en) 2016-03-03 2019-01-09 NEC Laboratories Europe GmbH Method for managing data in a network of nodes
EP3437002A4 (en) 2016-03-31 2019-08-21 Clause, Inc. SYSTEM AND METHOD FOR CREATING AND EXECUTING LEGAL CONTRACTS PILOTED BY DATA
US20170345011A1 (en) 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
US10445698B2 (en) 2016-06-30 2019-10-15 Clause, Inc. System and method for forming, storing, managing, and executing contracts
WO2018014123A1 (en) 2016-07-18 2018-01-25 Royal Bank Of Canada Distributed ledger platform for vehicle records
US11153092B2 (en) 2016-08-30 2021-10-19 Commonwealth Scientific And Industrial Research Organisation Dynamic access control on blockchain
CA3037106A1 (en) 2016-09-19 2018-03-22 Financial & Risk Organisation Limited Systems and methods for interception of smart contracts
IL293232A (en) 2016-11-19 2022-07-01 Costanz Mario A A system and method for adjusting interaction with an object in a public account environment based on a "chain of blocks" (blockchain)
US11349666B2 (en) 2017-01-27 2022-05-31 Meta Platforms, Inc. Electronically signing and distributing identification data as a service that provides proof of identity, integrity, validity and origin of data for non-repudiation and ID validation methods
US10243731B2 (en) 2017-01-27 2019-03-26 Accenture Global Solutions Limited Hardware blockchain acceleration
EP3355225B1 (en) * 2017-01-31 2022-07-27 Sony Group Corporation Apparatus and method for providing a ethereum virtual device
WO2019023286A1 (en) 2017-07-24 2019-01-31 Martino William SYSTEMS, METHODS AND APPARATUS BASED ON BLOCK CHAIN TO SECURE ACCESS TO INFORMATION STORES
US20190050831A1 (en) 2017-08-03 2019-02-14 Liquineq AG System and method for multi-tiered distributed network transactional database
US11146380B2 (en) 2017-08-03 2021-10-12 Parity Technologies Ltd. Methods and systems for a heterogeneous multi-chain framework
US10552556B2 (en) 2017-08-03 2020-02-04 Liquineq AG System and method for performance testing of scalable distributed network transactional databases
US20190066101A1 (en) 2017-08-22 2019-02-28 Sap Se Transaction Platform Providing Unified View on Multiple Heterogeneous Blockchains
CN109426949B (zh) 2017-08-29 2021-02-09 华为技术有限公司 一种跨链交易方法及装置
WO2019055585A1 (en) 2017-09-12 2019-03-21 Kadena Llc PARALLEL CHAIN ARCHITECTURE FOR BLOCK CHAIN SYSTEMS
US20190102163A1 (en) 2017-10-04 2019-04-04 Dispatch Labs, LLC System and Method for a Blockchain-Supported Programmable Information Management and Data Distribution System
US20190108576A1 (en) 2017-10-11 2019-04-11 Capital One Services, Llc Blockchain systems and methods for procurement
US11568505B2 (en) 2017-10-18 2023-01-31 Docusign, Inc. System and method for a computing environment for verifiable execution of data-driven contracts
WO2019090342A1 (en) 2017-11-06 2019-05-09 Velo Holdings Limited Blockchain system
US11182780B2 (en) 2017-11-13 2021-11-23 American Express Travel Related Services Company, Inc. Secured account provisioning and payments for NFC-enabled devices
US11257077B2 (en) 2017-11-30 2022-02-22 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
WO2019113495A1 (en) 2017-12-08 2019-06-13 Solana Labs, Inc. Systems and methods for cryptographic provision of synchronized clocks in distributed systems
GB201720767D0 (en) 2017-12-13 2018-01-24 Barker Trevor Computer-implemented system and method
US10896418B2 (en) 2017-12-29 2021-01-19 Ebay Inc. Secure management of data files using a blockchain
CN108833460B (zh) 2018-04-10 2021-05-25 平安科技(深圳)有限公司 基于区块链的音乐发布方法、装置及终端设备
US10833865B2 (en) 2018-04-30 2020-11-10 Dell Products L.P. Blockchain-based method and system for immutable resource allocation in a cloud computing environment
US10896195B2 (en) 2018-07-29 2021-01-19 International Business Machines Corporation Automatic generation of smart contracts
US11182379B2 (en) * 2018-08-24 2021-11-23 Oracle International Corporation DAG based methods and systems of transaction processing in a distributed ledger
CN109493042A (zh) 2018-10-24 2019-03-19 南京邮电大学 一种拥有访问控制功能的智能合约可信存证方法和***
KR102237015B1 (ko) 2018-12-29 2021-04-07 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 블록체인 상의 네이티브 계약을 구현하기 위한 시스템 및 방법
SG11201908890XA (en) 2019-03-26 2019-10-30 Alibaba Group Holding Ltd System and method for implementing different types of blockchain contracts

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170115976A1 (en) * 2015-10-23 2017-04-27 Oracle International Corporation Managing highly scalable continuous delivery pipelines
US20170352012A1 (en) * 2016-04-18 2017-12-07 R3 Ltd. Secure processing of electronic transactions by a decentralized, distributed ledger system
US20170353309A1 (en) * 2016-06-06 2017-12-07 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
CN106598579A (zh) * 2016-12-06 2017-04-26 北京果仁宝科技有限公司 区块链上集成动态类型编程语言方法和装置
CN106598549A (zh) * 2016-12-08 2017-04-26 天津米游科技有限公司 一种基于区块链的智能合约***及实现方法
US20180365201A1 (en) * 2017-06-14 2018-12-20 Clause, Inc. System and method for compound data-driven contracts and documentation
CN107392619A (zh) * 2017-07-31 2017-11-24 众安信息技术服务有限公司 智能合约处理方法及装置
CN107833060A (zh) * 2017-11-13 2018-03-23 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及***
CN108664650A (zh) * 2018-05-17 2018-10-16 百度在线网络技术(北京)有限公司 一种区块链网络的事务处理方法、装置、设备及存储介质
CN108765158A (zh) * 2018-05-31 2018-11-06 杭州秘猿科技有限公司 一种基于区块链的智能合约引擎***及其合约执行方法
CN108830720A (zh) * 2018-06-21 2018-11-16 北京京东尚科信息技术有限公司 智能合约运行方法、装置、***和计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TIEN TUAN ANH DINH等: "Untangling Blockchain: A Data Processing", 《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》 *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086847B2 (en) 2018-12-29 2021-08-10 Advanced New Technologies Co., Ltd. System and method for implementing native contract on blockchain
US10733152B2 (en) 2018-12-29 2020-08-04 Alibaba Group Holding Limited System and method for implementing native contract on blockchain
US10860350B2 (en) 2019-03-26 2020-12-08 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
WO2019120316A3 (en) * 2019-03-26 2020-02-20 Alibaba Group Holding Limited System and method for implementing different types of blockchain contracts
US10949231B2 (en) 2019-03-26 2021-03-16 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
US11010184B2 (en) 2019-03-26 2021-05-18 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
US10866823B2 (en) 2019-03-26 2020-12-15 Advanced New Technologies Co., Ltd. System and method for implementing different types of blockchain contracts
CN112491887A (zh) * 2019-09-25 2021-03-12 支付宝(杭州)信息技术有限公司 基于fpga实现虚拟机运算的方法及装置
CN110855688A (zh) * 2019-11-18 2020-02-28 腾讯科技(深圳)有限公司 一种区块链信息处理方法及相关设备
WO2021102616A1 (zh) * 2019-11-25 2021-06-03 深圳市网心科技有限公司 一种智能合约开发方法、装置及电子设备和存储介质
CN111179086B (zh) * 2019-12-31 2024-01-02 杭州趣链科技有限公司 一种基于WebAssembly的智能合约虚拟机
CN111240830A (zh) * 2019-12-31 2020-06-05 陕西医链区块链集团有限公司 一种公链合约资源分配方法、装置、电子设备、存储介质
CN111179086A (zh) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 一种基于WebAssembly的智能合约虚拟机
CN111258714B (zh) * 2020-01-13 2023-03-10 电子科技大学 一种区块链智能合约执行方法
CN111258714A (zh) * 2020-01-13 2020-06-09 电子科技大学 一种区块链智能合约执行方法
CN111338616A (zh) * 2020-03-24 2020-06-26 北京自如信息科技有限公司 协议解析代码的生成方法、装置及电子设备
CN112835975A (zh) * 2020-06-05 2021-05-25 支付宝(杭州)信息技术有限公司 一种在区块链中部署、更新、调用智能合约的方法
US11513780B2 (en) 2020-08-31 2022-11-29 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes and storage media for deploying smart contract
CN112866392A (zh) * 2020-08-31 2021-05-28 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点、***和存储介质
US11416272B2 (en) 2020-08-31 2022-08-16 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes, systems and storage media for executing smart contract
CN111770206A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN111770206B (zh) * 2020-08-31 2020-12-29 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN112686672A (zh) * 2021-01-08 2021-04-20 新晨科技股份有限公司 区块链上背书签名压缩方法、电子设备及存储介质
CN113256296A (zh) * 2021-07-01 2021-08-13 支付宝(杭州)信息技术有限公司 智能合约执行方法、***、装置和存储介质

Also Published As

Publication number Publication date
JP6856749B2 (ja) 2021-04-14
KR20200083932A (ko) 2020-07-09
EP3542494B1 (en) 2021-02-17
PL3542494T3 (pl) 2021-08-23
ES2864179T3 (es) 2021-10-13
WO2019072310A2 (en) 2019-04-18
US20200311050A1 (en) 2020-10-01
PH12019501153A1 (en) 2019-12-11
EP3542494A2 (en) 2019-09-25
US11086847B2 (en) 2021-08-10
KR102237015B1 (ko) 2021-04-07
EP3542494A4 (en) 2020-02-26
JP2020509443A (ja) 2020-03-26
CN110249307B (zh) 2022-05-31
WO2019072310A3 (en) 2019-10-24

Similar Documents

Publication Publication Date Title
CN110249307A (zh) 用于在区块链上执行原生合约的***和方法
CN111033468B (zh) 实施不同类型的区块链合约的***和方法
US10705866B2 (en) System and method for executing different types of blockchain contracts
US10733152B2 (en) System and method for implementing native contract on blockchain
CN110414261B (zh) 一种数据脱敏方法、装置、设备及可读存储介质
CN108572986B (zh) 一种数据更新的方法及节点设备
CN103164249A (zh) 用于脚本语言编译器的扩展机制
CN111813441B (zh) 智能合约发布方法、装置、计算机可读介质及电子设备
CN111179086A (zh) 一种基于WebAssembly的智能合约虚拟机
CN110348225A (zh) 针对应用程序接口的安全漏洞确定方法和装置
CN106326099B (zh) 一种用于程序跟踪的方法、装置及电子设备
US11537367B1 (en) Source code conversion from application program interface to policy document
US9436716B2 (en) Method and system for data plane abstraction to enable a network storage platform ecosystem
CN111240772A (zh) 一种基于区块链的数据处理方法、装置及存储介质
CN116974581A (zh) 代码生成方法、装置、电子设备和存储介质
CN113077260A (zh) 基于区块链的数据访问方法、装置及电子设备
US8539496B1 (en) Method and apparatus for configuring network systems implementing diverse platforms to perform business tasks
CN110381056A (zh) 基于Netty的私有协议编解码方法及装置
US20170286074A1 (en) Electronic Device and Method for Multiple Compiling Platforms
CN114285859A (zh) 中间层区块链服务的数据处理方法、装置、设备及存储介质
CN108304230A (zh) 调整应用属性的实现方法、装置及可读存储介质
Palladino Ethereum for Web Developers
KR102361534B1 (ko) 컴파일러를 이용한 난독화 방법 및 시스템
Damian et al. SmartDPO-Template Based, Integrated Flow Document Management System
CN117992101A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40014708

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant