Hacker News new | ask | show | jobs
by NkVczPkybiXICG 1258 days ago
FTX didn’t make any of the architectural decisions presented in this talk.
1 comments

Yeah, as an exchange FTX was pretty terrible. The matching engine was notorious for being high latency, unreliable, and having all sorts of undocumented issues. Every algo trader there will tell you horror stories about trying to cancel an open order, getting a cancel confirmation, then getting notified that the order was executed. Sometimes seconds later.

What really gave FTX a competitive advantage was its cross-margining system. It was super easy to post collateral in any supported asset, and all open positions were automatically margined against each other. So if you were doing something like pairs trades between spot and futures, you didn't need to constantly monitor and manually move capital between the silos. In hindsight though it's not clear if this was possible because of better engineering, or just because Alameda was internalizing all the risk.

The main advantage of FTX's exchange was that it was far better than Binance's but that's barely saying anything.

I'm not sure why crypto exchanges have such lousy technology. Lost acks, weird parser errors, missing order id fields, sessions giving no indication that the matching engine is down, etc.

It seems like any conceivable way an exchange can break will be encountered after only a couple months of trading. It's a complete shit show compared to traditional exchanges

There’s a graveyard full of “crypto exchange but built with good tech”, ftx even bought one iirc.

The market favors move fast, market to retail, etc etc over spending time cutting microseconds off the 99th%.

A lot of the exchanges also don’t have people who know what they’re doing. Lots of normal startup folks coming from an environment where “premature optimization is the root of all evil” and “move fast break things” is the norm.

There have been a few valiant attempts to build crypto exchanges with modern technology and matching engines. Generally the problem these run into is that, while the algo traders and market makers love them, they have no competitive advantage in attracting retail order flow. Trading firms have no interest in just trading against each other, so without retail flow nothing happens.
Having worked on several side projects that involve money, I'll bet most money-related computer systems are full of race conditions and other wacky behavior. There are so many gotchas. For example, just writing a simple "bank account" system/database, it's tricky to ensure in a performant way that concurrent transactions don't bring a user's balance below 0. If you're sending out money via ACH or something, try handling all the ways that can fail and need to be retried.

I trade regular stocks in my Chase account. A few times, it was down for maintenance after-hours, meaning I couldn't enqueue trades to execute the next day. Not a big deal, but doesn't inspire confidence.

Because it was all a scam and didn't need to polish details ?
One of the stranger things coming out of the collapse of FTX is that it wasn't _all_ a scam; if SBF and co they had simply let FTX function without giving special privileges to Alameda, it would have been a pretty non-scammy crypto exchange (overinflated in value, sure, but not fundamentally scamming its customers) and they all could have made great deals of money on that alone. But of course, that isn't what they did.
horror stories about trying to cancel an open order, getting a cancel confirmation, then getting notified that the order was executed

Sounds like tuesday to me. One thing you learn about exchanges (I mean all of them as a software category) is that you can’t trust: documentation, reasonable expectations, the experience you’ve got last week, the idea that all symbols behave similarly, reproducibility on test servers and vice versa, to name a few. Don’t rely on these and you’ll be relatively safe.

But really, expecting a deterministic confirmation is a rookie mistake. Exchanges feel very asynchronous after a short while and the intuition should tell you that that a confirmation is just “ok, I hear ya”, not “effective immediately we’ll suspend our queues and reschedule trades to fulfill your urgent request”. The temporal uncertainty of order status is a quite common phenomenon, ime.

FTX wouldn’t just ack your cancel request and then give you a fill - you would get cancel successful messages, order status updates that cancelled your order with no filled quantity, and then ten seconds later get a fill for that order.

Occasionally sending out zero balances was another FTX special.