Clint Heyer pro­jects

Naanou

World’s first dis­trib­uted hashtable-based file­shar­ing sys­tem
Undergrad fi­nal year, 2002.

Naanou was a mas­sive de­sign and cod­ing un­der­tak­ing. In short, it was novel as it was the first sys­tem to of­fer peer-to-peer file shar­ing over a scal­able net­work sub­strate rather than flood-based ap­proaches such as Gnutella which were the norm. Moreover, Naanou made use of some (at the time) re­cent find­ings re­lat­ing to hu­man be­hav­iour and al­tru­is­tic pun­ish­ment, in or­der to im­prove peo­ple’s be­hav­iour in a peer-to-peer net­work.

As far as I am aware, Naanou was the world’s first im­ple­men­ta­tion of a dis­trib­uted hashtable sys­tem for file shar­ing.

The main Naanou in­ter­face
Searching for re­sources
An overview of cur­rent trans­fers
Individual trans­fers can be mon­i­tored, vi­su­al­is­ing the swarmed chunk trans­fer process
A sim­ple vi­su­al­i­sa­tion is ava­iable to show net­work ac­tiv­ity, and your own place within the dis­trib­uted hashtable

Here is the ab­stract from the the­sis:

With the in­creased growth of peer-to-peer (P2P) file shar­ing com­mu­ni­tiesm comes emerg­ing prob­lems. Inefficiencies pre­sent in the net­work struc­ture ham­per the scal­a­bil­ity of the com­mu­nity. As the pop­u­la­tion ex­ceeds the net­work’s lim­its, the as­so­ci­ated in­crease in band­width us­age causes a slow­ing of the en­tire net­work and po­ten­tially leads to fail­ure of net­work func­tions. Originally de­signed for only small-scale us­age, many P2P sys­tems are faced with two op­tions: re­design or re­strict net­work growth, thus lim­it­ing the full po­ten­tial of a peer-to-peer net­work.

With the in­tro­duc­tion of a new class of peer-to-peer net­work al­go­r­thim, dis­trib­uted hashta­bles, high per­for­mance and ef­fi­cient scal­a­bil­ity is pos­si­ble, far be­yond the ca­pa­bil­i­ties of ex­ist­ing sys­tems. This the­sis ex­plores util­is­ing a dis­trib­uted hashtable al­go­rithm in the P2P file-sharing do­main. A user-cen­tred de­signed client is in­tro­duced, which of­fers fea­tures avail­able in other file shar­ing clients but pro­vid­ing a sig­nif­i­cantly higher de­gree of scal­a­bil­ity and per­for­mance. The means by which tra­di­tional P2P file shar­ing fea­tures could be mapped to the novel dis­trib­uted hashtable-based sys­tem had not been ex­plored at the com­mence­ment of this work and many im­por­tant is­sues in the area are yet to be ex­plored. The the­sis pre­sents a va­ri­ety of de­signs and an im­ple­men­ta­tion for meta­data-based key pub­lish­ing and search­ing and dis­trib­uted file ex­chang­ing.

Also cen­tral to this work is how on­line com­mu­ni­ties, and in par­tic­u­lar file shar­ing com­mu­ni­ties can achieve a level of self gov­er­nance. An­ti­so­cial be­hav­iours are dis­cussed, as well as the re­sults of two ques­tion­naires con­ducted on the sub­ject. These re­sults demon­strated the level of an­ti­so­cial be­hav­iours pre­sent in file shar­ing com­mu­ni­ties - and how par­tic­i­pants re­act to these be­hav­iours. Altruistic pun­ish­ment is sug­gested as a novel method for re­duc­ing an­ti­so­cial be­hav­iour within a file shar­ing com­mu­nity. Research on the pos­i­tive ef­fects of al­tru­is­tic pun­ish­ment on group co­op­er­a­tion lev­els is dis­cussed, along with how this re­search ap­plies to the P2P do­main. A method for im­ple­ment­ing de­cen­tralised mod­er­a­tion in a dis­trib­uted hashtable sys­tem is in­tro­duced and the se­cu­rity im­pli­ca­tions of the method are ex­plored.

When I started de­sign­ing and build­ing Naanou, it was the first of its kind, a tra­di­tional P2P file­shar­ing sys­tem built on top of a scal­able net­work sub­strate. This sub­strate - Chord - is a dis­trib­uted hashtable net­work, and is highly ef­fi­cient in map­ping a given key to a value stored on the net­work.

Naanou builds on the dis­trib­uted hashtable sub­strace and pro­vides the full gamut of file shar­ing fea­tures users ex­pect. Another prob­lem cur­rently pre­sent in file­shar­ing com­mu­ni­ties - and on­line com­mu­ni­ties in gen­eral - is an­ti­so­cial be­hav­iour. Naanou tries to tackle this us­ing de­cen­tralised peer mod­er­a­tion.

More