之前写了在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搭建自己的以太坊私有链》。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