This creates std::numeric_limits<uint64_t>::max() new testchains, each one with a different maximum block size and genesis block.
It would be generally good to have more people collecting data and
conduction simulations related to different consensus maximum block sizes.
This PR attempts to simplify that work.
Even if it may take long until it is merged (because it requires many
little steps to be taken first), this branch (or a fork of it) can be used right now for
testing purposes.
One can use it, for example, like this: ./src/qt/bitcoin-qt -chain=sizetest -debug -printtoconsole -gen=1 -genproclimit=20 -blocksize=2000000
I will rebase and update the list of dependencies accordingly as things get merged.
Dependencies:
- CTestNetParams and CRegTestParams extend directly from CChainParams #6381
- Chainparams: Translations: DRY: options and error strings #6235
- Qt: BIP70: Chainparams: DRY: Make qt/guiutil.cpp fit BIP70 chain name strings #6908 (trivial review)
- Chainparams: Use a regular factory for creating chainparams #6907 (medium review)
- Don't check the genesis block #6597 (medium review)
- Blocksize: Turn MAX_BLOCK_SIZE and MAX_BLOCK_SIGOPS into functions #6625
- Generic selection with -chain=<chainString> in addition of -testnet and -regtest [closed] #5229
- Qt: Simplify network/chain styles and add a default purple one (trivial review)
- Checkpoints: The hash of the genesis block is the genesis checkpoint and chain id [closed] #6230
- Chainparams: Adapt qt/paymentserver to support more than 2 chains
- Chainparams: Introduce AssignBase58PrefixStyle() static function NACK
- Blocksize: Introduce sizetest mode with infinite chains NACK
Similar branches on top of older versions:
https://github.com/jtimon/bitcoin/tree/chainparams-sizetest-0.11