以太坊學習--geth搭建自己的私鏈

 

一、創建網絡的“創世”狀態

      1、進入./go-ethereum/genesis,將配置寫入genesis.json文件

{
  "config": {
     "chainId": 15
  },
  "difficulty": "2000",
  "gasLimit": "2100000",
  "alloc": {
     "08a58f09194e403d02a1928a7bf78646cfc260b0": {
         "balance": "300000"
     },
     "87366ef81db496edd0ea2055ca605e8686eec1e6": {
         "balance": "400000"
     }
  }
}

     

 參數名 描      述
chainId 指定了獨立的區塊鏈網絡 ID。網絡 ID 在連接到其他節點的時候會用到,以太坊公網的網絡 ID 是 1,爲了不與公有鏈網絡衝突,運行私有鏈節點的時候要指定自己的網絡 ID。不同 ID 網絡的節點無法相互連接
homesteadBlock 當設置爲0表示使用homestead發佈該鏈
nonce nonce就是一個64位隨機數,用於挖礦,注意它和mixhash的設置需要滿足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章節所描述的條件
mixhash 與nonce配合用於挖礦,由上一個區塊的一部分生成的hash。注意它和nonce的設置需要滿足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章節所描述的條件
difficulty 設置設置當前區塊的難度,越大挖礦就越難
alloc 用來預置賬號以及賬號的以太幣數量,因爲私有鏈挖礦比較容易,所以我們也可以不需要預置有幣的賬號,需要的時候自己創建即可以
coinbase 礦工賬號,可以隨便寫
timestamp 設置創世塊的時間戳
parentHash 上一個區塊的hash,創世區塊的該項參數就爲0
extraData 附加信息,可以隨便寫
gasLimit 該值設置對GAS的消耗總量限制,用來限制區塊能包含的交易信息總和。我們創建的是私有鏈,可以填最大

     2、將geth設置爲壞境變量,同時初始化創世區塊

geth --datadir "./" init genesis.json

    當創建完成之後,可生成geth和keystore兩個文件夾,

    geth目錄用於保存我們所建私有鏈的區塊數據

    keystore目錄用於保存用戶的賬戶數據

      3、在當前目錄下運行geth,可以啓動這條私鏈,將networkid設置爲與創世塊配置裏chainId一致

geth --datadir "./" --networkid 15

二、交互式啓動節點

     1、需要對節點的啓動採用控制檯的模式啓動

geth --datadir "./" --networkid 15 console

    列舉幾個常用對象

    web3 最大的對象

    eth 環境對象

    admin 用於權限配置

    personal 用於賬戶配置

    txpool 交易池查看

    miner 礦工信息查看

2、部分常用api的使用

//獲取賬戶剩餘金額
eth.getBalance("0xD63d4A435......350BEaED2b614B4C052")

//將金額轉換爲以太
web3.fromWei(eth.getBalance("0xD63d4A435......350BEaED2b614B4C052"))

//以太坊的高度數
eth.blockNumber

//獲取一個新的賬戶
personal.newAccount()

//以太坊的賬戶數目
eth.accounts

//發送交易
eth.sendTransaction({from:"0xD63d4A4350f9................2b614B4C052",to:eth.accounts[0],value:10000})

//解鎖交易
personal.unlockAccount(eth.accounts[0])

//挖礦開始
miner.start(1)

//挖礦結束
miner.stop()

三、和metamask個人錢包掛載

1、使用geth的rpc命令啓動,將日誌記錄到相同目錄的output.log下

geth --datadir "./" --networkid 15 --rpc console>output.log

2、設置metamask的記錄

3*、採用dev模式登錄以太坊 

geth --datadir "./" --dev console>output.log

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章