Only one node on local network will sync with remote network

I’m trying to sync two nodes on my home LAN (H1 and H2) with one node at work (W). H1 syncs with H2 and W. H2, however, will not sync with W. STTRACE=net tells me that global discovery is working on H2 but it is not getting a response from the W’s address.

As far as I am aware, the network settings are the same for both of my H nodes. Any idea what the issue could be? I just did a factory reset on my home router and H1 worked immediately but H2 did not.

Is it actually telling you that discovery for W on H2 failed? STTRACE=discovery might tell you more…

It could be that W does not have H2 added, as a peer, hence the connection gets refused?

I’ll try STTRACE=discovery when I get back home. STTRACE=net shows that it is broadcasting to the correct IP for W.

W definitely has H2 added as a peer.

The connection in general is spotty: now that I’m at work, W stopped connecting to either H1 or H2 after an hour for no apparent reason (no longer discovers anything via the global discovery server). It could be work firewall stuff or wifi issues at home, but neither of those explains why H2 never connects and H1 does sometimes.

Separate, but related: ideally, H1 and H2 should not both sync the same blocks with W1. Each block should only transit the slower connection once, and then be shared among nodes connected with a faster connection.

That’s how it works, it picks the node with least active requests from this node at that moment. But it does not estimate speeds or anything… As the throughput might change.