I’ve the precisely similar challenge. Investigating propagagation of latest mined blocks, in line with charts on this website, a max propagation delay of 5s can be good. I’ve a node linked to TOR, IPv6/v4, I2P, reverse tuneled to a VPS positioned in US, and after evaluating timestamp in block with message noticed new header/cmptblock, it obtained a delay of 15s to 1m in principally of blocks.
Its value to say that my node are multihomed with two completely different ISPs, however each have poor efficiency in p2p connectivity.
As an alternative of sustaining ip of nodes from swimming pools, you’ll be able to manually hook up with nodes regulary, this nodes may be chosen from lessons: These from completely different international locations, and from completely different ISPs. Sustaining a set of various places and suppliers can scale back propagation occasions.
That is some supply of nodes, you’ll be able to filter by nation and model, and rating, within the case of bitnodes. These are seemingly most realiable nodes to attach.
https://api.blockchair.com/bitcoin/nodes
https://bitnodes.io/api/v1/nodes/leaderboard/?restrict=100
If you’re in a linux machine, you are able to do a sh script to do connections time to time, use somenthing like:
#!/bin/bash
BNODES=$(wget -q https://bitnodes.io/api/v1/nodes/leaderboard/?restrict=100 -O-)
CONNECT_TO=$(echo "$BNODES" | jq -r '.outcomes[].node')
for i in $(seq 2 30) # add 3k nodes to connection checklist
do
BNODES=$(wget -q "https://bitnodes.io/api/v1/nodes/leaderboard/?restrict=100&web page="$i -O-)
CONNECT_TO=$CONNECT_TO" ""$(echo "$BNODES" | jq -r '.outcomes[].node')"
executed
for node in $CONNECT_TO
do
IP=$(echo $node | rev | lower --complement -d: -f1 | rev)
PORT=$(echo $node | rev | lower -d: -f1 | rev)
echo connecting to $node
bitcoin-cli addnode $IP:$PORT add # or onetry to attach as soon as (max 8 connections, it fails silently after it)
executed
You may change jq to parse JSON encoded checklist of nodes to get a few of them in line with your wants.
