Network
為什麼目前沒有考慮修剪?
我了解比特幣具有多種含義(可擴展性),而修剪是它的一個重要概念(SE Question)。我也明白,“簡化支付驗證”(SPV)需要非常信任他從中獲取區塊鏈的對等方。
一個非常保守的修剪(例如超過六個月的交易)不會造成太大的傷害,尤其是當它只是bitcoin-qt的配置選項時。這樣預設是全節點,但很容易有一個“小節點”。
但我認為它不會很快到來。有原因嗎?目前擁有完整節點是否如此重要,以至於開發人員說“要麼全力以赴,要麼一無所獲”?還是開發工作是瓶頸?恕我直言,非 SPV 節點的大型網路比完整節點的小型網路更重要。
編輯:讓我們更具體一點:沒有將世界的完整交易歷史記錄到創世塊是否存在重大安全問題?
正在考慮剪枝,其實在設計0.8數據庫格式的時候就已經考慮到了。未使用的交易輸出(這是驗證所需的唯一重要數據)已經保存在一個單獨的數據庫中,因此從技術上講,刪除舊塊是完全可能的。當請求不再存在的塊數據時,可能需要進行一些小的更改以確保程式碼不會中斷,但這很容易。
它未實施的原因是對整個網路的影響。如果大量節點開始將舊塊數據剪掉,那麼新啟動的節點將更難找到歷史數據進行驗證。這本身不是問題——我希望保留足夠多的副本,這不是一個真正的問題——但我們需要一種發現機制,這樣節點就不需要隨意嘗試對等節點,直到它們碰巧到達具有所需塊的節點. 事實上,比特幣開發郵件列表上正在討論這項權利。
編輯:修剪是在比特幣核心 0.11 中實現的,並且自 0.12 以來功能齊全。