-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hello everyone,
Work on the Onion Name System (OnioNS) continues. As stated in the previous status report, my primary focus now is separating the server components. In the last release, a single name server handled everything, making it a centralized system. I have made significant progress in seperating roles such that one machine acts as an authority while another machine returns Records and digital signatures to clients. This reduces the loads and responsibilities and is the key step towards creating a true distributed system.
During implementation, I decided the scrap the Snapshot data structure and its protocol. A Snapshot is basically a server-side short-term cache of Records that is then flushed out periodically. The issue is that in the event that two HSs claim the same name within a short time period of each other and transmit their Records to two different Quorum nodes, when the Snapshots are flushed out it's non-trivial to decide which one took precedence. Snapshots were originally intended to save networking costs and reduce the risk of timing attacks, but in the end I realized that it didn't actually reduce networking costs, and timing attacks are an acceptable risk given Tor's design and threat model. So instead, servers can now subscribe to other servers for network events. If server B is subscribed to server A, when a Record is transmitted from a HS through a Tor circuit to server A, it sends the Record to B immediately. Thus all Quorum nodes will subscribe to all other Quorum nodes, and Mirrors can subscribe to one or more Quorum nodes, and Mirrors can subscribe to other Mirrors. This allows new information to propagate across the network immediately. This simplifies some of the protocols and fixes a significant problem.
I have also made significant progress on logging events to file, rather than to std::cout. I am also planning on loading networking information from a file, simulating a Quorum, maintaining a debug package, and launching the software with the Tor Browser. I have made progress on all of these and have listed them in a milestone, scheduled to be included in the next major release: https://github.com/Jesse-V/OnioNS/issues?q=is%3Aopen+is%3Aissue+milestone%3A...
See you at PETS!
- - Jesse V.