【連載】以太坊源碼分析(1)本地搭建以太坊開發環境

此文章在 區塊鏈技術中文社區 同步發表

準備編輯器

n

1、vim

n

個人比較習慣vim編輯器,可照此教程 來配置vim下的go開發環境。另外,除前面教程提到的vim插件,以下幾個常用vim插件也推薦安裝

n

  • scrooloose/nerdtree, 可以像IDE那樣,樹形瀏覽你的工程
  • n

  • mileszs/ack.vim, 全文搜索
  • n

  • scrooloose/nerdcommenter, 快速注釋
  • n

  • yonchu/accelerated-smooth-scroll, 可以讓vim滾屏操作更加流暢
  • n

  • ianva/vim-youdao-translater, 友道翻譯
  • n

  • majutsushi/tagbar, 可以將正在編輯的文件生成一個大綱, 包含類/方法/變數等, 可以選中快速跳轉到目標位置

    更多插件可根據個人喜好來安裝,戳這裡可以查看我的最終配置

    2、IDE

    n支持go語言的IDE都可以很好的滿足需求,所以你可以根據個人喜好選擇IDE,此處推薦幾個(樓主表示都沒用過)

  • n

  • Visual Studio Code
  • n

  • Sublime Text
  • n

  • LiteIDE
  • n

  • GoClipse
  • n

配置go的環境

n

go版本需要是1.7以上的,安裝go的過程就不再贅述,Ubuntu上安裝的過程可以參照這裡

以下是樓主的go環境變數的配置,讀者可自行參考

n

export 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/github.com/ethereum/go-

n

下載源碼

n

上述的go-ethereum 並不用自己新建,只需要切換到/home/luren5/Project/src/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一下

n

luren5@ubuntu:~/Project/src/github.com/ethereum/go-ethereum$ make gethn……(省略若干提示信息)nDone building.nRun "build/bin/geth" to launch geth.n

最後生成的可執行文件為 build/bin/geth ,來驗證一下

n

luren5@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安裝的作用是一樣的

推薦閱讀:

怎麼評價歐陽乾的最後進化?
如何看待那些燒腦的電影?
讀源碼要注意哪些方面?有哪些值得推薦的經典源碼?
如何閱讀程序源代碼?
如何有效率地閱讀源碼以及修改源碼的技巧?

TAG:以太坊 | 源代码 |