The Google Summer of Code is now over. It has been a great experience and I’m very glad I’ve been able to make it. I’ve had the pleasure to contribute to a project showing very good promise for the future of communication: Ring. The words “privacy” and “freedom” in terms of technologies are being more and more present in the mind of people. All sorts of projects wanting to achieve these goals are coming to life each days like decentralized web networks (ZeroNet for e.g.), blockchain based applications, etc.
I’ve had the great opportunity to go to the Debian Conference 2016. I’ve been introduced to the debian community and debian developpers (“dd” in short :p). I was lucky to meet with great people like the president of the FSF, John Sullivan. You can have a look at my Debian conference report here.
If you want to read my debian reports, you can do so by browsing the “Google Summer Of Code” category on this blog.
What I have done
Ring is now in official debian repositories since June 30th. This is a good news for the GNU/Linux community. I’m proud to say that I’ve been able to contribute to debian by working on OpenDHT and developing new functionalities to reduce network traffic. The goal behind this was to finally optimize the data persistence traffic consumption on the DHT.
Github repository: https://github.com/savoirfairelinux/opendht
- #43: DHT queries
- #79: [DHT] Queries: remote values filtering
- 93: dht: return consistent query from local storage
- #106: [dht] rework get timings after queries in master
- #71: [DHT] value pagination
Indexation (feat. Nicolas Reynaud)
General maintenance of OpenDHT
- #72: Packaging issue for Python bindings with CMake: $DESTDIR not honored
- #75: Different libraries built with Autotools and CMake
- #87: OpenDHT does not build on armel
- #92: [DhtScanner] doesn’t compile on LLVM 7.0.2
- #99: 0.6.2 filenames in 0.6.3
- #73: dht: consider IPv4 or IPv6 disconnected on operation done
- #74: [packaging] support python installation with make DESTDIR=$DIR
- #84: [dhtnode] user experience
- #94: dht: make main store a vector
- #94: autotools: versionning consistent with CMake
- #103: dht: fix sendListen loop bug
- #106: dht: more accurate name for requested nodes count
- #108: dht: unify bootstrapSearch and refill method using node cache
View by commits
You can have a look at my work by commits just by clicking this link: https://github.com/savoirfairelinux/opendht/commits/master?author=sim590
What’s left to be done
The only thing left before achieving the totality of my work is to rigorously test the data persistence behavior to demonstrate the network traffic reduction. To do so we use our benchmark python module. We are able to analyse traffic and produce plots like this one:
Plot: 32 nodes, 1600 values with normal condition test.
This particular plot was drawn before the enhancements. We are confident to improve the results using my work produced during the GSOC.
In the middle of the GSOC, we soon realized that passing from UDP to TCP would ask too much efforts in too short lapse of time. Also, it is not yet clear if we should really do that.