add missing CAutoFile::IsNull() check in main

Rebased-From: 84857e87e42e412336ea60d0f8544c1679bab827
Github-Pull: #5437
Check against MANDATORY flags prior to accepting to mempool

Previously transactions were only tested again the
STANDARD_SCRIPT_VERIFY_FLAGS prior to mempool acceptance, so any bugs in
those flags that allowed actually-invalid transactions to pass would
result in allowing invalid transactions into the mempool. Fortunately
there is a second check in CreateNewBlock() that would prevent those
transactions from being mined, resulting in an invalid block, however
this could still be exploited as a DoS attack.

Rebased-From: 7c041b3b91aa08a8f5863382b865a5174281ad03
remove max orphan blocks config parameter since it is no longer functional

Rebased-From: 4bc95c43871645c1d69a0d719c13b38151a3a13f
Reject headers that build on an invalid parent

Rebased-From: 34970223472c9e83689a1c710eebc7c16f152b02
Github-Pull: #5459
Enforce minRelayTxFee on wallet created tx and add a maxtxfee option.

Previously the minRelayTxFee was only enforced on user specified values.

It was possible for smartfee to produce a fee below minRelayTxFee which
 would just result in the transaction getting stuck because it can't be
 relayed.

This also introduces a maxtxfee option which sets an absolute maximum
 for any fee created by the wallet, with an intention of increasing
 user confidence that the automatic fees won't burn them. This was
 frequently a concern even before smartfees.

If the configured fee policy won't even allow the wallet to meet the relay
 fee the transaction creation may be aborted.

Rebased-From: aa279d613152e87ea25edfdf76c86779c0632f18
Github-Pull: #5485
Apply AreSane() checks to the fees from the network.

'Sane' was already defined by this code as:
 fee.GetFeePerK() > minRelayFee.GetFeePerK() * 10000
 But sanity was only enforced for data loaded from disk.

Note that this is a pretty expansive definition of 'sane': A 10 BTC
 fee is still passes the test if its on a 100kb transaction.

This prevents a single insane fee on the network from making us reject
 our stored fee data at start.  We still may reject valid saved fee
 state if minRelayFee is changed between executions.

This also reduces the risk and limits the damage from a cascading
 failure where one party pays a bunch of insane fees which cases
 others to pay insane fees.

Rebased-From: 64849306905e625fd44d297e8d58c3e1dd98cb90
Github-Pull: #5481
DOS: Respect max per-peer blocks in flight limit

Don't allow immediate inv driven block downloads if
a peer already has MAX_BLOCKS_IN_TRANSIT_PER_PEER
active downloads.  Prevents bogus inv spam from
blowing up block transfer tracking data structures.

Rebased-From: c90770430d7c1eb7ece2d4ddb987b0f2210fd86f
Github-Pull: #5507
qt: periodic language update
docs: update gitian building docs

Github-Pull: #5512
Rebased-From: dd14a0e799b6552ae85aaab2b0b48f788c578aea
Do not use libgmp automatically in libsecp256k1
Merge pull request #5531
Preliminary release notes for 0.10
CLIENT_VERSION_IS_RELEASE → true
doc: add section about watch-only addresses to release notes
doc: mention consensus library in release notes
doc: mention P2SH IsStandard relaxation in release notes
doc: add bitcoin-tx section to release notes
libbitcoinconsensus: Add pkg-config support
Merge branch 'sys_leveldb' into 0.10.x-syslibs
Merge branch 'sys_libsecp256k1' into 0.10.x-syslibs