1、安装所需工具
yum install git
yum install wget
yum install bzip2
yum install vim
yum install gcc-c++
yum install nodejs
yum install cmake
2、安装go
安装go版本,可能会导致go-ethereum编译不通过
wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz
echo 'export GOROOT=/usr/local/go' >> /etc/profile
echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/profile
echo 'export GOPATH=/root/go' >> /etc/profile
echo 'export PATH=$PATH:$GOPATH/bin' >> /etc/profile
source /etc/profile
验证是否安装成功
$ go version
go version go1.13 linux/amd64
3、克隆编译项目go-ethereum
cd /usr/local
git clone https://github.com/ethereum/go-ethereum.git
cd go-ethereum
make geth
在path中加入geth路径
echo 'export PATH=$PATH:/usr/local/go-ethereum/build/bin' >> /etc/profile
source /etc/profile
验证geth是否安装成功
geth version
INFO [08-16|10:12:12.117] Bumping default cache on mainnet provided=1024 updated=4096
Geth
Version: 1.9.10-unstable
Git Commit: 0218d7001d2a566b35072ee21b9f84f6b2711bbe
Git Commit Date: 20200108
Architecture: amd64
Protocol Versions: [64 63]
Go Version: go1.13
Operating System: linux
GOPATH=/home/go
GOROOT=/usr/local/go
此时geth已经安装成功
4、同步以太坊区块(fast启动)
注意: 需要开启 上面配置的(8545和30303)两个端口
nohup geth --syncmode fast --datadir /eth/app/node --rpc --rpcapi db,eth,net,web3,personal,admin,miner --rpcport 8545 --port 30303 --rpcaddr 0.0.0.0 --ipcpath /eth/app/node/geth.ipc > output.log 2>&1 &
–rpcaddr 0.0.0.0 设置为允许所有人能连接当前节点 可以修改 可以根据实际需求修改
5、进入geth控制台 (连接eth)
geth attach ipc:/eth/app/node/geth.ipc
eth.syncing 查看正在同步的节点高度
> eth.syncing
{
currentBlock: xxxxxxx
highestBlock: xxxxxxx
knownState: xxxx
pulledState: xxxx
startingBlock: xxxxxxx
}
如果长时间一直显示为false,可能存在问题,请检查步骤
注意:节点同步完成也会显示false
> eth.syncing
false
>
eth.blockNumber查看当前同步的节点数
> eth.blockNumber
10675173
>
net.peerCount来查看自己的这个节点连了多少个其它节点进行数据同步
> net.peerCount
50
>
节点启动
nohup geth --syncmode fast --datadir /eth/app/node --rpc --rpcapi db,eth,net,web3,personal,admin,miner --rpcport 8545 --port 30303 --rpcaddr 0.0.0.0 --ipcpath /eth/app/node/geth.ipc > output.log 2>&1 &
节点停止
pid=`ps -ef|grep geth|grep -v grep|awk '{print $2}'`
echo $pid
kill -INT $pid
查看日志
tail -f output.log -n500
设置文件执行权限
chmod +x xxx.sh