区块链上集成动态类型编程语言方法和装置制造方法及图纸

技术编号:15255083 阅读:62 留言:0更新日期:2017-05-02 22:28
本发明专利技术提供一种区块链上集成动态类型编程语言方法和装置。其中,该方法包括:调用字节码,字节码存储在区块链上,区块链包括至少一个节点,字节码由智能合约编译,智能合约和字节码唯一对应,智能合约由动态类型编程语言编写;通过字节码解释器解析字节码得到智能合约,智能合约未定义变量类型;定义智能合约的变量类型;执行定义变量类型后的智能合约。本发明专利技术提供的区块链上集成动态类型编程语言方法和装置,通过在区块链上使用动态类型的编程语言的智能合约,从而提高了区块链上智能合约的可扩展性。

Method and apparatus for integrating dynamic type programming language on block chain

The invention provides a method and a device for integrating dynamic type programming language on a block chain. Among them, the method includes: call bytecode, byte code stored in the block chain, chain block includes at least one node, byte code compiled by the intelligent contract, the contract and the corresponding bytecode only intelligent, intelligent contract written by dynamically typed programming language; the bytecode interpreter of bytecode get smart intelligent contract contract undefined variable types; definition of intelligent variable type contract; contract execution of intelligent variable types after definition. The invention provides a block chain integration dynamic programming language type method and device by using dynamic intelligent contract type in the block on the chain of programming languages, thus improving the block chain contract intelligent scalability.

【技术实现步骤摘要】

本专利技术涉及互联网技术,尤其涉及一种区块链上集成动态类型编程语言方法和装置。
技术介绍
比特币是一种数字货币,依据特定算法并通过大量的计算产生,比特币使用网络中众多节点构成的分布式数据库来确认并记录所有的交易行为。比特币技术中的区块链像一个数据库账本,记载所有的比特币交易记录。区块链由众多节点构成,智能合约是编写并存储在区块链各节点上的程序代码,区块链上的所有节点可以通过执行智能合约的相关操作实现相关功能。现有技术中,智能合约通过静态类型编程语言实现,例如用Solidity,与Javascript类似的专用语言,用户设备将智能合约源代码编译成字节码形式后,存储到区块链内的各个节点上。各节点调用并执行智能合约,以得到智能合约运行的结果。采用现有技术,由于静态类型编程语言的变量类型不可更改,各节点不能对智能合约进行修改和调整,因此智能合约的可扩展性不强。
技术实现思路
本专利技术提供一种区块链上集成动态类型编程语言方法和装置,通过在区块链上使用动态类型的编程语言的智能合约,从而提高了区块链上智能合约的可扩展性。本专利技术提供一种一种区块链上集成动态类型编程语言方法,包括:调用字节码,所述字节码存储在区块链上,所述区块链包括至少一个所述节点,所述字节码由智能合约编译,所述智能合约和所述字节码唯一对应,所述智能合约由动态类型编程语言编写;通过字节码解释器解析所述字节码得到所述智能合约,所述智能合约未定义变量类型;定义所述智能合约的所述变量类型;执行定义所述变量类型后的所述智能合约。在本专利技术一实施例中,所述执行定义所述变量类型后的所述智能合约之后,还包括:将所述智能合约执行后所述区块链状态的变化部分和所述变量类型存储到所述区块链中。在本专利技术一实施例中,所述定义所述智能合约的所述变量类型之前,还包括:调用所述智能合约的应用程序编程接口API;修改所述智能合约。本专利技术提供一种区块链上集成动态类型编程语言方法,包括:将智能合约编译为字节码,所述智能合约和所述字节码唯一对应,所述智能合约由动态类型编程语言编写,所述智能合约未定义变量类型;将所述字节码存储到所述区块链的所有节点上,所述区块链包括至少一个节点。在本专利技术一实施例中,所述用户设备将智能合约编译为字节码之前,还包括:编写所述智能合约。本专利技术提供一种区块链上集成动态类型编程语言装置,包括:调用模块,所述调用模块用于调用字节码,所述字节码存储在区块链上,所述区块链包括至少一个所述节点,所述字节码由智能合约编译,所述智能合约和所述字节码唯一对应,所述智能合约由动态类型编程语言编写;解释模块,所述解释模块用于通过字节码解释器解析所述字节码得到所述智能合约,所述智能合约未定义变量类型;定义模块,所述定义模块用于定义所述智能合约的所述变量类型;执行模块,所述执行模块用于执行定义所述变量类型后的所述智能合约。在本专利技术一实施例中,还包括:存储模块,所述存储模块用于将所述智能合约执行后所述区块链状态的变化部分和所述变量类型存储到所述区块链中。在本专利技术一实施例中,还包括:所述定义模块还用于调用所述智能合约的应用程序编程接口API;所述定义模块还用于修改所述智能合约。本专利技术提供一种区块链上集成动态类型编程语言装置,包括:编译模块,所述编译模块用于将智能合约编译为字节码,所述智能合约和所述字节码唯一对应,所述智能合约由动态类型编程语言编写,所述智能合约未定义变量类型;存储模块,所述存储模块用于将所述字节码存储到所述区块链的所有节点上,所述区块链包括至少一个节点。在本专利技术一实施例中,还包括:编写模块,所述编写模块用于编写所述智能合约。本专利技术提供一种区块链上集成动态类型编程语言方法和装置。其中,该方法包括:调用字节码,字节码存储在区块链上,区块链包括至少一个节点,字节码由智能合约编译,智能合约和字节码唯一对应,智能合约由动态类型编程语言编写;通过字节码解释器解析字节码得到智能合约,智能合约未定义变量类型;定义智能合约的变量类型;执行定义变量类型后的智能合约。本专利技术提供的区块链上集成动态类型编程语言方法和装置,通过在区块链上使用动态类型的编程语言的智能合约,从而提高了区块链上智能合约的可扩展性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术区块链上集成动态类型编程语言方法实施例一的流程示意图;图2为本专利技术区块链上集成动态类型编程语言方法实施例二的流程示意图;图3为本专利技术区块链上集成动态类型编程语言装置实施例一的结构示意图;图4为本专利技术区块链上集成动态类型编程语言装置实施例二的结构示意图;图5为本专利技术区块链上集成动态类型编程语言装置实施例三的结构示意图;图6为本专利技术区块链上集成动态类型编程语言装置实施例四的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面以具体地实施例对本专利技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。图1为本专利技术区块链上集成动态类型编程语言方法实施例一的流程示意图。本实施的执行主体为区块链上的任一节点,如图1所示,本实施例中区块链上集成动态类型编程语言方法包括如下步骤:S101:调用字节码,字节码存储在区块链上,区块链包括至少一个节点,字节码由智能合约编译,智能合约和字节码唯一对应,智能合约由动态类型编程语言编写。具体地,区块链上的各节点需要执行智能合约时,从区块链上调用该智能合约的字节码。区块链上各节点存储字节码为智能合约编译所得,并且智能合约由动态类型编程语言编写。例如,本实施例在具体实现时,在区块链中集成动态类型编程语言字节码虚拟机,从而能够提供更多不同种类和语法的动态类型编程语言,将动态类型编程语言代码编译生成符合规范的字节码注册到区块链上作为智能合约使用。进一步地,动态类型编程语言字节码虚拟机能够兼容静态类型编程语言。S102:通过字节码解释器解析字节码得到智能合约,智能合约未定义变量类型。具体地,通过字节码解释器解析S101中调用的字节码,得到字节码对应的智能合约。字节码解释器用于将代码编译成的字节码还原为代码形式。本文档来自技高网...

