Pharos Docs
  • Introduction
    • About Pharos Network
    • Vision & Mision
    • Why Pharos Network
    • Concepts
      • Degree of Parallelism (DP)
  • Architecture
    • Pharos Modular Stack
    • Node Architecture
      • About Pharos Nodes
  • Core Technologies
    • Pharos Consensus
    • Pharos Execution
      • Why A New Blockchain Compute Model
      • Pharos VM
    • Pharos Pipelining
    • Pharos Store
      • Why We Need a Blockchain-Native Store
    • Pharos SPNs
  • Network Overview
    • Pharos Networks
      • Pharos Testnet Information
    • Pharos Gas Model
    • FAQ
  • Node & Validator Guide
    • Validator Requirements
    • Validator Node Deployment
      • Using Docker (Devnet)
      • Using Docker (Testnet)
    • Node Management
    • Rapid Node Initialization
      • Rapid Node Initialization(Testnet)
      • Rapid Node Initialization(Devnet)
    • Pharos Network Snapshots
    • Node Debugging & Configuration
  • 🛠️ Pharos Testnet: Rebuild Node with Preserved Node Info
  • Pharos Node Monitoring
  • Developer Guide
    • Foundry
      • Write Your First dApp
      • Write Your First Token
      • Write Your First NFT
      • Write Your First Uniswap Contract
    • Hardhat
      • Write Your First dApp
      • Write Your First Token
      • Write Your First NFT
      • Write Your First Uniswap Contract
    • Rust
    • Interoperability
      • Call EVM From WASM
  • API & SDK
    • JSON-RPC API Methods
  • Resources
    • EVM
    • Solidity
Powered by GitBook
On this page
  • Learning Resources
  • Tools for EVM Development
  • Community and Discussion
  • Practical Examples and Use Cases
  • References
Export as PDF
  1. Resources

EVM

PreviousJSON-RPC API MethodsNextSolidity

Last updated 1 month ago

The Ethereum Virtual Machine (EVM) is the core component of the Ethereum blockchain, responsible for executing smart contracts and managing the state of the network. It acts as a decentralized computer, maintaining a global state and executing program instructions defined in smart contracts. Key features include:

  • State Machine: Executes transactions and changes the blockchain state.

  • Deterministic Execution: Given the same input, it will always produce the same output.

  • Isolated Execution: Executes code in a sandboxed environment.

References:

  • : The authoritative technical document that defines the EVM and its operational mechanisms.

Learning Resources

Tutorials and Guides

  • EVM Playground: An interactive platform for experimenting with EVM opcodes and bytecode. It provides detailed explanations and visualizations of how EVM executes opcodes.

    • Accessing Constant Variables: Learn how to define and use constant variables in EVM.

    • Function Parameters from Calldata: Understand how to access function parameters using calldata.

    • Testing Macros in EVM.codes: Build and test functions using raw EVM bytecode.

    • General EVM Playground:

EVM Cheatsheet: A comprehensive guide detailing EVM architecture, functionalities, and operational mechanisms. It covers:

  • EVM Architecture: Stack, memory, storage, and instruction set.

  • Bytecode and Opcodes: Detailed explanations of EVM bytecode and commonly used opcodes.

  • Memory vs. Storage: Differences and use cases.

  • Gas and Gas Management: Understanding gas costs and optimization techniques.

  • Link:

Academic Research

  • Smart Contract Decompilation: Learn how to decompile EVM bytecode back into high-level languages like Solidity. Tools like Mythril, Ethersplay, or Porosity are used for this purpose.

  • EVM Execution Model: Explore how EVM executes opcodes, manages memory and storage, and handles transactions.

Tools for EVM Development

  • EVM From Scratch: A project that guides you through implementing your own EVM in various programming languages. It helps in understanding the core mechanics of EVM.

  • EVM Puzzles: A collection of interactive puzzles designed to help you practice and understand EVM operations.

Community and Discussion

  • EVM Learning Manual: A curated list of resources for learning EVM, maintained by the blockchain community.

  • Stack Overflow: A platform where you can find answers to common EVM-related questions and participate in discussions.

Practical Examples and Use Cases

  • Contract Address Generation: Learn how contract addresses are generated using sender address and nonce.

  • Bytecode Decompilation: Understand the process of converting bytecode into opcodes and reconstructing high-level code.

  • Storage Management: Explore how EVM handles storage variables, including writing to and reading from storage slots.

References

Mythril:

Ethersplay:

Porosity:

Link:

Link:

Link:

Link:

Link:

Link:

Link:

Link:

EVM Playground:

EVM Cheatsheet:

EVM From Scratch:

EVM Puzzles:

EVM Learning Manual:

Stack Overflow - EVM Tag:

Contract Address Generation:

Mythril Documentation:

Solidity Documentation - Storage:

Ethereum Yellow Paper
Link
Link
Link
Link
EVM Cheatsheet
Link
Link
Link
Ethereum Yellow Paper
EVM From Scratch
EVM Puzzles
EVM Learning Manual
Stack Overflow - EVM Tag
Contract Address Generation
Mythril Documentation
Solidity Documentation - Storage
https://evm.codes
https://github.com/pylaugh/evm-cheatsheet
https://github.com/w1nt3r-eth/evm-from-scratch
https://github.com/fvictorio/evm-puzzles
https://learnblockchain.cn/article/4800
https://stackoverflow.com/questions/tagged/evm
https://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed
https://mythril.readthedocs.io/en/latest/
https://docs.soliditylang.org/en/v0.8.17/internals/layout_in_storage.html