Blockchain
Etherscan 分叉塊的重組深度不正確?
我突然發現今天在 Etherscan.io 上發生了一個深度為 3 的重組。叔塊在高度
9919331
,雜湊是0x3b1161a8bdf5107f1dc2092781798d143b5ae66b6604823630b57f5d9450e1cb
. 但是我進一步檢查了區塊鏈歷史的結構,發現結構是這樣的:0xa0f0 => 0xc535 => 0x7ea3 \ 0x3b11
0xa0f0
,0xc535
,0x7ea3
表示規範鏈中的塊(其雜湊的前 16 位),而0x3b11
是由 Etherscan 報告的具有 reorg-depth 3 的叔塊。 的雜湊0x3b11
作為叔塊包含在塊中0x7ea3
。我很困惑為什麼 Etherscan 將這個叔塊報告為 reorg-depth 3。似乎這個 reorg 只丟棄了一個塊(即
0x3b11
)。這是 Etherscan 中的問題嗎?還是有一些我忽略的叔塊?
假設一個節點有這個狀態
A -> B -> C -> D
新的區塊到達,情況變成:
A -> B' -> C' -> D' -> E -> F | B
(其中 B 作為叔塊包含在 C’ 中。)
由於替換了 3 個塊,因此重組的深度為 3
在 C’ 中包含 B 作為叔叔並不能反映重組的深度。
例如,它可能已被包含在 D’、E 或 F 中的更下游。
要被包含為叔塊,塊的父級必須在主鏈中。由於 B 不再是主鏈的一部分,它的子 C 和 D 不能作為叔塊包含在內。