以太坊作为全球领先的智能合约平台,其底层客户端软件是参与网络运行、开发 DApp 或进行节点操作的基础,本文将详细介绍如何在 CentOS 系统(以 CentOS 7 为例)上安装和配置最常用的以太坊客户端之一——Geth(Go-Ethereum)。
准备工作
在开始安装之前,请确保您的系统满足以下基本要求:
sudo 权限的用户账户,以便安装软件和修改系统配置。更新系统
保持系统软件包为最新版本是个好习惯,打开终端,执行以下命令:
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,主要有两种方式:使用预编译的二进制文件(推荐)或从源码编译,对于大多数用户,预编译二进制文件更简单快捷。
使用预编译的二进制文件(推荐)
这是最简单的方法,无需编译源码。
访问 Geth 官方下载页面:
您可以访问 Geth 的 GitHub 发布页面获取最新版本的下载链接:https://github.com/ethereum/go-ethereum/releases
在页面上找到 "Assets" 部分,寻找适用于 Linux AMD64 的 geth-linux-amd64-版本号.tar.gz 文件。
下载 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
解压文件:
tar -xvf geth-linux-amd64-1.13.6-4e582c5f.tar.gz
移动到系统路径:
为了方便在任何目录下使用 geth 命令,我们将它移动到 /usr/local/bin 目录:
sudo mv geth-linux-amd64-1.13.6/geth /usr/local/bin/
验证安装: 执行以下命令检查 Geth 是否安装成功并查看版本:
geth version
如果能看到版本信息,则表示安装成功。
从源码编译(进阶用户)
如果您需要最新开发版或想参与贡献,可以从源码编译。
安装 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
获取 Geth 源码:
go get -d github.com/ethereum/go-ethereum
编译 Geth:
cd $GOPATH/src/github.com/ethereum/go-ethereum make geth
移动到系统路径:
sudo cp build/bin/geth /usr/local/bin/
验证安装:
geth version
首次运行与基本配置
安装完成后,您可以尝试启动 Geth,以下是一些常用的启动选项:
启动同步节点(快速同步): 这是启动节点并快速同步到最新状态的最常用方式。
geth --syncmode fast --http
--syncmode fast:使用快速同步模式,比默认的全同步快很多。--http:启用 HTTP-RPC 服务,默认端口为 8545,方便与其他工具(如 MetaMask、Truffle)交互。启动并指定数据目录: 您可以指定 Geth 数据存储的位置,避免占用系统盘空间。
mkdir -p ~/ethereum_data geth --datadir ~/ethereum_data --syncmode fast --http
启动控制台: 启动 Geth 并直接进入 JavaScript 控制台,可以执行各种命令。
geth --syncmode fast --http console
后台运行:
如果您希望 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)。
注意事项
--http.addr 和 --http.vhosts,或结合反向代理和认证)。通过以上步骤,您应该已经成功在 CentOS 系统上安装并运行了 Geth 客户端,这为您参与以太坊网络、进行开发区块链应用或深入学习以太坊奠定了基础,后续您可以进一步探索 Geth 的更多命令和配置选项,以满足您的具体需求。