dash/src
Wladimir J. van der Laan 947c25ead2
Merge #12431: Only call NotifyBlockTip when chainActive changes
f98b54352 Only call NotifyBlockTip when the active chain changes (James O'Beirne)
152b7fb25 [tests] Add a (failing) test for waitforblockheight (James O'Beirne)

Pull request description:

  This is a subset of the more controversial https://github.com/bitcoin/bitcoin/pull/12407, but this also adds a test demonstrating the bug.

  In InvalidateBlock, we're calling NotifyBlockTip with the now-invalid block's prev regardless of what chain the ancestor block is on. This could create numerous issues, but it at least screws up `waitforblockheight` (or anything else relying on `rpc/blockchain.cpp:latestblock`) when InvalidateBlock is called on a block not in chainActive, which can happen via RPC.

  Only call NotifyBlockTip when the block being marked invalid is on the active chain.

Tree-SHA512: 9a54fe5e8c7eb489daf5df4483c0986129e871e2ca931a456ba869ecb5d5a8d4f7bd27ccc9e711e9292c9ed79ddef896c85d0e81fc76883503e327995b0e914f
2018-03-15 17:05:43 +01:00
..
bench Benchmark BnB in the worst case where it exhausts 2018-03-13 12:39:35 -04:00
compat Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
config
consensus Calculate and store the number of bytes required to spend an input 2018-03-09 21:15:36 -05:00
crypto Consensus: Fix bug when compiler do not support __builtin_clz* 2018-03-01 17:20:27 +08:00
leveldb Bump leveldb subtree 2018-02-16 08:59:28 -05:00
obj
obj-test
policy Calculate and store the number of bytes required to spend an input 2018-03-09 21:15:36 -05:00
primitives Merge #10498: Use static_cast instead of C-style casts for non-fundamental types 2018-02-07 16:15:28 -05:00
qt Merge #12080: Add support to search the address book 2018-03-14 15:25:34 +01:00
rpc Merge #11041: Add LookupBlockIndex 2018-03-13 19:12:35 +01:00
script Calculate and store the number of bytes required to spend an input 2018-03-09 21:15:36 -05:00
secp256k1 Bump secp256k1 subtree 2017-09-29 16:02:39 +02:00
support Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
test Merge #11872: [rpc] createrawtransaction: Accept sorted outputs 2018-03-13 18:00:06 +01:00
univalue univalue: Bump subtree 2018-02-10 09:55:54 -05:00
wallet Merge #10637: Coin Selection with Murch's algorithm 2018-03-14 18:01:36 +01:00
zmq Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
.clang-format
addrdb.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
addrdb.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
addrman.cpp net: Correct addrman logging 2018-03-06 21:52:53 +01:00
addrman.h Add test-before-evict discipline to addrman 2018-03-06 11:21:01 -05:00
amount.h
arith_uint256.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
arith_uint256.h [arith_uint256] Avoid unnecessary this-copy using prefix operator 2018-02-28 19:59:19 +09:00
base58.cpp Split key_io (address/key encodings) off from base58 2018-02-19 18:55:21 -08:00
base58.h Split key_io (address/key encodings) off from base58 2018-02-19 18:55:21 -08:00
bech32.cpp scripted-diff: Replace #include "" with #include <> (ryanofsky) 2017-11-16 08:23:01 +13:00
bech32.h Import Bech32 C++ reference code & tests 2017-09-28 16:02:16 -07:00
bitcoin-cli-res.rc
bitcoin-cli.cpp Create new wallet databases as directories rather than files 2018-03-03 10:26:55 -05:00
bitcoin-tx-res.rc
bitcoin-tx.cpp Merge #10694: Remove redundant code in MutateTxSign(CMutableTransaction&, const std::string&) 2018-03-13 16:59:50 +01:00
bitcoind-res.rc
bitcoind.cpp Move scheduler/threadGroup into common-init instead of per-app 2018-01-25 11:35:34 -05:00
blockencodings.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
blockencodings.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
bloom.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
bloom.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
chain.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
chain.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
chainparams.cpp Disable wallet fallbackfee by default on mainnet 2018-02-25 09:33:46 +08:00
chainparams.h Disable wallet fallbackfee by default on mainnet 2018-02-25 09:33:46 +08:00
chainparamsbase.cpp Refactor: One CBaseChainParams should be enough 2018-02-08 22:06:43 +01:00
chainparamsbase.h Refactor: One CBaseChainParams should be enough 2018-02-08 22:06:43 +01:00
chainparamsseeds.h Fix a-vs-an typos 2018-02-11 10:48:15 +01:00
checkpoints.cpp Add LookupBlockIndex function 2018-03-06 19:52:19 +00:00
checkpoints.h Add LookupBlockIndex function 2018-03-06 19:52:19 +00:00
checkqueue.h [Refactor] Remove unused fQuit var from checkqueue.h 2018-01-07 20:44:21 +00:00
clientversion.cpp Merge #11966: clientversion: Use full commit hash for commit-based version descriptions 2018-02-13 10:58:41 +01:00
clientversion.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
coins.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
coins.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
compat.h Add new prevector benchmarks. 2018-02-27 11:42:06 -08:00
compressor.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
compressor.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
core_io.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
core_memusage.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
core_read.cpp Merge #10498: Use static_cast instead of C-style casts for non-fundamental types 2018-02-07 16:15:28 -05:00
core_write.cpp Split key_io (address/key encodings) off from base58 2018-02-19 18:55:21 -08:00
cuckoocache.h Fix header guards using reserved identifiers 2017-08-26 02:56:53 +03:00
dbwrapper.cpp Log fatal LevelDB errors more verbosely 2018-03-09 22:51:10 -08:00
dbwrapper.h Add DynamicMemoryUsage() to LevelDB 2018-03-06 00:25:39 -05:00
fs.cpp scripted-diff: Replace #include "" with #include <> (ryanofsky) 2017-11-16 08:23:01 +13:00
fs.h
hash.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
hash.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
httprpc.cpp Split key_io (address/key encodings) off from base58 2018-02-19 18:55:21 -08:00
httprpc.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
httpserver.cpp Merge #12366: http: Join worker threads before deleting work queue 2018-02-08 09:21:49 +01:00
httpserver.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
indirectmap.h
init.cpp Merge #11041: Add LookupBlockIndex 2018-03-13 19:12:35 +01:00
init.h Move scheduler/threadGroup into common-init instead of per-app 2018-01-25 11:35:34 -05:00
key_io.cpp Simplify Base32 and Base64 conversions 2018-03-07 07:04:07 -08:00
key_io.h Split key_io (address/key encodings) off from base58 2018-02-19 18:55:21 -08:00
key.cpp Merge #9598: Improve readability by removing redundant casts to same type (on all platforms) 2018-03-07 17:47:46 +01:00
key.h Make CKey::Load references const 2018-01-23 13:16:56 -05:00
keystore.cpp Merge #11403: SegWit wallet support 2018-01-10 20:55:41 -10:00
keystore.h Merge #11403: SegWit wallet support 2018-01-10 20:55:41 -10:00
limitedmap.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
Makefile.am Implement Branch and Bound coin selection in a new file 2018-03-13 12:39:17 -04:00
Makefile.bench.include Add new prevector benchmarks. 2018-02-27 11:42:06 -08:00
Makefile.leveldb.include
Makefile.qt.include Merge #11621: [build] Add temp_bitcoin_locale_qrc to CLEAN_QT to fix make distcheck 2017-11-17 14:04:02 +01:00
Makefile.qttest.include Remove redundant testutil files 2017-09-05 15:02:17 +12:00
Makefile.test.include Add tests for the Branch and Bound algorithm 2018-03-13 12:39:26 -04:00
memusage.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
merkleblock.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
merkleblock.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
miner.cpp [doc] dev-notes: Members should be initialized 2018-02-16 14:21:52 -05:00
miner.h Use mempool's ancestor sort in transaction selection 2018-01-13 15:57:30 -05:00
net_processing.cpp Merge #11041: Add LookupBlockIndex 2018-03-13 19:12:35 +01:00
net_processing.h Polish interfaces around PeerLogicValidation 2018-03-14 10:11:01 +01:00
net.cpp Format timestamps using ISO 8601 formatting (e.g. "2018-02-28T12:34:56Z") 2018-03-09 15:02:01 +01:00
net.h Polish interfaces around PeerLogicValidation 2018-03-14 10:11:01 +01:00
netaddress.cpp Merge #10498: Use static_cast instead of C-style casts for non-fundamental types 2018-02-07 16:15:28 -05:00
netaddress.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
netbase.cpp Remove useless string initialization. 2018-02-13 20:47:55 +01:00
netbase.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
netmessagemaker.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
noui.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
noui.h
pow.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
pow.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
prevector.h Use memset() to optimize prevector::resize() 2018-02-27 13:27:51 -08:00
protocol.cpp Add setter for g_initial_block_download_completed 2018-02-17 21:28:50 +11:00
protocol.h Add setter for g_initial_block_download_completed 2018-02-17 21:28:50 +11:00
pubkey.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
pubkey.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
random.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
random.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
rest.cpp Add LookupBlockIndex function 2018-03-06 19:52:19 +00:00
reverse_iterator.h
reverselock.h
scheduler.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
scheduler.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
serialize.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
streams.h Fix typos 2018-01-28 13:21:25 +01:00
sync.cpp Fix typos 2018-01-28 13:21:25 +01:00
sync.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
threadinterrupt.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
threadinterrupt.h
threadsafety.h
timedata.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
timedata.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
tinyformat.h [Util] Update tinyformat.h 2017-10-29 21:12:12 +08:00
torcontrol.cpp boost: drop boost threads from torcontrol 2018-02-08 14:35:29 -05:00
torcontrol.h boost: drop boost threads from torcontrol 2018-02-08 14:35:29 -05:00
txdb.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
txdb.h Merge #10498: Use static_cast instead of C-style casts for non-fundamental types 2018-02-07 16:15:28 -05:00
txmempool.cpp Remove unused mempool index 2018-01-09 08:59:21 -05:00
txmempool.h Avoid leaking prioritization information when relaying transactions 2018-01-25 18:02:24 -05:00
ui_interface.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
ui_interface.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
uint256.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
uint256.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
undo.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
util.cpp Format timestamps using ISO 8601 formatting (e.g. "2018-02-28T12:34:56Z") 2018-03-09 15:02:01 +01:00
util.h Merge #10271: Use std:🧵:hardware_concurrency, instead of Boost, to determine available cores 2018-03-06 19:21:34 +01:00
utilmoneystr.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
utilmoneystr.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
utilstrencodings.cpp Simplify Base32 and Base64 conversions 2018-03-07 07:04:07 -08:00
utilstrencodings.h Generalize ConvertBits 2018-03-06 20:28:08 -08:00
utiltime.cpp Format timestamps using ISO 8601 formatting (e.g. "2018-02-28T12:34:56Z") 2018-03-09 15:02:01 +01:00
utiltime.h Format timestamps using ISO 8601 formatting (e.g. "2018-02-28T12:34:56Z") 2018-03-09 15:02:01 +01:00
validation.cpp Merge #12431: Only call NotifyBlockTip when chainActive changes 2018-03-15 17:05:43 +01:00
validation.h Add LookupBlockIndex function 2018-03-06 19:52:19 +00:00
validationinterface.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
validationinterface.h Polish interfaces around PeerLogicValidation 2018-03-14 10:11:01 +01:00
version.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
versionbits.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
versionbits.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
warnings.cpp Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00
warnings.h Increment MIT Licence copyright header year on files modified in 2017 2018-01-03 02:26:56 +09:00