以太坊以 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的價格。