Wallet

為什麼比特幣核心錢包數據庫從 Berkeley DB 遷移到 SQLite?

  • October 29, 2020

為什麼 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 年的版本的向後兼容性。
  • 不需要數據庫環境。完成的寫入保證數據已寫入數據庫文件。
  • 現在可以移動到單個錢封包件而不是錢包目錄。

這是從比特幣核心中刪除遺留錢包和伯克利數據庫的建議時間表

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