您现在的位置是:首页 > 金融信息

基于CentOS搭建以太坊私有链详细指南

xwhb 2026-10-11

以太坊作为全球第二大公链,其强大的智能合约功能吸引了大量开发者,但在实际开发、测试或企业内部应用中,我们常常需要一个独立、可控的私有链环境,避免公链的网络拥堵和高额Gas费用,本文将详细介绍如何在CentOS操作系统上从零搭建一个以太坊私有链,涵盖环境准备、Go语言安装、geth客户端编译、创世区块配置、节点启动及多节点组网等核心步骤。

环境准备

系统要求

  • 操作系统:CentOS 7/8(64位)
  • 内存:至少2GB(推荐4GB以上,挖矿需更多资源)
  • 存储:至少20GB可用空间(用于存储区块链数据)
  • 网络:支持TCP/IP通信(多节点组网需确保节点间网络互通)

关闭防火墙与SELinux

为避免网络连接问题,需临时或永久关闭防火墙和SELinux:

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

安装必要依赖

yum update -y
yum install -y git gcc make wget vim

安装Go语言环境

以太坊客户端(如geth)基于Go语言开发,需先安装Go,本文以Go 1.16.15为例(推荐使用较稳定版本):

下载Go安装包

cd /usr/local/src
wget https://golang.org/dl/go1.16.15.linux-amd64.tar.gz

解压并配置环境变量

tar -zxvf go1.16.15.linux-amd64.tar.gz -C /usr/local/
# 添加Go到环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
echo 'export GOPATH=/opt/go' >> /etc/profile
source /etc/profile

验证安装

go version  # 输出 "go version go1.16.15 linux/amd64" 表示成功

编译安装Geth客户端

Geth(Ethereum Go)是以太坊官方的Go语言客户端,是搭建私有链的核心工具。

克隆以太坊源码

cd /opt
git clone https://github.com/ethereum/go-ethereum.git
cd go-ethereum

编译Geth

make geth  # 编译时间较长,耐心等待

验证Geth

./build/bin/geth version  # 输出版本信息表示成功
# 为方便后续使用,将geth添加到系统PATH
cp ./build/bin/geth /usr/local/bin/

配置创世区块

私有链需要一个自定义的创世区块(Genesis Block),用于定义链的初始规则(如链ID、难度、预分配地址等)。

创建创世区块配置文件

mkdir -p /opt/ethereum/private_chain
cd /opt/ethereum/private_chain
vim genesis.json

编写创世区块配置

以下是一个典型的创世区块配置示例,可根据需求修改:

{
  "config": {
    "chainId": 1001,           # 私有链唯一ID(与公链区分)
    "homesteadBlock": 0,       # Homestead规则启用区块高度
    "eip155Block": 0,         # EIP-155规则启用区块高度
    "eip158Block": 0,         # EIP-158规则启用区块高度
    "byzantiumBlock": 0,       # 拜占庭规则启用区块高度
    "constantinopleBlock": 0,  # 君士坦丁堡规则启用区块高度
    "petersburgBlock": 0,     # 彼得堡
文章版权声明:除非注明,否则均为新文化在线原创文章,转载或复制请以超链接形式并注明出处。