Bitcoin full node and query server

Oct 21, 2026

View in context in the libbitcoin Slack #general mirror.

evoskuil14:56
Found an insidious use of std::stream in the http path. We avoid std::stream in performance critical paths because it imposes a critical section, driving all threads into a bottleneck, among other things. So our http client-server benchmark numbers are about to jump. This was the result of throughput (vs. latency) testing. bs latency is better than bc on all requests except for block (which makes sense, since the whole bc store is just whole blocks on disk, making that faster and everything else slower). But the network architecture of bc limits its ability to deliver those blocks concurrently. bs doesn't have that limit, but it was hitting a ceiling in throughput at around 16 threads. The stream was the bottleneck, it just wasn't obvious until measuring throughput. But it also creates up to a 54% hit on latency.