Testnets

如何建立私有乙太坊網路?

  • March 14, 2018

我想建立一個不連接到更廣泛網際網路的本地(私有)區塊鏈,以便我可以部署一些測試合約。我該怎麼做呢?

為乙太坊創建私有測試網實際上非常容易。在最新版本的 geth 中,您甚至不需要創建自己的創世塊或任何其他復雜的步驟(許多線上教程已過時)。

首先,確保您已安裝 geth。在 OSX 上,您可以先安裝Homebrew,然後執行:

$ brew tap ethereum/ethereum
$ brew install ethereum

對於其他平台,請查看geth 安裝說明

您可以通過檢查版本來測試它是否正常工作:

$ geth version
Geth
Version: 1.3.6
Git Commit: 9e323d65b20c32ab1db40e8dde7172826e0e9c45
Protocol Versions: [63 62 61]
Network Id: 1
Go Version: go1.6
OS: darwin
GOPATH=/Users/adrian/go
GOROOT=/usr/local/Cellar/go/1.6/libexec

--dev現在,您可以通過使用以下選項執行 geth 來啟動私有區塊鏈:

$ get --dev --ipcpath ~/Library/Ethereum/geth.ipc

這會做以下事情來簡化開發(so​​urce):

  • --vmdebug(虛擬機調試輸出)
  • --maxpeers 0(網路禁用)
  • 套裝--gasprice 0(讓您的契約負擔得起)
  • --port 0(在隨機埠上偵聽)
  • 集合--shh(啟用 Whisper 協議)
  • 設置--datadir為硬碟驅動器上的臨時目錄
  • 啟用“開發模式”,這會導致 geth 在您第一次執行它時自動生成一個新的創世塊。
  • 設置--ipcpath為標準 IPC 路徑,因此其他命令(例如 geth attach)無需其他參數即可工作

現在,您可能已經可以通過geth --dev attach在另一個終端視窗中執行或啟動Mist Wallet來連接到您的專用網路。但在你做任何事情之前,你可能想創建一個帳戶,並挖一些硬幣以便你可以花掉它們。

讓您的原始終端視窗保持執行,並在另一個視窗類型中:

$ geth --dev attach

這將為您提供一個 JavaScript 控制台。您可以執行以下命令來創建您的第一個帳戶:

> personal.newAccount('choose-a-password')
"0x48517108e6368f2b4da71816f9929e89c3e19ae5"

現在,你想挖一些硬幣:

> miner.start()
true

在第一個視窗中,您將看到探勘消息開始滾動:

I0401 12:41:03.318046   83003 worker.go:348] 🔨  Mined block (#1 / fb68b6aa). Wait 5 blocks for confirmation
I0401 12:41:03.318486   83003 worker.go:569] commit new work on block 2 with 0 txs & 0 uncles. Took 399.006µs

挖出大約 10 個區塊後,返回 JavaScript 控制台並停止它:

> miner.stop()
true

就是這樣!現在你有了自己的私有測試網。

最後,一個快速無恥的外掛:我寫了gethdev,一個簡單的包裝器geth,它將通過自動創建你的第一個帳戶,在有待處理交易時啟動和停止探勘過程,並提供一個環境變數來記住你總是最終傳遞給的常見參數geth。歡迎回饋!

一些主要步驟包括指定一個networkId,並創建一個創世文件(你可以給你的賬戶很多乙太幣!)。

這里這裡都有指南,而不是重複所寫的內容。

引用自:https://ethereum.stackexchange.com/questions/125