以太坊系列之九: 從零一步一步搭建以太坊私有鏈


從零一步一步搭建以太坊私有鏈

我會說明一步一步怎么做,同時說明可能的注意事項。

1.下載geth

這一步網上很多,就不細說了,windows的,linux的,mac都有。

2. 創建genesis.json

關於genesis文件的介紹,在此處:http://blog.csdn.net/sportshark/article/details/51855007有詳細說明,自行查閱。

我的genesis.json如下

{
    "config": {
        "chainId": 89120348581,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "20",
    "gasLimit": "2100000",
    "alloc": {
        "0x1a9ec3b0b807464e6d3398a59d6b0a369bf422fa": { "balance": "30000000000000000000000" },
        "0x33df901abc22dcb7f33c2a77ad43cc98fbfa0790": { "balance": "40000000000000000000000" }
    }
}

我這里預先給自己的測試賬號分配了一些以太幣,這樣就不用挖礦了。

3.初始化區塊鏈

這里需要注意的是,如果你要有多台電腦,那么每台電腦都要執行一遍下面的操作,也不能圖省事,復制geth目錄。
geth --datadir ~/eth/privnet/ init genesis.json,我設定的私有鏈主目錄是~/eth/privnet,你可以根據自己的情況修改

4.節點運行

節點之間能夠聯通,首先要保證網絡是通的,測試網絡是否暢通,可以通過telnet ip 30303來測試,有時候由於防火牆或者nat等原因,有些節點之間是沒法直接通信的.

在各個節點上運行下面命令

geth --datadir ~/eth/privnet --networkid 89120348581

這時候各個幾點已經獨立運行起來了,但是他們是沒有連通的,因為他們的networkid,和創世塊和以太坊網絡上的都不一樣,所以導致在p2p網絡認證過程中會失敗.

5.連接節點

在各自節點上運行geth attach來添加節點
各自節點信息可以通過admin.nodeInfo來獲取,獲取以后再其他節點通過

admin.addPeer('enode://69e4026e61198088b9bdc353a7e0c924481b1835b35acbf298066634bf47406655516f251933992d3ae2d2752048c0df5656981d4113faa92bb0302243a62eea@xx.xx.xx.xx:30303')

來添加,

還有一種方式可以通過在運行參數中直接指定
如下:

 geth.exe --datadir=d:/privnet --networkid 89120348581 --bootnodes   enode://69e4026e61198088b9bdc353a7e0c924481b1835b35acbf298066634bf47406655516f251933992d3ae2d2752048c0df5656981d4113faa92bb0302243a62eea@xx.xx.xx.xx:30303

如果有多個node,用逗號分隔即可.

6.注意事項

    1. init genesis.json必須每個節點都運行一遍,否則添加節點的時候因為創世塊不匹配,會失敗,我就是在這里耽誤了很久.
    1. 節點之間單向網絡通就可以,也就是在nat環境下A可以直接訪問B,那就用A添加B
    1. 后續轉賬等操作,必須啟動挖礦,怎么挖礦,很簡單,就是在啟動的時候加上--mine參數就可以了.

7 加入我的私有鏈

    1. 將上面的genesis.json內容保存為c:\privnet\genesis.json
    1. 運行命令
      geth --datadir c:\privnet init genesis.json
    1. 啟動節點
      geth.exe --datadir=c:/privnet --networkid 89120348581 --bootnodes enode://69e4026e61198088b9bdc353a7e0c924481b1835b35acbf298066634bf47406655516f251933992d3ae2d2752048c0df5656981d4113faa92bb0302243a62eea@123.206.176.142:30303
    1. 特別注意,genesis.json要一字不差,否則無法加入我的私有網絡.
      在私有鏈上挖礦很容易,方便自己測試開發.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM