CN111414159A - 一种区块链虚拟机装置、虚拟机创建方法及交易方法 - Google Patents
一种区块链虚拟机装置、虚拟机创建方法及交易方法 Download PDFInfo
- Publication number
- CN111414159A CN111414159A CN202010180327.7A CN202010180327A CN111414159A CN 111414159 A CN111414159 A CN 111414159A CN 202010180327 A CN202010180327 A CN 202010180327A CN 111414159 A CN111414159 A CN 111414159A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- module
- engine
- sub
- block chain
- 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
- 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
-
- 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/602—Providing cryptographic facilities or 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Bioethics (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种区块链虚拟机装置,包括:V8 Javascript引擎和运行时库;所述V8 Javascript引擎关闭日期和时间模块和随机数模块的功能;所述运行时库用于读写区块链上的数据。该虚拟机满足虚拟机中交易开发的“安全性”和“确定性”要求;并且可以使用已有的编程语言,能够降低开发者使用的门槛;使用了更流行的编程语言,能够使更多的开发者方便使用;并且本发明使得交易的执行速度更快。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链虚拟机装置、虚拟机创建方法及交易方法。
背景技术
区块链技术是一种不依赖第三方、通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。每次区块链上储存的数据的变化,都依赖于链上交易的发生。所谓交易,是指一段对于区块链数据如何变化的描述代码,将交易发送到区块链上后,区块链会检查交易的有效性,之后执行这段交易,并且把交易执行的结果,更新到区块链上。
区块链会包含一个虚拟机,用来执行这段交易。整个区块链系统的演进,都依赖于一个一个交易的执行。因此,区块链系统中,虚拟机的设计和实现,是非常重要的部分。交易的内容一般使用某种编程语言来描述。一个虚拟机,一般包含一个编程语言核心执行引擎,一些对于这个语言执行引擎的定制化改动,和这种编程语言用来和区块链交互的区块链运行时。
发明内容
(一)发明目的
本发明的目的是提供一种区块链虚拟机装置、虚拟机创建方法及交易方法以解决现有技术区块链交易执行速度慢。
(二)技术方案
为解决上述问题,本发明的第一方面提供了一种区块链虚拟机装置,包括:V8Javascript引擎和运行时库;所述V8 Javascript引擎关闭日期和时间模块和随机数模块的功能;所述运行时库用于读写区块链上的数据。
进一步地,所述V8 Javascript引擎的编程语言为C++。
进一步地,所述运行时库包括:Golang子模块、C++子模块和Javascript子模块;所述Golang子模块用于对区块链信息的读取和储存;所述C++子模块用于开发所述Golang子模块的包装层,并将该包装层与所述V8Javascript引擎集成;所述Javascript子模块用于开发所述C++子模块的包装层。
进一步地,所述Golang子模块还用于加密和密码验证。
进一步地,所述Golang子模块还用于日志信息的记录和输出。
进一步地,所述Javascript子模块包括:高精度数学运算库单元;
所述高精度数学运算库单元用于提供高精度的数学运算库。
根据本发明的另一个方面,提供一种区块链虚拟机创建方法,包括:编译Javascript运行时,并利用所述Javascript运行时获取快照状态数据;获取最新的区块链和交易数据,并根据所述区块链和交易数据和所述交易数据生成运行时库;将所述运行时库与V8 Javascript引擎连接;将所述快照状态数据加载到所述V8 Javascript引擎,得到区块链虚拟机。
进一步地,所述将所述快照状态数据加载到所述V8 Javascript引擎步骤包括:从所述Javascript运行时代码创建V8 Javascript引擎;或将Javascript代码编译成快照,从所述快照中创建V8 Javascript引擎。
根据本发明的又一个方面,提供一种区块链交易方法,包括:根据上述技术方案所述的区块链虚拟机创建方法创建虚拟机;利用所述虚拟机执行区块链交易。
根据本发明的又一个方面,提供一种电子设备,包括存储器、显示器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述技术方案所述方法的步骤。
(三)有益效果
本发明的上述技术方案具有如下有益的技术效果:
本发明虚拟机满足虚拟机中交易开发的“安全性”和“确定性”要求;并且可以使用已有的编程语言,能够降低开发者使用的门槛;使用了更流行的编程语言,能够使更多的开发者方便使用;并且本发明使得交易的执行速度更快。
附图说明
图1是根据本发明第一实施方式的区块链虚拟机装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
如图1所示,在本发明实施例的第一方面,提供了一种区块链虚拟机装置,包括:V8Javascript引擎和运行时库;所述V8 Javascript引擎关闭日期和时间模块和随机数模块的功能;所述运行时库用于读写区块链上的数据。
上述实施例由于对完整的Javascript做裁剪和限制关闭了日期和时间模块与随机数模块,满足虚拟机中交易开发的上述“安全性”和“确定性”要求,因为原本Javascript中有获得当前时间的功能,也有产生随机数的功能,这两个功能每次运行很可能是结果不同的,是不具有“确定性”的。并且,与现有技术相比,集成了V8 Javascript引擎,使得交易的执行速度更快。
可选的,所述V8 Javascript引擎的编程语言为C++。
上述实施例在区块链虚拟机领域,和现有技术相比本实施例使用已有的编程语言,能够降低开发者使用的门槛;并且使用了更流行的编程语言,能够使更多的开发者方便使用。
可选的,所述运行时库包括:Golang子模块、C++子模块和Javascript子模块;所述Golang子模块用于对区块链信息的读取和储存;所述C++子模块用于开发所述Golang子模块的包装层,并将该包装层与所述V8Javascript引擎集成;所述Javascript子模块用于开发所述C++子模块的包装层。可选的,所述Golang子模块还用于加密和密码验证。可选的,所述Golang子模块还用于日志信息的记录和输出。可选的,所述Javascript子模块包括:高精度数学运算库单元;所述高精度数学运算库单元用于提供高精度的数学运算库。
由于虚拟机中的交易需要和区块链上的信息交互,才能产生真实世界的用途。因此需要增加运行时库,使得交易能够通过这个运行时库,来和读写链上的数据,产生实际的价值。运行时库细分为三个子模块:
一运行时库-Golang子模块
本实施例使用Golang开发,因此交易中所有和区块链交互的功能,都必须最终使用到Golang和区块链信息交互。Golang子模块提供以下功能:
A储存功能:能够储存键值对。能够通过一个键来读写值。
B区块链信息功能:能够读取区块链上当前块和当前交易的信息。
C密码学功能:包含散列函数,签名函数,签名验证函数。
D日志调试功能:能够输出信息,方便调试开发。
由于Golang子模块有“当前块”和“当前交易”的信息,因此对于每个交易都是不同的,需要每个交易执行前,重新构建Golang子模块。
二运行时库-C++子模块
V8 Javascript引擎本身使用C++语言开发,因此要想把Golang子模块被Javascript使用,必须使用C++语言开发Golang子模块的包装层,并且和V8 Javascript引擎集成。这样Javascript才能通过V8 Javascript引擎使用到Golang子模块提供的功能。
C++子模块由于和V8 Javascript引擎编程语言都是C++,可以在程序编译时就会和V8 Javascript引擎直接链接在一起,成为一个整体。
三运行时库-Javascript子模块
使用Javascript开发C++子模块的包装层,这样才能使得Javascript语言的交易,通过C++子模块,调用Golang子模块,最终使用到区块链。
除了包装C++子模块外,在Javascript子模块中也增加了高精度数学运算库,用来提供高精度的数学运算库,解决了原本Javascript小数运算不精确的问题。
本实施例在区块链中集成了V8 Javascript引擎,使得用户可以使用Javascript这种最流行的语言,高性能的执行交易;
本实施例在Golang中实现区块链运行时库,包括储存单元,区块链信息单元,密码学单元,调试单元;
储存单元能够储存键值对。能够通过一个键来读写值。
区块链信息单元能够读取区块链上当前块和当前交易的信息。
密码学单元包含散列函数,签名函数,签名验证函数。
调试单元能够输出信息,方便调试开发。
用C++集成到V8 Javascript引擎中,再使用Javascript包装给交易使用;
本实施例增加了V8 Javascript引擎的定制化改动,通过禁止随机数和日期模块,保证了交易结果的确定性和一致性;
本实施例使用了V8 Javascript引擎对于Javascript的快照技术,加速了每次V8Javascript引擎初始化的时间。
在本发明实施例的另一个方面,提供一种区块链虚拟机创建方法,包括:编译Javascript运行时,并利用所述Javascript运行时获取快照状态数据;获取最新的区块链和交易数据,并根据所述区块链和交易数据和所述交易数据生成运行时库;将所述运行时库与V8 Javascript引擎连接;将所述快照状态数据加载到所述V8 Javascript引擎,得到区块链虚拟机。
可选的,所述将所述快照状态数据加载到所述V8 Javascript引擎步骤包括:从所述Javascript运行时代码创建V8 Javascript引擎;或将Javascript代码编译成快照,从所述快照中创建V8 Javascript引擎。
在本发明实施例的又一个方面,提供一种区块链交易方法,包括:根据上述技术方案所述的区块链虚拟机创建方法创建虚拟机;利用所述虚拟机执行区块链交易。
在本发明实施例的又一个方面,提供一种电子设备,包括存储器、显示器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述技术方案所述方法的步骤。
在本发明一具体实施例中,提供一种整体交易在虚拟机中执行步骤,如下:
步骤一:区块链程序启动后,首先编译Javascript运行时,获得之后快照状态数据,并且保存这份快照状态到内存中。
步骤二区块链每次执行一个交易时,使用最新的区块链和交易数据,生成Golang运行时库。这个Golang运行时库能够用来读写此时区块链上的信息。
步骤三将Golang运行时库的,和V8 Javascript引擎中的C++运行时部分进行连接。
步骤四将步骤一中的快照数据,加载到V8 Javascript引擎中。(V8有两种加载Javascript方式,方法一是直接从Javascript运行时代码创建,方法二是(a)先将Javascript代码编译成快照,(b)再从快照中创建V8Javascript引擎。如果V8 Javascript引擎需要多次加载Javascript,则可以执行一次方法二中的(a步骤)后,再多次执行(b步骤)。这要比多次执行方法一更快)。
此时区块链虚拟机各模块都组装完成,可供使用了。
步骤五对于目前还没有执行的交易,将这个交易的代码放入步骤四的虚拟机中,让虚拟机执行这个交易。交易可能会成功读写区块链。
步骤六将步骤五中所有的对于区块链的改动都保存下来。并且关闭释放步骤二中创建好的虚拟机。
步骤七回到步骤二。重新执行步骤二到步骤六。
本发明旨在保护一种区块链虚拟机装置,包括:V8 Javascript引擎和运行时库;所述V8 Javascript引擎关闭日期和时间模块和随机数模块的功能;所述运行时库用于读写区块链上的数据。该虚拟机满足虚拟机中交易开发的“安全性”和“确定性”要求;并且可以使用已有的编程语言,能够降低开发者使用的门槛;使用了更流行的编程语言,能够使更多的开发者方便使用;并且本发明使得交易的执行速度更快。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (10)
1.一种区块链虚拟机装置,其特征在于,包括:V8 Javascript引擎和运行时库;
所述V8 Javascript引擎关闭日期和时间模块和随机数模块的功能;
所述运行时库用于读写区块链上的数据。
2.根据权利要求1所述的虚拟机装置,其特征在于,所述V8Javascript引擎的编程语言为C++。
3.根据权利要求1所述的虚拟机装置,其特征在于,所述运行时库包括:Golang子模块、C++子模块和Javascript子模块;
所述Golang子模块用于对区块链信息的读取和储存;
所述C++子模块用于开发所述Golang子模块的包装层,并将该包装层与所述V8Javascript引擎集成;
所述Javascript子模块用于开发所述C++子模块的包装层。
4.根据权利要求3所述的虚拟机装置,其特征在于,所述Golang子模块还用于加密和密码验证。
5.根据权利要求3所述的虚拟机装置,其特征在于,所述Golang子模块还用于日志信息的记录和输出。
6.根据权利要求1所述的虚拟机装置,其特征在于,所述Javascript子模块包括:高精度数学运算库单元;
所述高精度数学运算库单元用于提供高精度的数学运算库。
7.一种区块链虚拟机创建方法,其特征在于,包括:
编译Javascript运行时,并利用所述Javascript运行时获取快照状态数据;
获取最新的区块链和交易数据,并根据所述区块链和交易数据和所述交易数据生成运行时库;
将所述运行时库与V8 Javascript引擎连接;
将所述快照状态数据加载到所述V8 Javascript引擎,得到区块链虚拟机。
8.根据权利要求7所述的区块链虚拟机创建方法,其特征在于,所述将所述快照状态数据加载到所述V8 Javascript引擎步骤包括:
从所述Javascript运行时代码创建V8 Javascript引擎;或
将Javascript代码编译成快照,从所述快照中创建V8 Javascript引擎。
9.一种区块链交易方法,其特征在于,包括:
根据权利要求7或8所述的区块链虚拟机创建方法创建虚拟机;
利用所述虚拟机执行区块链交易。
10.一种电子设备,其特征在于,包括存储器、显示器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求7或8所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010180327.7A CN111414159B (zh) | 2020-03-16 | 2020-03-16 | 一种区块链虚拟机装置、虚拟机创建方法及交易方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010180327.7A CN111414159B (zh) | 2020-03-16 | 2020-03-16 | 一种区块链虚拟机装置、虚拟机创建方法及交易方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414159A true CN111414159A (zh) | 2020-07-14 |
CN111414159B CN111414159B (zh) | 2023-07-25 |
Family
ID=71491212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010180327.7A Active CN111414159B (zh) | 2020-03-16 | 2020-03-16 | 一种区块链虚拟机装置、虚拟机创建方法及交易方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414159B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681569A (zh) * | 2018-05-04 | 2018-10-19 | 亚洲保理(深圳)有限公司 | 一种数据自动分析系统及其方法 |
CN109032706A (zh) * | 2018-07-16 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备和存储介质 |
CN109034814A (zh) * | 2018-09-14 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 基于以太坊虚拟机的智能合约处理方法和装置 |
CN109285071A (zh) * | 2018-09-10 | 2019-01-29 | 中国银联股份有限公司 | 一种基于区块链的数据处理平台及数据处理方法 |
CN109710384A (zh) * | 2018-12-29 | 2019-05-03 | 杭州趣链科技有限公司 | 一种安全的Java智能合约解释执行引擎及方法 |
CN109783077A (zh) * | 2018-12-14 | 2019-05-21 | 平安科技(深圳)有限公司 | 区块链系统及其中间件系统、数据上链方法、存储介质 |
CN109933407A (zh) * | 2019-02-26 | 2019-06-25 | 上海南潮信息科技有限公司 | 区块链dapp虚拟机、数据处理方法和计算设备 |
CN110048846A (zh) * | 2018-12-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 一种基于区块链智能合约的签名验证方法及系统 |
US20190278852A1 (en) * | 2018-03-06 | 2019-09-12 | International Business Machines Corporation | Customized endorsement logic for blockchain |
WO2019170175A2 (en) * | 2019-06-28 | 2019-09-12 | Alibaba Group Holding Limited | System and method for executing different types of blockchain contracts |
CN110569110A (zh) * | 2019-09-11 | 2019-12-13 | 杭州秘猿科技有限公司 | 支持可交互的多虚拟机的区块链方法、电子设备 |
CN110704063A (zh) * | 2019-09-30 | 2020-01-17 | 支付宝(杭州)信息技术有限公司 | 编译和执行智能合约的方法及装置 |
-
2020
- 2020-03-16 CN CN202010180327.7A patent/CN111414159B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190278852A1 (en) * | 2018-03-06 | 2019-09-12 | International Business Machines Corporation | Customized endorsement logic for blockchain |
CN108681569A (zh) * | 2018-05-04 | 2018-10-19 | 亚洲保理(深圳)有限公司 | 一种数据自动分析系统及其方法 |
CN109032706A (zh) * | 2018-07-16 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备和存储介质 |
CN109285071A (zh) * | 2018-09-10 | 2019-01-29 | 中国银联股份有限公司 | 一种基于区块链的数据处理平台及数据处理方法 |
CN109034814A (zh) * | 2018-09-14 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 基于以太坊虚拟机的智能合约处理方法和装置 |
CN110048846A (zh) * | 2018-12-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 一种基于区块链智能合约的签名验证方法及系统 |
CN109783077A (zh) * | 2018-12-14 | 2019-05-21 | 平安科技(深圳)有限公司 | 区块链系统及其中间件系统、数据上链方法、存储介质 |
CN109710384A (zh) * | 2018-12-29 | 2019-05-03 | 杭州趣链科技有限公司 | 一种安全的Java智能合约解释执行引擎及方法 |
CN109933407A (zh) * | 2019-02-26 | 2019-06-25 | 上海南潮信息科技有限公司 | 区块链dapp虚拟机、数据处理方法和计算设备 |
WO2019170175A2 (en) * | 2019-06-28 | 2019-09-12 | Alibaba Group Holding Limited | System and method for executing different types of blockchain contracts |
CN110569110A (zh) * | 2019-09-11 | 2019-12-13 | 杭州秘猿科技有限公司 | 支持可交互的多虚拟机的区块链方法、电子设备 |
CN110704063A (zh) * | 2019-09-30 | 2020-01-17 | 支付宝(杭州)信息技术有限公司 | 编译和执行智能合约的方法及装置 |
Non-Patent Citations (2)
Title |
---|
刘广沛: "基于区块链的云数据完整性保护机制", 《中国优秀硕士学位论文全文数据库信息科技辑》, pages 138 - 203 * |
张玮炜: "基于贡献值证明共识机制的区块链系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 678 * |
Also Published As
Publication number | Publication date |
---|---|
CN111414159B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11915238B2 (en) | Blockchain-implemented systems and methods for concurrent bytecode interpretation | |
Grishchenko et al. | Foundations and tools for the static analysis of ethereum smart contracts | |
JP7250178B2 (ja) | ブロックチェーンネットワークにおけるスマートコントラクトをサポートするための方法及びコントラクト書き換えフレームワークシステム | |
US20240168735A1 (en) | System and method for compiling high-level language code into a script executable on a blockchain platform | |
Grishchenko et al. | Ethertrust: Sound static analysis of ethereum bytecode | |
Chong et al. | Code-level model checking in the software development workflow | |
US11398911B1 (en) | System for interacting objects as tokens on a blockchain using a class-based language | |
Cui et al. | VRust: Automated vulnerability detection for solana smart contracts | |
Ahrendt et al. | Smart contracts: a killer application for deductive source code verification | |
Li et al. | Detecting standard violation errors in smart contracts | |
Dickerson et al. | Proof-carrying smart contracts | |
Cassez et al. | Deductive verification of smart contracts with Dafny | |
Chittoda | Mastering Blockchain Programming with Solidity: Write production-ready smart contracts for Ethereum blockchain with Solidity | |
Schrans et al. | Flint for safer smart contracts | |
Lampson | Hints and principles for computer system design | |
CN111414159B (zh) | 一种区块链虚拟机装置、虚拟机创建方法及交易方法 | |
Benabbou et al. | A survey of verification, validation and testing solutions for smart contracts | |
He | Modeling and analyzing smart contracts using predicate transition nets | |
Ceresa et al. | Multi: a formal playground for multi-smart contract interaction | |
Kok | Hands-On Blockchain for Python Developers: Gain blockchain programming skills to build decentralized applications using Python | |
Abusdal et al. | A notion of equivalence for refactorings with abstract execution | |
Kolb et al. | Quartz: A framework for engineering secure smart contracts | |
Baby et al. | A review analysis on smart contract vulnerabilities using blockchain | |
US20240144256A1 (en) | Decentralized blockchain client authorization and authentication | |
Steinkopf | Analysis and Implementation of Verifiable Computation Techniques for Energy Blockchain Applications |
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 |