【技术保护点】
一种区块链上集成动态类型编程语言方法,其特征在于,包括:调用字节码,所述字节码存储在区块链上,所述区块链包括至少一个所述节点,所述字节码由智能合约编译,所述智能合约和所述字节码唯一对应,所述智能合约由动态类型编程语言编写;通过字节码解释器解析所述字节码得到所述智能合约,所述智能合约未定义变量类型;定义所述智能合约的所述变量类型;执行定义所述变量类型后的所述智能合约。

【技术特征摘要】
1.一种区块链上集成动态类型编程语言方法,其特征在于,包括:调用字节码,所述字节码存储在区块链上,所述区块链包括至少一个所述节点,所述字节码由智能合约编译,所述智能合约和所述字节码唯一对应,所述智能合约由动态类型编程语言编写;通过字节码解释器解析所述字节码得到所述智能合约,所述智能合约未定义变量类型;定义所述智能合约的所述变量类型;执行定义所述变量类型后的所述智能合约。2.根据权利要求1所述的方法,其特征在于,所述执行定义所述变量类型后的所述智能合约之后,还包括:将所述智能合约执行后所述区块链状态的变化部分和所述变量类型存储到所述区块链中。3.根据权利要求1或2所述的方法,其特征在于,所述定义所述智能合约的所述变量类型之前,还包括:调用所述智能合约的应用程序编程接口API;修改所述智能合约。4.一种区块链上集成动态类型编程语言方法,其特征在于,包括:将智能合约编译为字节码,所述智能合约和所述字节码唯一对应,所述智能合约由动态类型编程语言编写,所述智能合约未定义变量类型;将所述字节码存储到所述区块链的所有节点上,所述区块链包括至少一个节点。5.根据权利要求4所述的方法,其特征在于,所述用户设备将智能合约编译为字节码之前,还包括:编写所述智能合约。6.一种区块链上集成动态类型编程语言装置,其特征在于,包括:...

【专利技术属性】
技术研发人员:周维崔萌徐伟孙江涛
申请(专利权)人:北京果仁宝科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1