Wallet
為什麼比特幣核心錢包數據庫從 Berkeley DB 遷移到 SQLite?
為什麼 Bitcoin Core 錢包的數據庫後端從 Berkeley DB 遷移到 SQLite?
描述符錢包的引入提供了一個引入新數據庫後端的機會,因為描述符錢包向後不兼容。以下內容摘自 Andrew Chow 的部落格文章,內容是關於 0.21 中比特幣核心錢包的內容。(也有關於這個 GitHub問題的討論。)
為什麼要從 Berkeley DB 搬走?
- 不設計為用作應用程序數據文件。因此,Legacy Wallet 有幾個黑客可以解決這個問題,並且 Berkeley DB 錢封包件很容易被破壞。
- Berkeley DB 會產生額外的文件,這些文件需要與數據庫文件一起移動。這意味著 Berkeley DB 的可移植性較差,並且每個錢包都需要一個目錄。
- 對 Berkeley DB 數據庫環境文件進行了更改,破壞了向後兼容性。
為什麼選擇 SQLite?
- 可用作應用程序數據文件。
- 新的 SQLite 版本保持與早在 2013 年的版本的向後兼容性。
- 不需要數據庫環境。完成的寫入保證數據已寫入數據庫文件。
- 現在可以移動到單個錢封包件而不是錢包目錄。
這是從比特幣核心中刪除遺留錢包和伯克利數據庫的建議時間表。