feat(core): Add flexible signature mocking to support Cumulus inherents #976
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces a more flexible signature mocking mechanism to support Cumulus-based consensus for parachains. This is primarily required to apply inherents that contain mock relay-chain data, a key step in parachain block production during local testing.
Changes
mock_signature_hostparameter in the WASM executor has been changed from abooleanto au8to support three distinct modes:0: No mocking (default behavior).1: Mocking is enabled but requires a "magic signature" (maintains previous behavior).2: All signature verifications are bypassed and always considered valid.BlockBuilder_apply_extrinsic, the new "always valid" (mode2) signature mocking is now used. This allows theparachainSystem.setValidationDatainherent to work with mock relay-chain headers without failing signature checks.setValidationDatahas been updated to correctly construct and handle mockrelayParentDescendants.newHeaderlogic in the block builder has been refactored to robustly handle various consensus engine digest items.Closes #975