一步一步學區塊鏈(4)建立自己的私鏈
本篇文章主要結合之前文章提到的geth客戶端,講解如何構建自己的私鏈,以及在上面進行賬戶管理和轉賬交易。
1.創世塊檔案
區塊鏈上第一個區塊叫做創世塊,建立我們私鏈的時候可通過創世塊配置檔案來宣告和定義。把以下檔案內容儲存為genesis.json檔案
{
"coinbase": "0x0000000000000000000000000000000000000000",
"config": {
"homesteadBlock": 5
},
"difficulty": "0x20000",
"extraData": "0x",
"gasLimit": "0x2FEFD8",
"mixhash": "0x00000000000000000000000000000000000000647572616c65787365646c6578",
"nonce": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00",
"alloc": {
"dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6":{
"balance":"100000000000000000000000000000"
}
}
}
2.建立私鏈
開啟命令列,定位到儲存私鏈的檔案地址路徑,初始化私鏈,開啟私鏈
如需通過初始化檔案配置賬戶的預設以太幣數量,可先在控制檯新增使用者,並將賬戶地址替換到genesis.json的alloc中
dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6,然後重新執行 geth --datadir "privateChain" init genesis.json ,
另外一種方式就是新增賬戶後,執行挖礦 miner.start() 開始挖礦,miner.stop() 停止挖礦,期間挖的以太幣會自動儲存到
第一個賬戶中。
操作命令如圖
私鏈建立成功
進入控制檯
新建一個使用者並檢視他的餘額
將新建使用者的地址修改到genesis.json檔案中,並重新geth --datadir "privateChain" init genesis.json ,進入控制檯檢視使用者餘額
3.賬戶管理
在命令列中我們可以再建立一個賬戶,用於後面的交易。
4.交易
通過命令列將一個賬戶的餘額轉到第二個賬戶,並檢視是否到賬。首先解鎖各個使用者的狀態,然後定義一個變數接受賬戶地址
(不定義也可以,定義看起來更簡潔)
注意交易會花費gas,所以看到賬戶一加上賬戶二的餘額是沒有之前的總額夠的。另外由於交易必須啟動挖礦才能同步到到區塊中,
顧交易完成後需要啟動挖礦。由於私有鏈環境,挖礦難度很低,啟動挖礦後會增加賬號一的以太幣。
然後執行
miner.start()
過一會之後停止挖礦,檢視交易是否完成
miner.stop()
最後檢視賬戶二的餘額
通過以上操作我們能基本瞭解以太坊區塊鏈技術的工作原理,下會我們將基於此做智慧合約的編寫。