您现在的位置是:首页 > 文章详情

go-ethereum源码搭建环境

日期:2018-05-15点击:612

阅读源码对深入理解以太坊和区块链的原理是非常有用的,通过阅读源码可以知道交易、区块等核心数据结构的组成,可以对区块链的底层实现原理和运行过程有一个更清晰的认识,很多不明确的问题都可以从源码中找到答案。

网上以太坊的技术资料很多,但多数是关于智能合约和应用开发的,真正涉及底层实现和源码的很少。本文介绍以太坊go-ethereum源码的阅读环境配置,之后会陆续介绍一些源码阅读心得体会。以太坊有8种语言的实现,选择go-ethereum是因为它是以太坊的官方实现版本,包含了以太坊的所有特性,比较权威和全面,它是用go语言编写的,go语言学习起来比较容易,而且可读性也比较好。

阅读源码有一个代码编辑器就够了,但是为了更好的体验和更高的效率,还需要做一些配置,比如代码高亮、代码跳转等。

安装go语言

为了能支持代码跳转,需要安装go语言,安装教程参考这篇文章,其中最重要的是要保证正确设置了GOPATH,这样才能进行代码跳转。如果想学习go语言,可以看一下在线教程A Tour of Go,或者去看《The Go Programming Language》这本书。

配置编辑器

看代码可以选择你喜欢的代码编辑器,我用的是Visual Studio Code,为了支持go语言代码高亮,需要安装一个插件。在vscode的插件面板中搜索lukehoban,安装即可。

接下来安装一些go语言工具(有些需要翻墙),在命令行中执行以下命令安装:

 
     
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/zmb3/gogetdoc
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/acroca/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v github.com/cweill/gotests/...
go get -u -v golang.org/x/tools/cmd/godoc
go get -u -v github.com/fatih/gomodifytags

下载源码

以太坊代码都托管在github上,它的代码经常更新,每次更新会加入一些新的东西,也可能改变代码的组织架构,所以最好选择一个稳定版阅读,这里以1.5.9版本为例。

首先在GOPATH/src下创建github.com/ethereum目录:

 
     
$ mkdir -p $GOPATH/src/github.com/ethereum

然后进入上面创建的目录,下载go-ethereum项目源码:

 
     
$ cd $GOPATH/src/github.com/ethereum
$ git clone https://github.com/ethereum/go-ethereum.git
$ cd go-ethereum
$ git checkout v1.5.9

上面通过git clone下载源码,然后通过git checkout检出指定版本的代码,如果想使用其他版本,在git checkout中指定相应的版本号即可。

下载完成后目录结构应该是这样的:

 
     
GOPATH/src
├── github.com
└── ethereum
└── go-ethereum

路径和目录名一定要与上面的一致,不能放到其他地方或者改成其他名字,因为go语言是按照路径搜索包的。

其实上面最重要的就是要正确设置了GOPATH,并且要把源码放到GOPATH/src中正确的路径中。接下来就可以开始阅读代码了。


如果对以太坊开发有兴趣,推荐两个教程:

1.适合区块链新手的以太坊DApp开发:

http://xc.hubwiz.com/course/5a952991adb3847553d205d1

2.用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建以太坊DApp电商平台:

http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6

如果想加入以太坊技术开发群可以加微信拉你入群。


原文链接:https://yq.aliyun.com/articles/617073
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章