CN108874372B - 一种基于Scala的区块链合约实现方法及系统 - Google Patents

一种基于Scala的区块链合约实现方法及系统 Download PDF

Info

Publication number
CN108874372B
CN108874372B CN201810635768.4A CN201810635768A CN108874372B CN 108874372 B CN108874372 B CN 108874372B CN 201810635768 A CN201810635768 A CN 201810635768A CN 108874372 B CN108874372 B CN 108874372B
Authority
CN
China
Prior art keywords
contract
class
compiling
calling
deployment
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.)
Active
Application number
CN201810635768.4A
Other languages
English (en)
Other versions
CN108874372A (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.)
Beijing Lianqi Technology Co Ltd
Original Assignee
Beijing Lianqi Technology Co 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 Beijing Lianqi Technology Co Ltd filed Critical Beijing Lianqi Technology Co Ltd
Priority to CN201810635768.4A priority Critical patent/CN108874372B/zh
Publication of CN108874372A publication Critical patent/CN108874372A/zh
Application granted granted Critical
Publication of CN108874372B publication Critical patent/CN108874372B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种基于Scala的区块链合约实现方法及系统,所述方法包括:在集成开发环境下静态编译合约,并通过接口抽象结合类反射机制实现合约接口调用;通过唯一命名机制对合约类进行命名;通过ScalaTest工具包对所编译合约进行测试;将通过测试的合约通过Deploy类型的签名交易共识入块、出块之后经类反射机制实现Scala合约类的动态编译和加载合约后完成全网部署;根据部署返回的合约标识对所述合约进行调用。本发明能够采用图灵完备、经过工程化实践检验的Scala语言作为合约开发语言,扩展区块链的应用场景,同时由于采用通用、成熟的IDE作为合约的开发调试工具,降低了合约开发调试的难度。

Description

