There are inconsistencies between Polkadot & Kusama relaychains and the testnets (Rococo & Westend). We realized a couple of days ago that the verifications broke at some point for Rococo. Essentially it boils down to the signature checks returning false. A quick guide to reproduce:
- run
yarn
to install TS dependencies. - in
getJustification.ts
, select chain to receive justification from by setting the provider - run
ts-node getJustification.ts
and copy encoded justifcation into main.rs (without leading 0x) - run
cargo run
and copytarget_hash
from the console output - use https://polkadot.js.org/apps/#/explorer to lookup
currentSetID
(chain_state -> grandpad -> currentSetID) and add target_hash as blockhash - set returned ID as
authorities_set_id
inmain.rs
- rerun
cargo run
The following approach used to work with Rococo, but a couple of days ago, we realized this is not the case anymore. We thought updating to the newest finality_grandpa
and sp_finality_grandpa
versions will fix the issue, but it is persisting. Is this currently expected and the justification validation has changed? Or will this work again on Rococo in the future.