问题分析
在使用以太坊客户端创建网络组件的时候,出现以下错误:
Step 1/2: FROM puppeth/ethstats: latest bervice ’ ethstats’ failed to build: Get https://registry-1. docker. io/v2/: EOF ERROR[03-19|13:57:17.082] Failed to deploy ethstats container err=“Process exited with status 1”

此时已经给docker换过源了,因此报错不是连接超时问题,而是无法获得更多资源,第一种可能和docker版本或者go的版本有关,我测试了三个go的版本,发现go版本1.11.2是可行的。而第二种可能是最常见的,那就是docker代理的问题,因此可以切换一个稳定的docker代理即可。
问题解决
第一步,更换go版本
首先进入/usr/local目录
cd /usr/local
安装go1.11.2版本
wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
解压
tar zxvf go1.11.2.linux-amd64.tar.gz
设置编译目录GOPATH
mkdir -p /home/gopath
配置环境变量
vim /etc/profile
在配置文件最后添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/home/gopath
保存已配置的环境变量使其生效
source /etc/profile
最后只需查看go的版本即可验证是否成功了
go version
第二步清除go-ethereum以编译的可执行文件后重新编译,或者重新编译一个未编译的go-ethereum,可执行文件在build的bin目录下。
cd go-ethereum
make all
最后一步就可以执行puppeth去测试,此时上述的错误也就解决了,但是注意的是你的docker能访问外部网络,如果不能可以换源。
docker换源
第二种解决办法就是用个VPN,使本身机器能访问外网,可以解决了这个问题,所以,要给docker选择一个稳定可行的代理,或者直接使用阿里云主机,无需VPN即可使用。