Author

Topic: verifychain & "BIP 30" duplicate transactions in the chain (Read 1010 times)

legendary
Activity: 1135
Merit: 1166
Does Bitcoin Core's "verifychain" in level=3 accept the duplicate transaction ID's in the chain (those that fail strict BIP30 checks, as listed in main.cpp in ConnectBlock)?  I have the feeling that the strict check done in DisconnectBlock (that the tx outputs currently being undone match between what's in the block and what's in the coin view) could fail for those.  Unfortunately, I'm not able to check this "live" as it would require way too much memory.  I. e., while checking, the coins cache is filled and then level=3 checks are skipped for deeper blocks.

If my suspicion is right, is this simply not "fixed" because it does not matter, or is there some other reason?  (One could, for instance, move the list of BIP30-failing hashes to the chain parameters and use it both for fEnforceBIP30 as well as ignoring those DisconnectBlock failures.)  If, on the other hand, this is not a "problem" and DisconnectBlock works for those, why?
Jump to: