Musings about Coding, Business and other Geek Stuff Live and Direct from somewhere on the planet
December 04, 2003
P2P Sockets

Just saw Brad GNUbergs article on O’Reilly’s OnJava about P2PSockets

P2PSockets is a socket layer ontop of JXTA, Sun’s Open Source P2P infrastructure. What this means is that you can convert just about any TCP based application into a distributed P2P application, with very little work. I like it. The author has an example using Jetty and JSPWiki

Essentially all you have to do is add one line to log in to a JXTA Peer Group and then replace your Socket constructors with P2PSockets inerhited variants.

This is a very simple elegant approach. I have always had planned a JXTA based plumbing infrastructure for NeuClear somewhere around version 1.1, with this I should be able to get it implemented more arount 1.0. Thus decentrelizing it a lot quicker than I had originally hoped for.

Posted by pelleb at December 04, 2003 10:08 AM
This entry was posted in the following Categories: Java
Comments

If you have any questions during your porting process feel free to email me.

What you are doing with NeuClear is very powerful. Currently the distributed DNS in P2P Sockets is not secure; peers resolve "domain" names for each other, but it would be trivial to spoof the system. I've been looking for someone who is interested in tackling the problem of how to create a distributed DNS that is human-friendly (i.e. has nice names like "www.nike.laborpolicy" rather than 128-bit hashed values, like Freenet), is reasonably secure (i.e. we don't need military grade security), and is reasonably decentralized (its okay to centralize some small bits that don't require too many resources, such as secure cryptographic timestamping servers). Check out the Wiki page at http://wiki.java.net/bin/view/Jxta/DisDNS to see some discussion of all this.

Posted by: Brad Neuberg on December 4, 2003 03:40 PM

If you have any questions during your porting process feel free to email me.

What you are doing with NeuClear is very powerful. Currently the distributed DNS in P2P Sockets is not secure; peers resolve "domain" names for each other, but it would be trivial to spoof the system. I've been looking for someone who is interested in tackling the problem of how to create a distributed DNS that is human-friendly (i.e. has nice names like "www.nike.laborpolicy" rather than 128-bit hashed values, like Freenet), is reasonably secure (i.e. we don't need military grade security), and is reasonably decentralized (its okay to centralize some small bits that don't require too many resources, such as secure cryptographic timestamping servers). Check out the Wiki page at http://wiki.java.net/bin/view/Jxta/DisDNS to see some discussion of all this.

Posted by: Brad Neuberg on December 4, 2003 03:41 PM

Wow, the more I read over NeuClear the more I can see synergies. P2P Sockets is really just a portion of Paper Airplane (http://www.paperairplane.us) modularized into a seperate piece.

Paper Airplane is a browser plugin that empowers people to easily create collaborative communities, known as Paper Airplane Groups, without setting up servers or spending money. It does this by integrating a web server into the browser itself, including tools to create collaborative online communities that are stored on the machine. Paper Airplane Groups are stored locally on a user's machine. A peer-to-peer network is created between all of the Paper Airplane nodes that are running in order to resolve group names, reach normally unreachable peers due to firewalls or NAT devices, and to replicate content.

Paper Airplane is still in development. The first version is basicly simply a distributed WikiWiki (based on JSPWiki), plus a nice toolbar-baed GUI, plus the distributed DNS built into P2P Sockets.

Being able to create secure, distributed monikers/pseudo-nyms for both user's and Paper Airplane Groups would be extremely powerful, as it would open P2P Sockets into applications that need more security, and might begin to create a valid alternative to the semi-centralized DNS system controlled by ICANN. Imagine being able to have a generic, P2P namespace scaffolding that can resolve arbitrary monikers in a reasonably secure and human-friendly way; this scaffolding would be reasonably distributed, so it wouldn't have any capital costs needed to maintain it, and it could be generic, so that the "domain" name being resolved could be a phone number for VoIP; it could be a username for instant messaging/single-signon across Paper Airplane Groups; it could be a true domain name to resolve P2P web sites, etc. After the name was resolved JXTA, Gnutella, P2P Sockets, etc. could be used to "contact" or retrieve the resource.

It sounds like you've got the skills needed to make this vision a reality.

Posted by: Brad Neuberg on December 4, 2003 03:54 PM
Post a comment
Name:


Email Address:


URL:


Comments:


Remember info?