Bitcoin full node and query server

Aug 20, 2024

View in context in the libbitcoin Slack #general mirror.

evoskuil16:25
The problem I reported on July 2 is now finally resolved. The objective is to be able to cache downloaded blocks for validation so that they don't have to be read back out of the store to create the partial ordering when validating. This goes back to the v4 redesign work in 2021. The problem was memory deallocation, which was explosive and entirely prohibitive. Allocating and deallocating thousands of small chunks on the same threads is not a problem, but deallocating them on a different thread creates heavy contention, increasing sync time by an order of magnitude. This collection of blocks into a strand for caching is necessary in order to implement it in a lock-free manner. This therefore implies block destruction in distinct threads from block allocation...
(edited)