decentralised centers
Tue 14 January 2014
[caption id="" align="alignright" width="350"] Multiple centers (Photo credit: Wikipedia)[/caption]
The Internet should resist to nuclear attacks. I don't know if this is urban legend or real specification. The result is:
- any service can (and should) be decentralised
- infrastructure is quite simple, end user devices have to be smart
All that can be seen from historical RFC. All services that must be centralised (e.g. DNS) are distributed. The usual mecanisms to decentralize a service are:
- delegation (e.g. DNS)
- center mulitiplication (e.g. mail)
- P2P protocols (e.g. Kadmelia)
This mecanisms allow the services to be able to run even if any part of the Internet is shut down. Even the DNS whose single point of failure is the root server cannot be shut down easily (thanks to anycast mecanisms).
Another internet specificity is the genericity of internet protocol. It is as generic as a box sent by mail. you can. The internet's mission is to take some IP packet in a place and deliver it elsewhere. This way, if you want to transport something new, you can put what you want in this box, just telling your correspodant and no one else. No need to update the network even if many new services are run on it. Quite useful for reactivity. It also means anyone can create a software generating a receiving IP packets. To ease that stuff, the IETF invented protocols allowing end user's device to add some basic services (integrity, order, errors detection, and other guarantees) so that you need not to reinvent the wheel.
That's why I consider decentralized alternatives to centered services. Note that there are mainly three way to get a decentralized service:
- peer to peer architecture: no distinction between client and server, each peer send and receive requests
- delegation: the resources are centralized and distributed in a tree, each sub-tree's operation can be delegate by the parent node
- multiple centers: anyone can run a server, all servers have to communicate (directly or not) and each end user connect to the server of its choice
As this is just a reminder for me, I won't go in detail for each solution. I must try them before. Note that this list is not exhaustive (this is not possible as many new services are created every day)
service | centralized alternatives | decentralized alternatives |
microblogging | twister | |
social networking | facebook, linkedin, Xing | diaspora |
chat and VoIP | skype | SIP, p2pSIP, XMPP, IRC |
file sharing | dropbox, FTP | DHT-based file sharing (e.g. bittorent) |
packages retrieval | direct download (FTP, HTTP) | apt-p2p |
web | http | freenet, gnunet |
financial transaction | paypal | bitcoin, litecoin |
multiplayer gaming | steam | mediator |
search engine | google, bing, yahoo | yacy, seeks |
code versionning/distribution | subversion, CVS | GIT, bazaar |
Notes:
- P2P architectures are usually based on DHT
- P2P architecture used a centralised bootstrap mecanism (e.g. torrent tracker, list of know avalable hosts,...). This is only used for bootstrapping. Without this mecanism, the network still work, but no new peer can join it.
- the multiple servers architecture tend to be centralised as many users trust a small number of actors to run servers (e.g. number of gmail and yahoo mail account vs number of people running its own mail server)
- some P2P architecture tend to be centralised according more importance to one node (e.g. github)
- I already spoke about search engines
(Non-)related articles
Twister: p2p micro-blogging with accounts on the blockchain and messages in DHT
Twister: Anonymous, private BtC/DHT/Torrent P2P microblogging tool
Decentralise ID Generation
SIP Trunking: A Primer
Everything you ever wanted to know about Bit Torrent
- ` <http://esquisses.clochix.net/2014/07/11/divers/>`__Diversifions
Related articles (or not):
Category: reflections Tagged: Alternative Decentralization Internet Protocol Peer-to-peer Protocols Request for Comments tools reflections