Test a raw shred feed for missing data

Distinguish packet loss, reconstruction gaps and final chain outcomes during a trial.

Define completeness at the right layer

A raw feed can contain duplicate packets, data shreds, coding shreds and fork-specific observations. One missing packet does not necessarily imply one missing transaction because erasure recovery may reconstruct data. Conversely, a high packet count does not prove complete useful coverage. Define what the consumer must reconstruct.

Keep a layered scorecard

LayerRecord
TransportReceive bytes, socket drops, malformed packets, duplicate identities
ReconstructionSlots attempted, recoverable sets, missing fragments, decoder errors
TransactionsRecovered transaction identities and parsing success
Chain reconciliationWhich relevant finalized blocks and transactions were later verified

Separate unavailable observations from genuinely missing expected records. A skipped slot is not an omitted produced block.

Run a bounded trial

  1. Choose a time window and the same program or block scope as the production consumer.
  2. Capture raw counters and reconstruction output with monotonic timestamps.
  3. Use a separate confirmed/finalized RPC or block source to enumerate relevant produced blocks afterward.
  4. Compare recovered transaction identities, then investigate whether gaps originated in transport, recovery, decoding or scope.

Test operational failure

Restart the receiver and induce a brief disconnect under controlled conditions. Record how the pipeline identifies the gap and whether supported historical sources can repair the application dataset. Do not assume a raw UDP feed replays old packets. Preserve the unresolved set and capture window in the trial report. An absent shred alone does not establish a provider fault.

Sources

Continue reading