pub fn compute_block_tx_ids_into(block: &Block, out: &mut Vec<[u8; 32]>)Expand description
Compute transaction IDs for a block (extracted for reuse). Produces {Hash(tx) : tx ∈ block.transactions} for ComputeMerkleRoot input (Orange Paper 8.4.1). Public so node layer can compute once and share between collect_gaps and connect_block_ibd (#21).
Tx-id computation is always serial. The previous par_iter path looked
fast in isolation but was disastrous in the IBD pipeline: the coordinator + N validation
workers each push hashing work into the shared rayon pool, oversubscribing the CPU and
stalling worker threads at ≪10% utilisation while the rayon pool burns ~5 cores spinning
on coordination overhead. Serial double-SHA256 over ~3000 short txs is ~500 µs/block —
well below the BPS budget — and the freed cores translate directly into block-level
parallelism (per-block work stays on one thread; cross-block work is N-way).