Skip to content

SunnyPirate/evm-lite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

概览


该项目旨在提供一个以太坊虚拟机的精简版程序库。项目主要工作在于将以太坊项目中的虚拟机部分代码抽离出来,精简并合并虚拟机部分代码的依赖,提供一个EVM的最小执行环境,可以一定程度上解决区块链兼容以太坊智能合约开发的成本,对于开发者需要实现和具体链相关的底层数据操作以及地址接口。

编译和运行


构建该项目你需要机器上装有go语言和工具,并设置好GOPATH。除以上描述并无其他的编译依赖。

编译测试用例

通过git复制源代码到本地的任意一个目录,打开目录后你将看到三个文件夹分别为

  • kernal 存放EVM的所有的核心代码和接口
  • crypto EVM中依赖的加密算法的实现,目前是该项目的唯一依赖,该实现来自于go-ethereum
  • demo 该目录下存放的是一个该项目的演示示例

进入demo目录,执行go build之后将生成demo程序,直接运行即可。

二次开发和使用

如果要将该项目集成到你的项目中你需要做以下的工作:

  • 实现StateDB接口,该接口主要是数据存储操作接口,需要结合你的数据存储实现进行开发实现,demo中实现了一个Mock的数据存储
  • 需要实现ChainHanlder接口,目前只需要实现BlockHeader的Hash获取接口。

提示

  • 由于是EVM的精简版,代码上已经尽量的做了删减,但考虑到最大的兼容,因此保留了几乎所有的针对以太坊的配置设置
  • 具体的配置可以根据实际集成的链进行调整,可以参考demo/runtime.go进行调整 ##后续计划
  • 抽离interprter部分实现,更加的通用的解释器,确定指令集合
  • gas模型剥离,提供resource的消费接口
  • 通用的StateDB接口设计 .....

License

项目采用License为License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published