以太坊虚拟机(Ethereum Virtual Machine,简称EVM)是以太坊区块链的核心组件,它是一个图灵完备的虚拟环境,负责执行智能合约代码和处理所有交易,对于想要开发、测试或部署以太坊及其兼容链(如BNB Chain、Polygon、Avalanche等)上的智能合约的开发者来说,理解并能够“安装”或“配置”EVM环境是至关重要的。
需要明确的是,EVM本身不是一个像传统软件那样可以直接“安装”的应用程序,它更像是一个规范或一个运行时环境,集成在各种以太坊客户端节点软件中,当我们谈论“安装EVM”时,通常指的是安装一个能够运行EVM的以太坊客户端节点,或者配置一个能够与EVM交互的开发环境。
本文将为你详细介绍几种常见的“安装”和配置EVM环境的方法,以适应不同的需求。
理解EVM的“安装”本质
在开始之前,请务必理解:
- EVM是规范,不是独立软件:EVM定义了智能合约应该如何被执行的规则和操作码,它不是一个独立的程序,而是嵌入在以太坊客户端(如Geth、Nethermind、Besu等)中的运行时。
- 安装客户端即获得EVM:当你安装并运行一个以太坊全节点或开发节点客户端时,你就拥有了一个可以执行EVM指令的环境。
- 开发工具链依赖EVM:像Truffle、Hardhat这样的开发框架,以及Remix IDE等在线工具,它们并不直接“安装”EVM,而是通过连接到以太坊节点(本地或远程)来利用EVM执行合约代码。
我们的目标是安装一个EVM运行环境或配置一个能够访问EVM的开发工具。
安装EVM运行环境:以太坊客户端
这是最直接拥有EVM的方式,以太坊有多个客户端实现,它们都遵循相同的以太坊规范,因此都能提供EVM功能。
方法1:安装Geth(Go-Ethereum)
Geth是以太坊最流行的客户端之一,由Go语言编写。
步骤:
-
下载Geth:
- 访问Geth官方下载页面:https://geth.ethereum.org/downloads/
- 根据你的操作系统(Windows, macOS, Linux)选择对应的安装包,对于macOS和Linux,通常推荐使用包管理器或直接下载二进制文件。
-
安装Geth:
- Windows:下载
.zip文件,解压到你想安装的目录(如C:\geth),然后将该目录添加到系统环境变量PATH中。 - macOS (使用Homebrew):
brew install geth
- Linux (使用APT, Ubuntu/Debian):
sudo apt-get update sudo apt-get install geth
- Windows:下载
-
启动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)。
- Nethermind:下载地址:https://nethermind.io/downloads/
安装并配置后,可以通过命令行启动开发节点:
