如何在geth中使用專用網路?
我正在關注這個答案:
但我的結果
miner.start()
將返回null
是因為我的geth版本是
1.6.6-stable
?也歡迎任何開發 dApp 的初學者指南。
這就是我在 Ubuntu 上使用 geth 執行我的專用網路的方式:
創建一個簡單的 genesis.json 文件,例如
{ "config": { "chainId": 1907, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "difficulty": "40", "gasLimit": "2100000", "alloc": {} }
創建第一個節點並確保它正常工作:
$ mkdir node1 $ geth --datadir node1 account new $ geth --datadir node1 account new $ geth --datadir node1 init genesis.json $ geth --datadir node1 --networkid 98765 console > miner.start(1)
一旦你在這個節點上完成了一些探勘,停止礦工
miner.stop()
(這不是絕對必要的,但它很方便,所以你在嘗試複製/粘貼 enode 地址時不會在控制台中看到太多資訊消息,接下來的是)。確保你知道第一個節點的 enode 地址,你需要這個來連接你的第二個節點:
> admin.nodeInfo { enode: "enode://08993401988acce4cd85ef46a8af10d1cacad39652c98a9df4d5785248d1910e51d7f3d330f0a96053001264700c7e94c4ac39d30ed5a5f79758774208adaa1f@[::]:30303", ...
現在讓我們執行相同的步驟來設置第二個節點:
$ mkdir node2 $ geth --datadir node2 account new $ geth --datadir node2 account new $ geth --datadir node2 init genesis.json $ geth --datadir node2 --networkid 98765 --port 30304 --bootnodes "enode://08993401988acce4cd85ef46a8af10d1cacad39652c98a9df4d5785248d1910e51d7f3d330f0a96053001264700c7e94c4ac39d30ed5a5f79758774208adaa1f@127.0.0.1:30303" console
注意我們必須改變
$$ :: $$到主機的IP地址。 啟動此節點後,請稍等片刻,然後您最終會看到您在第一個節點上探勘的塊正在同步。
如果您想了解更多詳細資訊,我已經在這裡寫下了我開始使用 geth、私有網路和智能合約的更多經驗:https ://alanbuxton.wordpress.com/2017/07/19/first-steps-with-ethereum-私有網路和智能合約-on-ubuntu-16-04/
到目前為止,我也有一個私人測試網執行良好。不過,我還沒有開始 dApp 開發——事實上,我需要一個足夠好的 dApp 教程。就你的
miner.start()
回歸null
而言,這幾乎沒問題。理想情況下,它應該返回true
,但如果沒有,請使用命令檢查系統是否正在探勘eth.mining
。如果它正在返回true
,則表示正在開採區塊。還要記住,如果
eth.mining
在很長一段時間內為真,比如一兩個小時,但eth.blockNumber
仍然返回 0,那是因為挖礦至少需要 4GB RAM。因此,如果您使用的是虛擬機,請確保為其提供足夠的 RAM。