Where is the server?

Posted by Romain on

Who shelters Nuit Debout wiki’s server? I use the singular (server and not servers) because no reason make me believe that multiple servers exist. This question may seem like a geek’s problem.

Who owns the server will own the wiki and has its full control. Imagine that a malicious entity possesses the server. This person can delete as they wish wiki’s content or change its layout. Using multiple node’s who independently store the entire wiki prevents such censorship. If one day the wiki’s owner wants to put ads or remove sensitive content, it will take three hours max to restore the entire wiki.

Having a system with a single failure point could also drastically improve its robustness. A flood, an earthquake or a simple electricity shortage are going to disrupt the unique server. The problem evaporates when you store the same information in multiple independent locations. This feature explains in part blockchains’ success. Nodes store the blockchain entirity, this make the system super robust because a single node can regenerate the entire chain. You need to disrupt all nodes at the same time: possible with one node, difficult with two, next to impossible with three.

Last but not least putting a wiki server on a raspberry pi costs next to nothing. The storage space might be the highest budget ~200 euros for a teraoctet. The highest recurring budget is the broadband internet connection (around ~30 euros per month). A rasperry pi with a memory card would be around ~80 euros. It gives around 300 euros of fix initial cost and then 30 euros per month to maintain. Largely lower than any human cost.

Two support for a server. The raspberry Pi weights less. Romain Cazé CC-BY.

I participate to « La nuit du code citoyen » tonight. I’ll suggest to work on a project to distribute wikis with raspberry pis. We could employ an original management for the project, killing two birds with one stone. I’ll propose that the manager would be selected randomly among all participants and to use an impermanent manager that would change after a certain duration.

Thank you for reading! If you have ideas, share them!