I've spent a few days on a performance problem that I encountered when starting to optimize validation through the caching of blocks following download for later validation. After a couple days of frustration, I think I've isolated the issue. As sometimes happens there is both a problem and an opportunity...