We are having an issue when running the
rosetta-cli check command and we think it’s related on how Cardano and the cli work together. I’ll bullet some points as it’s easier to read:
- The error we are getting is
Check failed: cannot remove genesis block: unable to sync to 999although it seems Genesis block was properly parsed
[STATS] Blocks: 1 (Orphaned: 0) Transactions: 14505 Operations: 14505 Reconciliations: 14445 (Inactive: 0)
- As far as we understand, you are traversing the blockchain by block number (which makes sense unless you want to go from the tip backwards or add another field like
next blockbut it will force you to process sequentially instead of in parallel)
- In Cardano blockchain there are some special blocks which are created between epochs. For example:
89d9b5a5b8ddc8d7e5a6795e9774d97faf1efea59b2caf7eaf9f8c5b32059df4. You can search them by hash using this explorer https://explorer.cardano.org/en but I’m attaching an example.
- Such blocks don’t have neither block number nor slot number.
- The blockchain looks like
Genesis (0) <-- EBB <-- Block (1 )<-- Block (2) <-- .....<-- Block (n-1) <-- EBB <-- Block (n)
- Our understanding is that this check 1 is failing because
Block 1parent is
Genesisbut the CLI has never retrieved it. Are we getting it right? If so:
- Do you think this is a specific issue when traversing the blockchain by number? Do you do it like this in your internal systems?
- How should we proceed to be compliant with Rosetta API?