- 本案例示範了由 https://github.com/ethereum/go-ethereum 下載所得的 source code 開始,從 source code 開始 build 起。從頭 compile
go-ethereum
(包括相關所需 libraries) 直至安裝完成,並且順利帶起執行geth
。 - 於 CentOS Linux 7.4
- 編按 : 相比 bitcoind 的版本,示範在 Linux 從頭開始編譯 bitcoin core,並完成安裝到順利執行起 bitcoind (不帶 Qt GUI) (於 CentOS Linux 7.4) 同樣的事情在 go-ethereum 可謂簡單太多。:joy:
- 底下假設 $GOETHEREUMROOT 為您欲安裝的目標主目錄
- 請自行代換成正確、您所希望的目錄 (e.g.,
/home/bitcoind
建議是寫絕對路徑 (absolute path) 為妥,比較不會有不小心弄錯的地方)
- 請自行代換成正確、您所希望的目錄 (e.g.,
- $ mkdir downloads
- $ cd $GOETHEREUMROOT/downloads
-
$GOETHEREUMROOT/downloads$ curl -LO https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz -
$GOETHEREUMROOT/downloads$ shasum -a 256 go1.7*.tar.gz- (比對 SHA-256 hash value 確為
702ad90f705365227e902b42d91dd1a40e48ca7f67a2f4b2fd052aaa4295cd95
)
- (比對 SHA-256 hash value 確為
-
$GOETHEREUMROOT/downloads$ sudo tar zxvf ./go1.7.linux-amd64.tar.gz -C /usr/local -
$GOETHEREUMROOT/downloads$ sudo vim /etc/profile.d/path.sh- 加上
export PATH=$PATH:/usr/local/go/bin
- (按 : Ubuntu 的話,則修改 /etc/profile)
- 加上
-
$GOETHEREUMROOT/downloads$ cd $GOETHEREUMROOT
-
$GOETHEREUMROOT$ mkdir -p ~/projects/go/src -
$GOETHEREUMROOT$ mkdir -p ~/projects/go/bin -
$GOETHEREUMROOT$ vim ~/.bash_profile-
加上
... export GOBIN="$HOME/projects/go/bin" export GOPATH="$HOME/projects/go/src"
-
-
$GOETHEREUMROOT$ source ~/.bash_profile
-
$GOETHEREUMROOT$ vim ~/projects/go/src/hello.gopackage main import "fmt" func main() { fmt.Printf("Hello, World!\n") }
-
$GOETHEREUMROOT$ go install $GOPATH/hello.go -
$GOETHEREUMROOT$ $GOBIN/helloHellow, World!
-
$GOETHEREUMROOT$ sudo yum install golang
-
$GOETHEREUMROOT$ git clone [email protected]:ethereum/go-ethereum.git go-ethereum/ -
$GOETHEREUMROOT$ cd go-ethereum/ -
$GOETHEREUMROOT$ make geth
- (真的!!! 😂 別懷疑,這樣就好了,真的可以開始執行 geth 了 😂 Congratulations!!!~ 🎉)
-
$GOETHEREUMROOT$ ./build/bin/geth
- make 完 geht,其實可以把所有 tool 都 make 出來 :
-
$GOETHEREUMROOT$ make all -
別忘了參考 go-ethereum 的 README,有條列出每個 tool 的用途,e.g.,
- $ ./build/bin/rlpdump --hex CE0183FFFFFFC4C304050583616263
[ 01, ffffff, [ [ 04, 05, 05, ], ], "abc", ]
-
- https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum
- https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu
- https://www.digitalocean.com/community/tutorials/how-to-install-go-1-7-on-centos-7
- https://github.com/ethereum/go-ethereum/wiki/Installing-Go#ubuntu-1404