This summer I spent 4 weeks at Cornell University. Besides two courses, Distributed Consensus and Programming Language and Logic, I did a summer research internship under the guidance of Prof. Robbert van Renesse. We carried out a small project on State Reconciliation. It is mainly about how to synchronize information between users within a network so that the cost can be minimum, both time and resource and is really useful in distributed systems.
I studied one solution which is called the Gossip Protocol and also some others. Then I implemented a small android-based application that can run on a smartphone to share information between users and update it when the version is stale. The user who want to set up a communication send to the other with the version numbers and infomation id, then the other will decide based on them what is to be updated. For now the information are just annotations on maps but this can be extended according to need. (Project url)