Fix gtest GRANDPA state and sync: configure GRANDPA hard forks and patch polkadot-sdk warp sync

Goal of the changes

Fix gtest node sync after the network's forced GRANDPA finality recovery by:

  • pinning Duniter's Polkadot SDK dependencies to a revision that supports GRANDPA authority-set hard forks
  • configuring the gtest-specific GRANDPA hard fork in the node service
  • updating the embedded gtest checkpoint to a post-recovery header
  • documenting how to derive and validate this kind of hard-fork configuration for future releases

What reviewers need to know

  • node/src/service.rs now uses sc_consensus_grandpa::block_import_with_authority_set_hard_forks and passes the same hard-fork config into the warp sync provider.
  • The hard fork is gated strictly to config.chain_spec.id() == "gtest" and models a single forced authority-set jump:
    • set_id = 115
    • anchor block #2188261
    • hash 0x275b7296dab9ab0d925b4a835f919f0272cb68dc5ee44a658cceb1f84bc4d02f
    • last_finalized = Some(2_119_795)
  • The gtest checkpoint was updated so fresh sync/warp sync uses a header aligned with the recovered chain state.
  • Cargo.lock only reflects the Polkadot SDK pin bump required for the hard-fork API/support.
  • docs/dev/release.md documents the recovery procedure and, importantly, why the hard fork must be derived from the ConsensusLog::ForcedChange digest block rather than the later Grandpa.NewAuthorities application block. Anchoring it to the later block causes sync failures with:
    Multiple pending forced authority set changes are not allowed.

Closes #466 (closed)

Edited by Éloïs

Merge request reports

Loading