< jimpo>
I figured it out. I added a definition of a new global to init.cpp and didn't add to test/test_bitcoin_main.cpp, which forced init.cpp to get linked and caused the conflict. Feels a little brittle to me, but it's easy to work around.
< wumpus>
right, to be clear I certainly think the current testnet should stay, to test miners and as a 'wildtestnet'. If anything more reliable is introduced it should not replace it but be a choice.
< Randolf>
That seems reasonable.
< sipa>
wildnet!
< wumpus>
sipa: Provoostenator came with that I think it' great
< sipa>
ha
< wumpus>
a reliable testnet would be more like a simnet
< wumpus>
simulate circumstances on the real chain
< gmaxwell>
the more stable thing I think would be interesting to do is a singned block testnet where it accepts two keys and there is a regular standard parttern of reorgs that it does, and if you don't want to see the reorgs, you change your settings to ignore one of the keys, which is the one used for blocks which are going to get reorged out. Unfortunately, the signed block approach used in elements at
< gmaxwell>
least makes the blockindex datastructures in memory larger... so they'd be ugly to have for us because the same binary is testnet and mainnet. :(
< gmaxwell>
We could, of course, have a seperate build for this signed block testnet, but I think that would make it less accessible and useful.
< wumpus>
indeed, doing a predictable cycle of reorgs makes sense, otherwise it's not much of a test
< wumpus>
within the limits of what is realistically encountered on mainnet
< wumpus>
yes, that's what I don't like, the same code is used on mainnet and testnet and this would add extra overhead, as well as more potentially buggy code inthe consensus path
< wumpus>
the only way around that would be to template all the code which is not a simple change either :/
< wumpus>
this really needs to be zero overhead for the mainnet case
< gmaxwell>
I suspect it probably could be done with no runtime overhead, but some lack of cleanness (like having to turn one of the fields in the block index into a union).