1. 程式人生 > 實用技巧 >以太坊搭建聯盟鏈:兩個節點完成一次轉賬交易

以太坊搭建聯盟鏈:兩個節點完成一次轉賬交易

建立組織

  • 新建兩個資料夾啊a,b,分別代表兩個組織在兩個資料夾內分別建立檔案genesis.json,內容如下:
{
  "config": {
    "chainId": 666,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "ethash": {}
  },
  "nonce": "0x0",
  "timestamp": "0x5ddf8f3e",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b760",
  "difficulty": "0x00002",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    "0x1e82968C4624880FD1E8e818421841E6DB8D1Fa4" : {"balance" : "30000000000000000000"}
  },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
  • 在a中執行geth --datadir ./data-init1/ init genesis.json
  • 在b中執行geth --datadir ./data-init2/ init genesis.json

啟動控制檯

  • 在a中執行geth --datadir ./data-init1/ --networkid 22 --nodiscover console;新開一個終端,在b中執行geth --datadir ./data-init2/ init genesis.json.
  • 出現 Welcome to the Geth JavaScript console!, 說明網路啟動成功。

新增賬戶

  • 在a,b上分別新增賬戶。
personal.newAccount("123456")
  • a:"0xd4df3fab07d7d957b5f023b107c388173f0b24b1"
  • b:"0xe0e0772c036e0864d33d20c90bcd5f7ce9bf18bb"

互通

  • 檢視b節點資訊,在a節點新增b

  • 執行命令admin.peers驗證

進行一次轉賬交易

  • 在a上執行eth.getBalance(eth.coinbase),賬戶餘額為0,開始挖礦miner.start().

  • 然後再執行eth.getBalance(eth.coinbase):

  • 解鎖賬號,輸入密碼。向b的賬戶進行轉賬。

  • 開始挖礦

  • 在b上查詢賬戶餘額,轉賬成功(b未進行挖礦且初始賬戶餘額為0)

參考


一個疑問,可能比較蠢-_- 一個節點可以建立多個賬戶,但只有一個coinbase?coinbase就是用來接受coin的?這個過程只是簡單地走了一遍過程,具體的過程還沒有捋順,也沒有使用智慧合約?接下來就是看看如何部署智慧合約。