[FR] cardano-db-sync - Analyse possibility of testing rollbacks with framework

Open
#2,653 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
python

Research direction

Start by reviewing the cardano-node-tests framework and the cardano-db-sync command, especially the --rollback-to-slot option. Assess whether rollback can run efficiently on a minimal test blockchain after the regular cluster tests. Done means documenting feasibility, expected runtime, and the tables, columns, or flag configurations that require coverage.

Written by the indexing model from the issue text.

Description

db-sync enhancement

Analyse if it would make sense to test db-sync rollbacks with cardano-node-tests framework.
Currently the only way to invoke rollback is to stop current db-sync process and start it again with flag --rollback-to-slot :

Usage: cardano-db-sync (COMMAND | --config FILEPATH --socket-path FILEPATH 
                         [--state-dir FILEPATH] --schema-dir FILEPATH 
                         [--pg-pass-env ENV] [--disable-epoch] [--disable-cache]
                         [--disable-ledger] [--skip-fix] [--fix-only] 
                         [--force-indexes] [--disable-multiassets] 
                         [--disable-metadata] [--disable-plutus-extra] 
                         [--disable-offline-data] [--turbo] [--full] 
                         [--consumed-tx-out] [--prune-tx-out] 
                         [--rollback-to-slot WORD])

This might be a time consuming process - however on a test blockchain with minimal amount of data this could be a faster process than on real networks either test ones or mainnet.

This should be probably run after all regular cluster tests are finished so we have test data including all conway era tests and check if rollback propagates properly and deletes all data. Currently some columns , tables might be ignored during rollbacks.

Detailed list of tables / columns / cases (flag configurations causing issues) would be needed in case this would make sense to implement and we wanted to proceed with idea - but for now just the concept itself can be checked from the efficiency point of view and how much time consuming it would be.

Dominant language
Python
Stars
59
Forks
28
Avg merge
13h 57m
Merged PRs (30d)
87

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from IntersectMBO/cardano-node-tests

All issues in IntersectMBO/cardano-node-tests

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.