Errata records #634
tinker-michaelj
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Background
Bugs in consensus node software can cause export of incomplete or incorrect data in the record stream; so we need a way to issue errata records.
There are three actions we might want to support:
T2
that mirror nodes can use to correct a mistake at timeT1 < T2
.T3
that mirror nodes can use to correct an errata issued at timeT2
.T0
by injecting a sidecar errata at positionT0
in the record stream.In this idea we address (1) and (2); but not (3), since mirror node sync times are sufficiently long that there is no practical reason to ever start a sync from any but the latest snapshot. This means there is no practical benefit to decorating the stream with an errata at some time
T0 << now
, since no syncing node will ever "be there" to appreciate it.Proposal
Define a new
TransactionBody
type,Add a
NetworkService
RPC namedissueRecordStreamErrata
to submit this transaction body and require a superuser payer account (either0.0.2
or0.0.50
). If an incorrect errata for timeT1
is issued at timeT2
, it can be resolved by simply issuing another errata for timeT1
atT3
, where thecompensating_items
atT3
take into account the effects of thecompensating_items
issued atT2
.Please note this idea does not propose, or even address, a mechanism to change any consensus node state other than the record stream running hash. Its sole goal is to support bringing mirror nodes back in sync with consensus nodes.
Beta Was this translation helpful? Give feedback.
All reactions