Skip to content

Commit

Permalink
Merge pull request #51 from hafeidejiangyou/master
Browse files Browse the repository at this point in the history
Update smart_contract.rst
  • Loading branch information
rjl493456442 committed Jan 11, 2018
2 parents 1ef9fbb + 9f642d4 commit ea5d9b0
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions docs/zh_CN/smart_contract.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

智能合约是指部署在区块链上的一段可以自动执行条款的计算机程序。智能合约能够根据外界输入信息自动执行预先定义好的协议并完成区块链内部相关状态的转移。

广泛意义上的智能合约还包括智能合约编程语言、编译器、虚拟机、事件、状态机、容错机制等。其中对智能合约影响较大的是智能合约编程语言以及其执行引擎。智能合约虚拟机一般为了安全起见是作为沙箱被分装起来,整个执行环境完全被隔离。虚拟机内部执行的智能合约不允许接触网络、文件系统、进程线程等系统资源。不同智能合约的安全性等级、表达的丰富性有所不同,Hyperchain系统自主研发智能合约的执行引擎HyperVM是一种通用智能合约引擎设计,允许多种不同智能合约引擎接入。目前的实现了兼容Ethereum的Solidity语言的HyperEVM和支持Java语言的智能合约引擎HyperJVM.
广泛意义上的智能合约还包括智能合约编程语言、编译器、虚拟机、事件、状态机、容错机制等。其中对智能合约影响较大的是智能合约编程语言以及其执行引擎。智能合约虚拟机一般为了安全起见是作为沙箱被封装起来,整个执行环境完全被隔离。虚拟机内部执行的智能合约不允许接触网络、文件系统、进程线程等系统资源。不同智能合约的安全性等级、表达的丰富性有所不同,Hyperchain系统自主研发智能合约的执行引擎HyperVM是一种通用智能合约引擎设计,允许多种不同智能合约引擎接入。目前的实现了兼容Ethereum的Solidity语言的HyperEVM和支持Java语言的智能合约引擎HyperJVM.

2. 智能合约引擎HyperVM
----------------------
Expand All @@ -35,8 +35,8 @@ HyperEVM执行一次交易之后会返回一个执行结果,系统将其保存
2. 判断transaction类型,如果是部署合约则执行3,否则执行4;
3. HyperEVM新建一个合约账户来存储合约地址以及合约编译之后的代码;
4. HyperEVM解析transaction中的交易参数等信息,并调用其执行引擎执行相应的智能合约字节码;
5. 指令执行完成之后,HyperVM会判断其是否停机,否的话跳转步骤2,否则执行步骤6;
6. 判断HyperVM的停机状态是否正常,正常则结束执行,否则执行步骤7;
5. 指令执行完成之后,HyperEVM会判断其是否停机,否的话跳转步骤2,否则执行步骤6;
6. 判断HyperEVM的停机状态是否正常,正常则结束执行,否则执行步骤7;
7. 进行Undo操作,状态回滚到本次交易执行之前。

执行指令集模块是HyperEVM执行模块的核心,指令的执行模块有两种实现,分别是基于字节码的执行以及更加复杂高效的即时编译(Just-in-time
Expand Down

0 comments on commit ea5d9b0

Please sign in to comment.