On Wednesday 26 April 2006 00:05, Matthew Toseland wrote: > > > - ARKs. If you can connect to one node, it can tell your other peers > > > what your new address is via an Address Resolution Key or similar > > > mechanism. > > > > Sounds interesting. We should discuss this in more detail. Could you > > please describe was is already available and what should be implemented. > > ARKs were once implemented in 0.5, and didn't work (because routing > didn't work). The idea is simply that you have an updatable key > associated with each node, (on 0.7 it would be a USK), which contains > the node's current reference. The identity and pubkey should not change, > but the physical.udp can. When we have connected to the network but > can't connect to all our peers, we look up our neighbour's ARKs (these > are included on their references or are generated from their pubkeys), > to find what their new IP is. This is designed as an in-freenet > substitute for dyndns (which is blocked in China), but obviously doesn't > work if you can't get a single connection up. Sounds interesting. However, I think if I apply for SoC it would be enough if I work on STUN and UPnP.
> > > > Now, with regards to STUN, this is a mechanism whereby you can contact > > > a well known server to discover your own IP address, and those of any > > > NATs, in order to do hole punching? Note that if you can contact ANY of > > > your peers, you can discover your IP anyway, tell your other peers what > > > your IP is, and connect to them... Nonetheless, STUN support does sound > > > useful (provided that STUN servers are widely deployed, that STUN > > > clients are widely deployed, and that the way Freenet uses it will not > > > distinguish it from other STUN clients). Is it feasible to do this in > > > Java? Does it require raw packets? And is there already a (java) > > > library out there to do it? (Less duplicated code => less bugs)! > > > > STUN does not only tell you your official ip address, instead it also > > tells you what kind of NAT is in-between you and your communication peer. > > This information can be helpful to setup a communication between two > > hosts that are behind NATs. > > That is potentially useful yes; it could tell us that we are on the same > LAN as the node, and we could publish our LAN address to our darknet > peers. I agree. > > > Yes, STUN is easily doable with Java. All you need are UDP packets. I > > already started implementing a STUN library a few month ago because I > > would like to use such a library in another tool. So far, the basic stuff > > is implemented. However, I would like to develop additional features. > > Excellent. There aren't any existing libraries we could use? There are > for UP&P... A few month ago, I was looking for a STUN library. During my search I found one STUN library. The library was a quick hack and unmaintained, so I decided to develop my own STUN library. There are a few UPnP-libraries out there. I think one of my SoC tasks should be to evaluate the different libraries. If a particular library is appropriate (regarding features, sourcecode quality, and license) I should add this library. If I cannot find an appropriate library (probably very unlikely) I should develop my own UPnP-library. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 481 bytes Desc: not available URL: <https://emu.freenetproject.org/pipermail/tech/attachments/20060426/c60fb630/attachment.pgp>
