1.服務(wù)器
需要1T SSD(建議NVMe)硬盤(pán),最好是裸硬盤(pán),不可以用機(jī)械盤(pán),否則會(huì)永遠(yuǎn)無(wú)法同步完成。
2.帶寬
建議國(guó)外服務(wù)器,100M非cn2線路即可
3.操作系統(tǒng)
建議centos7/8,或ubuntu,這里均以centos為例
4.準(zhǔn)備環(huán)境:
yum update -y
yum install screen iftop iotop -y
4.1.安裝golang
yum install golang -y
或編譯安裝
*注意:如果使用的 Go 版本是 1.13 及以上 (推薦),如果不設(shè)置以下命令編譯ETH源碼時(shí)可能會(huì)出錯(cuò)
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
5.創(chuàng)建一個(gè)screen
screen -S eth
*注意1:最后退出時(shí)用ctrl+ad(順序按a和d字母即可),不要用exit或ctrl+d退出會(huì)話。
*注意2:退出會(huì)話后,可以用screen -x eth重新連接到會(huì)話。
6.安裝eth客戶端
#這里我的數(shù)據(jù)目錄,可以根據(jù)需要自行更改
mkdir -p /data/eth/data
#下載最新版本并編譯
cd /root
wget -O go-ethereum-1.10.12.tar.gz https://github.com/ethereum/go-ethereum/archive/refs/tags/v1.10.12.tar.gz
tar -xvf go-ethereum-1.10.12.tar.gz
cd /root/go-ethereum-1.10.12
make all
7.檢查安裝是否成功
/root/go-ethereum-1.10.12/build/bin/geth version
8.設(shè)置防火墻
firewall-cmd --permanent --zone=public --add-port=30303/tcp
firewall-cmd --permanent --zone=public --add-port=8545/tcp
firewall-cmd --reload
不懂防火墻配置的,可以先禁用防火墻,關(guān)于firewalld的使用技巧,之后會(huì)單獨(dú)寫(xiě)一篇教程
9.啟動(dòng)節(jié)點(diǎn)
ulimit -n 65535
/root/go-ethereum-1.10.12/build/bin/geth --datadir /data/eth/data --syncmode "fast" --cache=2048 --maxpeers 200 --http --http.addr=0.0.0.0 --http.port=8545 --http.api "web3,eth,debug,personal,net,admin" --http.corsdomain "*" --allow-insecure-unlock
*然后按ctrl+ad回到主會(huì)話即可
10.測(cè)試驗(yàn)證
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545
(如果已經(jīng)追上最新高度,result會(huì)返回false,這樣以后就不用受infura調(diào)用頻率的限制了)
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545
(節(jié)點(diǎn)未同步完成會(huì)返回0)
11.停止節(jié)點(diǎn)
方式1:(建議,畢竟停止后還要啟動(dòng)不是)
screen -r eth
按ctrl+c,等待一會(huì)即可看到節(jié)點(diǎn)停止
12.接口文檔參考
RPC接口文檔,如:
以太坊JSON RPC手冊(cè) / eth_call - 匯智網(wǎng)
其它參考:
ETH鏈github地址:https://github.com/ethereum/go-ethereum
主網(wǎng)瀏覽器:https://etherscan.io
13.注意事項(xiàng)
*同步到最高區(qū)塊所需時(shí)間:
需要看網(wǎng)絡(luò)帶寬和磁盤(pán)io性能,用NVMe的硬盤(pán),讀寫(xiě)1000到2000左右,100M的國(guó)外非cn2帶寬,從0開(kāi)始同步,大概需要半天到一天。
*如果2、3天還沒(méi)有追上,或者最后100個(gè)塊始終追不上,極有可能是服務(wù)器磁盤(pán)io存在瓶頸,再次強(qiáng)調(diào),不可以用機(jī)械盤(pán),不建議用虛擬機(jī)(磁盤(pán)不能做虛擬化),否則io速度不夠,就永遠(yuǎn)無(wú)法同步完成,因?yàn)樽詈筮€有一步需要很高的IO速度才可以完成。
*硬盤(pán)最好1T空間,目前實(shí)際會(huì)占用584G左右。
posted on 2021-11-14 23:36
方偉的博客 閱讀(2392)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
區(qū)塊鏈