基于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, # 彼得堡 文章版权声明:除非注明,否则均为新文化在线原创文章,转载或复制请以超链接形式并注明出处。
推荐阅读