Last year was amazing. I’d like to summarise what it meant for Coincer and what’s left for 2016 and further years.
In the beginning, the atomic protocol got its shape and basic implementation. These first Ruby scripts helped me a lot further down the way.
A lesson learned: Ruby’s GUI libraries don’t play well with background working threads. Those threads are being frozen basically every time the window loses focus. It’s hard to do networking in such situation. I’m not sure what the exact cause was, but I hope and believe that this issue will be resolved in the future. For now, a CLI is fine too.
The first version of Coincer could only perform trades and create markets based on messages received via central server. But already in its second version Coincer introduced its own P2P overlay that helps to maintain anonymity of peers. Since then, the overlay is a subject of continual development and improvements. Choice of Ruby as the language for the first version proved very handy—with Ruby even changing the whole routing protocol didn’t cause any major trouble, it was pretty fast and easy.
In the end of the year, I spent more time on theoretical work than on coding. Nonetheless, one testing session took place, thanks to which couple of bugs were found.
Still, the main focus remains on the P2P overlay, its algorithms and the communication protocol. First, the overlay needs to be “rock-solid”, debugged and extensively tested. Without a perfectly working communication layer it is hard to build a reliable system. Second, the communication protocol should be taken to its mostly final form. There are many aspects that still need to be taken into account and implemented into the protocol (e.g., differences between cryptocurrencies in their scripts, or the issue of caching the market). I also plan to add support for OP_CHECKLOCKTIMEVERIFY (BIP65) into the atomic protocol.
Therefore, the client itself will stay aside a little bit, but don’t worry. The UI will be eventually improved as well! :c) There’s no doubt that a proper GUI will be needed. It’s possible that it will come together with a new implementation of Coincer (in C).