This switches the lntest Harness structure to use an adjusted simnet
miner so that block generation for integration tests are done without
triggering difficulty increases.
The main purpose for this change is to maintain the lowest possible
mining difficulty on simnet, so that the full integration test suite can
be run without having to perform expensive cpu mining at the full
network difficulty. This is specially important in CI environments that
might have reduced cpu power available or might suffer throttling and it
makes the test suite complete faster.
It accomplishes this by using a newly introduced feature on dcrd's
rpctest.VotingWallet to specify a custom mining function written to
adjust the timestamp of blocks on simnet so that they are exactly (at
least) one second apart which causes the median time of the blockchain
to be equal to its target block time and thus do not trigger difficulty
increases.
In order to use this new function, the dependencies were bumped so that
the latest master version of dcrd is used where appropriate.
This switches the lntest Harness structure to use an adjusted simnet miner so that block generation for integration tests are done without triggering difficulty increases.
The main purpose for this change is to maintain the lowest possible mining difficulty on simnet, so that the full integration test suite can be run without having to perform expensive cpu mining at the full network difficulty. This is specially important in CI environments that might have reduced cpu power available or might suffer throttling and it makes the test suite complete faster.
It accomplishes this by using a newly introduced feature on dcrd's rpctest.VotingWallet to specify a custom mining function written to adjust the timestamp of blocks on simnet so that they are exactly (at least) one second apart which causes the median time of the blockchain to be equal to its target block time and thus do not trigger difficulty increases.
In order to use this new function, the dependencies were bumped so that the latest master version of dcrd is used where appropriate.