We have frequent troubles resolving IPFS links. Most people of our engineering team are behind NATs, sometimes even double NATs. Currently we “solve” this by creating SSH tunnels to a server outside the NAT running ipfs. This works, but is not really decentralised.
[User 1] <-- NAT–> [Node] <-- NAT --> [User 2]
So User 1 adds something, and User 2 is unable to resolve it. Once it is pinned on the central node, resolution works.
So I was checking how to properly solve this problem, and to my surprise I noticed that the circuit relay feature is already implemented https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#circuit-relay .
So how would I use it? From the description above I have to enable it using
Swarm.DisableRelay = true. But then what? Are there some instructions on how to use this feature? I am sure we could figure it out given the info above, but it would be nice to have step by step instructions.
Edit: added some ascii art for clarification