以太坊(go-ethereum)編譯除錯環境搭建
阿新 • • 發佈:2018-12-22
以下步驟都是在MacOs上操作的,但同樣適合Ubuntu,只是有幾個小點有所不同,我會標註出來
brew update && brew upgradebrew install gitbrew install mercurialbrew install go Ubuntu:sudo apt-get install gitsudo apt-get install golang-go Go程式碼的package很多都是git專案,所以上面安裝git go 如果提示命令找不到就需要配置PATHvim ~/.profile 加入如下配置並重新登入以讓配置生效export GOROOT=/usr/local/goexport PATH=$GOROOT/bin:$PATH
這個網頁有mac版和ubuntu版本,選擇相應的平臺下載 set -eif [ ! -f "build/env.sh" ]; then echo "$0 must be run from the root of the repository." exit 2fi# Create fake Go workspace if it doesn't exist yet.workspace="$PWD/build/_workspace"root="$PWD"if [ ! -L "$ethdir/go-ethereum" ]; then mkdir -p "$ethdir" cd "$ethdir" ln -s ../../../../../. go-ethereum cd "$root"fi# Set up the environment to use the workspace.GOPATH="$workspace"export GOPATH# Run the command inside the workspace.cd "$ethdir/go-ethereum"PWD="$ethdir/go-ethereum"# Launch the arguments with the configured environment.exec "[email protected]" 也就是說編譯的時候GOPATH被臨時切換到go-ethereum/build/_workspace目錄了。其實,還可以通過依賴庫來驗證,編譯完成後檢視go-ethereum/build/_workspace目錄是否有依賴庫ItleaksdeMacBook-Pro:build itleaks$ pwd/Users/itleaks/projects/go-ethereum/build/_workspaceItleaksdeMacBook-Pro:build itleaks$ tree.├── bin│ ├── dlv│ ├── go-outline└── src │ ├── MichaelTJones │ │ └── walk │ │ ├── README.md │ │ ├── path_plan9.go │ │ ├── path_unix.go │ │ ├── path_windows.go │ │ ├── symlink.go │ │ ├── symlink_windows.go │ │ ├── walk.go │ │ └── walk_test.go │ ├── acroca │ │ └── go-symbols │ │ ├── LICENSE │ │ ├── README.md │ │ └── main.go │ ├── derekparker│ ├── ethereum │ │ └── go-ethereum -> ../../../../../. │ ├── golang上面可以看出,確實存在。所以開始配置GOPATHvim ~/.profile新增ItleaksdeMacBook-Pro:go-ethereum itleaks$ cat ~/.profileexport GOPATH=$HOME/projects/go-ethereum/build/_workspace
編譯
1. Go環境搭建
Mac: (brew是一個類似ubuntu apt-get的工具,用來在終端安裝軟體的)brew update && brew upgradebrew install gitbrew install mercurialbrew install go Ubuntu:sudo apt-get install gitsudo apt-get install golang-go Go程式碼的package很多都是git專案,所以上面安裝git
驗證go
2. go-ethereum下載及編譯
編譯完成你會在build/bin/下找到二進位制執行檔案geth除錯
下載visual studio code
Visual Studio Code是一個很強悍的閱讀除錯程式碼的IDE,強力推薦這個網頁有mac版和ubuntu版本,選擇相應的平臺下載
設定GOPATH
這裡需要注意,GOPATH不能設定為go-ethereum目錄,而是go-ethereum/build/_workspace,為啥是這個目錄,檢視build/env.sh就知道了#!/bin/sh下載visual studio code go除錯工具
1)下載dlv
有了這個工具才能配置go除錯2)安裝GO外掛
安裝完成後點選重新載入3)匯入程式碼
4) 配置debug
然後就會生成launch.json
5)自動安裝其他除錯依賴工具
關閉,重新進入該專案 這次會有以下提示,點選install後就會安裝除錯需要的工具6)除錯原始碼
進入cmd/geth/main.go新增斷點,必須進入這個檔案,然後按F5即可進入除錯附錄:
同步主網:
geth --networkid 15 --cache=1024 --fast --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcapi personal,db,eth,net,web3,miner --nodiscover--fast是指只同步區塊頭,不同步區塊,速度很快很多
/********************************* 本文來自CSDN博主"愛踢門"******************************************/