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線路,成本并不高。