The connection problem has been solved already, I realized that even if one connects randomly we end up with a fully connected group of networks. There are biases, which may would cause some problem if there were few connections per node and a large number of nodes, but that is not the case and the biggest bias(nodes tend to cluster around regional nodes) could be solved quickly by a simple algorithm prioritizing farther IP addresses, even if with few connections by node. So… what is the next challenge to create the exchange of:
There is good info and bad info, how can I make good info travel as fast as possible to as many nodes as possible while limiting the spread of bad info? My next challenge. If solved, will greatly improve my living standard(when implemented).
I was having trouble making my server/client(it is going to be a node) communicate with firefox(for purposes of testing), I wasted some time learning what “hole punching” is and even thought I was going to have an uphill battle with this issue. Alas, VB has a TcpListener with the following function: AllowNatTraversal. All you need to do is to bind your external IP address on your TcpListener and then call AllowNatTraversal(True). Done. You can now receive stuff from the client 😀
Thank you Bill Gates.
Now, on a side note, how do they do it? Last time I checked “hole punching” required a non-firewalled server and didn’t work very well trough TCP. Hmmmm. Perhaps some other method of NAT traversing? I hope I’m not building something that will rely on a centralized server. It would kill the point of having P2P.