1. 程式人生 > >以太坊系列(二)geth構建私鏈

以太坊系列(二)geth構建私鏈

上一講,我們介紹了geth的安裝,以及一些基本命令,今天我們談一下怎麼用geth構建一條私有鏈,在這個過程中會更進一步的體會以太坊的工作流程。
若您還沒有安裝geth請看筆者的上一篇博文,或點選這裡
要構建一條私鏈,我們要初始化一個創世區塊,創始區塊的初始資訊我們放在一個名為genesis.json的檔案中,那麼檔案裡寫些什麼內容呢?geth的官網給我們了一個模板:

{
  "config": {
        "chainId": 0,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block"
: 0 }, "alloc" : {}, "coinbase" : "0x0000000000000000000000000000000000000000", "difficulty" : "0x20000", "extraData" : "", "gasLimit" : "0x2fefd8", "nonce" : "0x0000000000000042", "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp" : "0x00" }

注意這裡我們需要修改chainId為一個unique的數字,不能使用官網給的0, 這可能會存在一些問題。具體請看其他博友的分析, 戳這裡

建立好該檔案之後,執行以下命令:

geth --datadir data0 init genesis.json console 2>> geth.log

執行成功之後我們會看到如下資訊:

INFO [11-21|00:56:43.931] Successfully wrote genesis state         database=lightchaindata                              hash=5e1fc7…d790e0

這樣我們就初始化好了創始區塊,然後啟動它:

geth --datadir data0 --networkid 1108 console
note: networkid 定義一個網路標識, 我們可以用它連結到網路

啟動之後,我們來看一看是否有了一個初始賬號,在控制檯輸入 eth.accounts, 這裡呢已經幫我們建立好了一個沒有資產的賬戶。在控制檯中輸入eth.getBalance(eth.accounts[0]), 返回 0.
要知道,在以太坊系統中每一筆交易都是需要付費的,沒有錢這可難倒了老漢。各位看官莫慌,我們沒錢,但可以挖礦。

How to do?
道理就這麼簡單,在控制檯中輸入miner.start(10); 這就開啟了挖礦,10代表了開啟了10個執行緒。
開挖了,怎麼停止? So easy, 控制檯中輸入 miner.stop(); 就好了

那麼有的同學就問了,我們怎麼指定挖到的錢給到具體的賬戶呢? 這個只需要指定一下就好了,mister.setEtherbase(eth.accounts[1]); 設定好之後,可以通過eth.coinbase;來檢視。
更多資訊我們可以通過官方文件獲取,戳這裡