From RBOSE
|
AnarchNet Project
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
#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
- Evaluate p2p algorithms for
- storage
- routing
- messaging
- trust
- publish/subscribe
- search
- streaming/multicast
- pick best implementations and glue together
- write tests
- functional
- p2p simulator
- 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
The reference implementation should run on Linux, Mac and Windoof. It will be built upon the following technologies.
- Boost (program_options, filesystem, thread, asio)
- Google protobuf
- Google Test
- Glog logging
- protobuf-jerpc rpc
- pugg plugin loading (modified)
- Parannus frontend
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
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
Notes
- ↑ http://www.intel.com/technology/mooreslaw/index.htm
- ↑ http://en.wikipedia.org/wiki/File:Hard_drive_capacity_over_time.svg
- ↑ https://gnunet.org/
- ↑ https://gnunet.org/gnunet092
- ↑ https://github.com/maidsafe/MaidSafe-DHT
- ↑ http://peerstreamer.org/content/peerstreamer
- ↑ http://netsukuku.freaknet.org/
