【連載】以太坊源碼分析(1)本地搭建以太坊開發環境
此文章在 區塊鏈技術中文社區 同步發表
準備編輯器
n
1、vim
n
個人比較習慣vim編輯器,可照此教程 來配置vim下的go開發環境。另外,除前面教程提到的vim插件,以下幾個常用vim插件也推薦安裝
n- scrooloose/nerdtree, 可以像IDE那樣,樹形瀏覽你的工程
- mileszs/ack.vim, 全文搜索
- scrooloose/nerdcommenter, 快速注釋
- yonchu/accelerated-smooth-scroll, 可以讓vim滾屏操作更加流暢
- ianva/vim-youdao-translater, 友道翻譯
- majutsushi/tagbar, 可以將正在編輯的文件生成一個大綱, 包含類/方法/變數等, 可以選中快速跳轉到目標位置
更多插件可根據個人喜好來安裝,戳這裡可以查看我的最終配置
2、IDE
n支持go語言的IDE都可以很好的滿足需求,所以你可以根據個人喜好選擇IDE,此處推薦幾個(樓主表示都沒用過)
- Visual Studio Code
- Sublime Text
- LiteIDE
- GoClipse
n
n
n
n
n
n
n
n
n
n
配置go的環境
n
go版本需要是1.7以上的,安裝go的過程就不再贅述,Ubuntu上安裝的過程可以參照這裡
以下是樓主的go環境變數的配置,讀者可自行參考nexport GOROOT=/usr/local/gonexport GOBIN=$GOROOT/binnexport PATH=$GOROOT/bin:$PATHnexport GOPATH=/home/luren5/Projectn
如上,GOPATH路徑為/home/luren5/Project, 以下為GOPATH目錄下的子目錄結構
n- binn- pkgn- srcn - github.comn - ethereumn - go-ethereumn
是的,你沒看錯!源碼的路徑非常深,go-ethereum 的絕對路徑為/home/luren5/Project/src/http://github.com/ethereum/go-ethereum。
n
下載源碼
n
上述的go-ethereum 並不用自己新建,只需要切換到/home/luren5/Project/src/http://github.com/ethereum/目錄下(如果沒有,就需要自己新建了),然後執行git clone git@github.com:ethereum/go-ethereum.git即可
n編譯生成可執行文件
n
luren5@ubuntu:~/Project/src/github.com/ethereum/go-ethereum$ ls cmd/nabigen bootnode evm faucet geth internal puppeth rlpdump swarm utils wnoden
可以看到,以上列出的每個子目錄,都是一個單獨的可編譯的程序(都包含main.go文件),其中包括我們最常見的geth,來make一下
nluren5@ubuntu:~/Project/src/github.com/ethereum/go-ethereum$ make gethn……(省略若干提示信息)nDone building.nRun "build/bin/geth" to launch geth.n
最後生成的可執行文件為 build/bin/geth ,來驗證一下
nluren5@ubuntu:~/Project/src/github.com/ethereum/go-ethereum$ cd build/bin/nluren5@ubuntu:~/Project/src/github.com/ethereum/go-ethereum/build/bin$ ./geth nINFO [04-25|01:06:54] Starting peer-to-peer node instance=Geth/v1.6.1-unstable-54253aae/linux-amd64/go1.7.4nINFO [04-25|01:06:54] Allocated cache and file handles database=/home/luren5/.ethereum/geth/chaindata cache=128 handles=1024nINFO [04-25|01:06:54] Initialised chain configuration config="{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Engine: ethash}"n
如上,可以正常啟動geth, 也可以添加需要的參數(比如 —datadir, -rpcport之類的)。可以發現,這裡編譯生成的geth和通過apt-get安裝的作用是一樣的
推薦閱讀:
※怎麼評價歐陽乾的最後進化?
※如何看待那些燒腦的電影?
※讀源碼要注意哪些方面?有哪些值得推薦的經典源碼?
※如何閱讀程序源代碼?
※如何有效率地閱讀源碼以及修改源碼的技巧?