We've had a few complaints that this is slow. There's a few obvious issues, and probably some less-obvious ones, but we should address at least the obvious ones: (a) too much time spent in IO syncing monitors (hopefully addressed by doing the async monitor updates) and (b) calculating TXIDs for each transaction in the block way too many times and per-monitor.