• v5.3.1 b94c791b10

    feat(chain): v5.3.1 — onblock skip + non-zero mroot bypass + builtin registry (#7)

    claude released this 2026-06-04 05:12:24 +00:00 | 3 commits to main since this release

    Three 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.com

    Downloads