I've just read the whitepaper and my brain is hurting now!
It also took some brain work to write
Seems like a great project and I will try to get up to speed with this.
It seems that the whole source code is in javascript and the database used is sqlite, correct?
Correct, it is in javascript (or rather node.js), and for database we have a choice between sqlite and mysql.
The role of the witnesses is interesting. Could you elaborate on the requirements to become one?
Anyone can become a witness, if he is chosen by users. The users would expect from a witness to waive his anonymity, at a minimum. Then, among the contenders, users are interested to choose the ones with good reputation, integrity, and long term interest in the health of the network.
Users include the list of their favorite witnesses in every storage unit they post to the network, provided that the list is similar enough to the lists of other users who posted recently. This last requirement results in near-identity of witness lists posted by different users and slow evolution of an "average" observed witness list. It also means that any major change to the "average" witness list is impossible without approval of the majority of the present witnesses, one implication of this is that the witness list is immune to sybil attacks.