之前写了在Ubuntu下搭建以太坊私有链,今天介绍下在CentOS下如何安装Geth。
Ubuntu下搭建以太坊私有链,请参考《使用Geth搭建自己的以太坊私有链》
一、系统环境
宿主系统:Windows 10专业版
虚拟机: VMware Workstation Pro 12.5.4
操作系统:CentOS 7.6 64位
二、安装基础工具
下载并安装Git、vim、gcc-c++、ntp组件、nodejs以及添加epel第三方安装源。这些工具的说明如下:
- git:安装相关的组件,下载安装各类开源代码与工具的利器;
- vim:文本编辑工具,取代vi;
- gcc-c++:c/c++编译工具,用于golang下部分c库的编译以及truffle组件的编译
- ntp:网络时钟同步组件;Ethereum的rpc网络需要时间同步;
- nodejs:ethereum前端开发JavaScript包管理软件
- epel:网络第三方的linux安装包源
执行如下安装命令:
yum update -y && yum install git bzip2 gcc-c++ ntp epel-release nodejs -y
三、安装cmake
智能合约编译需要使用cmake。
提示:这里不能使用yum安装cmake。yum和epel源中只有2.8.x版本的cmake,而智能合约编译器solc的安装需要3.0.x以上的cmake版本,因此只能使用源码安装的方式。可以从cmake [https://cmake.org/download/] 官网获取最新版本。
执行如下命令:
wget https://cmake.org/files/v3.15/cmake-3.15.2.tar.gz
tar zxvf cmake-3.15.2.tar.gz
mv cmake-3.15.2 /usr/local/
cd /usr/local/cmake-3.15.2
./bootstrap
gmake
gmake install
提示:
1、若执行./bootstrap时提示如下信息
Error when bootstrapping CMake:
Cannot find appropriate C compiler on this system.
Please specify one using environment variable CC.表示系统中缺少C编译器,执行 yum install gcc 即可
2、若执行./bootstrap时提示
Error when bootstrapping CMake:
Cannot find appropriate C++ compiler on this system.
Please specify one using environment variable CXX.表示缺少C++编译器,执行 yum install gcc-c++ 即可
配置环境变量,执行如下命令:
echo "export PATH=/usr/local/cmake-3.15.2/bin:$PATH" >> /etc/profile
source /etc/profile
cmake -version
查看cmake版本返回如下结果,安装成功。
四、安装Golang
Geth使用Golang编译的,所以需要安装Golang。
- 安装Golang,执行如下命令:
wget https://storage.googleapis.com/golang/go1.10.2.linux-amd64.tar.gz
tar -C /usr/local -zxzf go1.10.2.linux-amd64.tar.gz
echo "export GOROOT=/usr/local/go" >> /etc/profile
echo "export PATH=/usr/local/go/bin:$PATH" >> /etc/profile
source /etc/profile
安装成功后查看Golang版本:
- 克隆并编译go-ethereum项目
执行如下命令:
cd /usr/local
git clone https://github.com/ethereum/go-ethereum.git
cd go-ethereum/
make all
echo "export PATH=$PATH:/usr/local/go-ethereum/build/bin" >> /etc/profile
source /etc/profile
安装完后,验证是否成功,执行下面的命令:
geth version
若返回以下结果 ,说明安装成功
五、防火墙及网络时间同步
- 开启网络时间同步
systemctl enable ntpd
systemctl start ntpd
- 开启防火墙
开启防火墙,打开Geth使用的8087和30303端口
systemctl start firewalld
firewall-cmd --zone=public --add-port=8087/tcp --permanent
firewall-cmd --zone=public --add-port=30303/tcp --permanent
到这里基于CentOS 7的Geth安装就全部完成,其关于Geth的相关操作,如:定义创始区块,启动私链,挖矿以及转账等操作,请参考我的另一篇文章《使用Geth搭建自己的以太坊私有链》。