-
feat(chain): v5.3.1 — onblock skip + non-zero mroot bypass + builtin registry (#7)
released this
2026-06-04 05:12:24 +00:00 | 3 commits to main since this releaseThree coupled mechanisms in chain_historical_exceptions so archival nodes can
replay coopenomics mainnet past the 2026-05-11 v5.2.0-dev incident:- chain_historical_exceptions gains onblock_skip_windows and
suppressed_activations vectors; both are optional in the JSON form so v5.3.0
files keep parsing. - apply_block bypass no longer requires action_mroot == 0 inside a window —
any divergent mroot is accepted when every other header field matches.
Needed because a sound replay computes a non-zero mroot in the dirty window
(onblock works) while the canonical chain stored zero. - start_block skips the implicit onblock transaction inside any configured
window. Without this the chainbase (block_summary_object etc.) mutated by
onblock diverges from canonical state and every later block fails to
validate, defeating the mroot bypass. - trigger_activation_handler can be suppressed per feature_digest via the
registry — guards against future incidents where a marked-activated feature
must not run its handler during replay. - New chain_exceptions_builtin.cpp ships a compiled-in registry keyed by
chain_id; for coopenomics mainnet it carries action_mroot + onblock-skip
windows [113273322..113275716]. Operators no longer need to distribute a
separate JSON file; the .deb is self-contained. File option still wins
per-node when set.
Co-authored-by: coopops coopos@coopenomics.world
Co-authored-by: Claude Opus 4.7 noreply@anthropic.comDownloads
- chain_historical_exceptions gains onblock_skip_windows and