本文將基于前文Windows操作系統(tǒng)用VMware 虛擬機(jī)安裝Ubuntu系統(tǒng)的基礎(chǔ)上洋机,?詳細(xì)描述包括GO語(yǔ)言配置俭正,VSCODE的IDE安裝配置晚伙,以及初幣環(huán)境的環(huán)境搭建
1.GO 語(yǔ)言的安裝與配置
1.1.所需工具
1.Git
2.Go => version 1.7 或更高版本
3.編譯工具
1.2. Git 的安裝
首先豪硅,檢查系統(tǒng)是否以經(jīng)安裝了git
$ git --version
由于對(duì)Git的版本要求不高羡疗,所以直接使用包管理工具安裝
$ sudo apt-get install git
最后染服,安裝完成后,檢查是否安裝成功
$ git --version
1.3.GO安裝
1.首先柳刮,同樣是檢查是否已經(jīng)安裝了go
$ go version
2.包管理工具安裝
$ sudo apt-get install golang-go
3.設(shè)置環(huán)境變量:
1) 先創(chuàng)建GOPATH文件夾
$ cd ~
$ mkdir go
$ cd go
$ mkdir bin pkg src
2) 在點(diǎn)擊打開(kāi)Files 在彈出的Files中打開(kāi) Home文件夾,然后選中Show Hidden Files 查看隱藏的文件特碳,找到 .profile文件
3) 在$HOME/.profile 文件的最后添加下邊的命令
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
4) 然后運(yùn)行以下命令使之生效 ??
$ source $HOME/.profile
再使用go version即可查看是否安裝成功诚亚。
5) 測(cè)試是否安裝成功
? ? a) ?執(zhí)行命令-> ?$ cd go/src
????b) ?創(chuàng)建hello文件夾,執(zhí)行命令-> $ mkdir Hello?
? ? c) ?創(chuàng)建Hello.go 文件夾午乓,執(zhí)行命令-> $ touch Hello.go?
? ? d)將如下代碼寫(xiě)入$HOME/go/src/hello/hello.go
? ??????????package main????
????????????import "fmt"
????????????func main() {
????????????fmt.Printf("hello, world\n")
????????????}
? ? e)然后編譯運(yùn)行:
????$ cd $HOME/go/src/Hello
????$ go build
????$ ./Hello // 輸出:hello,world
1.4 安裝編譯環(huán)境
執(zhí)行命令
$ sudo apt-get install build-essential
2.VSCODE的安裝與配置
2.1.準(zhǔn)備工作
先安裝一些工具
$ sudo apt-get install cmake
$ sudo apt-get install python-dev python3-dev
2.2.VSCode 安裝
1)下載安裝包站宗,下載地址https://code.visualstudio.com/在Linux下打開(kāi)該頁(yè)面會(huì)直接顯示Linux安裝包的下載頁(yè)面。如下圖:
因?yàn)槭荱buntu系統(tǒng)益愈,所以下載.deb文件梢灭,下載的文件名為“code_1.26.1-1534444688_amd64.deb”(不同版本可能會(huì)有不同)夷家。下邊開(kāi)始安裝:
$ cd path/to/deb_file // 進(jìn)入deb文件所在目錄
$ sudo dpkg -i code_1.26.1-1534444688_amd64.deb // 開(kāi)始安裝
2)安裝成功如下圖:
3)按 “Win” 鍵,在所有程序里邊搜索 “vscode” 就可以找到他了
2.3 VSCODE 擴(kuò)展安裝包安裝
1)在擴(kuò)展欄里搜索“chinese”敏释,第一個(gè)就是中文包库快,需要的可以安裝。安裝完成后重啟軟件即可钥顽。?
2)搜“Go”义屏,安裝Go的擴(kuò)展。
然后VSCode的安裝就完成了蜂大。
3.初幣代碼下載
基于筆者在最初下載安裝VSCODE查看代碼闽铐,遇到過(guò)的問(wèn)題,發(fā)現(xiàn)多數(shù)文件都是存放在 github.com文件夾中的情況奶浦,
為少走彎路在下載代碼時(shí)需要也要相應(yīng)下載到對(duì)應(yīng)的github.com的目錄下兄墅。
1.創(chuàng)建相關(guān)路徑的文件夾,執(zhí)行命令
$ cd $GOPATH/src/
$ mkdir github.com
2.進(jìn)入相應(yīng)文件夾路徑澳叉,下載代碼
$ cd?$GOPATH/src/github.com
$ git clone https://github.com/truechain/truechain-engineering-code.git
3.使用VSCode打開(kāi)truechain-engineering-code所在文件夾隙咸。
4.VSCODE的依賴(lài)包安裝與配置
VSCODE中安裝GO的依賴(lài)包,因這些依賴(lài)包不是初幣項(xiàng)目的實(shí)際項(xiàng)目需要的依賴(lài)包成洗。所以不會(huì)影響運(yùn)行源碼五督。這些包應(yīng)該是裝Go擴(kuò)展的時(shí)候統(tǒng)一裝的,并不是項(xiàng)目需要泌枪。
因?yàn)閲?guó)內(nèi)的網(wǎng)絡(luò)屏蔽概荷,在GO官網(wǎng)的golang.org無(wú)法連接上,安裝依賴(lài)包不能成功碌燕,如下圖:?
為解決此問(wèn)題误证,可到github下載go tools 和 golint 的源碼到本地目錄,用go install 命令安裝即可
1修壕、在%GOPATH%\src\ 目錄下愈捅,建立golang.org 文件夾,并再新建x文件夾慈鸠。 目錄為 "%GOPATH\src\golang.org\x\"
2蓝谨、完成目錄切換后,開(kāi)始下載插件包:git clone https://github.com/golang/tools.git tools
3青团、執(zhí)行完以后譬巫,會(huì)多一個(gè)tools文件夾。
4督笆、打開(kāi)vsCode終端芦昔,切換到 終端,進(jìn)入“%GOPATH”目錄,執(zhí)行
????go install github.com/ramya-rao-a/go-outline
????go install github.com/acroca/go-symbols
????go install golang.org/x/tools/cmd/guru
????go install golang.org/x/tools/cmd/gorename
????go install github.com/josharian/impl
????go install github.com/rogpeppe/godef
????go install github.com/sqs/goreturns
????go install github.com/golang/lint/golint
????go install github.com/cweill/gotests/gotests
????go install github.com/ramya-rao-a/go-outline
????go install github.com/acroca/go-symbols
????go install golang.org/x/tools/cmd/guru
????go install golang.org/x/tools/cmd/gorename
????go install github.com/josharian/impl
????go install github.com/rogpeppe/godef
????go install github.com/sqs/goreturns
????go install github.com/cweill/gotests/gotests
5.編譯TrueChain娃肿。
1.在VSCODE中打開(kāi)“調(diào)試->打開(kāi)配置”就打開(kāi)了“l(fā)anuch.json”文件 修改參數(shù):
{
? ? // 使用 IntelliSense 了解相關(guān)屬性咕缎。
? ? // 懸停以查看現(xiàn)有屬性的描述珠十。
? ? // 欲了解更多信息,請(qǐng)?jiān)L問(wèn): https://go.microsoft.com/fwlink/?linkid=830387
? ? "version": "0.2.0",
? ? "configurations": [
? ? ? ? {
? ? ? ? ? ? "name": "Launch",
? ? ? ? ? ? "type": "go",
? ? ? ? ? ? "request": "launch",
? ? ? ? ? ? "mode": "auto",
? ? ? ? ? ? "remotePath": "",
? ? ? ? ? ? "port": 2345,
? ? ? ? ? ? "host": "127.0.0.1",
? ? ? ? ? ? "program": "${fileDirname}",
? ? ? ? ? ? "env": {},
? ? ? ? ? ? "args": ["init", "./genesis.json"], // 主要修改這里
? ? ? ? ? ? "showLog": false
? ? ? ? }
? ? ]
}
2.按照README里的凭豪,寫(xiě)一個(gè)genesis.json文件焙蹭,然后第二個(gè)參數(shù)把路徑指向這個(gè)文件也可以:?
{
? "config": {
? ? "chainId": 10,
? ? "homesteadBlock": 0,
? ? "eip155Block": 0,
? ? "eip158Block": 0
? },
? "alloc":{
? ? "0xbd54a6c8298a70e9636d0555a77ffa412abdd71a" : { "balance" : 90000000000000000000000},
? ? "0x3c2e0a65a023465090aaedaa6ed2975aec9ef7f9" : { "balance" : 10000000000000000000000}
? },
? "committee":[
? ? {
? ? ? "address": "0x76ea2f3a002431fede1141b660dbb75c26ba6d97",
? ? ? "publickey": "0x04044308742b61976de7344edb8662d6d10be1c477dd46e8e4c433c1288442a79183480894107299ff7b0706490f1fb9c9b7c9e62ae62d57bd84a1e469460d8ac1"
? ? }
? ]
,
? "coinbase"? : "0x0000000000000000000000000000000000000000",
? "difficulty" : "0x100",
? "extraData"? : "",
? "gasLimit"? : "0x2fefd8",
? "nonce"? ? ? : "0x0000000000000042",
? "mixhash"? ? : "0x0000000000000000000000000000000000000000000000000000000000000000",
? "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
? "timestamp"? : "0x00"
}
3.然后,在“cmd/getrue/main.go”上F5就可以初始化了嫂伞。初始化成功如下圖:
4.繼續(xù)修改“l(fā)anuch.json”的“args”參數(shù)為
"args": ["--nodiscover", "--singlenode", "--mine", "--etherbase", "0x8a45d70f096d3581866ed27a5017a4eeec0db2a1", "--bftkeyhex", "c1581e25937d9ab91421a3e1a2667c85b0397c75a195e643109938e987acecfc", "--bftip", "192.168.68.43", "--bftport", "10080"],
5.再F5就可以挖礦了孔厉。運(yùn)行成功如下圖,有時(shí)候可能不太一樣:?
常見(jiàn)問(wèn)題
報(bào)錯(cuò):
Fatal: Failed to write fast genesis block: database already contains an incompatible genesis block (have 1acaa8c23f22e0ae, new bc72c21faf0bc5b9)
你肯定是在配置“l(fā)anuch.json”的“args”參數(shù)之前末早,按下了F5烟馅,執(zhí)行以下命令即可:
$ rm -rf ~/.truechain/