Implement hard fork to allow bigger blocks into Core master pre-0.12 #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Merged by Jonathan Toomim. Almost working, but currently fails some unit
tests (tx_mempool_block_doublespend std::bad_alloc). Not yet safe for
actual use.
Unit test and code for a bigger-block hard fork.
Parameters are:
8MB cap
... doubling every two years (so 16MB in 2018)
... for twenty years
... earliest possible chain fork: 11 Jan 2016
... after miner supermajority
... and grace period once miner supermajority achieved
qa/rpc-tests/bigblocks.py mines a 50% upgraded -regtest chain,
generates 4MB of transactions, and then tests the upgrade and
mining code to make sure larger blocks are only created when
the fork conditions are met.
The activation state of the fork is stored in the block tree database;
it is written when the threshold is met (and unwritten if the
threshold block is re-orged out of the best chain), and read at startup.
Code review and bug fixes by Mike Hearn and Michael Ruddy.
Conflicts:
qa/pull-tester/rpc-tests.sh
qa/rpc-tests/bipdersig-p2p.py
src/chainparams.cpp
src/chainparams.h
src/main.cpp
src/main.h
src/miner.cpp
src/rpcmining.cpp
src/test/ReceiveMsgBytes_tests.cpp
src/test/pmt_tests.cpp