More efficient missing block calculation.
Split reading from the socket, writing to the socket, and processing messages to their own threads.
Split writing to the DB to its own process.
Switch to postgres.
Add explicit ordering of txout in Transaction to make sure we can match them up to txin.