5分鐘建立以太坊私有鏈 — 以PoA共識為例 (Part 1)

s0ny
Master’s note
Published in
5 min readSep 8, 2019

在建立以太坊(Ethereum)區塊鏈節點,有兩種軟體可以選擇 Parity & geth

Wallet, node, Smart contract完整介紹可至 Taipei Ethereum Meetup — Ethereum Smart Contract 入門雜談

硬體設備

  • 基本文書配備電腦

網路環境

  • Wifi 或有線網路皆可
  • 區塊鏈節點連接port: 30303 (default)

儲存空間

  • 建議30G以上

作業系統

  • Windows 10 64bit

在區塊鏈的節點上分為兩種:全節點(Full node) 、輕節點(Light node)

  • 全節點(Full node):紀錄完整且最新區塊鏈資料外,可獨立完成交易確認與廣播交易資訊,並符合共識規則。
  • 輕節點 (Light node):又稱為 SPV(Simplified Payment Verification)節點,不需下載全網資料,只下載即時資料。

以下的實作方法是教如何架設私有鏈以及如何讓節點互相連結,以Windows為例

首先,我們先去Go-Ethereum下載Windows 的 Geth & Tools 1.8.23 64位元的安裝檔(可用最新版,但筆者目前使用這個版本XD)後,直接安裝即可。

要把Development tools打勾,並設定安裝路徑 (預設C:\Program Files\Geth)

接著,打開命令提示窗(使用系統管理員身分開啟),並打上 cd c:/後按enter

為了要確認Go-ethereum是不是有裝好裝滿,我們打上” geth version ”就會顯示目前geth的資訊

以上如果都安裝好,就要開始進入到建立私有鏈的階段。

首先,我們要建立一個帳號 “ geth — — datadir node1 account new “

要注意的是,如果沒有指定datadir的話,會直接連上主網(main chain)

接著會要設定密碼 (後續解鎖錢包用,包括挖礦、交易等)

設定完成後,會得到一組錢包地址 (若忘記的話,C:\node1\keystore裡面會有一份備份檔,裡面有錢包地址的資訊)

以上都設定完成後,接著要開始建立以太坊私有鏈(Private chain),geth有提供建立私有鏈的工具puppeth,可用這工具設定創世塊

第一步會先要設定此網路的名稱(不能有空格、連字符號”-”、大寫字母),這邊筆者先設定為” node “

確認後,要開始設定創世塊的設定,所以選 “ 2 “

這時候會問你要選擇 Proof of Work(PoW) or Proof of Authority(PoA),筆者用的是PoA,選” 2 “

接著會問你,要花多少”秒數”來產生區塊,系統預設是15秒,就照預設

下一步對於整個共識相當的重要,哪個帳號可以打包區塊資料 (至少一個)

在這裡先設定我們剛剛創建的帳號

打上帳號之後按enter,會再詢問要不要再添加帳號地址,若不需要直接按enter跳過即可

接著要不要指定給帳號一些ether。這裡也是填我們剛剛創的帳號地址

此步驟設定影響不大,可先按enter跳過

最後要設定Chain ID,要注意的是,ID最好避開常用的ID,像是主網的ID為1,Ropsten測試網為2,Rinkeby測試網為3。因此,這裡設定為15

以上是私有鏈的設定,要把設定輸出出來。輸入兩次 “ 2 “ (Manage existing genesis) → (Export genesis configurations)

這時會詢問要將設定存到哪裡,直接ENTER就行 (檔案會存在C槽底下),接著按ctrl + c 跳出

小結

這部分是簡單建立PoA共識的私有鏈,每個節點都是”需要”被授權才能進行打包區塊。詳細可見 EIP-225,下一部份會講解到如何建立節點以及挖礦(打包區塊)。

--

--