Relay
“標題優先”實現中是否存在陳舊的塊?
比特幣開發者指南提到過時的區塊不在最長的鏈中,然後轉向孤立區塊。它聲明你不會得到孤立塊,“如果你這樣做了”,它們就會被丟棄。但它沒有提到陳舊的塊是否也被“放棄”(因為沒有更好的術語)。
ps 我正在考慮在我的遊戲中使用區塊鏈來獲取分數,以獲得通用的前十名。歡迎任何意見。
好的,我發現了更多關於Memory Pools中陳舊塊的資訊。
描述瞭如何將陳舊的塊一個一個地重新添加到池中,如果已經包含替換塊,則立即將其刪除,或者由比特幣核心重新添加為新交易,從而刪除已確認的交易。
這是段落,以防連結失敗:
被探勘成塊的交易,後來變成陳舊的塊,可以重新添加到記憶體池中。如果替換塊包含這些重新添加的事務,則幾乎可以立即從池中重新刪除它們。比特幣核心就是這種情況,它從鏈中一個一個地刪除陳舊的塊,從尖端(最高塊)開始。隨著每個塊被刪除,它的事務被添加回記憶體池。在移除所有陳舊的塊後,替換塊被一一添加到鏈中,以新的提示結束。隨著每個區塊的添加,它確認的任何交易都會從記憶體池中刪除。
陳舊和孤立塊是具有多種含義的令人困惑的術語,具體取決於您詢問的對象。
如果說陳舊的塊是指“位於主鏈分支上的塊,但在其他方面是有效的”,是的,那些仍然存在。它們是工作量證明鏈所固有的,因為你無法避免偶爾兩個礦工產生競爭區塊的情況。必然地,最多其中一個可以獲勝,而另一個將變得陳舊。
如果您所說的孤立塊是指“父標頭未知的塊”,那麼這些塊確實不再存在。它們是 0.9 之前使用的同步實現的產物。從 0.10 開始,我們僅在驗證了其祖先中的所有標頭後才請求塊,因此不會再出現沒有標頭的塊。