連接區域網路內的全節點以加速區塊鏈同步
比特幣核心
v0.14.0
似乎比以前的版本快很多,以至於現在同步整個區塊鏈似乎是受 IO 限製而不是受 CPU 限制:執行時top
我曾經看到我的 CPU 滿負荷執行(表明網路 IO不是限制因素)。情況似乎不再如此,網路 IO 的速度似乎是同步完整區塊鏈所需時間的一個相關因素……現在我們總是有一些新的硬體要設置,或者一些新的作業系統要試用,而且我們總是發現自己處於建構和安裝的位置,
bitcoind
然後是區塊鏈同步。既然網路速度很重要,那麼嘗試從我們碰巧在同一個 LAN 上執行的另一個完整節點獲取區塊鏈數據會很有意義,而不是從隨機對等連接外部獲取數據。所以我的問題是:假設我有另一個全節點在同一個區域網路上執行,我如何設置新節點的配置文件以確保它連接到這個本地節點,從而從提高的網路速度中受益?(這個問題假設兩個節點都是 IPv4)。如果正在執行的完整節點在 Tor 上而新節點是 IPv4,或者當正在執行的節點是 IPv4 而新節點在 Tor 上時,我該如何更改這些設置?
**編輯:**按照評論中的建議,我嘗試添加該行:
addnode=192.168.0.2:8333
在新(ipv4)節點的配置文件中,其中
192.168.0.2
是已建立(tor)節點的本地 ip。我的 tor 節點配置文件如下:txindex=1 debug=mempool daemon=1 #onlynet=onion # commented out to allow local ipv4 connection onion=127.0.0.1:9050 port=8333 listen=1 bind=127.0.0.1:8333 externalip=<myexternaltoraddress>.onion seednode=<seed1>.onion ... banscore=10000 bantime=11
我還確保我的 tor 節點伺服器上的防火牆設置正確
$ sudo ufw allow 8333
但是,從新節點調試中可以看出,我的 tor 節點拒絕連接請求:
2017-03-31 13:21:50 connect() to 192.168.0.2:8333 failed after select(): Connection refused (111)
好的,看來您需要
bind=127.0.0.1:8333
從配置文件中刪除該行,並且(令人驚訝的是)您可以保留該設置onlynet=onion
(您仍然可以通過 LAN 上的 ipv4 連接)。所以現有的 Tor 節點可以配置如下:txindex=1 debug=mempool daemon=1 onlynet=onion onion=127.0.0.1:9050 port=8333 listen=1 externalip=<myexternaltoraddress>.onion seednode=<seed1>.onion [...] seednode=<seedk>.onion banscore=10000 bantime=11
新的本地ipv4節點可以配置如下:
txindex=1 debug=mempool daemon=1 connect=192.168.0.xxx:8333
使用這些設置,Tor 節點可以正常使用僅 Tor 連接(入站和出站),但來自新節點的本地 ipv4 連接除外。