|
1.服務器
需要300G SSD(建議NVMe)硬盤,最好是裸硬盤,不建議用機械盤。
2.帶寬
建議國外服務器,10M以上,不需要cn2線路
3.操作系統
建議centos7/8,或ubuntu,這里均以centos為例
4.準備環境:
yum update -y
yum install screen iftop iotop -y
4.1.安裝golang
yum install golang -y
或編譯安裝
*注意:如果使用的 Go 版本是 1.13 及以上 (推薦),如果不設置以下命令編譯源碼時可能會出錯
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
5.創建一個screen
screen -S heco
*注意1:最后退出時用ctrl+ad(順序按a和d字母即可),不要用exit或ctrl+d退出會話。
*注意2:退出會話后,可以用screen -x heco重新連接到會話。
6.安裝heco客戶端
#這里我的數據目錄,可以根據需要自行更改
mkdir -p /data/heco/data
#下載最新版本并編譯
cd /root
wget -O heco-chain-1.2.1.tar.gz https://github.com/stars-labs/heco-chain/archive/refs/tags/v1.2.1.tar.gz
tar -xvf heco-chain-1.2.1.tar.gz
rm -fr heco-chain-1.2.1.tar.gz
cd heco-chain-1.2.1
make all
7.檢查安裝是否成功
/root/heco-chain-1.2.1/build/bin/geth console
8.設置防火墻
firewall-cmd --permanent --zone=public --add-port=32668/tcp
firewall-cmd --permanent --zone=public --add-port=8545/tcp
firewall-cmd --reload
不懂防火墻配置的,可以先禁用防火墻,關于firewalld的使用技巧,之后會單獨寫一篇教程
9.啟動節點
ulimit -n 65535
/root/heco-chain-1.2.1/build/bin/geth --datadir /data/heco/data --syncmode "fast" --cache=8096 --maxpeers 50 --http --http.addr=0.0.0.0 --http.port=8545 --http.api "web3,debug,personal,net,admin,eth" --http.corsdomain "*" --allow-insecure-unlock
*然后按ctrl+ad回到主會話即可
10.測試驗證
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545
(如果已經追上最新高度,result會返回false)
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545
(節點未同步完成可能會返回0)
11.停止節點
方式1:(建議,畢竟停止后還要啟動不是)
screen -r heco
按ctrl+c,等待一會即可看到節點停止
12.接口文檔參考(HECO的文檔與以太坊基本相同)
RPC接口文檔,如:
以太坊JSON RPC手冊 / eth_call - 匯智網
其它參考:
HECO鏈github地址:GitHub - stars-labs/heco-chain: Huobi Eco Chain client based on the go-ethereum fork
主網瀏覽器:HecoInfo (HT) Blockchain Explorer
13.注意事項
*同步到最高區塊所需時間:
需要看網絡帶寬和磁盤io性能,用NVMe的硬盤,讀寫1000到2000左右,100M的國外非cn2帶寬,從0開始同步,大概需要小半天左右。
*如果2天還沒有追上,或者最后100個塊始終追不上,極有可能是服務器磁盤io存在瓶頸,不建議用機械盤,不建議用虛擬機(磁盤不建議做虛擬化),否則io速度不夠用。
*硬盤目前實際會占用211G左右。
*相比eth,bsc,heco的資源消耗和空間占用非常低,一般可以與eth節點部署在同一臺,以節省成本。
前言:zilliqa開發用的RPC節點只需要啟動個seed節點即可,非常方便,40多G空間,幾十分鐘就可以同步完,資源占用極小。否則如果部署full節點就不是這么簡單了。
1.服務器
zilliqa的seed節點 需要100G SSD(建議NVMe)硬盤,實際數據占用40多G,docker占用1.3G多。cpu內存均不需要太高,4核8G足夠。
2.帶寬
建議國外服務器,10M以上,不需要cn2線路
3.操作系統
建議centos7/8,或ubuntu,這里均以centos為例
4.準備環境:
yum update -y
yum install screen iftop iotop -y
4.1.安裝docker
略,不會的可以搜索或參考:
5.創建一個screen
screen -S zil
*注意1:最后退出時用ctrl+ad(順序按a和d字母即可),不要用exit或ctrl+d退出會話。
*注意2:退出會話后,可以用screen -x heco重新連接到會話。
6.docker模式安裝
mkdir /root/seed
cd /root/seed
wget https://mainnet-join.zilliqa.com/seed-configuration.tar.gz
tar -xvf seed-configuration.tar.gz
7.設置防火墻
firewall-cmd --permanent --zone=public --add-port=33133/tcp
firewall-cmd --permanent --zone=public --add-port=4201/tcp
firewall-cmd --reload
不懂防火墻配置的,可以先禁用防火墻,關于firewalld的使用技巧,之后會單獨寫一篇教程
8.啟動seed節點(docker模式)
cd /root/seed
sh /root/seed/launch_docker.sh
按提示輸入,注意ip要填寫下(盡量服務器本機具備ipv4的公網ip)
成功后,會提示:
Use 'docker ps' to check the status of the docker
Use 'docker stop zilliqa' to terminate the container
Use 'tail -f zilliqa-00001-log.txt' to see the runtime log
If you have successfully completed the above steps,
you should have a functioning seed node that exposes an RPC API on localhost:4201.
You may further check the logs at zilliqa-00001-log.txt.
注意,默認4201端口暫時沒有打開,這里翻譯為人話,就是必須等同步完所有區塊數據,才會開放4201端口。
9.查看日志
tail -f /root/seed/zilliqa-00001-log.txt
tail -f /root/seed/py_download_incr_DB.log
這里可以看到下載的日志
10.測試驗證
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetNetworkId","params":[],"id":1}' http://127.0.0.1:4201
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetBlockchainInfo","params":[],"id":1}' http://127.0.0.1:4201
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"GetLatestDsBlock","params":[],"id":1}' http://127.0.0.1:4201
11.停止節點
docker stop zilliqa
注意,重啟docker可能不會自動啟動zilliqa的服務,可以通過:
docker exec -it zilliqa /bin/bash
進入docker的shell,執行:
ps -ef
查看是否有zilliqa的進程,如果重啟服務器后,端口一直沒有偵聽,要注意下是否真的有啟動起來zilliqa進程。
12.接口文檔參考
RPC接口文檔,如:
Introduction | Zilliqa Developer Portal
Introduction | Zilliqa Developer Portal
Introduction | Zilliqa Developer Portal
其它參考:
Zilliqa鏈github地址:
https://viewblock.io/zilliqa
https://devex.zilliqa.com/
https://explorer.zilliqa.com/
ZilLab Explorer -- Mainnet
13.注意事項
*同步到最高區塊大概最快20分鐘左右。
*相比來說,seed節點的資源和空間消耗非常低,一般可以與eth等節點部署在同一臺,以節省成本。
1.服務器
需要1T NVMe 硬盤,最好是裸硬盤,云盤io性能太差,建議物理機(裸金屬主機)+本地SSD。
2.帶寬
越高越好,建議國外服務器,1G帶寬不限流量
3.操作系統
建議centos7/8,或ubuntu,這里均以centos為例
4.準備環境:
yum update -y
yum install screen iftop iotop -y
5.創建一個screen
screen -S btc
*注意1:最后退出時用ctrl+ad(順序按a和d字母即可),絕對不要用exit或ctrl+d退出會話。
*注意2:退出會話后,可以用screen -r btc重新連接到會話。這樣可以保持在shell下運行,網絡中斷不會影響。
6.安裝bitcoin客戶端
#這里我的數據目錄,可以根據需要自行更改
mkdir -p /data1/btc/data
#下載最新版本,今天的最新版本是22.0
cd /root
wget -O bitcoin-22.0.tar.gz https://bitcoincore.org/bin/bitcoin-core-22.0/bitcoin-22.0-x86_64-linux-gnu.tar.gz
tar -zxvf bitcoin-22.0.tar.gz
7.編輯并上傳配置文件:/data1/btc/bitcoin.conf
datadir=/data1/btc/data
wallet=btc20211107 #隨便取個名字,其實用不到這個
testnet=0 # 0 - 主網 1 - 測試網
regtest=0 # 是否以私有鏈模式運行:0 - 否 1 - 是
#gen=0 # 設置 gen=1 以嘗試比特幣挖礦
#daemon=1 # 后臺執行
#proxy=127.0.0.1:9050 # 是否使用socks5代理,默認關閉
#bind=<addr> # 注釋此行,表示使用默認監聽地址
#whitebind=<addr>
#addnode=69.164.218.197 # 可添加多個
#addnode=10.0.0.2:8333
#connect=69.164.218.197
#listen=1
#maxconnections=10 #入站/出站最大連接數
server=1 # 是否啟動JSON-RPC接口: 0 - 不啟動 1 - 啟動
txindex=1
rpcbind=0.0.0.0
rpcport=8432 #端口可以自行修改
rpcuser=admin #用戶名自行修改
rpcpassword=123456 #密碼自行修改,但最好不要有特殊字符,像@
rpcallowip=0.0.0.0/0 #可以添加多個
#rpcallowip=0.0.0.0/0 #可以添加多個
#rpcallowip=192.168.0.0/16
#rpcconnect=127.0.0.1
#txconfirmtarget=6 #交易最小確認數,默認值:6
#paytxfee=0.000x #paytxfee:每次發送比特幣時的交易費
#txconfirmtarget=n
#paytxfee=0.000x
#keypool=100
#prune=550
#min=1 #是否啟動后最小化
#minimizetotray=1 #是否最小化到系統托盤
8.設置防火墻
firewall-cmd --permanent --zone=public --add-port=8432/tcp
firewall-cmd --permanent --zone=public --add-port=8433/tcp
firewall-cmd --reload
不懂防火墻配置的,可以直接先禁用防火墻,關于firewalld的使用技巧,之后會單獨寫一篇教程
9.啟動客戶端
ulimit -n 65535
cd /root/bitcoin-22.0
/root/bitcoin-22.0/bin/bitcoind -port=8433 -conf=/data1/btc/bitcoin.conf
*然后按ctrl+ad回到主會話即可
10.測試驗證(以下列出幾種方式,可以看自己喜好)
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id": "1", "method": "getindexinfo", "params": []}' -H 'content-type: text/plain;' http://127.0.0.1:8432/
或
curl --data-binary '{"jsonrpc":"1.0","id":"1","method":"getindexinfo","params":[]}' -H 'content-type:text/plain;' http://admin:123456@127.0.0.1:8432/
或:
/root/bitcoin-22.0/bin/bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=admin -rpcpassword=123456 -rpcport=8432 getindexinfo
11.停止節點
方式1:(建議,畢竟停止后還要啟動不是)
screen -r btc
按ctrl+c,等待一會即可看到節點停止
方式2:
任意會話中輸入命令:
/root/bitcoin-22.0/bin/bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=admin -rpcpassword=123456 -rpcport=8432 stop
12.接口文檔參考
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
https://developer.bitcoin.org/reference/rpc/index.html
太多了,大家可以搜下,網上有很多
13.注意事項
同步到最高區塊所需時間:
需要看網絡帶寬和磁盤io性能,我用NVMe的裸盤,讀寫1500到2000左右,1G的國外帶寬,大概同步幾個小時即可(沒有具體去算,應該5、6個小時,最高不到12個小時)。
帶寬最高使用到100MB/s左右。
如果花了一天以上沒有同步到最新,有可能是服務器存在瓶頸,還是建議用國外物理機,10M帶寬基本上不怎么夠用,建議至少100M的帶寬,不需要cn2線路,成本并不高。
1.服務器
需要3T(建議4T) NVMe 硬盤,最好是裸硬盤,云盤io性能太差,建議物理機(裸金屬主機)+本地SSD。
*注意,bsc節點對硬件要求是我見過的所有鏈中最高的,強烈建議獨立使用一臺高配置服務器。
2.帶寬
越高越好,建議國外服務器,1G帶寬不限流量
3.操作系統
建議centos7/8,或ubuntu,這里均以centos為例
4.準備環境:
yum update -y
yum install screen iftop iotop -y
4.1.安裝golang
yum install golang -y
或編譯安裝:
cd /root/
wget https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz
tar zxvf go1.4-bootstrap-20170531.tar.gz
cd /root/go/src/
./all.bash
5.創建一個screen
screen -S bsc
*注意1:最后退出時用ctrl+ad(順序按a和d字母即可),絕對不要用exit或ctrl+d退出會話。
*注意2:退出會話后,可以用screen -r bsc重新連接到會話。這樣可以保持在shell下運行,網絡中斷不會影響。
6.安裝bsc客戶端
#這里我的數據目錄,可以根據需要自行更改
mkdir -p /data/bsc/data
#下載最新版本
cd /root
wget -O binance-chain-v1.1.4.tar.gz https://github.com/binance-chain/bsc/archive/refs/tags/v1.1.4.tar.gz
tar -xvf binance-chain-v1.1.4.tar.gz
rm -fr binance-chain-v1.1.4.tar.gz
編譯:
cd /root/bsc-1.1.4
make all
6.1.檢查安裝是否成功
/root/bsc-1.1.4/build/bin/geth version
7.編輯并上傳配置文件:
bsc-mainnet配置文件.zip-以太坊文檔類資源-CSDN下載
config.toml和genesis.json兩個文件放到/data/bsc/目錄下。(該目錄可以自行修改)
8.設置防火墻
firewall-cmd --permanent --zone=public --add-port=30311/tcp
firewall-cmd --permanent --zone=public --add-port=8575/tcp
firewall-cmd --permanent --zone=public --add-port=8576/tcp
firewall-cmd --reload
不懂防火墻配置的,可以先禁用防火墻,關于firewalld的使用技巧,之后會單獨寫一篇教程
9.1.下載最新的snapshot數據,以加快同步實際
#最新snapshots參加:https://github.com/binance-chain/bsc-snapshots
cd /data/bsc/data
wget -O geth.tar.gz 'https://s3.ap-northeast-1.amazonaws.com/dex-bin.bnbstatic.com/geth-20211031.tar.gz?AWSAccessKeyId=AKIAYINE6SBQPUZDDRRO&Signature=ESK5xmr5f1AIK4Mr6our%2FALXzQk%3D&Expires=1638310885'
tar zxvf geth.tar.gz
*這里要下載很久,所以帶寬要盡可能高。
*解壓后,注意目錄結構可能要調整下,保持chaindata和keystore那一級目錄直接在/data/bsc/data/目錄下,如果不在的話,自己mv到那個目錄下。
9.2.啟動客戶端
#先init,很多人沒有執行這一步,導致下面啟動節點同步出錯
/root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=10240 init /data/bsc/genesis.json
#啟動節點(上面的init只要執行一次,之后啟動節點不要再執行了)
ulimit -n 65535
/root/bsc-1.1.4/build/bin/geth --datadir /data/bsc/data --config /data/bsc/config.toml --syncmode "fast" --cache=8192 --rpc.allow-unprotected-txs --txlookuplimit 0 --allow-insecure-unlock
*然后按ctrl+ad回到主會話即可
10.測試驗證
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8575
(如果已經追上最新高度,result會返回false)
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8575
11.停止節點
方式1:(建議,畢竟停止后還要啟動不是)
screen -r bsc
按ctrl+c,等待一會即可看到節點停止
12.接口文檔參考
RPC接口文檔同eth文檔,如:
以太坊JSON RPC手冊 / eth_call - 匯智網
其它參考:
BSC鏈github地址:https://github.com/binance-chain/bsc
主網瀏覽器:https://bscscan.com/
主網鏈官方部署文檔:https://docs.binance.org/smart-chain/developer/fullnode.html
私有鏈官方部署文檔:https://docs.binance.org/smart-chain/developer/deploy/local.html
13.注意事項
*最大文件打開數必須修改,很多人遇到bsc客戶端經常被kill,就是達到了最大文件打開數限制,導致被操作系統自動kill。
*同步到最高區塊所需時間:
需要看網絡帶寬和磁盤io性能,我用NVMe的裸盤,讀寫1500到2000左右,1G的國外帶寬,基于最新snapshot同步,大概需要3天左右。
*帶寬需要100M,建議1G,磁盤io越高越好,如果5天還沒有追上,或者高度經常落后,極有可能是服務器磁盤io存在瓶頸
*硬盤最好4T空間,否則區塊數據都要1.9個T,如果只有2T空間根本不夠用。
*雖然用snapshot+fast模式同步,但同步到最新高度后,依然會自動切換為full node模式,這是正常現象,不用疑惑,也不要刪除重新同步。
*再次強調bsc非常耗資源,aws和阿里云的云盤性能根本不夠,除非使用本地ssd才可以,而且bsc同步到最新高度后,對帶寬的使用依然很高,建議網絡不要按流量付費的,否則費用會高到無法承受。
*建議服務器先做io測試,可以用dd,或者安裝個寶塔面板做跑分測試,磁盤讀寫低于500MB/s的就別安裝了,建議1000MB/s以上,這個非常關鍵。
1.服務器
需要1T SSD(建議NVMe)硬盤,最好是裸硬盤,不可以用機械盤,否則會永遠無法同步完成。
2.帶寬
建議國外服務器,100M非cn2線路即可
3.操作系統
建議centos7/8,或ubuntu,這里均以centos為例
4.準備環境:
yum update -y
yum install screen iftop iotop -y
4.1.安裝golang
yum install golang -y
或編譯安裝
*注意:如果使用的 Go 版本是 1.13 及以上 (推薦),如果不設置以下命令編譯ETH源碼時可能會出錯
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
5.創建一個screen
screen -S eth
*注意1:最后退出時用ctrl+ad(順序按a和d字母即可),不要用exit或ctrl+d退出會話。
*注意2:退出會話后,可以用screen -x eth重新連接到會話。
6.安裝eth客戶端
#這里我的數據目錄,可以根據需要自行更改
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.設置防火墻
firewall-cmd --permanent --zone=public --add-port=30303/tcp
firewall-cmd --permanent --zone=public --add-port=8545/tcp
firewall-cmd --reload
不懂防火墻配置的,可以先禁用防火墻,關于firewalld的使用技巧,之后會單獨寫一篇教程
9.啟動節點
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回到主會話即可
10.測試驗證
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545
(如果已經追上最新高度,result會返回false,這樣以后就不用受infura調用頻率的限制了)
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545
(節點未同步完成會返回0)
11.停止節點
方式1:(建議,畢竟停止后還要啟動不是)
screen -r eth
按ctrl+c,等待一會即可看到節點停止
12.接口文檔參考
RPC接口文檔,如:
以太坊JSON RPC手冊 / eth_call - 匯智網
其它參考:
ETH鏈github地址:https://github.com/ethereum/go-ethereum
主網瀏覽器:https://etherscan.io
13.注意事項
*同步到最高區塊所需時間:
需要看網絡帶寬和磁盤io性能,用NVMe的硬盤,讀寫1000到2000左右,100M的國外非cn2帶寬,從0開始同步,大概需要半天到一天。
*如果2、3天還沒有追上,或者最后100個塊始終追不上,極有可能是服務器磁盤io存在瓶頸,再次強調,不可以用機械盤,不建議用虛擬機(磁盤不能做虛擬化),否則io速度不夠,就永遠無法同步完成,因為最后還有一步需要很高的IO速度才可以完成。
*硬盤最好1T空間,目前實際會占用584G左右。
yum install centos-release-scl -y編輯/etc/sysctl.conf:
vi /etc/sysctl.conf
增加如下兩行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
:wq保存退出后,執行
sysctl -p
將立即生效。
curl --silent --location https://rpm.nodesource.com/setup_14.x | bash -
yum update -y
yum remove nodejs npm -y
yum install nodejs npm -y
這樣就可以安裝到14的版本了,需要什么版本可以自己指定。