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 25 days 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