completed

db-sync replacement in Oura

$35,000.00 Received
$35,000.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Addresses Challenge
Feasibility
Auditability
ソリューション

We will write an alternative to cardano-db-sync in Rust powered by Oura starting with the core functionality needed for light wallets.

Problem:

多くのプロジェクトは、cardano-db-syncというIOHKツールに依存しています。つまり、db-syncに問題が見つかると、多くのプロジェクトが影響を受けるのです

Yes Votes:
₳ 166,991,932
No Votes:
₳ 12,550,622
Votes Cast:
325

This proposal was approved and funded by the Cardano Community via Project F8: Open Source Development Ecosystem Catalyst funding round.

[IMPACT]

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.

[FEASIBILITY]

We plan to release the first part of this db-sync alternative in Q1 2022 with follow-up components in Q2 2022

  • Q1: Core light wallet support (tx history, utxo fetching, etc)
  • Q2: Ledger state support (reward info, reward history, etc.)

Stretch goal may be to add support for SMASH and token metadata. However,

  • Token metadata is currently being worked on by another person contributing to Oura so we don't want to duplicate work if their solution ends up working
  • There are some community-run SMASH nodes. We need to check and see how these projects are handling the deprecation of SMASH and whether or not they would benefit from an Oura-based implementation

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

  1. Building out the db-sync alternative powered by Oura
  2. Making contributions for Oura to add missing functionality we need
  3. Writing a JS client so projects can easily connect to our project through Typescript
  • Sebastien (many years of experience writing Rust tooling for Cardano and wallet infrastructure)

  • Rob (one of the core contributors to the Cardano Rust SDK called cardano-seralization-lib)

  • Lucas (dcSpark Rust develop)

    [AUDITABILITY]

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

New proposal

コミュニティ・アドバイザー・レビュー (1)

Comments

Monthly Reports

We finished db-sync replacement in Oura. The official name of the project is : Carp (Cardano Postgres Indexer). To learn more about our brand new project please check our documentation : https://dcspark.github.io/carp/docs/intro/ . The source code can be found here on github: dcSpark/carp. The project close report will be delivered in mid June.

Disbursed to Date
$35,000
Status
Complete
Completion Target
5/31/2022
Comments 0

Login or Register to leave a comment!

Carp is a new indexer for Cardano that saves its data to a Postgres database (SQL). Carp has the following core pillars: Flexible: allow wallets and dapps full freedom in how they handle data Modular: it should only index what you need Speed: queries should be fast Type safe: developers should know exactly what data to expect to avoid any critical issues in their products. Documented: it should be easy for any developer to get started with Carp We’ll continue updating Carp as needed and next, we’ll work on implementing Carp into Flint Wallet. However, what comes after that is partially up to you! Any developer can write Carp tasks and contribute to Carp (fully open-source MIT license). We can consider the intended works on the project completed. In the near future we will prepare a project close report with video explaining carp. Github repo: https://github.com/dcSpark/carp Documentation: https://dcspark.github.io/carp/docs/intro/ Blogpost: https://medium.com/dcspark/carp-new-cardano-sql-indexer-replacement-for-db-sync-b990243a329e

Disbursed to Date
$35,000
Status
Complete
Completion Target
5/25/2022
Attachment(s)
Comments 0

Login or Register to leave a comment!

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3分 24秒
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4分 3秒
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3分 48秒
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2分 16秒
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3分 14秒
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3分 19秒
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4分 59秒
    Darlington Kofa
0:00
/
~0:00