以太坊私有鏈 設定及踩坑筆記

AndyHuang
4 min readMay 11, 2020

--

以 puppeth 配置工具為例說明

手動建立 genesis 完成,但是沒有先分配預編帳號的餘額

預編帳號就是以太坊建立時預先編好的合約,如 sha256 等八個合約,主要是運算密集的合約

在第一次被調用時需要花費較多的 Gas 來生成合約,因此預先分配足以完成的 eth

使用 puppeth 工具也可以完成 genesis 配置文件,還能知道更多可以使用的配置,以下截圖以 puppeth 為例

步驟一 執行 puppeth

輸入網路的名稱, 不能用空格,連接號,大寫,此處我們取名為 study_chain

接下來4個選項,1.目前網路狀態,2. 建立創世區塊的配置檔 3. 尋找新的遠端伺服器 4. 部署網路組件

現在的目標是建立我們自已的私有鏈,因此選2

下一步,你想做什麼,1. 建立一個創世區塊 2. 匯入已存在的創世區塊

選擇1,透過步驟來建立創世區塊

選擇使用何種共識,1 是工作量証明 2是權威証明

第一種是傳統的工作量証明 ethash ,第二種是權威証明,就是透過指定的節點來挖礦(簽名產生新的區塊),

第二種目前也使用在開發模式,因為指定節點後,就不用跑工作量降低開發節點的負擔

但是,我們為了跟公鏈一致,先選擇 1 體驗一下

哪個帳號要預先分配資金,建議至少一個

這裡是我們第一個特殊的發現,就是可以預先分配資金,之前一直認為要從挖礦開始累積資金

這裡對應到設置檔的 alloc

雖然這裡建議至少一個,但我們還沒建立帳號,先空下來,建立帳號之後,再手動編輯創世區塊配置檔 study_chain.json

要不要為預編的地址分配資金

這裡指的預編地址,就是以太坊的預編合約,或是有人說是內置合約,

從 01 — ff 共 255 個,預設 yes

指定一個 network ID ,

這個ID 是一個整數,不應該跟別的鏈重復,若重復則視為同一個鏈,
預期的動作是,看兩者的鏈長度,以鏈長的為準覆蓋較短的鏈。

這裡預設是 隨機分配一個數字 random

結果

圖中綠色 INFO 的訊息,創世區塊的配置已經完成,然後回到一開始的四個選項
看到第二項變成 管理一個已存在的創世區塊

在離開之前,我們希望匯出配置選2

有三個選項 1. 修改 2.匯出 3. 刪除

我們要的就是匯出,選2,輸入匯出路徑,路徑的預設是當前的目錄,然後ctrl+c 離開

最後結果

看到綠色的 INFO ,不同的語言環境使用的配置檔,

aleth C++, parity rust, harmony java ,其中 harmony 也存在於 eth2.0 中,個人認為未來可期

而 aleth 則是因為維護較慢,並且工具不齊全,暫時忍痛封存

ctrl+c 之後,我們 ls 看下檔案在不在,現在所需要的只有 study_chain.json 一個,其他語言的目前用不到

在此雖不展開,但可以先看一下 study_chain.json, 其中 alloc 裡面有 01~ff ,共255個地址,每個地址分配1wei

下一篇文章,有兩個要做的事,一、把私有鏈跑起來,二、立刻分配很多資金給一某個地址。

--

--

AndyHuang
AndyHuang

Written by AndyHuang

blockchain , defi , programe

No responses yet