Geth安装

结合了网上各种文章,经过十多个小时的失败,期间还把虚拟机搞得开机不了,但终于成功的安装了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文件夹,用来存放我们的数据。执行情况如下:

7.所有的环境配置

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值