The earliest it could detect this difference is when it receives the first pushtx/evmtx action from SHiP. It could compare the native account the action is from to the account represented as a value in the nonce field of its configured genesis JSON.
If they do not match, it should report the error and shut down the node without processing any EVM transactions.
Note that the native account that the pushtx/evmtx actions are from are provided to the Node using the configuration option ship-core-account. We need to make sure there is no mismatch between this and the account name represented in the nonce of the genesis used for the chain. In fact, there is no reason for the ship-core-account option to exist, we could deprecate it; but we could only remove it in a major version change since it would be a breaking change.
We should also explore how, if at all, we can make EVM Node automatically validate consistency of other relevant genesis JSON attributes between what it has and what the EVM Contract used, e.g. chain ID.
The earliest it could detect this difference is when it receives the first
pushtx
/evmtx
action from SHiP. It could compare the native account the action is from to the account represented as a value in thenonce
field of its configured genesis JSON.If they do not match, it should report the error and shut down the node without processing any EVM transactions.
Note that the native account that the
pushtx
/evmtx
actions are from are provided to the Node using the configuration optionship-core-account
. We need to make sure there is no mismatch between this and the account name represented in thenonce
of the genesis used for the chain. In fact, there is no reason for theship-core-account
option to exist, we could deprecate it; but we could only remove it in a major version change since it would be a breaking change.We should also explore how, if at all, we can make EVM Node automatically validate consistency of other relevant genesis JSON attributes between what it has and what the EVM Contract used, e.g. chain ID.