以太坊作为全球领先的智能合约平台,其底层客户端软件是参与网络运行、开发 DApp 或进行节点操作的基础,本文将详细介绍如何在 CentOS 系统(以 CentOS 7 为例)上安装和配置最常用的以太坊客户端之一——Geth(Go-Ethereum)。

准备工作

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

  1. 操作系统:本文以 CentOS 7 64位为例,CentOS 8/Stream 或其他基于 RHEL 的系统也可参考,部分命令可能需微调。
  2. 权限要求:需要具有 sudo 权限的用户账户,以便安装软件和修改系统配置。
  3. 网络连接:稳定的互联网连接,用于下载软件包和依赖项。
  4. 基本命令行操作:熟悉 Linux 基本命令。

更新系统

保持系统软件包为最新版本是个好习惯,打开终端,执行以下命令:

sudo yum update -y

安装必要依赖

Geth 的编译和运行需要一些基础的依赖库和工具,我们将使用 yum 包管理器来安装它们。

sudo yum groupinstall "Development Tools" -y
sudo yum install wget git gcc make glibc-devel openssl-devel libstdc++-devel -y
  • Development Tools:包含了编译所需的 gcc、make 等基本工具。
  • wget:用于从网络下载文件。
  • git:用于从代码仓库获取 Geth 源码(如果选择编译安装)。
  • 其他 -devel 包:是 Geth 编译所需的头文件库。

安装 Geth

在 CentOS 上安装 Geth,主要有两种方式:使用预编译的二进制文件(推荐)或从源码编译,对于大多数用户,预编译二进制文件更简单快捷。

使用预编译的二进制文件(推荐)

这是最简单的方法,无需编译源码。

  1. 访问 Geth 官方下载页面: 您可以访问 Geth 的 GitHub 发布页面获取最新版本的下载链

    随机配图
    接:https://github.com/ethereum/go-ethereum/releases 在页面上找到 "Assets" 部分,寻找适用于 Linux AMD64 的 geth-linux-amd64-版本号.tar.gz 文件。

  2. 下载 Geth: 假设我们要下载最新稳定版本(v1.13.6,请根据实际情况替换版本号),可以使用 wget 命令:

    # 请将下面的 URL 替换为实际的最新下载链接
    wget https://github.com/ethereum/go-ethereum/releases/download/v1.13.6/geth-linux-amd64-1.13.6-4e582c5f.tar.gz
  3. 解压文件

    tar -xvf geth-linux-amd64-1.13.6-4e582c5f.tar.gz
  4. 移动到系统路径: 为了方便在任何目录下使用 geth 命令,我们将它移动到 /usr/local/bin 目录:

    sudo mv geth-linux-amd64-1.13.6/geth /usr/local/bin/
  5. 验证安装: 执行以下命令检查 Geth 是否安装成功并查看版本:

    geth version

    如果能看到版本信息,则表示安装成功。

从源码编译(进阶用户)

如果您需要最新开发版或想参与贡献,可以从源码编译。

  1. 安装 Go 语言环境: Geth 是用 Go 语言编写的,因此需要先安装 Go。

    # 下载 Go 二进制包(以 Go 1.21.0 为例,请替换为最新版本)
    wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
    # 解压到 /usr/local
    sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
    # 配置 Go 环境变量
    echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
    echo 'export GOPATH=$HOME/go' >> ~/.bashrc
    source ~/.bashrc
  2. 获取 Geth 源码

    go get -d github.com/ethereum/go-ethereum
  3. 编译 Geth

    cd $GOPATH/src/github.com/ethereum/go-ethereum
    make geth
  4. 移动到系统路径

    sudo cp build/bin/geth /usr/local/bin/
  5. 验证安装

    geth version

首次运行与基本配置

安装完成后,您可以尝试启动 Geth,以下是一些常用的启动选项:

  1. 启动同步节点(快速同步): 这是启动节点并快速同步到最新状态的最常用方式。

    geth --syncmode fast --http
    • --syncmode fast:使用快速同步模式,比默认的全同步快很多。
    • --http:启用 HTTP-RPC 服务,默认端口为 8545,方便与其他工具(如 MetaMask、Truffle)交互。
  2. 启动并指定数据目录: 您可以指定 Geth 数据存储的位置,避免占用系统盘空间。

    mkdir -p ~/ethereum_data
    geth --datadir ~/ethereum_data --syncmode fast --http
  3. 启动控制台: 启动 Geth 并直接进入 JavaScript 控制台,可以执行各种命令。

    geth --syncmode fast --http console
  4. 后台运行: 如果您希望 Geth 在后台运行,可以使用 nohup 命令:

    nohup geth --datadir ~/ethereum_data --syncmode fast --http > geth.log 2>&1 &

    这会将日志输出到 geth.log 文件中。

常用管理命令

  • 查看 Geth 进程

    ps aux | grep geth
  • 停止 Geth 进程: 如果前台运行,直接按 Ctrl+C,如果后台运行,可以找到进程 ID (PID) 然后杀死:

    # 首先找到 PID
    ps aux | grep geth
    # 假设 PID 是 12345,则执行
    kill 12345
    # 如果进程顽固,可以使用 kill -9 12345
  • 查看日志: 如果使用了 nohup 日志会输出到指定文件,否则可以查看系统日志或使用 Geth 的日志选项(如 --verbosity)。

注意事项

  1. 磁盘空间:以太坊区块链数据量非常大(截至 2024 年初已超过 1TB),请确保有足够的磁盘空间,建议使用 SSD 硬盘以加快同步速度。
  2. 带宽:同步节点和保持节点运行需要稳定的网络连接和一定的上传/下载带宽。
  3. 安全性:运行全节点会暴露您的 IP 地址和 HTTP-RPC 接口,请确保设置防火墙规则,并考虑为 HTTP-RPC 接口设置认证(如使用 --http.addr--http.vhosts,或结合反向代理和认证)。
  4. 版本更新:以太坊网络持续升级,建议关注 Geth 的最新版本,适时进行更新以获得新功能和修复。

通过以上步骤,您应该已经成功在 CentOS 系统上安装并运行了 Geth 客户端,这为您参与以太坊网络、进行开发区块链应用或深入学习以太坊奠定了基础,后续您可以进一步探索 Geth 的更多命令和配置选项,以满足您的具体需求。