運行以太坊私有網絡

運行以太坊私有網絡

network ID

以太坊以 netWorkID的形式來標識一個網絡,推薦使用--networkid的形式去指定,主網絡的networkid是1(默認的),若是你想要創建私有網絡,你能夠指定一個新的網絡id。node

建立創世區塊

創世區塊將在系統啓動的時候commit到數據庫中,一個私有網絡能夠定義一些私有創世區塊。
通常來講,創世區塊能夠分配一些預分配的資源,以下是一個創世區塊樣例:數據庫

{
    "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "200000000",
    "gasLimit": "2100000",
    "alloc": {
        "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
        "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
    }
}

若是須要利用你本身的創世區塊配置文件生成一個創世鏈,你能夠用以下命令:json

geth --datadir path/to/custom/data/folder init genesis.json

而後你能夠再用以下命令運行你的私有網絡:bootstrap

geth --datadir path/to/custom/data/folder --networkid 15

網絡聯通性

爲了節點都可以相互聯通,並達成一致的狀態,咱們須要設置一些bootstrap節點,這些節點可以幫助其餘節點實現相互聯通,這裏配置bootstrap節點的命令以下:bash

bootnote --genkey=boot.key
bootnote --nodekey=boot.key

一旦bootstrap節點在線,它將返回一個合法的遠程鏈接URL,該URL可以用於實現節點之間的相互鏈接。請確保顯示的IP地址同你指望的外網訪問的IP地址一致。網絡

注意:你也可使用全功能的geth節點做爲bootstrap節點。測試

啓動你的網絡成員節點

一旦你的bootstrap節點已經配置好,並可以經過網絡訪問,最簡單的方式就是經過telnet <ip> <port>進行測試。全部的geth節點都可以經過--bootnotes選項指定bootnode,在啓動多個節點的時候,請確保是每一個節點的數據文件夾是獨立的,避免衝突,能夠經過--datadir的選項進行指定:url

geth --datadir path/to/custom/data/folder --networkid 15 --bootnodes <bootnode-enode-url-from-above>

如此一來,你的私有網絡就能夠work了,該網絡徹底同主網絡和測試網絡隔離開,因此你須要配置一些挖礦節點接受並處理交易生成新的區塊。code

運行一個私有的礦工節點

在以太坊主網絡上實現挖礦是一個很是艱鉅的任務,須要利用GPA,針織須要OpenCL,CUDA的支持,可是在私有網絡中就輕鬆一些了,一個單CPU的礦工實例基本上可以知足你的需求,它基本上可以完成穩定出塊,並可以實如今較短的時間間隔內出塊。ip

以下的命令可以幫助你啓動一個新的geth挖礦節點:

$ geth <usual-flags> --mine --minerthreads=1 --etherbase=0x0000000000000000000000000000000000000000

請注意,全部的挖礦收入都會記錄到--etherbase這個帳戶上,進一步地,你能夠經過指定--targetlimit來限制gas limit,也能夠經過--gasprice來指定gas的價格。

相關文章
相關標籤/搜索