INV overhead and batched INVs to reduce full node traffic



Summary:

Jonathan Toomim, a Bitcoin developer, suggested implementing an option for batched INV (inventory) on the Bitcoin network that would increase efficiency by including the hashes for two transactions in one IP packet. This would increase the INV size to 229 bytes for 64 bytes of payload, resulting in an 88.8% marginal efficiency increase for each hash after the first. He believed waiting and accumulating several hashes together before sending as a batched INV could reduce Bitcoin node traffic by a factor of 2. However, this suggestion was found to have already been implemented since the early days of Bitcoin. The batching feature was temporarily affected between the 0.10 and 0.12 versions but has been fully functional again, with one INV now managing to batch many transactions effectively. The average batching size is about 5 seconds long and usually contains around 10 transactions per INV, as seen from debug measurements. While tweaking the system may improve efficiency, it is not expected to change the asymptotic efficiency of the network.


Updated on: 2023-05-19T23:12:24.889725+00:00