This is a first step towards cleaning up our DoS interface - make
validation return *why* something is invalid, and let net_processing
figure out what that implies in terms of banning/disconnection/etc.
Behavior change: peers will now be banned for providing blocks
with premature coinbase spends.
Co-authored-by: Anthony Towns <firstname.lastname@example.org>
Suhas Daftuar <email@example.com>
This is a partial backport of Core PR15141 : https://github.com/bitcoin/bitcoin/pull/15141/commits/34477ccd39a8d4bfa8ad612f22d5a46291922185