1. 程式人生 > >區塊鏈開發筆記——對getBlock中所得區塊的各個欄位進行解釋

區塊鏈開發筆記——對getBlock中所得區塊的各個欄位進行解釋

一.定義

getBlock函式的返回值為區塊物件,其中包含一下多個欄位:

  • Number - 區塊號。當這個區塊處於pending將會返回null。
  • hash - 字串,區塊的雜湊串。當這個區塊處於pending將會返回null。
  • parentHash - 字串,32位元組的父區塊的雜湊值。
  • nonce - 字串,8位元組。POW生成的雜湊。當這個區塊處於pending將會返回null。
  • sha3Uncles - 字串,32位元組。叔區塊的雜湊值。
  • logsBloom - 字串,區塊日誌的布隆過濾器。當這個區塊處於pending將會返回null。
  • transactionsRoot - 字串,32位元組,區塊的交易字首樹的根。
  • stateRoot - 字串,32位元組。區塊的最終狀態字首樹的根。
  • miner - 字串,20位元組。這個區塊獲得獎勵的礦工。
  • difficulty - BigNumber型別。當前塊的難度,整數。
  • totalDifficulty - BigNumber型別。區塊鏈到當前塊的總難度,整數。
  • extraData - 字串。當前塊的extra data欄位。
  • size - Number。當前這個塊的位元組大小。
  • gasLimit - Number,當前區塊允許使用的最大gas。
  • gasUsed - 當前區塊累計使用的總的gas。
  • timestamp - Number。區塊打包時的unix時間戳。
  • transactions - 陣列。交易物件。或者是32位元組的交易雜湊。
  • uncles - 陣列。叔雜湊的陣列。

二.具體例子分析

example

分析以上的第十六個區塊資訊:

  • 第一個欄位difficulty表示區塊鏈到當前塊的總難度為131968.
  • 第二個欄位extraData表示額外的資訊字串,這個欄位是留給區塊的建立者,讓他可以記錄一些與該區塊有關的資訊
  • 第三個欄位gasLimit表示當前這個16號區塊只允許使用最多3191012個gas
  • 第四個欄位gasUsed表示當前這個16號區塊累計使用的總gas為0
  • 第五個欄位hash表示當前區塊的雜湊值為0x17f2dec76f0f29a3be561b2f56605···
  • 第六個欄位logsBloom為區塊日誌的布隆過濾器
  • 第七個欄位miner表示這個區塊獲得獎勵的礦工
  • 第八個欄位mixHash與以太坊的挖礦有關,也就是POW模式,所以它也有一個挖礦難度係數。
  • 第九個欄位nonce為POW生成的雜湊。
  • 第十個欄位number為該區塊的序號16
  • 第十一個欄位parentHash為上一個區塊的雜湊值,可以把它看成一個指標,指向上一個區塊。
  • 第十二個欄位receiptsRoot, 整個日誌內容,包括Receipts的其它內容會生成一個ReceiptsRoot儲存在區塊的頭部。
  • 第十三個欄位sha3Uncles為叔區塊的雜湊值
  • 第十四個欄位size表示這個區塊的位元組數大小為538
  • 第十五個欄位stateRoot表示為區塊的最終狀態字首樹的根。
  • 第十六個欄位timestamp為區塊打包時的unix時間戳。用於回溯時候,可以查詢。
  • 第十七個欄位totalDifficulty為區塊鏈到當前塊的總難度。
  • 第十八個欄位transactions為一個交易物件的陣列,由於該區塊無交易記錄,故陣列為空。
  • 第十九個欄位transactionRoot為區塊的交易字首樹的根。
  • 第二十個欄位uncles為叔雜湊的陣列。