一种基于Scala的区块链合约实现方法及系统
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于Scala的区块链合约实现方法及系统。
背景技术
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
但是,随着区块链的广泛使用,出现需要适应更多的应用场景以及允许第三方编写、签名部署、签名调用合约的问题。
发明内容
本发明提供的基于Scala的区块链合约实现方法及系统,能够采用图灵完备、经过工程化实践检验的Scala语言作为合约开发语言,扩展区块链的应用场景,同时由于采用通用、成熟的IDE作为合约的开发调试工具,降低了合约开发调试的难度。
第一方面,本发明提供一种基于Scala的区块链合约实现方法,包括:
在集成开发环境下静态编译合约,并通过接口抽象结合类反射机制实现合约接口调用;
通过唯一命名机制对合约类进行命名;
通过ScalaTest工具包对所编译合约进行测试;
将通过测试的合约通过Deploy类型的签名交易共识入块、出块之后经类反射机制实现Scala合约类的动态编译和加载合约后完成全网部署;
根据部署返回的合约标识对所述合约进行调用。
可选地,所述通过ScalaTest工具包对所编译合约进行测试包括:
通过ScalaTest工具包编写自动化测试用例;
遍历所编译合约的所有提供给外部交易请求调用的公开方法,用以测试所编译合约。
可选地,所述将通过测试的合约通过Deploy类型的签名交易共识入块、出块之后经类反射机制实现Scala合约类的动态编译和加载合约后完成全网部署包括:
将合约内容以文本方式写入区块链;
由交易请求调度类根据Deploy类型的签名交易,新建对应的合约容器,并由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化;
由部署交易请求将返回的合约标识作为调用所述合约的指向,以使合约完成全网部署。
可选地,所述由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化包括:
定义抽象接口,并让合约类开放其被调用的时机;
通过唯一命名机制对合约类进行命名;
由动态编译工具类、加载工具类分别对合约类执行动态编译和加载。
可选地,所述定义抽象接口,并让合约类开放其被调用的时机包括:
初始化合约实例,并传入合约执行的上下文;
调用合约方法,传入合约数据并返回执行结果。
第二方面,本发明提供一种基于Scala的区块链合约实现系统,包括:
编译单元,用于在集成开发环境下静态编译合约;
接口单元,用于通过接口抽象结合类反射机制实现合约接口调用;
命名单元,用于通过唯一命名机制对合约类进行命名;
测试单元,用于通过ScalaTest工具包对所编译合约进行测试;
合约部署单元,用于将通过测试的合约通过Deploy类型的签名交易共识入块、出块之后经类反射机制实现Scala合约类的动态编译和加载合约后完成全网部署;
调用单元,用于根据部署返回的合约标识对所述合约进行调用。
可选地,所述测试单元包括:
用例编写子单元,用于通过ScalaTest工具包编写自动化测试用例;
测试子单元,用于遍历所编译合约的所有提供给外部交易请求调用的公开方法,用以测试所编译合约。
可选地,所述合约部署单元包括:
入块子单元,用于将合约内容以文本方式写入区块链;
部署子单元,用于由交易请求调度类根据Deploy类型的签名交易,新建对应的合约容器,并由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化;
合约标识子单元,用于由部署交易请求将返回的合约标识作为调用所述合约的指向,以使合约完成全网部署。
可选地,所述部署子单元包括:
抽象接口定义模块,用于定义抽象接口,并让合约类开放其被调用的时机;
命名模块,用于通过唯一命名机制对合约类进行命名;
动态编译加载模块,用于由动态编译工具类、加载工具类分别对合约类执行动态编译和加载。
可选地,所述抽象接口定义模块包括:
第一定义子模块,用于初始化合约实例,并传入合约执行的上下文;
第二定义子模块,用于调用合约方法,传入合约数据并返回执行结果。
本发明实施例提供的基于Scala的区块链合约实现方法及系统,所述方法主要是通过采用Scala语言作为合约脚本语言建立区块链合约,其中,采用Scala语言建立区块链合约过程包括首先在集成开发环境下静态编译合约用以实现合约的编写,所述集成开发环境;其次通过类反射机制实现合约接口调用,以便于能够实现合约容器动态加载;然后,通过ScalaTest工具包对所编译合约进行测试,所述测试是在测试网络TestNet下进行,并用以实现合约本地测试;最后,将通过测试的合约经动态编译和加载合约后完成全网部署以及后续合约调用。本实施例所述方法运用成熟的Scala类反射机制、动态类编译、类加载技术首先实现采用图灵完备、经过工程化实践检验的Scala语言作为合约开发语言;其次实现采用支持Scala调试的通用IDE作为合约调试IDE;最后实现支持合约的动态即时编译和加载;大大扩展了区块链的应用场景,图灵完备的语言加上对Key-Value对的WorldState持久化支持,使得开发者能够根据应用场景编写对应的合约,提高所述区块链的多样性,扩大区块链的运用范围。
附图说明
图1为本发明一实施例基于Scala的区块链合约实现方法的流程图;
图2为本发明另一实施例基于Scala的区块链合约实现方法的流程图;
图3为本发明一实施例基于Scala的区块链合约实现系统的结构示意图;
图4为本发明另一实施例基于Scala的区块链合约实现系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种基于Scala的区块链合约实现方法,如图1所示,所述方法包括:
S11、在集成开发环境下静态编译合约,并通过接口抽象结合类反射机制实现合约接口调用;
S12、通过唯一命名机制对合约类进行命名;
S13、通过ScalaTest工具包对所编译合约进行测试;
S14、将通过测试的合约通过Deploy类型的签名交易共识入块、出块之后经类反射机制实现Scala合约类的动态编译和加载合约后完成全网部署;
S15、根据部署返回的合约标识对所述合约进行调用。
本发明实施例提供的基于Scala的区块链合约实现方法主要是通过采用Scala语言(Scala语言是一种能够执行于JVM和.Net平台之上的通用编程语言。既可用于大规模应用程序开发,也可用于脚本编程,它由Martin Odersk于2001开发,2004年开始程序执行在JVM与.Net平台之上。)作为合约脚本语言建立区块链合约,其中,采用Scala语言建立区块链合约过程包括首先在集成开发环境下静态编译合约用以实现合约的编写,所述集成开发环境(IDE:Integrated Development Environment,用于辅助开发计算机程序的应用软件);其次通过类反射机制实现合约接口调用,以便于能够实现合约容器动态加载(其中,所述合约接口是抽象出init初始化和onAction合约动作入口);然后,通过ScalaTest工具包对所编译合约进行测试,所述测试是在测试网络TestNet下进行,并用以实现合约本地测试;最后,将通过测试的合约经动态编译和加载合约后完成全网部署以及后续合约调用。本实施例所述方法运用成熟的Scala类反射机制、动态类编译、类加载技术首先实现采用图灵完备、经过工程化实践检验的Scala语言作为合约开发语言;其次实现采用支持Scala调试的通用IDE作为合约调试IDE;最后实现支持合约的动态即时编译和加载;大大扩展了区块链的应用场景,图灵完备的语言加上对Key-Value对的WorldState持久化支持,使得开发者能够根据应用场景编写对应的合约,提高所述区块链的多样性,扩大区块链的运用范围。
可选地,如图2所示,所述通过ScalaTest工具包对所编译合约进行测试包括:
通过ScalaTest工具包编写自动化测试用例;
遍历所编译合约的所有提供给外部交易请求调用的公开方法,用以测试所编译合约。
可选地,所述将通过测试的合约通过Deploy类型的签名交易共识入块、出块之后经类反射机制实现Scala合约类的动态编译和加载合约后完成全网部署包括:
将合约内容以文本方式写入区块链;
由交易请求调度类根据Deploy类型的签名交易,新建对应的合约容器,并由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化;
由部署交易请求将返回的合约标识作为调用所述合约的指向,以使合约完成全网部署。
具体的,本实施例所述方法在合约编译和本地调试,即合约实现能够正确处理所有方法调用及输入数据后,对合约进行全网部署,首先通过Deploy类型的签名交易,将部署请求提交到组网节点,节点预执行验证通过之后,广播到全网,由出块节点打包入块之后,部署完成。具体的,部署过程是将合约内容以文本方式写入区块链,同时交易请求调度类(TransactionProcessor:向上接收交易请求并返回交易执行结果,向下管理与合约对应的一系列合约容器(合约容器实例,其中,每个合约容器实例对应一个特定的合约,不同的合约请求之间允许并发执行,相同的合约请求必须串行执行。一方面合约沙箱负责为合约执行准备上下文,另一方面,合约沙箱根据交易请求指定的合约标识找到合约内容,并将其动态编译、加载和执行交易指定的合约方法,传入交易指定的方法数据),调度类根据交易内容,决定将交易请求并行地在多个合约容器实例中执行,还是串行地在同一个合约容器实例中执行,支持对合约容器实例的缓存和复用以提高执行效率)根据部署交易请求(例如:Deploy类型)的签名交易,新建一合约容器实例,由合约容器负责完成合约的动态编译、加载到内存并初始化,合约部署完成,最后部署交易请求(例如:Deploy交易)将返回合约的唯一标识(即合约标识)作为后续调用合约的指向,进而实现通过签名交易调用合约方法。
可选地,所述由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化包括:
定义抽象接口,并让合约类开放其被调用的时机;
通过唯一命名机制对合约类进行命名;
由动态编译工具类、加载工具类分别对合约类执行动态编译和加载。
可选地,所述定义抽象接口,并让合约类开放其被调用的时机包括:
初始化合约实例,并传入合约执行的上下文;
调用合约方法,传入合约数据并返回执行结果。
具体的,本实施例所述方法首先定义抽象接口,让合约类开放其被调用的时机用以实现类接口,所有合约必须实现合约接口,包括以下两个合约接口方法:
用于初始化合约实例,并传入合约执行的上下文;
调用合约方法,传入合约数据,返回执行结果。
其次,采用唯一命名机制对合约命名用以实现合约类命名,由于,每一个具体的合约实现类,必须具有唯一的类命名,以避免类加载到缓存之后的命名冲突。对合约类代码提取主体部分执行sha256Hash,作为类的唯一命名,再加上提取的代码主体,形成重新包装合约类,确保了相同代码逻辑映射到相同类名。
然后,由动态加载编译的工具类(即工具类Complier)采用reflect.ToolBox对合约类执行动态编译;
最后,由动态加载编译的工具类维护一个合约类的内存池,已加载的类直接复用,内存池中未加载的类,先尝试从Scala的类加载器中加载(Class.forName),如果类加载器加载失败(该类不存在于系统的类加载路径下),调用reflect.ToolBox执行类的动态编译,并加载编译生成的结果。经过上述步骤实现Scala合约类的动态编译和加载,进而完成合约的部署。
综上所述,一方面,在本实施例所述方法中合约的部署依赖合约的动态编译和加载,主要是由于合约在本地完成调试之后,通过Deploy请求以文本形式存放到区块链数据中,需要解决合约在运行期的动态加载和执行的问题。
另一方面,本实施例所述方法采用Scala合约类的动态编译和加载,利用Scala是运行在JVM之上的同时支持面向对象编程和函数式编程的多范式编程语言,并且Scala内置的REPL模式具备对字符串表达式的运行期编译和执行的能力;同时Scala还可提供reflect.ToolBox工具类,用以在运行期动态编译类。
最后,本实施例所述方法在合约部署完成之后,可以根据部署返回的合约标识对其进行调用,调用由Invoke类型的签名交易发起,签名交易中指定要调用的合约标识,以及要调用的方法名action,符合该方法的输入数据格式的输入数据。交易请求调度类(TransactionProcessor)对于Invoke类型的交易,将根据合约标识找到对应的合约容器实例,向其发送交易请求,合约容器收到请求之后,准备合约上下文,然后向已经完成动态编译和加载的合约实现实例,调用其onAction方法,传入输入数据。
本发明实施例还提供一种基于Scala的区块链合约实现系统,如图3所示,所述系统包括:
编译单元10,用于在集成开发环境下静态编译合约;
接口单元11,用于通过接口抽象结合类反射机制实现合约接口调用;
命名单元12,用于通过唯一命名机制对合约类进行命名;
测试单元13,用于通过ScalaTest工具包对所编译合约进行测试;
合约部署单元14,用于将通过测试的合约通过Deploy类型的签名交易共识入块、出块之后经类反射机制实现Scala合约类的动态编译和加载合约后完成全网部署;
调用单元15,用于根据部署返回的合约标识对所述合约进行调用。
本发明实施例提供的基于Scala的区块链合约实现系统主要是通过采用Scala语言作为合约脚本语言建立区块链合约,其中,采用Scala语言建立区块链合约过程包括首先在集成开发环境下静态编译合约用以实现合约的编写,所述集成开发环境;其次通过类反射机制实现合约接口调用,以便于能够实现合约容器动态加载;然后,通过ScalaTest工具包对所编译合约进行测试,所述测试是在测试网络TestNet下进行,并用以实现合约本地测试;最后,将通过测试的合约经动态编译和加载合约后完成全网部署以及后续合约调用。本实施例所述系统运用成熟的Scala类反射机制、动态类编译、类加载技术首先实现采用图灵完备、经过工程化实践检验的Scala语言作为合约开发语言;其次实现采用支持Scala调试的通用IDE作为合约调试IDE;最后实现支持合约的动态即时编译和加载;大大扩展了区块链的应用场景,图灵完备的语言加上对Key-Value对的WorldState持久化支持,使得开发者能够根据应用场景编写对应的合约,提高所述区块链的多样性,扩大区块链的运用范围。
可选地,如图4所示,所述测试单元13包括:
用例编写子单元131,用于通过ScalaTest工具包编写自动化测试用例;
测试子单元132,用于遍历所编译合约的所有提供给外部交易请求调用的公开方法,用以测试所编译合约。
可选地,所述合约部署单元14包括:
入块子单元141,用于将合约内容以文本方式写入区块链;
部署子单元142,用于由交易请求调度类根据Deploy类型的签名交易,新建对应的合约容器,并由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化;
合约标识子单元143,用于由部署交易请求将返回的合约标识作为调用所述合约的指向,以使合约完成全网部署。
可选地,所述部署子单元142包括:
抽象接口定义模块,用于定义抽象接口,并让合约类开放其被调用的时机;
命名模块,用于通过唯一命名机制对合约类进行命名;
动态编译加载模块,用于由动态编译工具类、加载工具类分别对合约类执行动态编译和加载。
可选地,所述抽象接口定义模块包括:
第一定义子模块,用于初始化合约实例,并传入合约执行的上下文;
第二定义子模块,用于调用合约方法,传入合约数据并返回执行结果。
本实施例的系统,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (8)

