Bitcoind

連接區域網路內的全節點以加速區塊鏈同步

  • April 8, 2017

比特幣核心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 連接除外。

引用自:https://bitcoin.stackexchange.com/questions/52431