To prove the concepts that are being gradually drafted, I’ll first build a prototype before diving into clean C/C++. As a language I’ve chosen my favourite Ruby with library bitcoin-ruby. Coincer’s first GUI will be in universal wxWidgets. Let’s see a roadmap:
- (Choose, implement and test) one of proposed atomic protocols.
- Ability to execute the protocol off-line.
- Interconnection with wallet (starting with Bitcoin Core and, e.g., Litecoin?).
- Test of on-line communication and protocol execution (not purely P2P yet).
- P2P part (see below).
- Do a research of altcoins, their activity, user base, status of development, available OPs and other needed features.
- Design a flexible approach for adding new coins in future.
This is the very first sketch. I’ll keep an up-to-date and revised version of the roadmap on a dedicated page. This blog will also tell you what has already been done.
How about the P2P part?
I’m not willing to just program something that “would work.” I want Coincer to have such a good design that it could stand as an example for further projects. P2P is a field with very active research, therefore I’m currently doing a research of what technologies, ideas, proposals or trends are currently available to be able to carry out a tiptop design.
I must say that most projects somewhat underestimate the importance of good protocol design, omit the research phase and just go with what they already know or what is obvious to them.
Currently known parts
This is what I know that needs to be designed:
- Overlay topology
- Peers’ identification
- Peer churn (i.e., connections and disconnections of peers)
- Processing of market data
- Market exploration
- Communication of two trading peers
- Analysis of possible attack vectors and ways of their mitigation
- Analysis of other possible causes of malfunctioning and suitable countermeasures
- Other important details (incentives, performance, fault-tolerance, etc.)