CentOS7上搭建以太坊私有链完整教程
以太坊(Ethereum)是目前最流行的区块链开发平台之一,在学习和开发智能合约、DApp应用时,直接使用主网或公测网会产生真实费用且效率较低,搭建一条私有链可以让开发者在完全可控的环境中进行测试和实验,本文将详细介绍如何在 CentOS 7 系统上从零开始搭建一条以太坊私有链。
环境准备
在开始之前,请确保你的系统满足以下条件:
- 操作系统:CentOS 7.x
- 用户权限:root 或具有 sudo 权限的用户
- 网络连接:能够访问外网以下载安装包
首先更新系统并安装基础依赖:
yum update -y yum install -y epel-release wget vim
安装 Geth
Geth(Go-Ethereum)是以太坊官方提供的 Go 语言实现版本,是我们搭建私有链的核心工具。
直接下载二进制包(推荐)
# 下载 Geth(以 1.10.23 版本为例,请根据需要选择版本) wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.23-8f269ad3.tar.gz # 解压 tar -zxvf geth-linux-amd64-1.10.23-8f269ad3.tar.gz # 移动到系统目录,方便全局使用 cp geth-linux-amd64-1.10.23-8f269ad3/geth /usr/local/bin/ # 验证安装 geth version
看到版本信息输出,说明安装成功。
通过源码编译
如果需要自定义版本,可以先安装 Golang 再编译:
# 安装 Go 环境 wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz tar -zxvf go1.19.linux-amd64.tar.gz -C /usr/local/ # 配置环境变量 echo 'export GOROOT=/usr/local/go' >> /etc/profile echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/profile source /etc/profile # 验证 Go go version # 克隆并编译 Geth yum install -y git git clone https://github.com/ethereum/go-ethereum.git cd go-ethereum make geth cp build/bin/geth /usr/local/bin/
创建创世区块配置文件
创世区块(Genesis Block)是区块链的第一个区块,所有后续区块都基于它构建。
创建工作目录并编写配置文件:
mkdir -p /eth/private-chain cd /eth/private-chain vim genesis.json
{
"config": {
"chainId": 666,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"ethash": {}
},
"difficulty": "200000",
"gasLimit": "8000000",
"alloc": {}
}
配置说明:
chainId:链的唯一标识,切勿与以太坊主网(1)等公网重复,这里设为 666;difficulty:挖矿难度,私有链中设置得越低,出块越快;gasLimit:每个区块消耗 Gas 的上限,适当调大方便部署合约;alloc:可以预置一些账号及其初始以太币余额,测试时非常方便。
初始化私有链
使用 init 命令初始化创世区块:
geth --datadir ./data init genesis.json
执行成功后会输出 Successfully wrote genesis state 的提示,并在当前目录生成 data 文件夹,其中包含 geth(区块数据)和 keystore(账号信息)两个子目录。
注意: 如果初始化时报错
genesis block is already imported,说明该数据目录已被初始化过,删除data目录后重新执行即可,但要注意,同一网络中所有节点必须使用相同的genesis.json。
启动私有链
启动并进入控制台
geth --datadir ./data --networkid 666 console
参数说明:
--datadir:指定数据存储目录;- `
The End
发布于:2026-10-02,除非注明,否则均为原创文章,转载请注明出处。
