bitcoin/src/bench
MarcoFalke 1847ce2d49
Merge bitcoin/bitcoin#23157: txmempool -/-> validation 1/2: improve performance of check() and remove dependency on validation
082c5bf099 [refactor] pass coinsview and height to check() (glozow)
ed6115f1ea [mempool] simplify some check() logic (glozow)
9e8d7ad5d9 [validation/mempool] use Spend/AddCoin instead of UpdateCoins (glozow)
09d18916af MOVEONLY: remove single-use helper func CheckInputsAndUpdateCoins (glozow)
e8639ec26a [mempool] remove now-unnecessary code (glozow)
54c6f3c1da [mempool] speed up check() by using coins cache and iterating in topo order (glozow)
30e240f65e [bench] Benchmark CTxMemPool::check() (glozow)
cb1407196f [refactor/bench] make mempool_stress bench reusable and parameterizable (glozow)

Pull request description:

  Remove the txmempool <-> validation circular dependency by removing txmempool's dependency on validation. There are two functions in txmempool that need validation right now: `check()` and `removeForReorg()`. This PR removes the dependencies in `check()`.

  This PR also improves the performance of `CTxMemPool::check()` by walking through the entries exactly once, in ascending ancestorcount order, which guarantees that we see parents before children.

ACKs for top commit:
  jnewbery:
    reACK 082c5bf099
  GeneFerneau:
    tACK [082c5bf](082c5bf099)
  rajarshimaitra:
    tACK 082c5bf099
  theStack:
    Code-review ACK 082c5bf099

Tree-SHA512: 40ac622af1627b5c3e6abb4f0f035d833265a8c5e8dc88faf5354875dfb5137f137825e54bbd2a2668ed37b145c5d02285f776402629f58596e51853a9a79d29
2021-10-25 15:21:27 +02:00
..
data Add deserialize + CheckBlock benchmarks, and a full block hex 2016-11-09 11:27:59 -08:00
.gitignore Ignore bench_bitcoin binary. 2015-10-06 17:46:12 +02:00
addrman.cpp scripted-diff: Rename CAddrMan to AddrMan 2021-09-28 22:21:10 -04:00
base58.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
bech32.cpp bench: clean up includes 2021-09-21 14:45:49 +02:00
bench.cpp bench: clean up includes 2021-09-21 14:45:49 +02:00
bench.h bench: various args improvements 2021-09-21 14:45:49 +02:00
bench_bitcoin.cpp scripted-diff: Rename overloaded int GetArg to GetIntArg 2021-09-27 06:57:20 -04:00
block_assemble.cpp bench: Use existing chainman in AssembleBlock 2021-05-27 13:50:11 -04:00
ccoins_caching.cpp Only relay Taproot spends if next block has it active 2020-10-30 15:52:19 -07:00
chacha20.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
chacha_poly_aead.cpp Do not run functions with necessary side-effects in assert() 2020-12-06 00:48:09 +00:00
checkblock.cpp Remove gArgs global from CreateChainParams to aid testing 2020-09-29 10:20:05 +02:00
checkqueue.cpp bench: Use CCheckQueue local thread pool 2020-09-24 06:55:34 +03:00
coin_selection.cpp bench: Use DescriptorScriptPubKeyMan for wallet things 2021-10-15 15:23:07 -04:00
crypto_hash.cpp bench: fixed ubsan implicit conversion 2021-09-21 14:45:49 +02:00
data.cpp refactor: init vectors via std::{begin,end} to avoid pointer arithmetic 2021-01-31 17:35:01 +01:00
data.h bench: Move generated data to a dedicated translation unit 2019-07-02 18:11:15 +01:00
duplicate_inputs.cpp scripted-diff: tree-wide: Remove all review-only assertions 2021-06-10 15:05:24 -04:00
examples.cpp Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
gcs_filter.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
hashpadding.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
lockedpool.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
mempool_eviction.cpp Move MakeNoLogFileContext to common libtest_util, and use it in bench 2021-03-03 09:17:37 +01:00
mempool_stress.cpp [refactor] pass coinsview and height to check() 2021-10-04 15:00:28 +01:00
merkle_root.cpp Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
nanobench.cpp Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
nanobench.h bench: update nanobench from 4.3.4 to 4.3.6 2021-09-21 11:46:01 +02:00
peer_eviction.cpp bench: make EvictionProtection.* work with any number of iterations 2021-09-21 14:45:48 +02:00
poly1305.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
prevector.cpp Merge #20464: refactor: Treat CDataStream bytes as uint8_t 2021-02-01 15:17:28 +01:00
rollingbloom.cpp scripted-diff: Move bloom to src/common 2021-10-05 11:10:37 +02:00
rpc_blockchain.cpp rpc: Add level 3 verbosity to getblock RPC call. 2021-10-05 10:42:34 +02:00
rpc_mempool.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
util_time.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
verify_script.cpp refactor: Pass script verify flags as uint32_t 2021-06-14 08:02:45 +02:00
wallet_balance.cpp bench: Use DescriptorScriptPubKeyMan for wallet things 2021-10-15 15:23:07 -04:00