Davout just open sourced his code for bitcoin central. I think it qualifies for this bounty or if it doesnt why not?
Great, we can get started using it as a frontend.
On a related topic,
It does seem that Open-Transactions
https://github.com/FellowTraveler/Open-Transactions/wiki would be a good backend to build our market.
I've spent the day setting up a machine (Ubuntu 10.10 server, this is an old desk top that I have, I will dedicate it to this project, it has about 60G of free space after the install on an encrpted LVM volume) and have built this and played around a little with it as well as trying to understand the theory.
OT is just a backend, it contains a transaction server and client (these are built on libraries, so you could build your own client, and there are bindings for a number of popular languages).
The transactions are kept as text files(one file per transaction), and they are mostly xml formated text that has been signed by the seller, the buyer and the transaction server.
The theory behind this is ricardian contracts and triple entry accounting.
http://iang.org/papers/ricardian_contract.htmlhttp://iang.org/papers/triple_entry.htmlSeems good( am I wrong, have I missed something?)
The crypto library that is used for all the signing is OpenSSL 1.0.0b or greater (not the default one in Ubuntu 10.10).
I have not been able to investigate the market element properly so I do not know whether it is suitable. This I will do tomorrow and hopefully have the server up for others to test by the end of the day.
I think a few days of testing should be enough to know whether this is the right tool for us. If it is then we only need to build a front end for the server and some easy to use clients.
Hopefully we will be able to use the work already done by davout, and we will have our own bitcoin based market exchange.
Hello, I have just discovered this thread.
ABOUT MARKETS ON OT:
Right now I've got the markets coded and trading. You can put an offer on a market. There may be a hundred other offers.
You'll always get the highest bidder on the market if you're selling within that price range, or the lowest asking price if you're buying within that price range.
Your offer may trade many times against multiple other offers on the market, before it has finally completed processing.After each trade, OTCron will drop a receipt into the respective inboxes for the 4 asset accounts involved.
(A trade involves, say, a buyer and seller bitcoin acct, and a buyer and seller WoW gold account. That's 4 accounts.)
When your offer has completed its terms, OTCron then removes it from the market.
You can configure your offer as a "day order" (date range) and/or as a "stop order" (only activate onto the market
when price reaches X level) and/or as a "limit order" (only allow trades at a certain price point) and/or as a
"fill-or-kill order" (each trade against a given offer must occur in minimum increments.)
OT Markets also support market granularity, meaning that the price of wheat on the
5000 bushel market might
be cheaper, per bushel, than the price of the same wheat on the
10 bushel market. This means that traders would
be able to profit by purchasing in bulk and then breaking up the wheat to be sold in smaller chunks (on smaller granularity
markets.)
You could also use the markets for trading currency baskets (since OT supports baskets).
Since each asset type on OT is based on a currency contract, you could even issue futures contracts and other options,
and use OT for trading futures on markets, or baskets of futures, etc etc.
The only problems I see are: (1) OT is very new and has not been tested with users in the real world. The version is v0.44.
I'm very proud of it, but it is brand spanking new, so you have to take that into account. (2), the keysize is still restricted
to 1024. Since the software is still experimental, I haven't added any other keysizes yet, but that will be necessary if you are
using it for real trades, FYI. and (3) the markets are the newest instrument, and so the API basically just lets you add an offer
to a market. There's like one function in the API for markets.
It will work, but there are still not yet API functions for market introspection and for canceling offers. You will need those.
Those will be easy to add though (it's just so new). I'm willing to add a few market functions when you need them -- I'm very
supportive of any developers that are using the OT API. So contact me if you end up using the software and let me know
how it goes.
-FT
P.S.
FYI, I have recently released a new version of OT, along with a new article describing the Use Cases for the OT API:
https://github.com/FellowTraveler/Open-Transactions/wiki/Use-CasesThe article shows which OT API functions to call for each use case. For more
detailed info on each API call, check out this page:
https://github.com/FellowTraveler/Open-Transactions/wiki/APIYou'll find the market offer API function towards the bottom of both pages.
If you want to play with it, there's the test wallet market interface. Test wallet instructions:
https://github.com/FellowTraveler/Open-Transactions/wiki/Test-Wallet-commands