We had code to check for P2SH violations specifically, in order to not cause DoS triggers from them during the transition period. This is no longer necessary.
It also improves performance for detecting invalid scripts a bit.
We had code to check for P2SH violations specifically, in order to not cause DoS triggers from them during the transition period. This is no longer necessary.
It also improves performance for detecting invalid scripts a bit.
I don't disagree with doing this, but we should keep in mind that a slightly unfortunate result of this is that an attacker could network isolate old pre-bip16 nodes by constantly flooding invalid transactions. If there are any pre-bip16 miners remaining, the attacker will be able to force the creation of a forked network.
I was about to say: if there are any non-BIP16 miners left, I pity them. However, http://blockchain.info/p2sh says 37% doesn't include the marker string?
http://blockchain.info/tx-index/3618498/4005d6bea3a93fb72f006d23e2685b85069d270cb57d15f0c057ef2d5e3f78d2 doesn't suggest that it's anywhere near that many miners. I think those are mostly just ones not including it. It's probably only a very small amount without it.
Probably should defer to 0.8.
Agree, in that case.
Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/59ddfe1caecc827aa76ee5bb2c783c92d049301a for binaries and test log.
I saw another P2SH code part which could perhaps be removed, just want to mention, it's in init.cpp:
<pre> // Continue to put "/P2SH/" in the coinbase to monitor // BIP16 support. // This can be removed eventually... const char* pszP2SH = "/P2SH/"; COINBASE_FLAGS << std::vector<unsigned char>(pszP2SH, pszP2SH+strlen(pszP2SH)); </pre>
ACK
ACK
ACK for 0.7.1 or 0.8?
Luke's version tracker (http://luke.dashjr.org/programs/bitcoin/files/charts/BIP-0016.html) says 13.4% are non-P2SH. Thats now comparable to non-BIP30 (13%) so it's probably not going to get much better count-wise by waiting.
Rebased.
As the discussion is over I would suggest to merge such a code-wise small pull. We have quite some pulls open so let's reduce their numbers, if they are non-controversial?
Milestone
0.8.0