24 ms·
You mean enabling arbitrary code execution from a third party when you can lose billions of people's money in half a second? Also if two people want to make the
by dchftcs 2y ago
You mean enabling arbitrary code execution from a third party when you can lose billions of people's money in half a second? Also if two people want to make the same trade, who gets it?
Exchanges do provide very limited special conditional execution instructions such as peg orders or stop orders, but it seems like a hard problem for them to support anything more sophisticated and general.
- infecto 2y agoI agree with your sentiment but I would clarify that historically some exchanges did indeed create custom order types for larger clients that were not always public knowledge. I think that has mostly been eliminated but there are still a range of unique order types you can utilize depending on the exchange.
- pas 2y agoIt doesn't have to be arbitrary machine code. eBPF / WASM coupled with a standard library supplied by the exchange. (Plus the exchange can run it in a VM.) > Also if two people want to make the same trade, who gets it? Whoever pays more currently, right? So it can be uniform random and folks can pay for better than random chance, etc.
- smabie 2y agoOr we could just.. not do that? It provides no benefit and a host of downsides
- pas 2y agoIt seems a lot more elegant/efficient/sane to me than trying to squeeze more and more racks into one building. So that's why I'm asking, as I think the benefits are clear, much better scalability, fairness (or getting as close to it as the exchange wants), cheaper (no need for fancy hardware), probably it would attract more market participants (lower barriers to entry). It's the same hypothetical "EC2 model" without the meta-game of trying to get closer to the cores the exchange runs at a given time. Can you elaborate on the downsides besides security?
- dchftcs 2y agoWhat you're trying to eliminate is just a small part of the infra arms race. But it's not even effective at that. You say one of the goals is to not have to squeeze many racks into a building, but your proposal assumes the servers placed in the racks are running at low capacity, which is completely not true. On the other hand, if you trade say GOOG, the matching engine for that is going to mainly sit in one place, how do you stuff everyone's program to run on the same server, and how do you make sure they each have fair access?