Suppose I start with a Frontier-based template node and want it to sync with a Geth full node, as if it was an Ethereum execution client.
What are the minimal set of changes necessary to make this happen?
Substrate and Polkadot Stack Exchange is a question and answer site for developers building blockchains with the Substrate SDK. It only takes a minute to sign up.
Sign up to join this communityNot a comprehensive answer, but I do not think this is trivial.
The first and most obvious issue to me would be networking support, as ETH uses devp2p and Substrate / Frontier uses libp2p.
Frontier is a Substrate client that just happens to have an EVM inside the Runtime.
pallet-evm
and pallet-ethereum
will give you compatibility on an execution and RPC level, but that's it.
All consensus, networking, and storage primitives are completely different from traditional Ethereum clients.
Enabling this kind of compatibility would likely be a daunting engineering effort.
You're better off simply migrating the state and/or history from your Frontier-based EVM to whatever new client you choose.