mlabs-haskell / cardanow

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Milestone 2

nazrhom opened this issue · comments

This issue is meant to track progress on the acceptance criteria and evidence of milestone completion for M2. It also serves as summary document as requested by the milestone completion evidence.

Acceptance Criteria

These are the acceptance criteria for M2

1. Cardano node database snapshots are automatically taken at least once per epoch for each public 
network (mainnet, preprod, and preview).

2. The latest two snapshots for each network are retained, at minimum.

3. Anyone can access key metadata about the database snapshots programmatically in JSON format
(containing the download URL and any other relevant information).

4. Files downloaded from each URL are valid Cardano node database snapshots.

5. The restore script successfully restores the downloaded snapshot (allowing the Cardano node
 to continue syncing from that point).

6. The portion of the source code related to creating the snapshots, as well as the restore script, 
are publicly accessible with an open-source licence.

7. Any documentation required for utilising the caching service is made publicly available.

As detailed in the change request, most of the acceptance criteria for this milestone are already satisfied by the mithril network, which we use to fetch a trustable snapshot of the cardano-node data.

Criteria 1, 2, 3, 4 and 7 are all already provided by the mithril network:

For criteria 5 and 6 we have created a docker image that contains the cardano-node together with a mithril-client. This image can be used to restore the latest snapshot for each network before starting the node. This image is automatically built and pushed to dockerhub every time there is an update to the relevant files on the repo

Evidence of Milestone completion

[x] Source code and documentation in the https://github.com/mlabs-haskell/cardanow repository.

[x] A test suite that verifies the acceptance criteria have been met (excluding any criteria which do not apply to automated testing).

  • Criteria 5 and 6 do not apply to automated testing. The rest are handled by the mithril network directly and as such we don't have automated tests for that. We are planning to build a whole end-to-end suite, that will spin up a mithril network on a devnet and use that to test the creation and validity of a snapshot, but this will only come in play when the whole end-to-end flow is ready (which will happen in M3)

[x] A video demo explaining how to utilise the caching service.

[x] A summary document that links to specific video timestamps, tests, and acceptance criteria, where applicable.

[x] A post on one or more MLabs social channels announcing the availability of the caching service.

Already approved weeks ago