Closed
Description
A rule of all extrinsics should be that if it results in an error, it does not modify state. This is the "Check First, Write Last" rule.
We try out best to do this in all the various runtime unit tests, but it is very likely the we or other Substrate builders have missed some.
I suggest we add a feature flag that any syncing node can add to their chain which will process the blocks per extrinsic, check the state root before, run the extrinsic, see if it returns error, and then check the state root after.
If this occurs, then we may have a problem in the runtime code, and it should emit a WARNING or ERROR log which we can monitor.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done