AnarchNet

This page was last modified on 1 April 2012, at 20:20. This page has been accessed 2,986 times.

From RBOSE

Jump to: navigation, search

Compass.png
AnarchNet Project


AnarchNet

AnarchNet
Developer(s) nairboon
PMS anarchnet
Written in C++
Operating system Cross-platform
License GPL
SCM Git
Repository gitorious




Contents

About

AnarchNet is a P2P-framework based on anDB a versioned database with p2p replication.

Status

AnarchNet is under heavy development, a dev-preview will be released soon.

Field of application

  • open & collaborative problem solving (Syner)
  • secure chat (alternative to IRC)
  • distributed message boards (alternative to webforum)
  • encyclopedias without discussions about the relevance of knowledge (alternative to wikipedia)
  • virtual worlds with multiple realities (alternative to secondlife)
  • filesharing

Core problem

Computing power [1] and storage capacity [2] are growing rapidly, while most of todays communication (internet) goes over huge centralized computer systems, which is energy-inefficient, insecure, unscalable and vulnerable by providing a single point of failure, short unsustainable. These issues can be solved with p2p technology, the problem is that there are tons of incompatible p2p-algorithms, anarchNet tries to create some basic rules for a anarchic, true decentralized and free internet.

Roadmap

Versions

Dev Alpha

pms Working interface, all non p2p functions useable

#35 [AnarchNet] Object System by nairboon
#45 [AnarchNet] daemon mode broken by nairboon
#183 [AnarchNet] localstorage for binary by nairboon
#184 [AnarchNet] localstorage for plaintext by nairboon

Public Alpha

pms

#47 [AnarchNet] linux .deb package by nairboon
#171 [AnarchNet] framework for publish / subscribe over the dht by nairboon
#182 [AnarchNet] bootstrap system by nairboon
#186 [AnarchNet] session module by nairboon
#187 [AnarchNet] hello interface by nairboon
#188 [AnarchNet] use boost by nairboon
#206 [AnarchNet] use a flexible logger by nairboon

Short-term goal

  1. Evaluate p2p algorithms for
    • storage
    • routing
    • messaging
    • trust
    • publish/subscribe
    • search
    • streaming/multicast
  2. pick best implementations and glue together
  3. write tests
    • functional
    • p2p simulator
  4. deploy

Candidates

  • Gnunet [3]
    • Kademlia DHT
    • excess-based economic model
    • Anonymity
    • 0.9.2 released[4]
  • Maidsafe-DHT [5]
    • Kademlia DHT
    • under heavy development, not yet useable
  • PeerStreamer [6]

anDaemon

With this daemon multiple application can access the network at the same time over the same identity. Also developers do not have to deal with bootstrapping, keywords/tags etc. A C++ library is provided to communicate with the daemon.

anBrowser

anBrowser provides a framework & mini browser desktop for rich internet applications which are connected through JSON with the daemon. This allows easy & rapide development with JavaScript using new technologies like HTML5.

Implementation

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.

The reference implementation should run on Linux, Mac and Windoof. It will be built upon the following technologies.

A daemon is used to ensure that each client ("server"/"PC") only joins once per attached network. User applications communicate with the daemon over the AnarchNet library. The daemon is responsible for:

  • Config to manage all files and directories
  • Identity Manager means it creates/saves your digital signature and those of your friends
  • Connection Manager where everything comes together, here are the data sent over the different p2p networks
    • Network Driver Manager loads through plugins different p2p-drivers, this allows support for all p2p algorithms such as pastry, chord, gnutella ...

The library communicates with the daemon over RPC on sockets. It could be wrapped theoretically and used with other languages such as Python.

anarchNet comes with a standard application called "anarchNet browser" which can be used as a communication tool for the end user and as an example for developers. The webapplication is compatible with webkit and gecko, it'll comunicate over JSON to the anarchNet library and uses HTML5/JavaScript as user interface. Built-in applications could be:

  • Private & Group Chat, similar to IRC
Future applications:
  • Self evolving virtual worlds like SecondLife
  • RBA
  • Audio Conferences like Mumble
  • Video Conferences
  • Syngery
  • Open Individuals

Long-term goal

The AnarchNet could be an alternative to the current not so decentralized internet (ARPANET), which is controlled by the ICANN. [7] It's a design which is open to technological advance while providing backwards compatibility, it shall interconnects multiple p2p networks.


Structure

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.

Notes

  1. http://www.intel.com/technology/mooreslaw/index.htm
  2. http://en.wikipedia.org/wiki/File:Hard_drive_capacity_over_time.svg
  3. https://gnunet.org/
  4. https://gnunet.org/gnunet092
  5. https://github.com/maidsafe/MaidSafe-DHT
  6. http://peerstreamer.org/content/peerstreamer
  7. http://netsukuku.freaknet.org/