Author

Topic: [BOUNTY] Sample implementation of DTC protocol in python-twisted (Read 2575 times)

member
Activity: 105
Merit: 10
Yes I've just created this project on bitcoinstarter.
legendary
Activity: 2618
Merit: 1007
Well, just let me state that I did not open this bounty there and I also don't know who did (maybe c0inbuster did that?).

I wish anyone trying to do this all the best though and hope to see some progress there of course.
member
Activity: 105
Merit: 10
Thanks for your quick approval.

I really hope that we can get this task done quickly as it could be very useful for many exchanges.

https://bitcoinstarter.com/projects/428
legendary
Activity: 1330
Merit: 1000
Bitcoin
Sorry, but neither of these platforms looks very trustworthy to me. Also they charge 5% fees.

Feel free to post your own bounty there and link it here!

I can vouche for BitcoinStarter since its in my sig ;-)  I see you put it up! yay!
https://bitcoinstarter.com/projects/428
legendary
Activity: 1330
Merit: 1000
Bitcoin
legendary
Activity: 2618
Merit: 1007
Sorry, but neither of these platforms looks very trustworthy to me. Also they charge 5% fees.

Feel free to post your own bounty there and link it here!
member
Activity: 105
Merit: 10
legendary
Activity: 2618
Merit: 1007
Hm, that's about one order of magnitude above what I personally was hoping to spend, but at least thanks for your quote and the outlook that this can be done in about 3 weeks! Maybe some others are interested too and want to chip in? Once this kind of software exists, it should be quite interesting for exchanges as well after all...

There is another "meta API" that sounds interesting by the way (besides FIX, which seems to be a slight mess since it is not very tightly specified) --> OpenMAMDA, which is being pushed by the Linux foundation and the NYSE. The only problem with it is that I have yet to see software in the wild to use it. DTC at least is used by one single trading program and openly specified (I don't want to reverse Metatrader's API...) and if OpenMAMDA in the future really becomes widely used, I guess there's still time to hook the stuff in there as well.
full member
Activity: 144
Merit: 100
I like this project; APIs do need unification, and this protocol seems reasonable. Exchanges are currently sorely lacking in push notifications.

I could implement this in 3 weeks. I would charge BTC6.


Edit:
My one week milestone would be:
- python API (how messages are associated with their callbacks, how a single application manages multiple client instances, how to hook in new message types, how to support launch-executable-on-connect, etc)
- test suite providing simulated data for each message type, verifying implementation produces the same result as the C++ code
- client implemented except for most messages
legendary
Activity: 2618
Merit: 1007
Alright, here's the deal:

The protocol:
http://www.sierrachart.com/index.php?l=doc/doc_GeneralDataTradeServiceProtocol.php

Reference C++ header implementation of the messages:
https://github.com/SierraChart/GSP

What I expect:
A pure python library that uses twisted (http://twistedmatrix.com/) as only dependency (well, and twisted's dependencies... Roll Eyes) and that implements all messages that are currently specified in the DTC protocol.
It does not have to connect to a backend, returning dummy data (e.g. a hardcoded list for market data) or hooks to supply actual data is fine.
If data can be calculated/known (e.g. current timestamps), I'd expect this to be there though.
Connection should be possible with or without SSL/TLS, setting everything up (certificate paths etc.) with twisted is of lower priority though (it isn't hard anyways, check https://twistedmatrix.com/documents/current/core/howto/ssl.html).

In the end I want to be able to implement e.g. my own market data connection that then gets sent to DTC compatible clients using your library (it would act like a "bridge"). To use it, all I would need to do is to do a simple "import dtcpy" and work from there.

I intend to OpenSource this code under the MIT license and would require periodic updates/commits to a public repository from you, please do not submit a bid if you do not want others to see, use and build upon your code!

As this is not a completely trivial task, I am open to suggestions on how to handle the actual bounty - would you prefer a pure BTC price up-front that gets escrowed and paid upon completion, a payment in USD value per week/hour/milestone...?
Please submit a bid with your preferred amounts publicly here (no, I will NOT discuss this in PMs), if I'm happy with the time line etc. we'll do a bit more formal (signed) contract (also public) and I'll put the bounty payment in escrow.
If others also see some benefit in this, they are of course also invited to pledge some amounts.

The general use case in the end would be to build a generic bridge to at least the SierraCharts software with multiple Bitcoin exchanges as potential markets. In the end, you'd load your API key(s) into a software built upon this library and you'd be your own broker. Since every exchange kinda creates their own little weird API, there needs to be some unification beforehand and DTC could offer that (it supports historic market data AND authenticated trading!). Maybe other people might find this interesting enough to pledge some amount, it would be possible already now if you write this bridge in C++. I personally want to use Python though and I don't care enough for "how many bytes does this message have and what endianness should timestamps be..." to port this on my own, there might be people out there that prefer this kind of work and I'm willing to pay for that.
Jump to: