logoAcademy

Welcome to the Course

Learn how to customize the Ethereum Virtual Machine.

In this course you will learn how to customize your own EVM. We will configure the EVM using the available parameters of the chainConfig and modify the VM by adding precompiles. At the end of this course you will be able to build customized and optimized versions of the EVM.

Why take this Course?

A significant innovation in blockchain is the development of multi-chain systems, such as Avalanche, which provide a significant improvement in scalability, interoperability, and flexibility. At the core of these multi-chain systems is the ability to run multiple blockchains powered by different virtual machines simultaneously. Each VM of a chain is optimized for specialized use cases, thereby boosting the network's overall performance.

Configuring and modifying the Ethereum Virtual Machine (EVM) is an incredible efficient way to create a specialized VM, since developers can build on top years of work of an active community and leverage an extensive ecosystem around the EVM consisting of wallets, explorers and development frameworks.

Customizing the EVM running on the Ethereum network or any other "one-chain-fits-all" network is a difficult process, requiring a wide consensus that the proposed change is mutually beneficial for all network participants. This can make customizations for unique use cases challenging, if not impossible.

Course Content

EVM Basics & Precompiles

In the first section of the course we will go through some basic concepts of the EVM, such as the account-based model, keys, addresses, transactions, and blocks. Furthermore, we will explain what a precompile is and let you interact with a precompile of the Fuji testnet.

Development Environment Setup

We will show different ways to set up a development environment for building customized EVMs. You will learn about Codespace, DevContainer and if you opt for the local setup, you will install a code editor, the Go language, configure your shell, and install some more dependencies.

Hands-On Exercises

The following sections contain hands-on exercises where you customize the EVM. The difficulty of the customizations will increase from section to section. Find out more about each exercise by clicking its name below:

Updated:

On this page

Edit on Github