起初我采用虚拟机在公司网络下作为节点同步,不管是钱包还是geth,始终都会有100个左右区块同步不下来,导致eth_getBalance等指令失败。后来切换到了阿里云上的服务器上做同步,一个晚上就基本同步完了,建议尽量采用云主机或者网络环境好的实体机进行同步。下面讲一下同步的准备工作
1.go环境搭建
2.下载go-ethereum-master代码,尽量下载最新的版本
#git clone https://github.com/ethereum/go-ethereum.git
3.编译,编译成功后geth程序在./build/bin目录下
#go build
4.启动挖矿指令,在这里我们不挖矿,只是作为同步节点使用,所以指令中不需要“miner”
#nohup go-ethereum/build/bin/geth --rpc --rpcaddr 0.0.0.0 --rpcapi eth,net,web3 --syncmode fast --cache 1028 --datadir /root/source/ethereum_data/ > /data/block/geth.log 2>&1 &
执行完上述指令后,就开始了区块同步过程,预期最少需要准备60G左右的空间,为了以后区块生存,建议空间在500G左右
5.attach rpc,然后就可以执行相关指令,查看同步状态,区块高度等信息
#go-ethereum/build/bin/geth attach /root/source/ethereum_data/geth.ipc