You need a very robust trading engine and very friendly user interface.
I was exploring this possibility almost since the beginning of this year. I also tried making polls like this before, and it's good to see much improved response over time.
Anyway, the exchange I decided to build (ICBIT) bases around totally new subject in Bitcoin economy.
The community should NOT focus just on currency exchange, because a currency exchange is
just a service, not a way to earn money or produce something useful. Instead, Bitcoins should be used to buy/sell something else.
The most interesting way, in my opinion, is the derivatives market.
Imagine the possibilities:
- You want to speculate on the BTC/USD or BTC/EUR rate, for this you just sell/buy the corresponding futures contract (thus saving
a lot on fees, when you don't need the exchange but just want to speculate). Also this is perfect for trading bots.
- You want to trade S&P 500 index futures contract using Bitcoins. Impossible? No, that's possible. More complex than trading via American broker using US dollars, but IT gives advanced opportunities to use your Bitcoins, to remain anonymous, etc. In real world a similar practice is used in Russia, where futures on RTS index trades on the united "MICEX RTS" exchange. The RTS index is denominated in US dollars, however the futures contract trades happen in Russian Rubles.
- You want to arbitrage between S&P, DAX, RTS, etc. Also possible, because those futures contracts could also be added on demand.
Also please note, this is not any kind of prediction market. The futures contract being traded will have real-world impact because the market makers and arbitragers would hedge their position by buying/selling the corresponding position on real-world exchanges. So you're not "betting" on the event, you're actually trading futures contracts.
As for the technical stuff, I will comment on what I came to think about:
- Use things like Redis for order book to make trading super fast. (At least 10,000 orders per second.)
I built ICBIT on my HFT experience, and it bases around in-memory and on-disk data structures. For on-disk a normal database is used, and in-memory is a highly-optimized storage (optimizations are implementation specific, Redis just can't have them). Snapshots are saved to the on-disk database periodically. In case of a failure, only small amount of last trades would just be rolled back, without losing any money/balances information.
- Build very good APIs, like TCP APIs.
Absolutely, one dev from my team is already developing an advanced high-performance desktop trading client, plus the useful API library for automated trading.
- You don't have to accept Mt. Gox codes, but you can be the first exchange to accept Mt. Gox green address for instant funding.
Yes, ICBIT will support green addresses transactions according to the standard proposed by DeepBit.
If you're interested, more information and discussion is here:
https://bitcointalk.org/index.php?topic=50817.0