Blockchain

為什麼選擇 550 (MiB) 作為修剪模式的最小儲存大小?

  • September 2, 2019

如您所知,Bitcoind 可以在修剪模式下執行,因此不會向其他節點發布塊。儘管它有一些缺點,但為您節省儲存空間並不是您可以忽略的好處。

我的問題是關於神奇的 550(MiB) 預設/最小數字。為什麼他們選擇了這個限制?(&為什麼不少或多?)

我知道它隱含地表明塊將保留最後(大約)3.8 天(91 小時)(一個 MiB,因為每 10 分鐘一個塊)。**但是這個數字是從哪裡來的呢?**我知道還有一個等於 546 Satoshis 的灰塵限制。[182*3 ~ 550 這裡!雖然不太可能與本案有關]

請您解釋一下550***背後的邏輯是什麼?***是否有任何與 51% 攻擊或任何其他類似的東西相關的難度級別?

編輯:從 0.12.0 開始,bitcoind 支持將塊中繼到其他節點,因此上面的第一個假設不是一個準確的句子!

剛從 BitcoinTalk 論壇的某個人那裡得到幫助,他將我引導到bitcoind 0.11.0 更改日誌在 bitcoind 中首次引入/實施了修剪

如那裡所示,塊修剪刪除原始塊撤消數據

…比特幣系統中有四種與區塊鏈相關的數據:通過網路接收的原始塊(blk???.dat)、撤消數據(rev???.dat)、塊索引和 UTXO 集(都是 LevelDB 數據庫)。數據庫是根據原始數據建構的。塊修剪允許比特幣核心刪除原始塊並在數據經過驗證並用於建構數據庫後撤消數據……

然後解釋了數字 550(不再是魔法!)的來源:

允許的最小值為 550MB*。請注意,這是對塊索引和 UTXO 數據庫所需的任何內容的補充。選擇最小值是為了使比特幣核心能夠在磁碟上維護至少 288 個塊(兩天的塊,每個塊 10 分鐘)。在極少數情況下,使用的空間量可能會超過修剪目標,以便將所需的最後 288 個塊保留在磁碟上。

*錯字!MiB(1024) 是正確的,而不是 MB(1000)。所以:

550*1024*1024 = 576716800
576716800 / 288 ~ 2MB

讓我補充一下,隨著 bitcoind 0.12.0 的發布,在修剪模式下禁用的錢包功能和塊中繼(我在我的問題中談到)再次得到支持

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