Какая технология заменит формат BerkleyDB? Каковы текущие ограничения масштабируемости?

Насколько масштабируемым является формат BerkleyDB (технология, используемая в кошельке) и каковы его ограничения?

Какая технология заменит или дополнит BerkleyDB для решения этих проблем масштабируемости?

Ответы (1)

В следующем основном выпуске (вероятно, 0.8) эталонный клиент, скорее всего, переключится на LevelDB вместо BDB для данных блокчейна. Для кошельков требуется другое решение, но мы, скорее всего, отойдем от BDB и для них.

У BDB есть несколько проблем — это не значит, что это плохое программное обеспечение, но наш вариант использования просто не соответствует тому, для чего оно предназначено. BDB предназначен для обеспечения чрезвычайно высокой надежности баз данных в сложных средах с несколькими процессами, в высокопроизводительных системах, где журналы базы данных резервируются и где обновления выполняются вручную администратором базы данных. BDB даже не гарантирует совместимость файлов окружения между младшими выпусками.

LevelDB — переработанная версия собственной системы баз данных Google с открытым исходным кодом — была разработана для обеспечения эффективности и согласованности на массовом оборудовании и превосходит BDB на порядок в некоторых настройках. Предварительные тесты с LevelDB показывают очень хорошие результаты.

Для кошельков LevelDB был бы излишним и обременительным. LevelDB использует целый каталог для каждой базы данных (вместо одного файла), а кошельки фактически представляют собой простое хранилище ключей и значений, которое в любом случае полностью загружается в память. Я предполагаю, что wallet.dat будет заменен каким-нибудь простым, но надежным форматом, созданным вручную.

Как разработчик BIP32, когда вы хотели бы увидеть обновление формата wallet.dat?
Я работал над реализацией BIP32 для эталонного клиента (но не сейчас); по-прежнему требовалось, чтобы кошелек был универсальным хранилищем ключей и значений, и это, вероятно, не изменится. Таким образом, это совершенно не зависит от того, являются ли кошельки по-прежнему BDB или чем-то еще. Чтобы ответить на другой вопрос: я хотел бы уйти от BDB как можно скорее, но кто-то должен реализовать альтернативу.