1.一种基于Scala的区块链合约实现方法,其特征在于,包括:
在集成开发环境下静态编译合约,并通过接口抽象结合类反射机制实现合约接口调用;
通过唯一命名机制对合约类进行命名;
通过ScalaTest工具包对所编译合约进行测试;
将合约内容以文本方式写入区块链,由交易请求调度类根据Deploy类型的签名交易,新建对应的合约容器,并由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化,由部署交易请求将返回的合约标识作为调用所述合约的指向,以使合约完成全网部署;
根据部署返回的合约标识对所述合约进行调用。
2.根据权利要求1所述的方法,其特征在于,所述通过ScalaTest工具包对所编译合约进行测试包括:
通过ScalaTest工具包编写自动化测试用例;
遍历所编译合约的所有提供给外部交易请求调用的公开方法,用以测试所编译合约。
3.根据权利要求1所述的方法,其特征在于,所述由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化包括:
定义抽象接口,并让合约类开放其被调用的时机;
通过唯一命名机制对合约类进行命名;
由动态编译工具类、加载工具类分别对合约类执行动态编译和加载。
4.根据权利要求3所述的方法,其特征在于,所述定义抽象接口,并让合约类开放其被调用的时机包括:
初始化合约实例,并传入合约执行的上下文;
调用合约方法,传入合约数据并返回执行结果。
5.一种基于Scala的区块链合约实现系统,其特征在于,包括:
编译单元,用于在集成开发环境下静态编译合约;
接口单元,用于通过接口抽象结合类反射机制实现合约接口调用;
命名单元,用于通过唯一命名机制对合约类进行命名;
测试单元,用于通过ScalaTest工具包对所编译合约进行测试;
合约部署单元,用于将合约内容以文本方式写入区块链,由交易请求调度类根据Deploy类型的签名交易,新建对应的合约容器,并由合约容器经类反射机制实现Scala合约类的动态编译和加载到内存并初始化,由部署交易请求将返回的合约标识作为调用所述合约的指向,以使合约完成全网部署;
调用单元,用于根据部署返回的合约标识对所述合约进行调用。
6.根据权利要求5所述的系统,其特征在于,所述测试单元包括:
用例编写子单元,用于通过ScalaTest工具包编写自动化测试用例;
测试子单元,用于遍历所编译合约的所有提供给外部交易请求调用的公开方法,用以测试所编译合约。
7.根据权利要求5所述的系统,其特征在于,所述合约部署单元包括:
抽象接口定义模块,用于定义抽象接口,并让合约类开放其被调用的时机;
命名模块,用于通过唯一命名机制对合约类进行命名;
动态编译加载模块,用于由动态编译工具类、加载工具类分别对合约类执行动态编译和加载。
8.根据权利要求7所述的系统,其特征在于,所述抽象接口定义模块包括:
第一定义子模块,用于初始化合约实例,并传入合约执行的上下文;
第二定义子模块,用于调用合约方法,传入合约数据并返回执行结果。
CN201810635768.4A 2018-06-20 2018-06-20 一种基于Scala的区块链合约实现方法及系统 Active CN108874372B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810635768.4A CN108874372B (zh) 2018-06-20 2018-06-20 一种基于Scala的区块链合约实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810635768.4A CN108874372B (zh) 2018-06-20 2018-06-20 一种基于Scala的区块链合约实现方法及系统

