使用NodeSource PPA安装Node.js 18(推荐)

时间: 2026-03-11 17:27 阅读数: 2人阅读

在Ubuntu系统上搭建以太坊开发环境:从零开始安装与配置Web3工具


以太坊作为领先的智能合约平台,其生态系统中的Web3工具对于开发者、矿工乃至普通用户都至关重要,本文将详细介绍如何在流行的Linux发行版Ubuntu上,一步步配置以太坊节点环境,并安装必要的Web3工具,助您顺利踏入Web3世界。

准备工作:Ubuntu系统与环境要求

在开始之前,请确保您的Ubuntu系统满足以下基本要求:

  1. Ubuntu版本:推荐使用Ubuntu 20.04 LTS或22.04 LTS,这些版本拥有长期支持且软件包兼容性较好。
  2. 系统更新:确保系统已更新至最新状态,以避免潜在的兼容性问题和安全漏洞,打开终端,执行以下命令:
    sudo apt update && sudo apt upgrade -y
  3. 硬件要求
    • 内存:运行全节点建议至少8GB RAM,运行轻节点或开发节点4GB RAM也可勉强应对,但越多越好。
    • 存储:以太坊全节点目前需要数百GB的SSD存储空间(具体大小随网络增长而变化),并预留一定余量。
    • CPU:现代多核CPU有助于提高同步速度和交易处理效率。
  4. 用户权限:确保您有sudo权限,以便安装软件和修改系统配置。

安装以太坊客户端

以太坊客户端是与以太坊网络交互的软件,根据您的需求(全节点、轻节点、开发节点),可以选择不同的客户端,这里以目前较为流行的Geth(Go语言实现,功能全面)和Nethermind(.NET实现,性能较好)为例进行介绍。

安装Geth (Go-Ethereum)

Geth是最早的以太坊客户端之一,功能强大,支持全节点、轻节点和开发模式。

  1. 安装依赖

    sudo apt install -y software-properties-common
  2. 添加PPA源并安装Geth: 官方PPA源提供了最新稳定版的Geth。

    sudo add-apt-repository -y ppa:ethereum/ethereum
    sudo apt update
    sudo apt install -y ethereum
  3. 验证安装: 安装完成后,可以通过以下命令检查Geth版本:

    geth version

    如果显示出版本信息,则表示安装成功。

安装Nethermind

Nethermind是一个高性能的以太坊客户端,支持.NET 6/7/8。

  1. 安装.NET Runtime: Nethermind需要.NET Runtime支持,以.NET 8为例:

    # 下载并安装Microsoft包签名密钥
    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    sudo apt update
    # 安装.NET SDK(可选,如果需要编译源码)或Runtime
    sudo apt install -y aspnetcore-runtime-8.0  # 或 dotnet-runtime-8.0
  2. 下载Nethermind: 您可以从Nethermind的GitHub Releases页面下载预编译的二进制文件,或使用包管理器。 这里以使用dotnet tool安装为例(需要先安装.NET SDK):

    dotnet tool install --global Nethermind.CLI

    或者下载zip包解压到PATH环境变量中的目录。

  3. 验证安装: 如果使用dotnet tool安装,可以直接在命令行使用nethermind命令:

    随机配图
    nethermind --version

安装Web3相关工具与库

Web3工具通常包括与以太坊节点交互的库(如Web3.js、Ethers.js)、钱包插件(如MetaMask)以及开发框架(如Truffle, Hardhat)。

安装Node.js和npm (Web3.js/Ethers.js基础)

许多Web3工具基于Node.js。

sudo apt install -y nodejs
# 验证安装
node -v
npm -v

安装Web3.js或Ethers.js (JavaScript/TypeScript库)

这些库允许您通过JavaScript与以太坊节点交互。

# 在项目目录中安装(推荐)
mkdir my-eth-project && cd my-eth-project
npm init -y
# 安装Web3.js
npm install web3
# 或者安装Ethers.js
npm install ethers

安装MetaMask浏览器插件

MetaMask是最流行的以太坊钱包浏览器插件,它也集成了Web3功能,方便与DApp交互。

  • 访问 MetaMask官方网站
  • 下载并安装对应您浏览器的插件。
  • 按照提示创建钱包并备份助记词。

安装开发框架 (如Hardhat)

Hardhat是一个流行的以太坊开发环境,用于编译、测试和部署智能合约。

# 在项目目录中安装
npm install --save-dev hardhat
# 初始化Hardhat项目
npx hardhat
# 按照提示选择配置(如Create a basic sample project)

配置与启动以太坊节点

安装好客户端后,需要启动节点并同步区块链数据。

启动Geth节点

  • 同步主网(全节点,耗时耗资源)

    geth --syncmode full --http --http.addr 0.0.0.0 --http.port 8545 --http.vhosts "*"
    • --syncmode full:全同步模式,下载所有区块状态。
    • --http:启用HTTP-RPC API,方便Web3.js等库连接。
    • --http.addr 0.0.0.0:允许任何IP连接(生产环境请谨慎设置,建议使用防火墙限制)。
    • --http.port 8545:HTTP-RPC API端口,默认8545。
  • 同步主网(快速同步,节省时间)

    geth --syncmode snap --http --http.addr 0.0.0.0 --http.port 8545 --http.vhosts "*"

    --syncmode snap是较快的同步方式。

  • 启动开发节点

    geth --dev --http --http.addr 0.0.0.0 --http.port 8545

    --dev会启动一个私有测试网络,并自动预挖一些区块,适合开发测试。

启动Nethermind节点

  • 同步主网: Nethermind通常通过配置文件启动,创建一个nethermind.config.json文件,或使用命令行参数。

    nethermind --config mainnet --Sync.SyncMode Full --JsonRpc.Enabled true --JsonRpc.Host 0.0.0.0 --JsonRpc.Port 8545
    • --config mainnet:指定主网配置。
    • --Sync.SyncMode Full:全同步模式。
    • --JsonRpc.Enabled true:启用JSON-RPC API。
    • --JsonRpc.Host 0.0.0.0:允许任何IP连接。
    • --JsonRpc.Port 8545:JSON-RPC端口。
  • 启动开发节点: Nethermind也支持开发模式,可以通过配置文件或命令行参数指定--config devnet

连接Web3工具与以太坊节点

您的以太坊节点已经运行,并提供了HTTP-RPC API服务(通常在8545端口),接下来可以使用Web3工具连接它。

示例:使用Web3.js连接本地节点

在之前创建的Node.js项目目录中,创建一个app.js文件:

const Web3 = require('web3');
// 连接到本地运行的以太坊节点
const web3 = new Web3('http://localhost:8545');
// 检查连接
web3.eth.getBlockNumber().then(console.log).catch(console.error);
// 示例:获取账户列表(如果是开发节点,可能会有预置账户)
web3.eth.getAccounts().then(console.log).catch(console.error);

然后在终端运行:

node app.js

如果看到区块号和账户列表(或空数组),则表示连接成功。

示例:MetaMask连接到本地