This will allow to keep the various callsites working between every
upgrade without having to update them all.
Depends on D4742.
Differential D4743
Add a generic flag to activate the next upgrade Fabien on Dec 17 2019, 07:44. Authored by
Details This will allow to keep the various callsites working between every Depends on D4742. cmake -GNinja .. -DTEST_WITH_UPGRADE_ACTIVATED=ON ninja check ./test/functional/test_runner.py --with-nextupgrade --extended Run IBD.
Diff Detail
Event TimelineComment Actions It's worth pointing out there is a slight behavioural difference, in that using activatenextupgrade will activate for all blocks after genesis, whereas the MTP activation would only trigger sometimes:
I think that's fine... and maybe even better, since some of our functional tests fail to leave IBD on the ancient chain. Comment Actions Actually I should mention there is a side effect of this that can happen: Suppose new flag B requires old flag A that has already activated -- in VerifyScript it might have if (flags & B) assert(flags & A); like we see with CLEANSTACK and P2SH. If you do this -activatenextupgrade then it moves the activation of B back to genesis, before flag A activated. Then the assert will fail. This Diff passes fine since BIP16Height=0 and magneticAnomalyHeight=0 on regtest, i.e., p2sh always on since genesis (which doesn't really count) and cleanstack turns on at height=1. Well before any script could be executed. I am not aware of any planned future flags that would incur this problem -- at most you might have restrict flags that require P2SH in order to be strict soft forks (like cleanstack), but I cant imagine any other dependencies.
Comment Actions (as discussed in meeting today, this is a pretty minor issue and I don't think it should discount this approach) Comment Actions I will put that diff aside for the moment and try to find a better solution.
|