Data infrastructure3 min read

Durable Checkpoints for Incremental Blockchain Scans

Checkpoint accepted ranges only after durable processing, and use restart tests to prevent skipped pages or duplicate effects in incremental scans.

Editorial illustration accompanying durable checkpoints for incremental blockchain scans.

Overview

When translating these concepts into an integration, keep the scope described by the wallet history api with the result. The examples in wallet transaction history and smart contract event logs show how the same distinction affects neighbouring data questions.

A checkpoint says which work is safely complete. Writing it too early can skip records after a crash; writing it too late requires replay-safe processing.

Define committed progress

Keep network, range boundary, block identity and relevant query version in the checkpoint. Commit processed records and progress together where the storage model allows it. If they cannot be atomic, choose a recovery protocol that tolerates replay. A last-seen timestamp alone is insufficient when many events share one timestamp.

Worked example: crash between fetch and write

The client fetches page P and immediately stores its next cursor, then crashes before writing P’s records. On restart it skips P. Reverse the durable boundary: process the page safely, then advance progress under a transactional or replay-safe contract. Repeated processing must not create duplicate business actions.

Verify on restart

Check that the stored block reference still belongs to the accepted chain where required. Test a crash before commit, after commit and during rollback repair. Keep query changes from silently reusing incompatible checkpoints. A new filter or decoder requirement may need a bounded rescan rather than continuing from an unrelated old cursor.

A practical acceptance test

Crash the scanner before record commit, after record commit and after progress commit. Each restart should either replay safely or resume after completed work. Add a changed query filter and ensure its old checkpoint is not reused blindly. A progress marker should identify the evidence boundary it actually certifies, not merely the last successful HTTP fetch.

Questions about the topic

Frequently asked questions

Is fetched equivalent to durably processed?

No. A crash can occur between those steps.

Can a checkpoint ignore query filters?

Not safely when those filters define what completed work means.

Standards & technical documentation

Further reading

{{TODO: author name}}

Practical explanations of blockchain data, software integration and the context behind a record.

About Indexbase
← Back to all articles

Build with better context.

Get an update when private beta opens.

Form setup in progress. Nothing entered here is sent or saved. {{TODO: endpoint}} See the full form and email alternative.