CloudKnowledge: introduction

The first version is ready for download and testing. See here for installation instructions and a first tutorial.

Thinking about self-configuring redundant network-storage I figured that there should be versions of the data. And somehow the network has to remember the last version number.

Which led me to the thought of generic cloud knowledge where several servers (don't have to be actual servers) run a small app that stores key-value pairs. These get set and updated via network. And synchronied via network. And clients set and get values via network.

Some more explaination: A client "sets" a value by broadcasting the key and the new value. The servers store this new value. Sometime later a client asks for the value via broadcast. The servers answer by sending key, value and an integer on how old their value is (that way a client can see which value is the newest without the servers having absolute time).
Sometimes also the servers broadcast for answers to see whether their stored value is still correct. And sometimes (especially after start) they ask for all keys to (re-)build their database.

This should allow storage of small or not so small values with redundancy. It doesn't matter if a server closes down unexpectantly, others have the same data. And it doesn't matter if a server is offline for some minutes or hours and doesn't get some updates, the clients see from the answers which one is the best. And servers synchronize automaticly...