Multiple Rely Peers

Hello everyone, and thanks for this amazing work!

I’ve read the docs carefully (as much as i could), so i figured out about rely peers that can be intermediary for a connection between two peers that cant make a connection directly. (please fix me if im wrong). And when i checked the multiaddr encoding for connection with relies, all of the examples had just one rely peer.

So what if there be a situation that we need more than one rely (more intermediaries) to send a message to another peer?

For example, imagine there are two parties in two different countries :smile: (I’ve attached a drawing, i’ll try to refer to it in my text),
IMG_20190507_132727

  • In the first party (right group), there are 5 people (A1 to A5), and just one of them (A1) has access to the Internet, other peers (A2 to A5) can make connection to A1 (maybe not directly but trough other peers (and this is a problem itself for me!)) by local network, but they dont have access to the Internet.
  • In the second party (left group), there are 5 people too (B1 to B5), and again just one of them (B1) has access to the Internet, other peers (B2 to B5) can make connection to B1 (same as the first group) by local network, but they dont have access to the Internet.
  • Now, think A5 wants to send a message to B5! in this situation they cannot be connected directly, also they cannot do it by just one rely!
  • How can we handle this situation? Can we solve this problem by current version of libp2p? How?
  • May this problem be my leak of knowledge! So please let me know if it is :slight_smile:

I appreciate any help/advice/clarification/fix! Thank you! :grinning: