You are not being precise at all.
Allow me to step in and answer some of this for poor Gollum. I know he and I don't have the exact same definition in mind, but it's pretty close; We both want a
fully distributed, un-take-down-able client software exchange.
Is this a piece of code?
Yes.
What machine runs what code?
Every client, exactly like bittorrent
i.e. If you want to trade, you gotta host trades.
How does the exchange actually transfer $ on one account to BTC in the same account?
Each client has a wallet inside it for each currency it can trade in. If your client has $10 USD in it, and you want to trade that for BTC, for instance, then you can't convert it locally, you have to trade others for it.
You do this by creating your order in right there in your client, which broadcasts it around the system (everyone within an acceptable pingtime range) and your order gets stored on the book of orders of all of those other clients...
As a match appears, the client most directly inbetween your client and the match's client does the trade, and collects the trading fee... So it really takes three running clients to make a trade at all.
Is there a limit order book?
All books we can make work exist on every single client, for the benefit of every client but that one.
Where is the datastructure stored?
The order books on each client
are the data structure, I don't think there would be need for a blockchain.
How does the matching take place?
A. Your order gets put into a short string and broadcast around, like this: "User1234BUY10BTC@120USD"
B. That string is instantly displayed on every order book within a short-enough pingtime, likely hundreds of thousands once the network grows large.
C. Bob, then creates an order to sell 10 BTC at a price @ or above $120 USD, and that gets broadcast around as well.
D. Trish's client, which happens to be running directly inbetween you and Bob, notes that your two trades are compatible and executes the trade, acts as a micro-escrow and takes her pre-set fee. (Then broadcasts a 'quit order' on both yours and bob's orders to all other books in her range.)
How does a user open an account?
Just like downloading the bitcoin wallet client, but funding the wallet with USD will be the hard part, obviously. Everything here should be doable right now except for the nationalized currencies in that wallet. -We're still thinking hard about that part.
where does he open up an account? etc
None needed excepting of course for the brokers to fund these wallets. Think: OKPay, but hopefully better.
it simply does not make sense to distribute a matching engine, because for a market price to form one needs on place where computation takes place.
They'd be regional prices. Sure, you're never going to know what the price of BTC is in Japan when you're in NYC, but your trade is safe, secure, non-DDos-able, and no government can stop it either.
Say you have 100 buy orders and 100 sell orders at various prices going into the system at various times. If every transaction is verified by a network, it would take 1h for one order.
Clearly that wouldn't be a worry with thousands of clients in range, fully distributed.
Something else I feel I should mention here: Remember how Trish didn't lift a finger yet got paid a fee?
...That's going to be an awesome incentive for everyone and their uncle to keep these clients open and online 24/7.
Hope that helped!