Mnet (peer-to-peer network)

Mnet is software to run a distributed peer-to-peer distributed data store for file sharing purpose.

Mnet
Stable release
0.6.2[1] / 2004
Preview release
0.7[2] / 2005
Written inPython, with modules in C and C++[3]
PlatformWindows, Linux, Mac OS X, FreeBSD
Available inEnglish
TypeAnonymous P2P

Mnet is a fork of the software MojoNation.

Evil Geniuses for a Better Tomorrow

Evil Geniuses for a Better Tomorrow was a startup company founded by Jim McCoy et al. to create MojoNation.[4] The company's name comes from the game Illuminati by Steve Jackson Games.

After several years, the company ran out of money and laid off most of its employees; Bram Cohen went on to create BitTorrent and Zooko Wilcox-O'Hearn created Mnet out of MojoNation's source code and contributed later to the Tahoe-LAFS.

Mojonation ceased operation as a commercial enterprise in February 2002, when it was replaced by the noncommercial Mnet project.[5]

MojoNation

At the time it was first publicly released, MojoNation included several notable features:

Evil Geniuses Transport Protocol (EGTP)

EGTP is a general-purpose P2P messaging protocol, comparable in scope to JXTA, but it was released in a working state before Jxta was even announced. EGTP provides persistent identities (based on public-key cryptography) for nodes, end-to-end encryption, message relaying to get through NATs and firewalls, pluggable transports[6] (called "communication strategies" or "commstrats" for short), and an efficient marshaling format (mencoding, similar to the bencoding later used in BitTorrent). EGTP allows arbitrary protocols to be built on top of it; the MojoNation application was composed of several request-response services (described below) that ran on EGTP.

Mojo Economy

Mojo was a digital cash currency that aimed to provide attack resistance and load balancing in a fully distributed and incentive-compatible way (see Agoric computing). Every pair of MojoNation nodes maintained a relative credit balance, with every EGTP request transferring some Mojo credit from the sender to the receiver. Once the absolute value of the debt between two nodes exceeded the size of a Mojo token, the side with the negative balance would transfer a token to the other, clearing out the debt. Because transferring a token was a relatively heavyweight event, tokens were worth 20,000 (?) Mojo. A MojoNation component called the token server acted as the mint, allowing MojoNation nodes to securely transfer Mojo.

In early versions of MojoNation, users were required to set prices for any services their node provided. Most users had no idea how to choose prices, so the Mojo layer was rewritten to use a second-price rolling auction. Each node maintained a queue of incoming requests that had not yet been processed, sorted by a bid field contained in each request. Requests were serviced in order, from highest to lowest bids. This shifted the burden of pricing decisions from servers to clients: each user could set a price he was willing to pay for services, and his node would offer that bid in outgoing requests. This scheme was intended to create a simple feedback loop: if the system is responding slowly, increase your bid and if the system is responding quickly, decrease it.

File Publishing System

The only application built on the EGTP/Mojo framework was a distributed file publishing system. Users could publish files, which would be stored on other MojoNation nodes. During the publishing process, the file was encrypted and redundantly encoded into many small blocks using an information dispersal algorithm. These blocks were then uploaded to any nodes that were running the "block server" service. Publishing a file generated a unique identifier (similar to a Freenet SSK) that was required to download and decrypt the file. If the user wished a file to be publicly available, he could send the identifier to a "content tracker" service.

Downloading files is the reverse of the publishing process: a user either sends a query to a content tracker and gets a list of identifiers in response or obtains a file identifier out of band, then asks block servers for the appropriate blocks, and then inverts the IDA and encryption algorithms to recover the original file.

Unlike file sharing systems (which never send any data over the network unless it has been requested), most file publishing systems (with the exception of BitTorrent) have not attracted large numbers of users.

gollark: That way, guaranteed slightly desirable thing.
gollark: I'm using a siyat.
gollark: You can just read the description.
gollark: <:dcegg:325264593536679937> ➡ <:broccoli:368307291243544576> or 🗡
gollark: It will be an example for the others.

See also

References

Further reading


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.