If you have no social graph on yada, then your very first connection to a friend may have to be unencrypted, but not in every case.
If you have no social graph on yada, then your very first connection to a friend may have to be unencrypted, but not in every case.
You're making a lot of assumptions:
1) That IPv6 will assign a unique and constant IP to every device. Many ISPs provide this as an up-sell feature, not the default, and I don't expect them to change their behavior even if the cost of it approaches 0.
2) That IPv6 will solve all your network problems. It doesn't solve the issue of a bad link or a restrictive firewall. Consider Hosts [A,B,C] and Firewall F. F will block all connections from B. How will yada connect A and B in this arrangement: A <-F-> [B,C] ? Will is use C to route the connection? How will it determine that C can act as an intermediary, and how will it protect A's data such that C can not be used as a MTM (Man in The Middle) attack vector?
2) There will be indexers for these cases which can be used as relay points. C would merely be a match-maker, telling each host which IP address and port is currently open. No data is sent through C.
Skype does this.
>1) Each client checks for internal and external IPs and saves them. That list is transmitted to your friends every time you update them with other data. It automatically manages this list of possible places to reach you.
According to the link, "supernodes" route connections and provide matchmaking between Skype callers. How do you find the "supernodes"? "If this file is not present, SC tries to establish a TCP connection with each of the seven Skype maintained default SNs IP address on port 33033."
>2) There will be indexers for these cases which can be used as relay points. C would merely be a match-maker, telling each host which IP address and port is currently open. No data is sent through C.
"If caller and receiver are behind a UDP-restricted firewall they will need a relay (node) in between to establish TCP connection to and then the traffic (including media) will go through from one side to the other."
Skype's protocol would use host C as an intermediary.
Also, could you please point out to me the method you have developed for initial discovery? I've yet to see it in your source code. This is a very tough nut to crack and if you've got it done already then I'm impressed.
Seriously.