[p2p-hackers] what would you like to see most in a p2p social network?
Pierre St Juste
ptony82 at gmail.com
Tue Jan 18 00:17:04 PST 2011
Currently when you run SocialVPN, you will connect to our global
planetlab pool (essentially our bootstrap nodes). I would say that
success rate is pretty high (95% to 99.999%, I think we have some
numbers in our papers) if UDP is allowed on the network. We do support
TCP as well, but not TCP NAT traversal (that is hard), I am not sure of
success rate if you are on TCP only network. And of course, success rate
is zero if you are behind a corporate firewall that only allows specific
ports such as HTTP or SSH. Planetlab and most ISPs do not let users host
services on these popular ports. I think our use of Planetlab (hence a
static list of bootstrap nodes) made our solution much easier to
implement. We also have a feature which allows peers to use the XMPP's
STUN support to facilitate direct connections without having to depend
on Planetlab.
On Mon, 2011-01-17 at 23:58 -0800, David Barrett wrote:
> Oh, is it possible to connect to the SocialVPN overlay on PlanetLab via
> the Internet? Neat! As for the STUN approach, that sounds about right
> -- have you measured the actual success rate of peers attempting to
> connect with it? I know a few people on the list (including me) have
> spent *A LOT* of energy on this topic, and it's really freakin' hard,
> but super awesome.
>
> -david
>
> On 01/17/2011 11:49 PM, Pierre St Juste wrote:
> > Here's some explanation about distributed NAT traversal.
> >
> > We currently run a structured P2P overlay on Planetlab, when you run
> > SocialVPN you join that structured overlay, we usually have about 500 -
> > 600 nodes running. If node A wants to connect to node B, the following
> > happens:
> >
> > 1 - node A sends a ConnectToMe (CTM) message to node B by using node B's
> > P2P address (160-bit randomly chosen address).
> >
> > 2 - The CTM message contains node A's public IP and UDP port.
> >
> > 3 - Node B replies through the overlay with his public IP and UDP port
> > and simultaneous sends a UDP packet to node A's public IP and port.
> >
> > 4. When node A receives the reply with node B's IP and UDP port, node A
> > sends a UDP packet to node B's public IP and UDP port.
> >
> > 5. If you have a friendly NAT (not symmetric), then node A's packet will
> > make it to node B's machine since node B has already sent a packet to
> > that IP and port.
> >
> > We call it a distributed STUN server because the Brunet P2P library
> > allows for discovery of one's public IP address and port and it also
> > provides an all-to-all messaging layer needed to signal the start of UDP
> > hole punching.
> >
> > As we all know, direct P2P communication is not always possible, in this
> > case, a node that is reachable by both parties is chosen as the relay
> > nodes and peers communicate through that.
> >
> > Finally our NAT traversal is a bit slower than regular STUN because the
> > initial message is routed through a structured overlay that takes log(N)
> > hops on average, but you may have dropped UDP packets and retries, so it
> > may take milliseconds or a few seconds to set up direct P2P connection.
> >
> > These papers explain in more detail
> >
> > http://byron.acis.ufl.edu/papers/ipdps06ipop.pdf
> >
> > http://byron.acis.ufl.edu/papers/hpdc145-ganguly.pdf
> >
> > http://byron.acis.ufl.edu/papers/cops08.pdf
> >
> > Hope this helps. I encourage anyone interesting to download SocialVPN
> > and try it out, there is windows installer and debian package. It
> > currently works with GoogleChat or by emailing each other your P2P address.
> >
> > On Tue, Jan 18, 2011 at 12:49 AM, David Barrett <dbarrett at quinthar.com
> > <mailto:dbarrett at quinthar.com>> wrote:
> >
> > Wow, this looks really fantastic. I hadn't followed its progress but it
> > sounds like it's come a long way really fast. I'd love to hear more
> > about its distributed STUN service and NAT traversal. Do you have any
> > data on its effectiveness, perhaps expressed as the likelihood that two
> > arbitrary nodes will be able to connect directly via the internet? Is
> > there a TURN or other relay service available as a fallback? Thanks!
> >
> > -david
> >
> > On 01/17/2011 08:13 PM, Pierre St Juste wrote:
> > > I would like to point out the SocialVPN project
> > >
> > > http://socialvpn.org
> > >
> > > It is basically a P2P VPN which creates direct encrypted tunnels to
> > > friends. It currently uses the XMPP protocol for friend discovery and
> > > public key exchange. This VPN thus creates a social graph where edges
> > > are IP links. This infrastructure can be used as an enabler for many
> > > other social services. Here are a few examples
> > >
> > > 1 - Instead of using Skype, you can use Ekiga with Avahi, Avahi
> > > extension for Ekiga will discover online friends through
> > multicast over
> > > the social virtual private network, you can then place SIP call
> > directly
> > > over IP link.
> > >
> > > 2. For instant messaging, you can use Empathy or Pidgin with
> > > Bonjour/Avahi support, as concept as above.
> > >
> > > 3. For video stream, you can stream a video over HTTP or RTP
> > using VLC
> > > and your friends can connect directly.
> > >
> > > 4. For social networking, you can run a wordpress blog locally
> > and have
> > > your friends connect to that, or you can write an social networking
> > > application that communicates with friends over SocialVPN using
> > Berkeley
> > > sockets API instead of having to deal with building P2P library that
> > > deals with NAT traversal, peer search and so on.
> > >
> > > 5. All data sent between peers is encrypted and authenticated,
> > basically
> > > the same idea behind IPSec if you support PKI certificate exchanges.
> > >
> > > One of the hardest thing about building social P2P systems is having
> > > with a user-friendly way to bootstrap these social links (or
> > Darknets).
> > > SocialVPN makes that step trivial so that developers can focus
> > more on
> > > making cool apps versus figuring out how to traverse NATs.
> > >
> > > I hope this helps.
> > >
> > > On Mon, 2011-01-17 at 18:57 -0800, David Barrett wrote:
> > >> I'd suggest first figuring out why someone would pick a P2P social
> > >> network over Facebook, from a perspective of legitimate
> > functionality
> > >> rather than just privacy (which as Facebook has demonstrated,
> > isn't a
> > >> killer feature). I'd suggest really emphasizing the fact that with
> > >> P2P-Book, there is no "uploading" photos or videos: you can
> > share entire
> > >> folders of files, videos, documents, or whatever and their instantly
> > >> available to your friends -- without first uploading them
> > somewhere else.
> > >>
> > >> Furthermore, emphasize that you're not sharing *copies* of the
> > videos,
> > >> songs, and photos -- you're sharing the originals: change the
> > original
> > >> (crop, reorient, touch up, tag with metadata, etc) and its
> > automatically
> > >> updated.
> > >>
> > >> -david
> > >>
> > >> On 01/17/2011 12:51 PM, Jan DomaEski wrote:
> > >>> Hey Michael,
> > >>>
> > >>> Thanks for the comments, they're helpful.
> > >>>
> > >>> A lot of this boils down to having two (or more) 'sides' of
> > self. One
> > >>> for general public, others for the rest; this is doable.
> > >>>
> > >>> Grudge-friendly and jackboot resistant, in ideal world, comes
> > with the
> > >>> 'distributed' and 'secure+encrypted'. But sure, seems to have
> > been lost
> > >>> in the implementation of at least one social network i can
> > think of.
> > >>>
> > >>> As to the grandmother compatibility, at least to me, this is not
> > >>> absolutely essential at first.
> > >>>
> > >>> Cherio, Jan
> > >>>
> > >>> 2011/1/16 Michael Rogers<m-- at gmx.com
> > <mailto:m-- at gmx.com><mailto:m-- at gmx.com <mailto:m-- at gmx.com>>>
> > >>>
> > >>> Hi Jan,
> > >>>
> > >>> Here's a quick list of features I'd like to see in any
> > social network
> > >>> (not just P2P ones):
> > >>>
> > >>> * Grandmother-compatible. It should be possible to be
> > friends with my
> > >>> grandmother without her seeing the photo of the time I did
> > that thing
> > >>> with the grapes.
> > >>>
> > >>> * Alcohol-compatible. There should be something as easy to
> > remember as
> > >>> an email address that I can give to random people I
> > befriend while
> > >>> drunk. And if they look me up the next day, there should
> > be a polite way
> > >>> of not responding.
> > >>>
> > >>> * Schoolproof. People should not be able to find my
> > profile just because
> > >>> we went to school together 20 years ago. Similarly, people
> > should not be
> > >>> able to find my profile just because I applied for a job
> > at their
> > >>> company (or at least, they shouldn't be able to see the
> > photo of the
> > >>> thing with the grapes).
> > >>>
> > >>> * Grudge-friendly. It should be possible to move my data
> > from one
> > >>> provider to another when the current provider accuses me
> > of lacking
> > >>> integrity because I don't want my grandmother to see the
> > photo etc etc.
> > >>>
> > >>> * Jackboot-resistant. The Tunisian government should not
> > be able to
> > >>> steal my password by setting up a fake login page.
> > >>>
> > >>> Cheers,
> > >>> Michael
> > >>>
> > >>> On 15/01/11 20:35, Jan DomaEski wrote:
> > >>> > Hello everybody out there interested in p2p social networking,
> > >>> >
> > >>> > I'm doing a (free) p2p social network (just a hobby, wonbt
> > be big and
> > >>> > professional like diaspora). It has been in the works since
> > >>> summer, and
> > >>> > begins to get some shape. I'd like any feedback on things people
> > >>> > like/dislike in the idea of a p2p social network and how this is
> > >>> solved
> > >>> > by the little toy.
> > >>> >
> > >>> > I've currently written it in java, netty handles the networking,
> > >>> Qt is
> > >>> > used for GUI. Some yml for configs and db4o for storage.
> > Non-blocking
> > >>> > xml (XMPP) parser is a missing puzzle. The app has been run
> > only on a
> > >>> > single machine, but it's already practical and I'd like to
> > know what
> > >>> > features most people would want. Any suggestions are
> > welcome, but I
> > >>> > wonbt promise Ibll implement them :]
> > >>> >
> > >>> > Two demos (the top one is new) below, gitorious and blog
> > links inside
> > >>> > http://www.youtube.com/watch?v=0rAwCsYt16w
> > >>> > http://www.youtube.com/watch?v=K1dujrhGvBQ
> > >>> >
> > >>> > Jan (jan.domanski at new.ox.ac.uk
> > <mailto:jan.domanski at new.ox.ac.uk><mailto:jan.domanski at new.ox.ac.uk
> > <mailto:jan.domanski at new.ox.ac.uk>>
> > >>> <mailto:jan.domanski at new.ox.ac.uk
> > <mailto:jan.domanski at new.ox.ac.uk><mailto:jan.domanski at new.ox.ac.uk
> > <mailto:jan.domanski at new.ox.ac.uk>>>)
> > >>> >
> > >>> > PS. Yes - it's all my own work and done as a scientist not a
> > >>> programmer,
> > >>> > which has terrible implications for code ;)
> > >>> >
> > >>> >
> > >>> >
> > >>> > _______________________________________________
> > >>> > p2p-hackers mailing list
> > >>> > p2p-hackers at lists.zooko.com
> > <mailto:p2p-hackers at lists.zooko.com><mailto:p2p-hackers at lists.zooko.com
> > <mailto:p2p-hackers at lists.zooko.com>>
> > >>> > http://lists.zooko.com/mailman/listinfo/p2p-hackers
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> _______________________________________________
> > >>> p2p-hackers mailing list
> > >>> p2p-hackers at lists.zooko.com <mailto:p2p-hackers at lists.zooko.com>
> > >>> http://lists.zooko.com/mailman/listinfo/p2p-hackers
> > >> _______________________________________________
> > >> p2p-hackers mailing list
> > >> p2p-hackers at lists.zooko.com <mailto:p2p-hackers at lists.zooko.com>
> > >> http://lists.zooko.com/mailman/listinfo/p2p-hackers
> > >
> > >
> > > _______________________________________________
> > > p2p-hackers mailing list
> > > p2p-hackers at lists.zooko.com <mailto:p2p-hackers at lists.zooko.com>
> > > http://lists.zooko.com/mailman/listinfo/p2p-hackers
> > _______________________________________________
> > p2p-hackers mailing list
> > p2p-hackers at lists.zooko.com <mailto:p2p-hackers at lists.zooko.com>
> > http://lists.zooko.com/mailman/listinfo/p2p-hackers
> >
> >
> >
> >
> > --
> > Pierre St Juste
> >
> >
> >
> > _______________________________________________
> > p2p-hackers mailing list
> > p2p-hackers at lists.zooko.com
> > http://lists.zooko.com/mailman/listinfo/p2p-hackers
> _______________________________________________
> p2p-hackers mailing list
> p2p-hackers at lists.zooko.com
> http://lists.zooko.com/mailman/listinfo/p2p-hackers
_______________________________________________
p2p-hackers mailing list
p2p-hackers at lists.zooko.com
http://lists.zooko.com/mailman/listinfo/p2p-hackers
----- End forwarded message -----
--
Eugen* Leitl <a href="http://leitl.org">leitl</a> http://leitl.org
______________________________________________________________
ICBM: 48.07100, 11.36820 http://www.ativel.com http://postbiota.org
8B29F6BE: 099D 78BA 2FD3 B014 B08A 7779 75B0 2443 8B29 F6BE
More information about the Testlist
mailing list