Frontier is Substrate's Ethereum compatibility layer. It allows you to run unmodified Ethereum dapps.
The goal of Ethereum compatibility layer is to be able to:
- Run a normal web3 application via the compatibility layer, using local nodes, where an extra bridge binary is acceptable.
- Be able to import state from Ethereum mainnet.
Those are suitable to be included in a runtime. Primitives are structures shared by higher-level code.
fp-consensus: Consensus layer primitives.fp-evm: EVM primitives.fp-rpc: RPC primitives.fp-storage: Well-known storage information.
Those pallets serve as runtime components for projects using Frontier.
pallet-evm: EVM execution handling.pallet-ethereum: Ethereum block handling.pallet-dynamic-fee: Extends the fee handling logic so that it can be changed within the runtime.
Those precompiles can be used together with pallet-evm for additional
functionalities of the EVM executor.
pallet-evm-precompile-simple: Four basic precompiles in Ethereum EVMs.pallet-evm-precompile-blake2: BLAKE2 precompile.pallet-evm-precompile-bn128: BN128 precompile.pallet-evm-precompile-ed25519: ED25519 precompile.pallet-evm-precompile-modexp: MODEXP precompile.pallet-evm-precompile-sha3fips: Standard SHA3 precompile.pallet-evm-precompile-dispatch: Enable interoperability between EVM contracts and other Substrate runtime components.
Those are libraries that should be used on client-side to enable RPC, block hash mapping, and other features.