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.