Bitcoin-Core-Development
為什麼 Bitcoin Core 使用 LevelDB 而不是 Redis 或 SQLite?
為什麼 Core 從 移動
BDB
到LevelDB
?他們為什麼不使用SQLite
或搬到Redis
現在?這種選擇有技術原因嗎?
Redis 和 LevelDB 解決了非常不同的問題。我們嘗試使用 SQLite,但它的性能非常糟糕。
比特幣核心需要一個數據庫來儲存一組未使用的交易輸出(UTXO)。這意味著我們需要快速簡單的讀取和快速批量的隨機更新。
我們不需要伺服器/客戶端架構,因為無論如何我們不能讓多個應用程序同時訪問數據庫:數據庫中的不一致會導致分叉風險(網路中的每個節點都需要對什麼做出完全相同的判斷有效和無效)。