Publications (2)

Publication Number Publication Date
CN108874372A CN108874372A (zh) 2018-11-23
CN108874372B true CN108874372B (zh) 2020-01-24

Family

ID=64339635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810635768.4A Active CN108874372B (zh) 2018-06-20 2018-06-20 一种基于Scala的区块链合约实现方法及系统

Country Status (1)

Country Link
CN (1) CN108874372B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109559229A (zh) * 2018-11-30 2019-04-02 众安信息技术服务有限公司 基于区块链的更新智能合约组的方法
CN110297721B (zh) * 2019-06-24 2021-08-03 杭州趣链科技有限公司 一种基于java的智能合约的跨合约调用方法
CN110648124B (zh) * 2019-08-30 2021-06-29 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
WO2020035090A2 (en) 2019-11-08 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. Lightweight decentralized application platform
EP3776430B1 (en) * 2019-11-08 2022-04-27 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based decentralized application development
CN111340470B (zh) * 2020-02-24 2023-04-18 中国工商银行股份有限公司 区块链交易处理方法、节点及合约容器
CN112445543B (zh) * 2020-11-26 2023-03-10 杭州趣链科技有限公司 智能合约的类调用方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598579A (zh) * 2016-12-06 2017-04-26 北京果仁宝科技有限公司 区块链上集成动态类型编程语言方法和装置
CN107230056A (zh) * 2017-06-28 2017-10-03 无锡井通网络科技有限公司 一种基于区块链合约的快速交易系统
CN107943950A (zh) * 2017-11-24 2018-04-20 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种区块链中数据智能合约生成的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180041054A (ko) * 2017-09-06 2018-04-23 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598579A (zh) * 2016-12-06 2017-04-26 北京果仁宝科技有限公司 区块链上集成动态类型编程语言方法和装置
CN107230056A (zh) * 2017-06-28 2017-10-03 无锡井通网络科技有限公司 一种基于区块链合约的快速交易系统
CN107943950A (zh) * 2017-11-24 2018-04-20 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种区块链中数据智能合约生成的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
智能合约初体验;风之舞555;《https://www.cnblogs.com/fengzhiwu/p/5629468.html》;20160701;1-7 *

