Mike Hearn talked about a patch he applied to BitcoinXT recently in his AMA:
I posted a patch last week that makes XT download blocks as lists of hashes instead of duplicating the transaction data, so a full 1mb block would drop to about ~70 kilobytes, in theory, if you were online for the whole time since the last block. However, the patch needs more work and testing before it can be shipped to users.
If I understand correctly:
- Blocks themselves would stay exactly the same.
- Transactions only need to be downloaded once (instead of once or twice)
- Each node reassembles the block from this "ingredient list"
- Missing transactions can be requested from peers by transaction hash.
This would reduce the total traffic to transfer a full block roughly from 2MB to 1.07MB. This seems like an obvious improvement of the current status quo which could be introduced cheaply, especially reducing the network load during the peak demand right after a block is found.
Are there any drawbacks that I'm missing?