本篇文章是以一個新手的角度,記錄編譯完 go-ethereum ,並且設定完創世區塊後,如何開始跑私有鏈,會用到哪些命令及 geth 的參數。
然後有兩個目標一是把私有鏈跑起來,二是初始的時候發很多資金。
先說順序,建立帳號,寫入創世配置,用創世配置初始化,運行私鏈,以地址餘額驗証私有鏈是否跑起來。
建立其他帳號地址,預備下次使用。本次暫時不涉及交易及挖礦。
按照剛剛說的順序, 我們要建立一個地址用來在初始化的時候給這個地址資金,然後把地址寫到配置檔裡面。
首先,geth version 看一下版本
1.9.13-stable 就是版本號,如果版本號不同,可能命令有少許不一樣,但是可以查文檔,不會影響太大
請注意,我們現在鏈還沒跑起來,這點跟別的文章不一樣,因此不在 console 裡面操作,鏈跑起來才有 console
如果之前沒忍住,先執行了 geth ,那就代表已經下載了部份的區塊,請先 geth removedb ,將區塊資料刪除,
你會看到類似上圖, 其中的兩次y 就是刪除區塊鏈數據
建立帳號 geth account new
要求輸入的兩次密碼,請一定要記得,忘了資金就拿不回來。
上圖反白的部份, 就是建立的帳號,應該跟密碼分開記下來。
這裡注意一下,記下了三個資訊,一個是地址,一個是 密鑰檔案 ,一個是密碼。
把地址複製下來,我們要修改 study_chain.json
json 格式,紅框是我加上去的,地址,然後餘額 20000ether 換算成 wei
接下來,就要初始化創世區塊,geth — datadir ./data — networkid 55661 init study_chain.json
這裡有三個參數, — datadir 是指定區塊鏈數據存放的目錄,我把每個節點取名為 nodeX , 其中X 為節點編號 1–4 ,各有各自的數據。
init 表示初始創世區塊, — netoworkid 指的是在同一個 chainId 的情況下,區分是否相同網路,給一個整數編號,每個節點要能互相連上,networkid 也要相同
最後一行提示成功寫入創世區塊
接下來開始運行 geth — datadir ./data — networkid 55661 console
看似跑起來了,可以看一下上圖的資訊,部份有用,我們會從別的地方單獨說明,不擠在這裡模糊焦點
接下來 geth 會一直找其他節點,
事實上這裡已經是 console ,只是提示符被 INFO 蓋掉了
我們來看看 節點訊息,在 console 底下輸入 admin.nodeInfo
看到第一行的 enode ,這個是讓其他節點可以辨識這個節點,如果你是公鏈,不需要注意這個部份,因為都已經寫好了,但我們現在運行的是私有鏈,開始時必須手動加入,現在還不加入,知道就好了。
看一下區塊號碼,有挖礦時,號碼就會增加
現在的編號是0
看看我們剛剛寫入配置文件的地址,餘額是多少
eth.getBalance(“0x7Fd611db044a02cbea14cdb3bE831259eA656dc4”)
看紅字,有錢人啊
最後,我們要在 console 下建立帳號,給下次建立交易及挖礦使用
一樣,記得帳號, 密碼,私鑰檔案
我多建了一個帳號 ,列表看看 eth.accounts
我們會發現,這裡只有在 console 裡面建立的地址,最早用 geth account new 建立的沒有。
先停止,ctrl+c 然後 geth account list
帳號是從 geth 管理的,沒問題。
到目前為止,私有鏈完成初始也跑起來了,一開始的帳號也分配了20000eth,但是沒有節點加入,沒有交易,沒有挖礦。
下次,我們就來完成這些未完成的動作吧。