安裝套件

在開始建立之前,首先需要安裝管理套件 Homebrew,如果已經安裝過,可以挑過此步驟。

Homebrew 是一個在 macOS 系統上安裝軟體的管理工具,它可以簡化安裝過程並提供易於管理的界面,讓我們更方便地安裝所需的套件。

你可以從 Ethereum GitHub 進入 Go Ethereum 的網站,選擇適合的系統做安裝即可。

$ brew tap ethereum/ethereum
$ brew install ethereum

構建Geth (命令行客戶端)

使用 Git 指令將 Ethereum GitHub 專案複製到本地。其中,複製的檔案通常會放在使用者資料夾底下,並命名為 “go-ethereum”。

$ git clone https://github.com/ethereum/go-ethereum

接著在命令提示字元 (cmd) 中切換到該資料夾,並執行以下指令:

$ cd go-ethereum
$ make geth

現在,你可以直接在命令提示字元上使用與 geth 相關的指令了。

啟動以太坊

在當前路徑下應該會出現 “go-ethereum” 資料夾。經過以上步驟,我們現在可以啟動以太坊,請輸入以下指令:

$ geth console

在啟動過程中,會不斷顯示訊息。等待它執行完畢後,再重新啟動命令提示字元。

接下來,我們需要找到啟動的區塊鏈存放的資料夾位置,它位於 $HOME/Library/Ethereum/,而該資料夾中的內容並不是我們所需的,可以刪除整個資料夾。這麼做的原因是想知道輸入 geth console 指令後產生的檔案所存放的位置。

Fig. 1. geth console.
Fig. 1. geth console.

如果是 Windwos 系統的話,則存放於 C:\Users\User\AppData\Local\Ethereum

Fig. 2. windows geth.
Fig. 2. windows geth.

建立以太坊私有鏈

現在,我們終於進入了今天的重頭戲。這裡有幾個步驟需要完成,首先是要建立一個私有鏈的「創世區塊」,也稱為 genesis 的 JSON 檔案,你可以根據我的設定方式,按需求進行修改。

# genesis.json
{
  "config": {
    "chainId": 10,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "ethash": {}
  },
  "nonce": "0x0",
  "timestamp": "0x5e4a53b2",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b760",
  "difficulty": "0x80000",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    "0000000000000000000000000000000000000088": {
      "balance": "0x200000000000000000000000000000000000000000000000000000000000000"
    }
  },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

建立完成後,將此檔案放入 Ethereum 資料夾中,以建立初始區塊。

啟動以太坊私有鏈

請使用命令提示字元切換到此目錄並執行以下指令,這樣就完成了啟動私有鏈的步驟!!

$ geth init genesis.json

恭喜你,完成了所有步驟!!!