Evaluate sqlite as a replacement for BDB

Can we talk about this? Its been an issue for years and is still stuck in the security backlog

Hmm, we should close those GitHub projects (we migrated to ZenHub last year because GitHub on its own didn’t provide what we needed, so those columns haven’t been updated).

As for this specific proposal, it was shelved while we were developing Sapling and then the mobile SDKs. Our current preferred direction is to migrate away from the C++ wallet entirely, to a Rust wallet (which would share its business logic with the mobile SDKs, and could also be compiled to WASM for use in browser extensions).

The first step towards this is the just-merged Data Access API, which starts the process of splitting the specific SQLite database format used by the light client mobile SDKs, out from the wallet logic (to enable the latter to be backed by other databases, or used in WASM contexts where you don’t have direct access to I/O). Note that even if zcashd moved to using SQLite, it would most likely use a completely separate database format from the mobile SDKs.

3 Likes

That sounds wonderful!

I like almost everything about that answer, thanks! My remaining question relates to the ZenHub portion. Is there a public link for Zcash there? It is nice for the community to be able to track some of these priorities and in some cases actively contribute.

ZenHub doesn’t provide any way to create a public view of a board AFAIK. Currently, the best view into what the ECC Core team is working on for each sprint, is the GitHub milestones created by ZenHub across the various repos (e.g. Core Sprint 2021-02 Milestone · GitHub and Core Sprint 2021-02 Milestone · GitHub for the current sprint).

2 Likes

Thanks. That is helpful too