Bitcoin-Core

是否有任何理由讓替代比特幣實現使用伯克利數據庫?

  • February 12, 2021

比特幣的 C++ 參考實現使用 Berkeley DB 4.8 的主要原因似乎是向後兼容至少根據我所做的有限研究(來源) ,與 Redis 或 RocksDB 等當今的替代方案相比,BDB4.8(或根本沒有 BDB)似乎沒有任何優勢。據我所知,大多數替代的全節點實現都避開了錢包支持(sourcesource)。

性能基準似乎表明堅持使用 Berkeley DB(來源)沒有性能優勢,但我似乎看不到其他任何東西的廣泛採用,除了最近為比特幣核心引入的 SQLite 支持(來源),儘管 BDB4 不斷增長的痛苦.8. 如果不是為了向後支持,我無法想像為什麼沒有完全拋棄 BDB 的任何其他原因。

是否有任何理由不考慮諸如 RocksDB(儘管沒有很好的文件記錄但支持靜態加密)、ArangoDB 或 Aerospike(所有這些似乎至少在五年前就存在)之類的替代方案?堅持使用 BDB 是否有任何安全優勢?BDB 的任何可贖回屬性使其成為目前可用產品的最終選擇?

一個新的實現應該堅持 BDB 還是使用另一個庫來支持錢包,如果是,應該是什麼?

向後兼容性是 Core 的重中之重,它在技術選擇上通常非常保守。我認為它不會考慮一種新的(數據庫)技術,直到它在其他項目中得到多年證明。它提供了一個共識引擎和基礎設施,並且如果它會危及向後兼容性或需要大量開發人員在不久之後進行改造,它不會像初創公司或更大的公司那樣容忍不同的選擇和實驗。

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