Block-Header

為什麼 bitcoin-cli 會返回奇怪的塊版本號?

  • June 20, 2016

我一直在查看塊的版本號,但我從bitcoin-cli getblock得到了奇怪的結果。

"version": 536870913

但是,當我使用false選項(獲取序列化塊數據)執行相同的命令時,它顯示的版本號為1

"result": "010000 ...

為什麼會這樣?


範例:https ://chainquery.com/bitcoin-api/getblock/0000000000000000054AFA8DDFAE5908D9FE2DC157FD137C03F71C87439BCB6D/false

好問題。我不得不做一些研究來找出答案。

目前版本實際上是 4 個字節。在這個區塊(以及許多其他最近的區塊,事實證明)的情況下,它是01000020. 這是小端,所以當你反轉十六進製字節時,它是:

0x20000001 = 536870913

二進制是:

00100000000000000000000000000001

事實證明,這裡的位遵循BIP0009 規範您可以在此處獲得對 BIP0009的更人性化的解釋。本質上,BIP0009 指定版本位將用於表示對軟分叉的支持。在這種特殊情況下,通過在末尾使用那個額外的“1”,探勘該區塊的礦工表示支持BIP0112 ,也稱為 OP_CHECKSEQUENCEVERIFY。

引用自:https://bitcoin.stackexchange.com/questions/45936