-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
We have recently started to adapt our codebase (both in Tanssi and Moonbeam) to asynchronous backing and we noticed that the CheckInherents trait is being deprecated, and in fact, it has disappeared from most of the cumulus runtimes in the register_validate_block
macro:
cumulus_pallet_parachain_system::register_validate_block! { |
However both moonbeam and tanssi have additional inherents, e.g., to verify block authorship, to inject randomness or to inject additional state proofs.
What we realized when removing this checkInherents
is that a malicious author could decide not to inject one of the inherents (e.g., the inherent that validates block authorship) and the relay would still accept it, while the rest of the network would reject it because they would fail importing the block.
Our question goes in the direction of: why is checkInherents
being deprecated? I know parachain-system
now has the ConsensusHook
trait that can be used to verify a set of things in the set_validation_data
inherent but what happens with those inherents that required an additional argument to be injected? (e.g., an additional state proof)