tradecraftio / tradecraft

Tradecraft integration/staging tree https://tradecraft.io/download
Other
13 stars 9 forks source link

Investigate why non-compact blocks are received in p2p_compactblocks.py #95

Open maaku opened 2 years ago

maaku commented 2 years ago

There's a test inside of p2p_compactblocks.py in which a block header is sent from a node supporting compact blocks to another node which supports compact blocks, and the expectation is that a request is made for a compact block transmission. However a regular block transmission is received instead.

What triggers this change in behavior is merely the addition of block-final transactions. I do not know if this is expected behavior since the announced block now has two transactions instead of one. Sending a full block instead of a compact block shouldn't cause any network consensus issues; it is just potentially wasteful if the same behavior is seen with larger blocks.

This should be investigated more thoroughly, but for now the p2p_compactblocks.py test script has been modified to accept either a compact block getdata request or a regular block getdata request at the offending line on the 16 branch in which this behavior was first observed.

(Grep for "FIXME: For some reason bitcoind" in the file to find the documented change.)