以太坊虚拟机(Ethereum Virtual Machine,简称EVM)是以太坊区块链的核心组件,它是一个图灵完备的虚拟环境,负责执行智能合约代码和处理所有交易,对于想要开发、测试或部署以太坊及其兼容链(如BNB Chain、Polygon、Avalanche等)上的智能合约的开发者来说,理解并能够“安装”或“配置”EVM环境是至关重要的。

需要明确的是,EVM本身不是一个像传统软件那样可以直接“安装”的应用程序,它更像是一个规范或一个运行时环境,集成在各种以太坊客户端节点软件中,当我们谈论“安装EVM”时,通常指的是安装一个能够运行EVM的以太坊客户端节点,或者配置一个能够与EVM交互的开发环境

本文将为你详细介绍几种常见的“安装”和配置EVM环境的方法,以适应不同的需求。

理解EVM的“安装”本质

在开始之前,请务必理解:

  1. EVM是规范,不是独立软件:EVM定义了智能合约应该如何被执行的规则和操作码,它不是一个独立的程序,而是嵌入在以太坊客户端(如Geth、Nethermind、Besu等)中的运行时。
  2. 安装客户端即获得EVM:当你安装并运行一个以太坊全节点或开发节点客户端时,你就拥有了一个可以执行EVM指令的环境。
  3. 开发工具链依赖EVM:像Truffle、Hardhat这样的开发框架,以及Remix IDE等在线工具,它们并不直接“安装”EVM,而是通过连接到以太坊节点(本地或远程)来利用EVM执行合约代码。

我们的目标是安装一个EVM运行环境或配置一个能够访问EVM的开发工具。

安装EVM运行环境:以太坊客户端

这是最直接拥有EVM的方式,以太坊有多个客户端实现,它们都遵循相同的以太坊规范,因此都能提供EVM功能。

方法1:安装Geth(Go-Ethereum)

Geth是以太坊最流行的客户端之一,由Go语言编写。

步骤:

  1. 下载Geth

    • 访问Geth官方下载页面:https://geth.ethereum.org/downloads/
    • 根据你的操作系统(Windows, macOS, Linux)选择对应的安装包,对于macOS和Linux,通常推荐使用包管理器或直接下载二进制文件。
  2. 安装Geth

    • Windows:下载.zip文件,解压到你想安装的目录(如C:\geth),然后将该目录添加到系统环境变量PATH中。
    • macOS (使用Homebrew)
      brew install geth
    • Linux (使用APT, Ubuntu/Debian)
      sudo apt-get update
      sudo apt-get install geth
  3. 启动Geth节点(开发模式): 为了方便开发和测试,我们可以启动一个开发模式的节点,这会创建一个临时的、单独的区块链网络,并预分配一些测试ETH。

    geth --dev --http --http.addr "0.0.0.0" --http.port "8545" --http.api "eth,net,web3,personal"
    • --dev: 启用开发模式,自动生成创世区块,并预挖一些区块给账户。
    • --http: 启用HTTP-RPC服务,允许外部应用(如MetaMask、Remix)连接。
    • --http.addr "0.0.0.0": 允许任何IP地址连接。
    • --http.port "8545": 指定HTTP-RPC端口,默认是8545。
    • --http.api: 指定通过HTTP-RPC暴露的API。

    启动后,Geth会开始挖矿,你可以看到类似Successfully mined block #1的输出,你的本地EVM环境已经运行起来了!

方法2:使用Nethermind或Besu(替代客户端)

除了Geth,还有其他优秀的客户端选择,如Nethermind (.NET)和Besu (Java)。