CN110673851A - 一种智能合约运行方法、装置及电子设备 - Google Patents
一种智能合约运行方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110673851A CN110673851A CN201910866755.2A CN201910866755A CN110673851A CN 110673851 A CN110673851 A CN 110673851A CN 201910866755 A CN201910866755 A CN 201910866755A CN 110673851 A CN110673851 A CN 110673851A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- target
- program
- format
- browser
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
发明提供了一种智能合约运行方法、装置及电子设备,其中,该方法包括:将智能合约程序编译成目标格式的目标智能合约;将所述目标智能合约导入所述浏览器中;通过所述浏览器将所述目标智能合约存入目标存储空间;当接收到所述目标智能合约对应的处理任务时,通过所述浏览器从所述目标存储空间中加载所述目标智能合约,以运行所述目标智能合约执行所述处理任务。本发明通过在同一区块链网络上的各个区块链节点同时处理任务,能够实现多任务共同执行智能合约运行方法,实现不同种类语言的智能合约的运行效果。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种智能合约运行方法、装置及电子设备。
背景技术
目前,智能合约通常运行在虚拟机上,以太网、EOS实现的虚拟机仅仅支持较为单一的语言。对于开发人员来说,编码受到限制。对于智能合约来说,其它语言编写的智能合约不能被有效运行。以太网、EOS(Enterprise Operation System,中文称:商用分布式应用区块链操作系统)均是实现了虚拟机,但是它们实现的虚拟机只能支持单一语言或者两种语言编写的智能合约,因而,不能支持各种编程语言编写的智能合约。如CN107844710A现有技术公开了一种合约生成系统,区块链的本质是一个去中心化的数据库,由一连串增长链表组成的记录构成,这些记录被称之为区块。由于交易过程中涉及资金和个人信息等重要个人财产的交互,如何保证资金已经信息安全的问题也同样需要关注。另一种典型的如WO2017010455的现有技术公开的一种基于区块链网络的智能合约交易方法和系统,目前,随着生活的进步,在赛车、赛马等比赛场景中的下注也成为用户主要的娱乐方式,相关技术中,下注用户的下注金额以及下注事件结果等下注信息和开奖处理等均依赖于第三方机构来实现,然而这种中心化处理方式的风险性较高,因此,亟需一种能够有效保证下注事件安全性的方式。避免了募集的下注节点过多为非法分子进行非法集资提供可乘之机。
为了解决本领域普遍存在的安全风险低、支持单一语言格式结构单一、安全性能不高、运行方法单一等等问题,作出了本发明。
发明内容
本发明的目的在于,针对目前智能合约方面所存在的不足,提出了一种智能合约运行方法、装置及电子设备。
为了克服现有技术的不足,本发明采用如下技术方案:
一种智能合约运行方法,应用于区块链节点,所述区块链节点上安装有一浏览器,所述智能合约运行方法包括:
将智能合约程序编译成目标格式的目标智能合约;
将所述目标智能合约导入所述浏览器中;
通过所述浏览器将所述目标智能合约存入目标存储空间;
当接收到所述目标智能合约对应的处理任务时,通过所述浏览器从所述目标存储空间中加载所述目标智能合约,以运行所述目标智能合约执行所述处理任务。
可选的,所述目标格式是Webassembly语言格式。
可选的,所述将智能合约程序编译成目标格式的目标智能合约的步骤,包括:
将智能合约程序中的指定类型的待转换数据按照设定规则转换成二进制字符,以形成转换程序;
将所述转换程序进行编译,以得到所述目标智能合约。
可选的,所述将智能合约程序中的指定类型的待转换数据按照设定规则转换成二进制字符,以形成转换程序的步骤,包括:
将所述智能合约程序指定类型的待转换数据按照指定字符长度划分成多段字符;
基于所述设定规则将每段字符转化成二进制的字符,以形成转换程序。
可选的,所述将智能合约程序编译成目标格式的目标智能合约的步骤,包括:
将所述智能合约程序中的所有字符串按照所述Webassembly语言格式编译方式转换成二进制格式,以得到所述目标智能合约。
可选的,所述将所述智能合约程序中的所有字符串按照所述Webassembly语言格式编译方式转换成二进制格式,以得到所述目标智能合约的步骤,包括:
将所述智能合约程序按照指定字符长度划分成多段字符;
基于所述设定规则将每段字符转化成二进制字符,以得到所述目标智能合约。
另外,还提供了一种智能合约运行装置,应用于区块链节点,所述区块链节点上安装有一浏览器,所述智能合约运行装置包括:
编译模块,用于将智能合约程序编译成目标格式的目标智能合约;
导入模块,用于将所述目标智能合约导入所述浏览器中;
存储模块,用于通过所述浏览器将所述目标智能合约存入目标存储空间;
运行模块,用于当接收到所述目标智能合约对应的处理任务时,通过所述浏览器从所述目标存储空间中加载所述目标智能合约,以运行所述目标智能合约执行所述处理任务。
可选的,所述目标格式是Webassembly语言格式。
另外,又提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行智能合约运行方法。
另外,本发明还提供了一种可读存储设备,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行智能合约运行方法。
本发明所取得的有益效果是:
1.在同一区块链网络上的各个区块链节点同时处理任务,能够实现多任务共同执行智能合约运行方法,实现不同种类语言的智能合约的运行效果;
2.通过在浏览器上运行智能合约可以改善虚拟机只能支持单一语言或者两种语言编写的智能合约的不足;另外,通过将其它语言的智能合约程序编译成目标格式的目标智能合约,以提高智能合约可用语言的宽度,从而使不同语言的智能合约经过编译后能够实现在浏览器上运行;
3.通过将其它语言编写的智能合约程序进行编译,以得到目标格式的目标智能合约,起到交互式的编译方式,能够提高对开发者的友好性。
4.通过Webassembly语言格式仅支持有限类的数据类型,可以将不满足Webassembly语言格式支持的数据类型进行转换,从而使目标智能合约的内容可以更丰富,从而可以使目标智能合约可以是不仅限于通过限定的几种数据类型实现的智能合约。
附图说明
从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在不同的视图中,相同的附图标记指定对应的部分。
图1为本发明的实施例一的一种智能合约运行方法的流程图。
图2为本发明的实施例一的一种智能合约运行方法的步骤101的详细流程图。
图3为本发明的实施例二的一种智能合约运行装置的结构示意图。
图4为本发明的实施例三的区块链网络的交互示意图。
图5为本发明的实施例三提供的电子设备的方框示意图。
具体实施方式
为了使得本发明的目的.技术方案及优点更加清楚明白,以下结合其实施例,对本发明进行进一步详细说明;应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员而言,在查阅以下详细描述之后,本实施例的其它系统.方法和/或特征将变得显而易见。旨在所有此类附加的系统.方法.特征和优点都包括在本说明书内.包括在本发明的范围内,并且受所附权利要求书的保护。在以下详细描述描述了所公开的实施例的另外的特征,并且这些特征根据以下将详细描述将是显而易见的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”.“下”.“左”.“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或组件必须具有特定的方位.以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
实施例一:下面就本申请实施例提供的智能合约运行方法进行详细描述。
请参阅图3,下面将对图3所示的具体流程进行详细阐述。
步骤101,将智能合约程序编译成目标格式的目标智能合约。
本申请实施例提供的智能合约运行方法应用于区块链节点,所述区块链节点上安装有一浏览器。由于浏览器仅能够执行限定的几种格式的语言,因此,需要将其它语言编写的智能合约程序进行编译,以得到目标格式的目标智能合约。
上述的智能合约程序可以是C语言、C++语言、java语言、VC++语言C#语言等编写的程序。
目标格式可以是Webassembly语言格式。具体的,WebAssembly是一种新的适合于编译到Web的、可移植的、大小和加载时间高效的格式,是一种新的字节码格式。也是一种新的底层安全的“二进制”语法。Webassembly语言被定义为“精简、加载时间短的格式和执行模型”,并且被设计为Web多编程语言目标文件格式。使用WebAssembly,我们可以在浏览器中运行一些高性能、低级别的编程语言,可用它将大型的C和C++代码库比如游戏、物理引擎甚至是桌面应用程序导入Web平台。
WebAssembly与其他的汇编语言不一样,它不依赖于具体的物理机器。可以抽象地理解成它是概念机器的机器语言,而不是实际的物理机器的机器语言。浏览器把WebAssembly下载下来后,可以迅速地将其转换成机器汇编代码。不同浏览器处理WebAssembly的编译过程也不同。不论哪种方式,WebAssembly都更贴近机器码,所以WebAssembly就是为了编译器而设计的,开发人员不直接对其进行编程,这样就使得WebAssembly专注于提供更加理想的指令给机器。特别的,WebAssembly不支持垃圾回收,内存操作需要手动控制,因此WebAssembly没有垃圾回收。
WebAssembly更适合用于写模块,承接各种复杂的计算,如图像处理、3D运算、语音识别、视音频编码解码这种工作。
由于Webassembly语言格式仅支持int(整数)数据类型、float(浮点数)数据类型,为了提高目标智能合约的适应性更高,可以将智能合约程序中的其它数据类型进行转换,转换为Webassembly语言格式支持的数据类型。其中,上述的其它数据类型可以是string(字符串)数据类型、array(数组)数据类型等。
可选地,步骤101可以被实施为:将所述智能合约程序中的所有字符串按照所述Webassembly语言格式编译方式转换成二进制格式,以得到所述目标智能合约。
基于上述研究,如图2所示,步骤101可以包括以下步骤。
步骤1011,将所述智能合约程序按照指定字符长度划分成多段字符。
步骤1012,基于设定规则将每段字符转化成二进制字符,以得到所述目标智能合约。
上述的设定规则可以是将指定长度的字符串编码成一位字符。例如,可以将string数据类型或array数据类型中每N位数据进行编码形成一个字符。若一串string数据中包括M*N为数据时,可以将该串string数据划分成多串字符串,然后,再进行数据的编码。上述的M是大于等于一的正整数,N是大于一的正整数。其中,N的取值可以预先设定。
示例性地,上述的编码方式可以按照实际需求设定。可选地,上述的编码方式可以是与编译成Webassembly语言格式的编译过程使用的编码方式相同的编码方式。
其中,指定字符长度可以是按照用户需求设置的;也可以根据上述的智能合约中的各个数据类型的长度确定。
可选地,步骤S101可被执行为:将智能合约程序中的指定类型的待转换数据按照设定规则转换成二进制字符,以形成转换程序;将所述转换程序进行编译,以得到所述目标智能合约。
可选地,上述的将智能合约程序中的指定类型的待转换数据按照设定规则转换成二进制字符,以形成转换程序可以包括:将所述智能合约程序指定类型的待转换数据按照指定字符长度划分成多段字符;基于所述设定规则将每段字符转化成二进制的字符,以形成转换程序。
可选地,转化成二进制字符的编译器可以使用上述的智能合约程序对应的编译器对转换数据进行编译。例如,智能合约程序是c语言的程序,则可以使用c语言编译器进行编译。再例如,智能合约程序是java语言的程序,则可以使用java语言编译器进行编译。
可选地,步骤1011中的将智能合约程序中的指定类型的待转换数据按照设定规则转换成二进制字符过程也可以是在编译过程中实现。使用编译成Webassembly语言格式所使用的编码方式将智能合约程序中的指定类型的待转换数据进行编码。
本申请实施例提供的智能合约运行方法,由于Webassembly语言格式仅支持有限的数据类型,因此,可以将不满足Webassembly语言格式支持的数据类型进行转换,从而使目标智能合约的内容可以更丰富,从而可以使目标智能合约可以是不局限于通过限定的几种数据类型实现的智能合约。
步骤102,将目标智能合约导入浏览器中。
步骤103,通过浏览器将目标智能合约存入目标存储空间。
上述的目标存储空间可以是区块链节点中存储的区块中,也可以是存储在与区块链节点关联的独立服务器中。
示例性地,上述浏览器还可以将目标智能合约共享给执行本实施例中的智能合约运行方法的区块链节点在同一区块链网络上的其它区块链节点。
示例性地,可以将上述的目标智能合约部署到区块链上。示例性地,合约发起用户可以使用自己的外部所有账户对将上述的目标智能合约进行签名,并将目标智能合约进行发布,区块链上的其它用户对发布的目标智能合约确认后,目标智能合约可以被存储在区块链上的一个区块中。上述的目标智能合约被存储至区块链上后,各区块链节点可以获取该目标智能合约的存储地址。需要使用该目标智能合约时,通过该存储地址调用该目标智能合约。
步骤104,当接收到目标智能合约对应的处理任务时,通过所述浏览器从所述目标存储空间中加载所述目标智能合约,以运行目标智能合约执行所述处理任务。
上述的处理任务可以是执行本实施例中的智能合约运行方法的区块链节点中接收到的任务。也可以是执行本实施例中的智能合约运行方法的区块链节点在同一区块链网络上的其它区块链节点的处理任务,且由执行本实施例中的智能合约运行方法的区块链节点共同执行的任务。
本申请实施例提供的智能合约运行方法,通过在浏览器上运行智能合约可以改善虚拟机只能支持单一语言或者两种语言编写的智能合约的不足;另外,通过将其它语言的智能合约程序编译成目标格式的目标智能合约,以提高智能合约可用语言的宽度,从而使不同语言的智能合约经过编译后能够实现在浏览器上运行。
实施例二:基于同一申请构思,本申请实施例中还提供了与智能合约运行方法对应的智能合约运行装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述智能合约运行方法相似,因此智能合约运行装置的实施可以参见方法的实施,重复之处不再赘述。
请参阅图3,是本申请实施例提供的智能合约运行装置的功能模块示意图。智能合约运行装置中的各个模块用于执行上述方法实施例中的各个步骤。智能合约运行装置应用于区块链节点,所述区块链节点上安装有一浏览器。智能合约运行装置包括:编译模块201、导入模块202、存储模块203以及运行模块204;其中,
编译模块201,用于将智能合约程序编译成目标格式的目标智能合约;
导入模块202,用于将所述目标智能合约导入所述浏览器中;
存储模块203,用于通过所述浏览器将所述目标智能合约存入目标存储空间;
运行模块204,用于当接收到所述目标智能合约对应的处理任务时,通过所述浏览器从所述目标存储空间中加载所述目标智能合约,以运行所述目标智能合约执行所述处理任务。
一种可能的实施方式中,编译模块201,还用于:
将智能合约程序中的指定类型的待转换数据按照设定规则转换成二进制字符,以形成转换程序;
将所述转换程序进行编译,以得到所述目标智能合约。
一种可能的实施方式中,编译模块201,还用于:
将所述智能合约程序指定类型的待转换数据按照指定字符长度划分成多段字符;
基于所述设定规则将每段字符转化成二进制的字符,以形成转换程序。
一种可能的实施方式中,编译模块201,还用于:
将所述智能合约程序中的所有字符串按照所述Webassembly语言格式编译方式转换成二进制格式,以得到所述目标智能合约。
一种可能的实施方式中,编译模块201,还用于:
将所述智能合约程序按照指定字符长度划分成多段字符;
基于所述设定规则将每段字符转化成二进制字符,以得到所述目标智能合约。
实施例三:为便于对本实施例进行理解,下面再对执行本申请实施例所公开的智能合约运行方法的运行环境进行详细介绍。
如图4所示,该区块链网络中包括多个节点300。各个节点之间网络通信连接,以进行数据通信或交互。各个节点300可以是网络服务器、数据库服务器,还可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digitalassistant,PDA)等。
各个节点300中可以存储有完整的区块链。可选地,其中区块链上可以包括上述的目标智能合约。
如图5所示,电子设备400可以包括存储器411、存储控制器412、处理器413、外设接口414。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对电子设备400的结构造成限定。例如,电子设备400还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。本实施例中的电子设备400可以作为上述的区块链网络中的任一节点300的一种实施方式,也可以作为与各节点300通信的外部设备的实施方式。
上述的存储器411、存储控制器412、处理器413及外设接口414各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器413用于执行存储器中存储的可执行模块。
其中,存储器411可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器411用于存储计算机程序,处理器413在接收到执行指令后,执行上述的计算机程序,本申请实施例任一实施例揭示的过程定义的电子设备100所执行的方法可以应用于处理器413中,或者由处理器413实现。
上述的处理器413可能是一种集成电路芯片,具有信号的处理能力。上述的处理器413可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述的外设接口414将各种输入/输入装置耦合至处理器413以及存储器411。在一些实施例中,外设接口414,处理器413以及存储控制器412可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的智能合约运行方法的步骤。
本申请实施例所提供的智能合约运行方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的智能合约运行方法的步骤,具体可参见上述方法实施例,在此不再赘述。
综上所述,本发明的一种智能合约运行方法、装置及电子设备,通过块链节点在同一区块链网络上的其它区块链节点的处理任务,能够实现多任务共同执行能够达到实现不同种类语言的智能合约的运行效果;通过在浏览器上运行智能合约可以改善虚拟机只能支持单一语言或者两种语言编写的智能合约的不足,另外,通过将其它语言的智能合约程序编译成目标格式的目标智能合约,以提高智能合约可用语言的宽度,从而使不同语言的智能合约经过编译后能够实现在浏览器上运行;通过Webassembly语言格式仅支持有限类的数据类型,可以将不满足Webassembly语言格式支持的数据类型进行转换,从而使目标智能合约的内容可以更丰富,从而可以使目标智能合约可以是不仅限于通过限定的几种数据类型实现的智能合约。
虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。也就是说上面讨论的方法,系统和设备是示例。各种配置可以适当地省略,替换或添加各种过程或组件。例如,在替代配置中,可以以与所描述的顺序不同的顺序执行方法,和/或可以添加,省略和/或组合各种部件。而且,关于某些配置描述的特征可以以各种其他配置组合,如可以以类似的方式组合配置的不同方面和元素。此外,随着技术发展其中的元素可以更新,即许多元素是示例,并不限制本公开或权利要求的范围。
在说明书中给出了具体细节以提供对包括实现的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置例如,已经示出了众所周知的电路,过程,算法,结构和技术而没有不必要的细节,以避免模糊配置。该描述仅提供示例配置,并且不限制权利要求的范围,适用性或配置。相反,前面对配置的描述将为本领域技术人员提供用于实现所描述的技术的使能描述。在不脱离本公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。
综上,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
在说明书中给出了具体细节以提供对包括实现的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置例如,已经示出了众所周知的电路,过程,算法,结构和技术而没有不必要的细节,以避免模糊配置。该描述仅提供示例配置,并且不限制权利要求的范围,适用性或配置。相反,前面对配置的描述将为本领域技术人员提供用于实现所描述的技术的使能描述。在不脱离本公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。
综上,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
Claims (10)
1.一种智能合约运行方法,其特征在于,应用于区块链节点,所述区块链节点上安装有一浏览器,所述智能合约运行方法包括:
将智能合约程序编译成目标格式的目标智能合约;
将所述目标智能合约导入所述浏览器中;
通过所述浏览器将所述目标智能合约存入目标存储空间;
当接收到所述目标智能合约对应的处理任务时,通过所述浏览器从所述目标存储空间中加载所述目标智能合约,以运行所述目标智能合约执行所述处理任务。
2.根据权利要求1所述的一种智能合约运行方法,其特征在于,所述目标格式是Webassembly语言格式。
3.根据权利要求1所述的一种智能合约运行方法,其特征在于,所述将智能合约程序编译成目标格式的目标智能合约的步骤,包括:
将智能合约程序中的指定类型的待转换数据按照预设规则转换成二进制字符,以形成转换程序;
将所述转换程序进行编译,以得到所述目标智能合约。
4.根据权利要求2所述的一种智能合约运行方法,其特征在于,所述将智能合约程序中的指定类型的待转换数据按照预设规则转换成二进制字符,以形成转换程序的步骤,包括:
将所述智能合约程序指定类型的待转换数据按照指定字符长度划分成多段字符;
基于所述预设规则将每段字符转化成二进制的字符,以形成转换程序。
5.根据权利要求2所述的一种智能合约运行方法,其特征在于,所述将智能合约程序编译成目标格式的目标智能合约的步骤,包括:
将所述智能合约程序中的所有字符串按照所述Webassembly语言格式编译方式转换成二进制格式,以得到所述目标智能合约。
6.根据权利要求4所述的一种智能合约运行方法,其特征在于,将所述智能合约程序中的所有字符串按照所述Webassembly语言格式的编译方式转换成二进制格式,以得到所述目标智能合约的步骤,包括:
将所述智能合约程序按照指定字符长度划分成多段字符;
所述预设规则将每段字符转化成二进制字符,以得到所述目标智能合约。
7.一种智能合约运行装置,其特征在于,应用于区块链节点,所述区块链节点上安装有一浏览器,所述智能合约运行装置包括:
编译模块,用于将智能合约程序编译成目标格式的目标智能合约;
导入模块,用于将所述目标智能合约导入所述浏览器中;
存储模块,用于通过所述浏览器将所述目标智能合约存入目标存储空间;
运行模块,用于当接收到所述目标智能合约对应的处理任务时,通过所述浏览器从所述目标存储空间中加载所述目标智能合约,以运行所述目标智能合约执行所述处理任务。
8.根据权利要求7所述的一种智能合约运行装置,其特征在于,所述目标格式是Webassembly语言格式。
9.一种电子设备,其特征在于,所述电子设备包括处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行权利要求1-6任一项所述的智能合约运行方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1-6任一项所述的智能合约运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866755.2A CN110673851B (zh) | 2019-09-12 | 2019-09-12 | 一种智能合约运行方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910866755.2A CN110673851B (zh) | 2019-09-12 | 2019-09-12 | 一种智能合约运行方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673851A true CN110673851A (zh) | 2020-01-10 |
CN110673851B CN110673851B (zh) | 2023-01-06 |
Family
ID=69078116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910866755.2A Active CN110673851B (zh) | 2019-09-12 | 2019-09-12 | 一种智能合约运行方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673851B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324396A (zh) * | 2020-03-19 | 2020-06-23 | 深圳市网心科技有限公司 | 一种区块链智能合约执行方法、装置及设备 |
CN111580835A (zh) * | 2020-04-28 | 2020-08-25 | 中国银行股份有限公司 | Ipfs节点安装方法及装置 |
CN113590282A (zh) * | 2021-07-19 | 2021-11-02 | 海宁奕斯伟集成电路设计有限公司 | 算力调度方法、系统、电子设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170140408A1 (en) * | 2015-11-16 | 2017-05-18 | Bank Of America Corporation | Transparent self-managing rewards program using blockchain and smart contracts |
US20180293366A1 (en) * | 2017-04-05 | 2018-10-11 | General Electric Company | Systems and method for securely sharing and executing data and models |
CN109445773A (zh) * | 2018-09-27 | 2019-03-08 | 深圳点猫科技有限公司 | 一种基于编程语言提升浏览器性能的方法以及电子设备 |
CN109753288A (zh) * | 2019-01-14 | 2019-05-14 | 杭州云象网络技术有限公司 | 一种适用于形式化验证的智能合约编译方法 |
CN109919618A (zh) * | 2019-03-22 | 2019-06-21 | 众安信息技术服务有限公司 | 基于区块链的权限更新方法及权限更新装置 |
CN109960494A (zh) * | 2019-04-03 | 2019-07-02 | 陕西医链区块链集团有限公司 | 一种区块链应用开发框架设计方法 |
CN110096338A (zh) * | 2019-05-10 | 2019-08-06 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
US20190251071A1 (en) * | 2018-11-30 | 2019-08-15 | Alibaba Group Holding Limited | Blockchain data relationship structuring scheme based on binary log replication |
-
2019
- 2019-09-12 CN CN201910866755.2A patent/CN110673851B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170140408A1 (en) * | 2015-11-16 | 2017-05-18 | Bank Of America Corporation | Transparent self-managing rewards program using blockchain and smart contracts |
US20180293366A1 (en) * | 2017-04-05 | 2018-10-11 | General Electric Company | Systems and method for securely sharing and executing data and models |
CN109445773A (zh) * | 2018-09-27 | 2019-03-08 | 深圳点猫科技有限公司 | 一种基于编程语言提升浏览器性能的方法以及电子设备 |
US20190251071A1 (en) * | 2018-11-30 | 2019-08-15 | Alibaba Group Holding Limited | Blockchain data relationship structuring scheme based on binary log replication |
CN109753288A (zh) * | 2019-01-14 | 2019-05-14 | 杭州云象网络技术有限公司 | 一种适用于形式化验证的智能合约编译方法 |
CN109919618A (zh) * | 2019-03-22 | 2019-06-21 | 众安信息技术服务有限公司 | 基于区块链的权限更新方法及权限更新装置 |
CN109960494A (zh) * | 2019-04-03 | 2019-07-02 | 陕西医链区块链集团有限公司 | 一种区块链应用开发框架设计方法 |
CN110096338A (zh) * | 2019-05-10 | 2019-08-06 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
ASTIGARRAGA TARA ET AL.: "Empowering Business-Level Blockchain Users with a Rules Framework for Smart Contracts", 《SERVICE-ORIENTED COMPUTING (ICSOC 2018)》 * |
HEGEDUS PETER ET AL.: "Towards Analyzing the Complexity Landscape of Solidity Based Ethereum Smart Contracts", 《2018 IEEE/ACM 1ST INTERNATIONAL WORKSHOP ON EMERGING TRENDS IN SOFTWARE ENGINEERING FOR BLOCKCHAIN (WETSEB)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324396A (zh) * | 2020-03-19 | 2020-06-23 | 深圳市网心科技有限公司 | 一种区块链智能合约执行方法、装置及设备 |
CN111324396B (zh) * | 2020-03-19 | 2023-09-15 | 深圳市迅雷网络技术有限公司 | 一种区块链智能合约执行方法、装置及设备 |
CN111580835A (zh) * | 2020-04-28 | 2020-08-25 | 中国银行股份有限公司 | Ipfs节点安装方法及装置 |
CN111580835B (zh) * | 2020-04-28 | 2023-09-22 | 中国银行股份有限公司 | Ipfs节点安装方法及装置 |
CN113590282A (zh) * | 2021-07-19 | 2021-11-02 | 海宁奕斯伟集成电路设计有限公司 | 算力调度方法、系统、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110673851B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110673851B (zh) | 一种智能合约运行方法、装置及电子设备 | |
US8627303B2 (en) | Memory optimization of virtual machine code by partitioning extraneous information | |
US9213707B2 (en) | Ordered access of interrelated data files | |
CN111095338A (zh) | 用于执行不同类型区块链合约的系统和方法 | |
US20050010576A1 (en) | File differencing and updating engines | |
CN102099798A (zh) | 用于使用本机代码模块执行应用的方法和系统 | |
US20200319867A1 (en) | Systems and methods for eager software build | |
CN111367510A (zh) | 一种安卓功能模块开发的方法及装置 | |
CN112817657B (zh) | 一种应用程序启动项加载方法、装置、系统及存储介质 | |
CN103530171A (zh) | 一种智能卡虚拟机及其实现方法 | |
CN112783912B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN111143446A (zh) | 数据对象的数据结构转换处理方法、装置及电子设备 | |
CN111427578B (zh) | 一种数据转换方法、装置及设备 | |
CN115469894A (zh) | 一种应用程序的安装控制方法、装置、设备及存储介质 | |
CN110333867B (zh) | 一种多方安全计算数据处理方法、装置及系统 | |
CN102567020A (zh) | 一种智能卡应用的实现方法及系统 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN113360215A (zh) | 程序运行方法、装置及计算机可读存储介质 | |
CN110941443A (zh) | 修改sdk中文件名的方法、装置及电子设备 | |
CN112748946A (zh) | 应用程序安装文件生成方法和装置、计算设备、存储介质 | |
CN114356379A (zh) | 基于备份的服务升级方法、装置、设备及存储介质 | |
CN1531680A (zh) | 在程序控制流中实现改变的装置和方法 | |
CN115174541A (zh) | H5资源加载方法、装置、电子设备及存储介质 | |
CN112882774A (zh) | 并行执行的智能合约芯片装置及方法、区块链节点装置 | |
CN114244912A (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 |