安裝系統內容
註:本文操作在MAC環境下。
1.安裝go環境(go需要1.7及以上版本)
- mac 執行命令 brew install go 即可。
遇到被牆問題,可以瀏覽器開啟https://studygolang.com/dl/golang/go1.10.3.darwin-amd64.pkg 下載,然後一步步安裝即可。
- 配置GOPATH環境變數。依次執行以下命令:
執行 cd ~
執行 vi .bash_profile
在 .bash_profile中插入一行自己的項目目錄位址 export GOPATH=/
sers/edz/go
執行 go env
若輸出結果中有GOPATH值與上面設定的相同,則表示已成功設定。
1.jpg
2.配置C編譯器
- mac 端執行 brew install gcc
編譯源檔案
- 下載項目源碼 https://github.com/truechain/truechain-engineering-code
- 進入項目目錄。進行編譯。執行命令: make getrue
- 編譯完成後。getrue命令所在路徑為 項目目錄/build/bin/。
- 將getrue路徑添加系統內容變數
3.jpg
getrue命令
getrue --help 查看命令協助,
4.jpg
genesis.json
建立自己的測試網路。首先需要建立網路的創世狀態,讓所有節點知道並同意這個狀態。
創世狀態(或創世區塊)是一個小型的JSON檔案。如
2.jpg
簡單介紹一下這個genesis.jsonchainId 鏈的IDalloc 系統內建的兩個地址及餘額coinbase 礦工工號difficulty 挖礦難度extraData 擴充欄位gasLimit 交易手續約nonce 隨機字串,用於挖礦mixhash 配合nonce進行挖礦parentHash 上一個區塊的雜湊timestamp 區塊產生的時間
搭建測試網路
step1. 建立測試目錄。例如Test
step2. 引用源碼中cmd/getrue中的genesis.json檔案,檔案的內容如下。
{ "config": { "chainId": 10, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "alloc" : { "0x970e8128ab834e8eac17ab8e3812f010678cf791" : { "balance" : "90000000000000000000000"}, "0x68f2517b6c597ede0ae7c0559cdd4a84fd08c928" : { "balance" : "10000000000000000000000"} }, "coinbase" : "0x0000000000000000000000000000000000000000", "difficulty" : "0x200", "extraData" : "", "gasLimit" : "0x2fefd8", "nonce" : "0x0000000000000042", "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp" : "0x00"}
step3. 建立創世區塊。執行如下命令
getrue --datadir Test init path/to/cmd/getrue/genesis.json
--datadir用來指定目錄。以上命令執行完成後,目錄中多了getrue和keystore兩個檔案夾。getrue檔案夾下用來存放該鏈的相關資料,keystore檔案夾下存放的是該鏈的使用者資訊
step4. 啟動測試鏈起始節點。執行如下命令
getrue --datadir Test --nodiscover console 2>>getrue.log