dash/src
Wladimir J. van der Laan 2f959a5874
Merge #11560: Connect to a new outbound peer if our tip is stale
6262915 Add unit test for stale tip checking (Suhas Daftuar)
83df257 Add CConnmanTest to mutate g_connman in tests (João Barbosa)
ac7b37c Connect to an extra outbound peer if our tip is stale (Suhas Daftuar)
db32a65 Track tip update time and last new block announcement from each peer (Suhas Daftuar)
2d4327d net: Allow connecting to extra outbound peers (Suhas Daftuar)

Pull request description:

  This is an alternative approach to #11534.  Rather than disconnect an outbound peer when our tip looks stale, instead try to connect to an additional outbound peer.

  Periodically, check to see if we have more outbound peers than we target (ie if any extra peers are in use), and if so, disconnect the one that least recently announced a new block (breaking ties by choosing the newest peer that we connected to).

Tree-SHA512: 8f19e910e0bb36867f81783e020af225f356451899adfc7ade1895d6d3bd5afe51c83759610dfd10c62090c4fe404efa0283b2f63fde0bd7da898a1aaa7fb281
2017-11-02 20:13:24 +01:00
..
bench Remove countMaskInv caching in bench framework 2017-09-11 15:51:36 -04:00
compat Merge #11144: Move local include to before system includes 2017-08-28 17:57:44 +02:00
config
consensus Merge #8498: Near-Bugfix: Optimization: Minimize the number of times it is checked that no money... 2017-10-11 10:45:22 +02:00
crypto Merge #11143: Fix include path for bitcoin-config.h 2017-09-05 23:15:55 +02:00
leveldb Update LevelDB with latest Bitcoin-specific patches 2017-08-01 12:40:42 -07:00
obj
obj-test
policy Avoid division by zero in the case of a corrupt estimates file 2017-10-13 08:41:45 +02:00
primitives Merge #8330: Structure Packing Optimizations in C{,Mutable}Transaction 2017-09-06 20:14:52 +02:00
qt Merge #11499: [Qt] Add upload and download info to the peerlist (debug menu) 2017-10-22 15:33:11 -10:00
rpc Merge #11456: Replace relevant services logic with a function suite. 2017-10-13 15:31:19 -07:00
script Merge #9572: Skip witness sighash cache for non-segwit transactions 2017-10-05 19:49:42 +02:00
secp256k1 Bump secp256k1 subtree 2017-09-29 16:02:39 +02:00
support Refactor: Modernize disallowed copy constructors/assignment 2017-09-16 13:06:05 +03:00
test Add unit test for stale tip checking 2017-11-02 12:39:14 -04:00
univalue Bump univalue and fix json formatting in tests 2017-09-29 14:35:46 +02:00
wallet Merge #11590: [Wallet] always show help-line of wallet encryption calls 2017-11-02 12:58:56 -04:00
zmq Merge #10809: optim: mark a few classes final 2017-08-21 18:25:48 +02:00
.clang-format Merge #10193: scripted-diff: Remove #include <boost/foreach.hpp> 2017-07-04 18:05:18 +02:00
addrdb.cpp Deduplicate addrdb.cpp and use CHashWriter/Verifier 2017-06-01 16:42:07 -07:00
addrdb.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
addrman.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
addrman.h when clearing addrman clear mapInfo and mapAddr 2017-09-05 17:32:06 -07:00
amount.h Consensus: Policy: MOVEONLY: Move CFeeRate out of the consensus module 2017-05-03 18:00:13 +02:00
arith_uint256.cpp Fix instantiation and array accesses in class base_uint<BITS> 2017-06-07 17:21:29 +00:00
arith_uint256.h Prefer compile-time checking over run-time checking 2017-08-17 00:42:32 +02:00
base58.cpp Merge #10961: Improve readability of DecodeBase58Check(...) 2017-10-09 16:41:06 +02:00
base58.h Implement {Encode,Decode}Destination without CBitcoinAddress 2017-09-23 14:45:01 -07:00
bech32.cpp Import Bech32 C++ reference code & tests 2017-09-28 16:02:16 -07:00
bech32.h Import Bech32 C++ reference code & tests 2017-09-28 16:02:16 -07:00
bitcoin-cli-res.rc
bitcoin-cli.cpp rpc: Handle getinfo locally in bitcoin-cli w/ -getinfo 2017-09-27 21:53:07 -04:00
bitcoin-tx-res.rc
bitcoin-tx.cpp Merge #10898: Fix invalid checks (NULL checks after dereference, redundant checks, etc.) 2017-10-12 23:55:50 +02:00
bitcoind-res.rc
bitcoind.cpp Init: Remove redundant exit(EXIT_FAILURE) instances and replace with return false 2017-10-16 22:16:36 +01:00
blockencodings.cpp Fix typos 2017-07-15 14:28:40 +02:00
blockencodings.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
bloom.cpp scripted-diff: Remove #include <boost/foreach.hpp> 2017-06-22 03:48:52 +02:00
bloom.h
chain.cpp fix typo in comment of chain.cpp 2017-10-09 19:14:47 +02:00
chain.h Ensure that data types are consistent 2017-09-07 11:17:35 +08:00
chainparams.cpp Remove my testnet DNS seed as I currently don't have the capacity to keep it up to date. 2017-10-19 12:47:19 +02:00
chainparams.h Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
chainparamsbase.cpp Merge #10825: net: set regtest JSON-RPC port to 18443 to avoid conflict with testnet 18332 2017-09-06 01:18:35 +02:00
chainparamsbase.h Chainparams: Use a regular factory for creating chainparams 2017-05-03 18:15:47 +02:00
chainparamsseeds.h p2p: Hardcoded seeds update pre-0.15 branch 2017-07-30 14:04:51 +02:00
checkpoints.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
checkpoints.h
checkqueue.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
clientversion.cpp Correct typo in comments 2017-09-29 14:50:30 +08:00
clientversion.h Fix build warning from #error text 2017-04-07 14:37:25 -04:00
coins.cpp Use nullptr instead of zero (0) as the null pointer constant 2017-08-16 10:24:18 +02:00
coins.h Refactor: Modernize disallowed copy constructors/assignment 2017-09-16 13:06:05 +03:00
compat.h Move CloseSocket out of SetSocketNonBlocking and pass SOCKET by const reference in SetSocket* functions 2017-07-22 09:11:55 +02:00
compressor.cpp Fix subscript[0] in compressor.cpp 2017-07-08 13:33:01 -07:00
compressor.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
core_io.h Pass serialization flags and whether to include hex to TxToUniv 2017-08-17 10:42:51 -07:00
core_memusage.h Avoid dereference-of-casted-pointer 2017-07-07 10:45:31 -07:00
core_read.cpp Fix signed/unsigned comparison warning introduced in c8e29d7ff0. 2017-07-12 14:03:42 -04:00
core_write.cpp Introduce wrappers around CBitcoinAddress 2017-09-06 13:07:45 -07:00
cuckoocache.h Fix header guards using reserved identifiers 2017-08-26 02:56:53 +03:00
dbwrapper.cpp Merge #10701: Remove the virtual specifier for functions with the override specifier 2017-09-04 18:06:44 -07:00
dbwrapper.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
fs.cpp Remove unused Boost includes 2017-06-09 10:25:26 +02:00
fs.h [Trivial] Add BITCOIN_FS_H endif footer in fs.h 2017-05-19 02:01:28 -07:00
hash.cpp Cleanup (safe, it was checked) subscript[0] in MurmurHash3 (and cleanup MurmurHash3 to be more clear). 2017-07-08 13:33:01 -07:00
hash.h Squashed 'src/secp256k1/' changes from 84973d393..0b7024185 2017-09-29 16:00:20 +02:00
httprpc.cpp Fix uninitialized URI in batch RPC requests 2017-10-03 15:25:00 -04:00
httprpc.h Remove unnecessary forward class declarations in header files 2017-06-12 20:37:43 +02:00
httpserver.cpp rpc: further constrain the libevent workaround 2017-11-02 14:37:35 -04:00
httpserver.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
indirectmap.h
init.cpp Connect to an extra outbound peer if our tip is stale 2017-11-02 12:39:14 -04:00
init.h init: Factor out AppInitLockDataDirectory 2017-07-17 14:56:52 +02:00
key.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
key.h Remove some unused functions and methods 2017-09-21 23:40:33 -07:00
keystore.cpp Remove unused Boost includes 2017-06-09 10:25:26 +02:00
keystore.h Merge #10916: add missing lock to crypter GetKeys() 2017-09-07 22:04:18 +02:00
limitedmap.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
Makefile.am Fix automake warnings when running autogen.sh 2017-10-21 12:05:36 +08:00
Makefile.bench.include build: Make "make clean" remove all files created when running "make check" 2017-10-04 14:54:41 +02:00
Makefile.leveldb.include build: verify that the assembler can handle crc32 functions 2017-07-13 12:49:05 -04:00
Makefile.qt.include [Build] Add AM_OBJCXXFLAGS and QT_PIE_FLAGS to OBJCXXFLAGS to future-proof darwin targets 2017-10-21 12:13:25 +08:00
Makefile.qttest.include Remove redundant testutil files 2017-09-05 15:02:17 +12:00
Makefile.test.include Merge #11433: qa: Restore bitcoin-util-test py2 compatibility 2017-10-03 21:25:00 +02:00
memusage.h scripted-diff: Remove #include <boost/foreach.hpp> 2017-06-22 03:48:52 +02:00
merkleblock.cpp Consolidate CMerkleBlock constructor into a single method 2017-09-20 20:35:54 -07:00
merkleblock.h Consolidate CMerkleBlock constructor into a single method 2017-09-20 20:35:54 -07:00
miner.cpp Deprecate confusing blockmaxsize, fix getmininginfo output 2017-09-11 15:51:25 -04:00
miner.h Remove nBlockMaxSize from miner opt struct as it is no longer used. 2017-09-18 23:40:38 +00:00
net_processing.cpp Merge #11560: Connect to a new outbound peer if our tip is stale 2017-11-02 20:13:24 +01:00
net_processing.h Connect to an extra outbound peer if our tip is stale 2017-11-02 12:39:14 -04:00
net.cpp Connect to an extra outbound peer if our tip is stale 2017-11-02 12:39:14 -04:00
net.h Add CConnmanTest to mutate g_connman in tests 2017-11-02 12:39:14 -04:00
netaddress.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
netaddress.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
netbase.cpp Fix a vs. an typo 2017-10-09 10:37:40 +02:00
netbase.h net: remove now-unused functions 2017-09-18 13:47:47 -04:00
netmessagemaker.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
noui.cpp
noui.h
pow.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
pow.h
prevector.h Fix header guards using reserved identifiers 2017-08-26 02:56:53 +03:00
protocol.cpp Merge #9544: [trivial] Add end of namespace comments. Improve consistency. 2017-06-26 13:40:26 +02:00
protocol.h Replace relevant services logic with a function suite. 2017-10-13 13:25:57 -04:00
pubkey.cpp Remove dead store in ecdsa_signature_parse_der_lax. 2017-08-17 14:28:35 +02:00
pubkey.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
random.cpp Merge #10843: Add attribute [[noreturn]] (C++11) to functions that will not return 2017-08-22 09:38:49 +02:00
random.h Merge #10377: Use rdrand as entropy source on supported platforms 2017-06-14 15:22:15 +02:00
rest.cpp Remove duplicate uriParts.size() > 0 check 2017-10-02 15:47:44 +02:00
reverse_iterator.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
reverselock.h
scheduler.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
scheduler.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
serialize.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
streams.h Refactor: Modernize disallowed copy constructors/assignment 2017-09-16 13:06:05 +03:00
sync.cpp Remove unused fTry from push_lock 2017-09-30 22:43:55 +01:00
sync.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
threadinterrupt.cpp
threadinterrupt.h
threadsafety.h
timedata.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02:00
timedata.h
tinyformat.h [Util] Update tinyformat.h 2017-10-29 21:12:12 +08:00
torcontrol.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
torcontrol.h
txdb.cpp Merge #10770: Drop upgrade-cancel callback registration for a generic "cancelable" 2017-09-07 09:21:04 -07:00
txdb.h Merge #11107: Fix races in AppInitMain and others with lock and atomic bools 2017-10-05 15:03:36 +02:00
txmempool.cpp Merge #8498: Near-Bugfix: Optimization: Minimize the number of times it is checked that no money... 2017-10-11 10:45:22 +02:00
txmempool.h Make float <-> int casts explicit outside of test, qt, CFeeRate 2017-09-11 15:51:37 -04:00
ui_interface.cpp
ui_interface.h Drop upgrade-cancel callback registration for a generic "resumeable" 2017-08-20 20:04:15 -04:00
uint256.cpp Changing &vec[0] to vec.data(), what 9804 missed 2017-09-08 10:36:26 +12:00
uint256.h Remove some unused functions and methods 2017-09-21 23:40:33 -07:00
undo.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
util.cpp Merge #10939: [init] Check non-emptiness of -blocknotify command prior to executing 2017-10-04 14:54:09 +02:00
util.h Squashed 'src/secp256k1/' changes from 84973d393..0b7024185 2017-09-29 16:00:20 +02:00
utilmoneystr.cpp
utilmoneystr.h doc: Add comment to use ValueFromAmount/AmountFromValue for JSON, not utilmoneystr 2017-08-07 17:10:42 +02:00
utilstrencodings.cpp Allow setting nMinimumChainWork on command line 2017-09-05 15:05:28 -04:00
utilstrencodings.h Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
utiltime.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
utiltime.h [logging] log system time and mock time 2017-05-10 15:49:00 -04:00
validation.cpp Merge #11531: Check that new headers are not a descendant of an invalid block (more effeciently) 2017-11-01 14:42:08 +01:00
validation.h Disconnect outbound peers relaying invalid headers 2017-10-27 16:29:12 -04:00
validationinterface.cpp Fix validationinterface build on super old boost/clang 2017-10-02 18:24:59 -04:00
validationinterface.h Remove declaration of unused function: void UpdatedTransaction(const uint256 &) 2017-07-15 20:04:04 +02:00
version.h Remove unused constant MEMPOOL_GD_VERSION 2017-06-09 01:45:36 +02:00
versionbits.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
versionbits.h scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
warnings.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02:00
warnings.h remove some unused functions 2017-07-22 09:55:57 +02:00