[p2p-hackers] Questions about Overnet
Enzo Michelangeli
em at em.no-ip.com
Mon Mar 22 09:52:44 UTC 2004
----- Original Message -----
From: "Paul Harrison" <Paul.Harrison at infotech.monash.edu.au>
To: "Peer-to-peer development." <p2p-hackers at zgp.org>
Sent: Sunday, March 21, 2004 1:07 PM
[...]
> Overnet is based on Kademlia, a Distributed Hash-Table. So, assuming
> it's a robust implementation, searches will be exhaustive and content
> will be visible as soon as it is published.
Right, but how soon is "soon"? 5 seconds, 5 minutes, half hour... And what
happens when the node(s) handling the section of DHT that stores that
piece of information go(es) offline? I'd like to pick the brain of some
Overnet, eMule or mldonkey developer (or at least "power user" :-) ), as
the protocol itself is very poorly documented - also because it was
originally closed source / closed specs, and the "Kad" part of eMule 0.4x
and the mldonkey implementation where based on reverse-engineering.
BTW, what is the answer to my "publishing latency and persistence"
questions in Circle's case? And how would you compare Chord to Kademlia?
> It's certainly possible to build presence services and directories on
> top of a DHT. For example, Circle (thecircle.org.au) has an instant
> messaging system built on top of a DHT (including the ability to
> search by name or cryptographic id, and to publish a request to be
> notified when a particular person comes online... basically
> everything a normal IM system does).
I had found about Circle thanks to the infoanarchy.org wiki, and I like
its architecture (including the separation between daemon and GUI, which
would represent a must for my intended use, and the addition of audio and
video communications through GnomeMeeting); but I've got the impression
that it's still in a quite experimental phase, with specs subject to
change, and efficiency temporarily sacrificed to rapid prototyping (BTW,
to speed up the crypto part while preserving multiplatform capability you
might consider using the OpenSSL Python wrappers at
http://www.freenet.org.nz/python/SSLCrypto/ ).
Another reason why I'd like to start with Overnet is its very large users
base (which includes also eMule and mldonkey users). Besides, Overnet
supports a "firewalled mode" (not yet implemented in eMule) for leaf nodes
that can't directly participate in the Kamdelia exchange of UDP packets
but, from what I understand, can still use "non-firewalled" nodes as a
sort of proxy, using only outbound TCP connections. This might be ideal
for mobile nodes based on GPRS or UMTS, even if not firewalled: per-packet
billing and the blizzard of UDP packets exchanged by full-fledged Overnet
nodes make a dangerous combination...
Rather than writing code to handle Overnet's Kamdelia protocol directly, I
was thinking of relying, at least initially, upon an existing
Overnet-capable daemon (such as overnetclc or mlnet) controlled through
the "GUI TCP connection". From what I can understand in the source code of
the Circle (file: plugins/donkey.py), you guys do something similar for
gaining access to the eDonkey/Overnet network. Anyway, if the
"directory/presence over DHT" abstraction layer is clean enough, it should
be possible to switch, at a later time, to a different DHT implementation
with relatively little effort.
Cheers --
Enzo
More information about the P2p-hackers
mailing list