[p2p] No delay in adding fixed seeds if -dnsseed=0 and peers.dat is empty. Add -fixedseeds arg.
Summary:
Before PR: If peers.dat is empty and -dnsseed=0, bitcoind will fallback on to fixed seeds but only after a 60 seconds delay. After PR: There's no 60 second delay. To reproduce: rm ~/.bitcoin/peers.dat && src/bitcoind -dnsseed=0 without and with patch code Other changes in the PR: -fixedseeds command line argument added: -dnsseed=0 -fixedseeds=0 -addnode=X provides a trusted peer only setup. -dnsseed=0 -fixedseeds=0 allows for a addnode RPC to add a trusted peer without falling back to hardcoded seeds.
Note to reviewers 1: the p2p_dos_header_tree.py test change is cherry picked from https://github.com/bitcoin/bitcoin/pull/21254/commits/fa730e915766b012ff145e3c2af782668defb21f. Without this the test will connect to the real testnet and eventually sync the headers with other nodes, that would cause the test to fail. This will be undone when the PR is backported, which requires D10909 as a dependency.
Note to reviewers 2: the test feature_config_args.py now takes forever to run, this will be fixed in a follow-up.
Backport of core#19884.
Depends on D10907.
Ref T1696.
Test Plan:
./test/functional/test_runner.py feature_config_args.py
Reviewers: #bitcoin_abc, PiRK
Reviewed By: #bitcoin_abc, PiRK
Subscribers: PiRK
Maniphest Tasks: T1696
Differential Revision: https://reviews.bitcoinabc.org/D10908