Many projects rely on an IOHK tool called cardano-db-sync. This means that when an issue is found in db-sync, the many projects are affected
We will write an alternative to cardano-db-sync in Rust powered by Oura starting with the core functionality needed for light wallets.
This is the total amount allocated to db-sync replacement in Oura
Having an alternative to cardano-db-sync will help projects in Cardano be more robust as we won't have all projects relying on a single tool.
Additionally, the Oura infrastructure is more modular which will make it easier for projects to write their own plugins based off their own needs whereas writing plugins for cardano-db-sync, although doable, requires understanding a monolithic codebase which is not easy.
Additionally, since Oura is more modular, we expect our db-sync replacement to have better performance which would help wallets like Yoroi load wallet data a lot faster
This protocol is to build a Cardano open source project and should also make it easier for developers to build using open source tooling as well.
The risk of large infrastructure projects like this is that the project ends up containing a bug which affects projects that depend on it. However, the dcSpark team has a lot of experience writing core Cardano tooling so we're fairly confident in our ability to do things properly, and we also intend to integrate the tooling into other projects we contribute to (Flint Wallet, Milkomeda, etc.) so we should be able to detect any issue before others do.
We plan to release the first part of this db-sync alternative in Q1 2022 with follow-up components in Q2 2022
Stretch goal may be to add support for SMASH and token metadata. However,
The funding doesn't include these stretch goals so they may end up being included as part of this proposal, or may end up being part of a followup proposal
The budget will be entirely used for the development cost of
Progress will be measured by our ability to release this functionality with all the endpoints required for projects to migrate away from db-sync and do so without sacrificing performance (in fact, we expect a significant performance increase for projects)
Success looks like many projects integrating this tool into their backend infrastructure to power their wallets or dApps
The dcSpark team has a light wallet called Flint Wallet that runs on a custom backend using db-sync so we're familiar with how it works. We also have experience in Rust as we're core contributors to the Cardano Rust SDK (cardano-serialization-lib)