CentOS7搭建以太坊开发环境完整指南
环境准备与基础配置
在开始搭建以太坊开发环境前,需确保CentOS7系统满足基本要求,并完成基础配置,以下是详细步骤:
1 系统要求
- 操作系统:CentOS7.x(64位)
- 内存:至少4GB(推荐8GB以上,运行节点或编译工具时更流畅)
- 存储:至少50GB可用空间(用于安装Go、Node.js、Geth等工具及区块链数据)
- 网络:稳定的互联网连接(用于下载依赖包)
2 更新系统并安装基础工具
打开终端,执行以下命令更新系统并安装必要的开发工具:
# 更新系统软件包 sudo yum update -y # 安装基础开发工具(gcc、make、wget等) sudo yum groupinstall "Development Tools" -y sudo yum install wget curl git vim -y
3 配置防火墙与SELinux
CentOS7默认使用firewall和SELinux,需开放必要端口(如P2P端口30303、RPC端口8545等):

# 开启防火墙并设置开机自启 sudo systemctl start firewalld sudo systemctl enable firewalld # 开放常用端口(根据实际需求调整) sudo firewall-cmd --permanent --add-port=30303/tcp # Geth P2P端口 sudo firewall-cmd --permanent --add-port=30303/udp # Geth P2P端口 sudo firewall-cmd --permanent --add-port=8545/tcp # HTTP-RPC端口 sudo firewall-cmd --permanent --add-port=8546/tcp # WebSocket-RPC端口 sudo firewall-cmd --reload # 临时关闭SELinux(生产环境建议配置规则而非直接关闭) sudo setenforce 0 # 永久关闭(需重启系统,生产环境慎用) # sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
安装Go语言环境
以太坊核心工具(如Geth)使用Go语言开发,需先安装Go环境,推荐安装Go 1.19或更高版本(以太坊官方兼容版本)。
1 下载Go安装包
访问Go官方下载页面(https://golang.org/dl/)获取Cent7对应的tar包,或直接使用wget下载:
# 下载Go 1.19.5版本(可根据需要替换为最新版本) wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz
2 解压并配置环境变量
# 创建/usr/local/go目录并解压(推荐安装到/usr/local,避免覆盖系统Go) sudo tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz # 配置环境变量(编辑/etc/profile文件) sudo vim /etc/profile
在文件末尾添加以下内容:
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存后执行以下命令使配置生效:

source /etc/profile
3 验证Go安装
go version # 查看Go版本(应显示go version go1.19.5 linux/amd64) go env # 查看Go环境变量(确认GOROOT、GOPATH等配置正确)
安装以太坊核心工具Geth
Geth(Go-Ethereum)是以太坊官方实现的Go语言客户端,支持节点运行、交易签名、智能合约交互等功能。
1 通过Go模块安装Geth
推荐使用Go官方模块安装,确保获取最新稳定版本:
# 设置Go代理(加速下载,国内用户可选) export GOPROXY=https://goproxy.cn,direct # 安装Geth(默认安装到$GOPATH/bin) go get -u github.com/ethereum/go-ethereum@latest
2 配置Geth命令到系统PATH
若Go环境变量配置正确,$GOPATH/bin已包含在PATH中,可直接使用geth命令,若未找到,可手动创建软链接:
# 确认geth安装路径 ls $GOPATH/bin/geth # 创建软链接到/usr/local/bin(可选,方便全局调用) sudo ln -sf $GOPATH/bin/geth /usr/local/bin/geth
3 验证Geth安装
geth version # 查看Geth版本(显示版本号及commit信息)
安装Node.js与Truffle框架
Truffle是以太坊流行的开发框架,用于智能合约编译、测试和部署,需依赖Node.js环境。

1 安装Node.js(推荐使用版本管理器nvm)
使用nvm(Node Version Manager)可灵活管理Node.js版本,避免系统环境冲突。
安装nvm
# 下载nvm安装脚本 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash # 重新加载终端配置(或执行source ~/.bashrc) source ~/.bashrc
安装Node.js(推荐LTS版本)
# 安装Node.js 18 LTS版本(以太坊开发兼容性较好) nvm install 18 # 切换到Node.js 18并设置为默认版本 nvm use 18 nvm alias default 18 # 验证安装 node -v # 应显示v18.x.x npm -v # 显示npm版本
2 安装Truffle框架
# 全局安装Truffle(npm会自动处理依赖) npm install -g truffle # 验证Truffle安装 truffle version # 显示Truffle版本及环境信息
安装其他开发工具(可选)
1 安装MetaMask浏览器插件
MetaMask是以太坊区块链钱包,支持与DApp交互,直接在Chrome、Firefox等浏览器访问https://metamask.io/下载插件并安装,无需命令行操作。
2 安装Solc(Solidity编译器)
智能合约语言Solidity需编译器solc,可通过npm安装:
# 安装solc(与Truffle版本兼容) npm install -g solc # 验证solc版本 solcjs --version
环境验证与测试
完成上述步骤后,需验证各工具是否正常协同工作。
1 创建测试智能合约项目
# 创建项目目录 mkdir eth-demo && cd eth-demo # 初始化Truffle项目(会生成contracts、migrations、test等目录) truffle init # 查看项目结构 ls -l
2 编译测试合约
# 编辑contracts/Contract.sol(示例合约) vim contracts/Contract.sol
输入以下测试合约代码:
pragma solidity ^0.8.0;
contract Contract {
uint256 public value;
constructor() {
value = 100;
}
function setValue(uint256 _value) public {
value = _value;
}
}
编译合约:
truffle compile # 成功后生成build/contracts/Contract.json
3 启动私有测试节点
使用Geth启动一个私有测试链(无需连接主网,适合开发调试):
# 在项目目录下执行,启动私有节点(端口30303,数据目录./data) geth --datadir ./data --networkid 15 --http --http.addr "0.0.0.0" --http.port 8545 --http.api "eth,net,web3,personal" --allow-insecure-unlock
参数说明:
--datadir:指定区块链数据存储目录--networkid 15:设置私有网络ID(避免与主网冲突)--http:开启HTTP-RPC服务--http.addr "0.0.0.0":允许任意IP访问(生产环境需限制为特定IP)--http.port 8545:RPC服务端口--http.api:开放的API接口
4 部署合约并交互
在新的终端窗口中,执行以下步骤部署合约:
连接到Geth节点
# 启动Geth控制台 geth attach http://localhost:8545
创建账户并解锁
# 创建新账户(密码需记录)
personal.newAccount("your_password")
# 查看账户列表(第一个账户为默认账户)
eth.accounts
# 解锁账户(部署合约
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。




