结合了网上各种文章,经过十多个小时的失败,期间还把虚拟机搞得开机不了,但终于成功的安装了geth。下面我会展示我遇到的问题和解决方案
目录
1.系统环境
2.安装基础工具
3.安装cmake
4.安装Golang
5.防火墙及网络时间同步
6.进入geth
7.所有的环境配置
1.系统环境
Windows10,Linux,Centos7.6
2.安装基础工具
下载并安装git、vim、gcc-c++、ntp组件、nodejs以及添加epel第三方安装源。这些工具的说明如下:
以下是网络上的各种方法需要准备好的东西
yum install yum*:安装好工具包
克隆工具:yum install git
- git:安装相关的组件,下载安装各类开源代码与工具的利器;
- vim:文本编辑工具,取代vi;
- gcc-c++:c/c++编译工具,用于golang下部分c库的编译以及truffle组件的编译
- ntp:网络时钟同步组件;Ethereum的rpc网络需要时间同步;
- nodejs:ethereum前端开发JavaScript包管理软件
- epel:网络第三方的linux安装包源
执行如下安装命令下载安装上面6个东西:
yum update -y && yum install git bzip2 gcc-c++ ntp epel-release nodejs -y
总结:可能时间会下载稍微久一点,但是下载完之后就可以了,不需要操作其他东西
3.安装cmake
智能合约编译需要使用cmake
- 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
配置环境变量
- echo "export PATH=/usr/local/cmake-3.15.2/bin:$PATH" >> /etc/profile
- source /etc/profile
- cmake -version
总结:本人安装cmake的时候还是非常顺利的
4.安装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
- 我无法通过前面两点来安装go,而且低版本的go可能也无法兼容了
- 因此我在网上找到了最新版的go:go1.18.3.linux-amd64.tar.gz
- 然后一样安装在 /usr/local
- echo "export GOROOT=/usr/local/go" >> /etc/profile
- echo "export PATH=/usr/local/go/bin:$PATH" >> /etc/profile
- source /etc/profile
克隆并编译go-ethereum
- cd /usr/local
- git clone https://github.com/ethereum/go-ethereum.git
- 这个我尝试过非常多次,都无法git clone克隆成功(只有一次成功过,网络问题?)
- 因此,我在github仓库直接下载下来,通过Xftp7传到centos7.6
- GitHub - ethereum/go-ethereum: Official Go implementation of the Ethereum protocol
- 将这个ZIP文件下载解压下来,放到/usr/local/,就是文件go-ethereum-master
- go-ethereum文件是这么多次尝试git clone成功一次得来的,go-ethereum-master和go-ethereum里面的文件是一模一样的
- cd go-ethereum/
- make all
- 这一步我完全无法成功,做了很多次,花的时间也最长,遇到了各种问题,其一如下:
- 失败的原因:GitHub仓库中,go-ethereum-build中,没有env.sh文件了!如果有的话,改成,把dos命令改成unix之后,就可以正常运行了。因为.sh是一个脚本,它会帮助我们安装,而这个脚本缺失了。然后默认是dos命令无法在Linux执行,所以要改成unix才行
- 因此,我直接在网络上下载好geth最新版。地址:Downloads | Go Ethereum
- 然后再/usr/local/Geth放置,解压运行就欧克了
- echo "export PATH=$PATH:/usr/local/go-ethereum/build/bin" >> /etc/profile
- source /etc/profile
- geth version验证
5.防火墙及网络时间同步
开启网络时间同步
- 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
6.进入geth
进入geth的文件如图,一开始执行权限并不是777,需要修改:chmod 777 geth。执行:直接输入geth。也可以:geth --datadir ./data。就会创建出一个data文件夹,用来存放我们的数据。执行情况如下:
文章来源:https://www.toymoban.com/news/detail-819823.html
7.所有的环境配置
文章来源地址https://www.toymoban.com/news/detail-819823.html
到了这里,关于Geth安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!