Different Versions of EVM
Learn about the different versions of Ethereum Virtual Machine (EVM) in Avalanche ecosystem.
Geth
Geth (or go-ethereum) is the official implementation of an Ethereum client, written in the Go programming language. It is one of the original and most popular Ethereum clients used today. It is responsible for handling transactions, the deployment and execution of smart contracts and contains the Ethereum Virtual Machine.
Coreth
Coreth is a fork of Geth maintained by the Ava Labs team that implements the Virtual Machine of the C-Chain. It has been adapted to work with Avalanche Consensus.
Avalanche L1-EVM
Avalanche L1-EVM is a fork of Coreth that has been altered to make it easy to launch customized EVM-based blockchains on a Avalanche L1. It differs from Coreth in the following ways:
→ Configurable fees and gas limits were added in genesis
→ Avalanche hardforks were merged into the single "Avalanche L1 EVM" hardfork
→ Atomic Txs and Shared Memory were removed
→ Multicoin Contract and State were removed
Precompile-EVM
Precompile-EVM enables registering precompiles to Avalanche L1-EVM without forking the Avalanche L1-EVM codebase. It makes the most common customization of Avalanche L1-EVM easier and more approachable. Also it makes it easier to keep Avalanche L1-EVM up-do-date.