Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Incremental Cardano DB in client library #2214

Open
23 tasks
Tracked by #2047
jpraynaud opened this issue Jan 13, 2025 · 0 comments
Open
23 tasks
Tracked by #2047

Implement Incremental Cardano DB in client library #2214

jpraynaud opened this issue Jan 13, 2025 · 0 comments
Labels
feature 🚀 New implemented feature

Comments

@jpraynaud
Copy link
Member

jpraynaud commented Jan 13, 2025

Why

The client library should be able to list, get details and certify Incremental Cardano DB.

What

Implement the Incremental Cardano DB signed entity type in the Mithril client library.

How

  • Implement a new client in mithril-client as unstable:
    • list
    • get
    • download_unpack(immutable_file_range: ImmutableFileRange, DownloadUnpackOptions)
      • ImmutableFileRange is an enum with the variants (Full, From(ImmutableFileNumber), Range(ImmutableFileNumber,ImmutableFileNumber)
      • DownloadUnpackOptions in a struct with fields include_ancillary: bool and allow_override: bool
      • How to implement feedbacks?
      • Verification is done with these steps:
        • Download and unpack the immutable archives:
          • Selection of file locations based on an order
          • With failover mechanism
          • Unpack in a immutable folder (with overriding support if enabled)
          • Parallelize the download and unpack?
        • Download the digest file (with overriding support if enabled)
        • Create a Merkle tree with all the digests in the file
        • Compute the digests of the downloaded immutable files
        • Verify that the computed digests exist in the Merkle tree
        • Verify that the root of the Merkle tree in signed in a valid certificate
        • Download and unpack the ancillary file:
          • If include_ancillary is true
          • With overriding support if enabled
          • In the root of the download folder (as ledger, volatile and immutable are already in the archive)
  • Adapt e2e test
@jpraynaud jpraynaud added the feature 🚀 New implemented feature label Jan 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 🚀 New implemented feature
Projects
None yet
Development

No branches or pull requests

1 participant