circle-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [circle] scraping off the cruft


From: Jiri Baum
Subject: Re: [circle] scraping off the cruft
Date: Sat, 21 Jan 2006 11:42:57 +1100
User-agent: KMail/1.7.2

Hello,

Matthew Wilson:
> I'd like to get more involved, but the problem I have is that I don't
> *really* understand how the Circle should work.  

Well, the basic algorithm is implemented, so you can just treat it as a black 
box that works more or less like python's "dictionary" type... the details of 
the DHT are interesting, but not very important most of the time.

More important are the secondary issues that make circle not very live:

* The political statement it was intended to make is passé.

* It works poorly with NAT.

* It clashes with smart firewalls (it needs to receive packets from hosts it's 
never talked to before).

* At a key time in its growth, the key developer had to take a leave of 
absence.

At the height of its popularity, the circle had perhaps two dozen users, with 
maybe half a dozen on-line at times. Currently, I'm not even sure there is a 
(public) network out there.

> Is there anyone generous enough to explain the algorithms in simple
> english?

As I wrote above, from the programmer's point of view the DHT works more or 
less like the dictionary type: it stores (key, value) pairs. The main 
difference is that it can store several values with the same key.

The nodes and all the keys are arranged in a circle. The nodes pick their 
positions at random, the keys in a fixed way so you can find them again. Each 
node is responsible for all the keys to its right, up to the next node, and 
stores the associated values.

To store a (key, value) pair, your node finds the position of the key on the 
circle, and asks the nearest node to the left of that position to keep it.

To retrieve, your node finds the position of the key on the circle, and asks 
the nearest node to the left of that position for the corresponding value(s).

To avoid everyone storing the complete (potentially large) list of nodes, each 
node instead stores just a few, concentrating more on its immediate 
neighbourhood on the circle. When looking for a node (based on its position 
or on the position of a key), you contact the nearest node to that position 
that you know of, and ask it for further directions; repeat as necessary.


Jiri
-- 
Jiri Baum <address@hidden>                   http://www.baum.com.au/~jiri
  MAT LinuxPLC project --- http://mat.sf.net --- Machine Automation Tools




reply via email to

[Prev in Thread] Current Thread [Next in Thread]