Also Published As

Publication number Publication date
CN108874372A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108874372B (zh) 一种基于Scala的区块链合约实现方法及系统
US10740115B2 (en) Structural identification of dynamically-generated, pattern-based classes
CN109710384B (zh) 一种安全的Java智能合约解释执行引擎及方法
CN107943469B (zh) 一种智能合约的发布方法及装置
JP2019536153A (ja) スマート・コントラクト処理方法及び装置
US8561045B2 (en) Constructing runtime state for inlined code
US9910681B2 (en) Instance interfaces and mix-ins for dynamic languages
CN101421711A (zh) 用于资源受限设备的虚拟执行系统
JP7394211B2 (ja) スマートコントラクトの並行実行の方法、装置、機器、及び媒体
CN111770205B (zh) 一种执行智能合约的方法、区块链节点、系统和存储介质
CN113688186B (zh) 智能合约执行方法、引擎及区块链节点
US20160246622A1 (en) Method and system for implementing invocation stubs for the application programming interfaces embedding with function overload resolution for dynamic computer programming languages
CN115629971A (zh) 一种应用的开发系统和开发方法
CN111651169B (zh) 基于web容器的区块链智能合约运行方法及系统
US8918767B2 (en) Pattern-based compilation of asynchronous consumption
CN115658140A (zh) 一种sdk的打包方法、装置、终端以及存储介质
US11435989B2 (en) Thread-local return structure for asynchronous state machine
Lazar et al. Using a fUML Action Language to construct UML models
EP4196874A1 (en) Representing asynchronous state machine in intermediate code
Wood et al. Triton: a domain specific language for cyber-physical systems
CN111506301B (zh) 绕过系统限制反射调用的方法及相关设备
US20240004616A1 (en) Runtime support for role types that extend underlying types
CN112346820A (zh) 区块链jvm应用方法、设备和存储介质
CN113986744A (zh) 一种分库分表组件的测试方法、装置及存储介质
WO2022260905A1 (en) Orchestrated platform for distributed system environments

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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20181123

Assignee: Zhongke Huizhi (Guangdong) Information Technology Co.,Ltd.

Assignor: BEIJING LIANQI TECHNOLOGY Co.,Ltd.

Contract record no.: X2021110000021

Denomination of invention: Implementation method and system of blockchain contract based on Scala

Granted publication date: 20200124

License type: Common License

Record date: 20210708

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20181123

Assignee: Zhongke Zhicheng (Guangzhou) Information Technology Co.,Ltd.

Assignor: BEIJING LIANQI TECHNOLOGY Co.,Ltd.

Contract record no.: X2024110000021

Denomination of invention: A Scala based Implementation Method and System for Blockchain Contracts

Granted publication date: 20200124

License type: Common License

Record date: 20240320

EE01 Entry into force of recordation of patent licensing contract