HOP_CANT_SPEAK_RELAY error on IPFS private network

Hello everyone,

We are setting up IPFS Private network with one replay server and 2 PCs (sharing the same swarm.key)

  • On relay server, we did

Swarm.RelayService.Enabled) => true
Swarm.RelayClient.Enabled) => false

  • On 2 PCs behind NAT (+ turned of firewall too), we did

Swarm.RelayService.Enabled) => false
Swarm.RelayClient.Enabled) => true

  • IDs

Server: 12D3KooWR9zzY5ZZnKyvwm5cKTxexPFQ4DZCypAtqZ1sHDm2GtqP
PC1: 12D3KooWGD5myqbSM1YQp7Sb3ot4UCAAF7wiEwcN24xC8B8pNJxe

  • On PC1 we do

ipfs ping /ip4/

  • Here is the error we got: HOP_CANT_SPEAK_RELAY, please help

Full error message:


Ping error: failed to dial 12D3KooWFg9ApLqQiTdkaGhgFNTWFsiRMCSDGCQgZ1RuBwSMXAmS:

'* [/ip4/] error opening relay circuit: HOP_CANT_SPEAK_RELAY (270)

Error: ping failed

I am not sure if I will solve your issue but maybe I can help you troubleshoot? It seems there is an issue with using legacy internet tools such as IPv4 to ping peers. I am certain that it uses a different communication method/protocol internally. GossipPub I think is intra peer messaging. I have made private IPFS networks in the past with 3 desktop PCs but I will use Ansible for configuration of the hosts and customized bootstrap. The bootstrap should delineate the exact members of the network and they only communicate with each other effectively “turning off world”. One of the three creates the swarm key that is passed to each peer. After that I don’t recall making one with specific role that was opposite the others. I would ensure that they are properly bootstrapped first before messing with ancillary/auxiliary roles for them.