Introduce N testnet chains to test different block sizes

Introduce N testnet chains to test different block sizes
2015-08-19 18:30 ` Jorge Timón
  
From: Jorge Timón @ 2015-07-06 16:50 UTC (permalink / raw)
  To: bitcoin-dev

I have created the following PR that simplifies testing of different
block sizes and (if it were merged) would also slightly simplify a
future block size change hardfork.

https://github.com/bitcoin/bitcoin/pull/6382

I hope someone finds this useful. Please, post to github if you find
any issues. But, please, don't discuss the block size issue itself in
this post or the PR, the size is simply -blocksize.

I repeat the text here:

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:

- Chainparams: Translations: DRY: options and error strings #6235
- CTestNetParams and CRegTestParams extend directly from CChainParams #6381


 permalink raw reply	[|nested]
2015-07-06 16:50 [bitcoin-dev] Introduce N testnet chains to test different block sizes Jorge Timón

  
From: Jorge Timón @ 2015-08-19 18:30 UTC ( / )
  To: Bitcoin Dev

On Wed, Aug 19, 2015 at 7:30 PM, Danny Thorpe <danny.thorpe@gmail•com> wrote:
>>>
> I would expect any uncontroversial hardfork to be deployed in testnet3
> before it is deployed in bitcoin's main chain.
> <<
>
> Ok, glad to hear that.
>
>>>
> In any case, you can already do these tests using
> https://github.com/bitcoin/bitcoin/pull/6382
> <<
>
> I saw your post about that awhile ago, thanks for doing the work!  My
> fiddling with that end of the food chain is gated by my needing to block out
> a weekend to set up a bitcoind build environment.
>
> How do "big-block" testnet nodes running this 6382 rev recognize each other
> on the peer network? If I set up a 2MB block limit testnet node and -addnode
> another 2MB block testnet node (say, JornC's node) to it, and my node mines
> a block stuffed with 1.3MB of test txs, the other "big-block" node should
> accept my mined block, but it will be rejected / immediately orphaned by the
> rest of the testnet network because it exceeds their notion of block size
> limit, correct?

I don't have the time to use the code to write tests and simulations
myself right now but I would be really happy about someone else doing
it.
Even though they share the same port and magic numbers, each of the N
testchains in #6382 has a different genesis block, so they will reject
blocks from any other testchain from the start.
But you will likely connect the nodes directly and manually to get the
network topology you want to test anyway.
I hope this answers your questions but I'm happy to answer any other
questions you may have.