創世區塊
創世區塊的json檔案內容如下:
{
"config": {
"chainId": 10086,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0
},
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"difficulty": "0x20000",
"extraData": "",
"gasLimit": "0x1dcd65000",
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00"
}
其中各個引數的含義如下表所示:
| 引數名 | 含義 |
|---|---|
| chainId | 指定了獨立的區塊鏈網路 ID,網路 ID 在連接到其他節點的時候會用到,以太坊公網的網路 ID 是 1,為了不與公有鏈網路沖突,運行私有鏈節點的時候要指定自己的網路 ID,不同 ID 網路的節點無法相互連接, |
| HomesteadBlock | 當設定為0表示使用Homestead發布該鏈, |
| nonce | nonce就是一個64位亂數,用于挖礦, |
| mixhash | 與nonce配合用于挖礦,由上一個區塊的一部分生成的hash, |
| difficulty | 設定設定當前區塊的難度,越大挖礦就越難, |
| alloc | 用來預置賬號以及賬號的以太幣數量, |
| coinbase | 礦工賬號 |
| timestamp | 設定創世塊的時間戳 |
| parentHash | 上一個區塊的hash,創世塊就為0 |
| extraData | 附加資訊 |
| gasLimit | 限制GAS的消耗總量 |
初始化創世區塊
需要將上述內容保存為檔案genesis.json,然后將其放入自己的檔案夾中,
在終端cd進入放置genesis.json的檔案夾中,輸入代碼:
## --datadir后面的路徑表示當前區塊鏈網路資料存放的位置
geth --datadir ./data/00 init ./genesis.json
這時候會發現指定的目錄下多了geth和keystore兩個檔案,其中geth保存的該鏈上的區塊資料,keystore保存的該鏈上的用戶資訊,
啟動節點
geth --datadir ./data/00 --networkid 10086 --port 30303 --nodiscover --rpc --rpcaddr 192.168.119.129 --rpcport 8545 -allow-insecure-unlock --rpc.allow-unprotected-txs --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" console
其中各個引數的含義如下表所示:
| 引數名 | 含義 |
|---|---|
| datadir | 當前區塊資料存放的位置 |
| networkid | 設定當前區塊鏈的網路ID,用于區分不同的網路,必須和創世區塊的chainId相同 |
| port | 網路監聽埠,默認30303 |
| nodiscover | 關閉p2p網路的自動發現,需要手動添加節點,這樣有利于我們隱藏私有網路 |
| rpc | 啟動rpc通信 |
| rpcaddr | 連接rpc的地址,默認為localhost |
| rpcport | 連接rpc的埠,默認為8545 |
| -allow-insecure-unlock | 新版本geth,出于安全考慮,默認禁止了HTTP通道解鎖賬戶,如果想要解鎖賬戶進行轉賬的話,需要啟動節點時添加這一引數 |
| –rpc.allow-unprotected-txs | 允許通過 RPC 提交不受保護的(非 EIP155 簽名)交易 |
| rpccorsdomain | 指定什么url能連接到你的節點執行rpc定制端任務,如果輸入的是“*”,則任何url都可以連接到你的rpc實體 |
| rpcapi | 設定允許連接rpc的客戶端,一般為db,eth,net,web3 |
| console | 啟動命令列模式,可以在Geth中執行命令 |
在這里我的–rpcaddr選擇的是我的虛擬機的ip地址,查詢虛擬機的IP地址需要在Ubuntu中安裝一個工具,具體步驟可以參考:安裝網路工具,
安裝成功后,按ctrl+alt+t打開終端,輸入如下代碼查詢虛擬機ip地址:
ifconfig
回傳的inet值即為虛擬機的IP地址,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/297199.html
標籤:區塊鏈
