bitcoin/src
glozow 2a07c4662d
Merge bitcoin/bitcoin#29757: feefrac: avoid explicitly computing diagram; compare based on chunks
b22901dfa9 Avoid explicitly computing diagram; compare based on chunks (Pieter Wuille)

Pull request description:

  This merges the `BuildDiagramFromChunks` and `CompareFeeRateDiagram` introduced in #29242 into a single `CompareChunks` function, which operates on sorted chunk data rather than diagrams, instead computing the diagram on the fly.

  This avoids the need for the construction of an intermediary diagram object, and removes the slightly arbitrary "all diagrams must start at (0, 0)" requirement.

  Not a big deal, but I think the result is a bit cleaner and not really more complicated.

ACKs for top commit:
  glozow:
    reACK b22901d
  instagibbs:
    reACK b22901dfa9

Tree-SHA512: ca37bdf61d9a9cb5435f4da73e97ead33bf65828ad9af49b87336b1ece70db8ced1c21f517fc6eb6d616311c91f3da75ecae6b9bd42547133e3a3c5320b7816d
2024-04-24 16:51:56 +01:00
..
bench refactor, bench, fuzz: Drop unneeded `UCharCast` calls 2024-04-06 15:46:53 +01:00
common refactor: Rename `subprocess.hpp` to follow our header name conventions 2024-04-23 18:22:58 +01:00
compat netbase: refactor CreateSock() to accept sa_family_t 2024-03-01 13:13:07 -05:00
config
consensus Include version.h in fewer places 2023-11-16 11:36:22 +10:00
crc32c Update crc32c subtree to latest upstream master 2024-02-27 18:28:19 +00:00
crypto Change MAC_OSX macro to __APPLE__ in crypto package 2024-04-09 11:21:57 +02:00
index Fix #29767, set m_synced = true after Commit() 2024-04-01 14:13:06 +11:00
init doc: add unconditional info loglevel following merge of PR 28318 2024-01-11 11:01:28 -06:00
interfaces wallet: return and display signer error 2024-04-16 17:47:43 +02:00
ipc multiprocess: Add type conversion code for UniValue types 2023-11-28 12:35:50 -05:00
kernel Merge bitcoin/bitcoin#29691: Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us 2024-04-08 17:36:12 +02:00
leveldb
logging
minisketch Update minisketch subtree to latest master 2024-04-12 14:27:45 +02:00
node [clang-tidy] Enable the misc-no-recursion check 2024-04-07 14:04:45 +01:00
policy Avoid explicitly computing diagram; compare based on chunks 2024-04-22 09:36:36 -04:00
primitives [validation] Cache merkle root and witness commitment checks 2024-02-27 14:19:15 +00:00
qt Merge bitcoin/bitcoin#24313: Improve display address handling for external signer 2024-04-23 17:20:54 -04:00
rpc [rpc, bugfix] Enforce maximum value for setmocktime 2024-04-15 09:51:06 +01:00
script sign: don't assume we are parsing a sane Miniscript 2024-04-22 18:24:35 +02:00
secp256k1 Update secp256k1 subtree to latest master 2024-04-04 12:05:16 +01:00
support scripted-diff: Fix bitcoin_config_h includes 2024-02-13 20:10:44 +00:00
test Merge bitcoin/bitcoin#29757: feefrac: avoid explicitly computing diagram; compare based on chunks 2024-04-24 16:51:56 +01:00
univalue test: Fix failing univalue float test 2024-04-16 16:35:12 +02:00
util Merge bitcoin/bitcoin#29757: feefrac: avoid explicitly computing diagram; compare based on chunks 2024-04-24 16:51:56 +01:00
wallet Merge bitcoin/bitcoin#24313: Improve display address handling for external signer 2024-04-23 17:20:54 -04:00
zmq zmq: accept unix domain socket address for notifier 2024-04-16 14:14:37 -04:00
.bear-tidy-config tidy: modernize-use-emplace 2023-10-12 11:27:19 +02:00
.clang-format refactor: Print verbose serialize compiler error messages 2023-12-15 15:20:54 +01:00
.clang-tidy [clang-tidy] Enable the misc-no-recursion check 2024-04-07 14:04:45 +01:00
Makefile.am refactor: Rename `subprocess.hpp` to follow our header name conventions 2024-04-23 18:22:58 +01:00
Makefile.bench.include bench: basic block filter index initial sync 2024-03-12 09:30:42 -03:00
Makefile.crc32c.include
Makefile.leveldb.include
Makefile.minisketch.include build: remove minisketch clz check 2024-04-12 14:28:34 +02:00
Makefile.qt.include Merge bitcoin/bitcoin#22764: build: Include qt sources for parsing with extract_strings.py 2023-10-19 13:25:49 +01:00
Makefile.qt_locale.include qt: 27.0 translations update 2024-03-04 10:02:26 +00:00
Makefile.qttest.include
Makefile.test.include Merge bitcoin/bitcoin#29648: Remove libbitcoinconsensus 2024-04-01 17:53:31 +02:00
Makefile.test_fuzz.include fuzz: move `MockedDescriptorConverter` to `fuzz/util` 2023-11-20 15:57:50 -03:00
Makefile.test_util.include
Makefile.univalue.include
addrdb.cpp addrman: drop /*deterministic=*/ comment 2024-03-23 15:33:47 +01:00
addrdb.h
addresstype.cpp
addresstype.h bugfix: Mark CNoDestination and PubKeyDestination constructor explicit 2023-10-25 22:46:55 +02:00
addrman.cpp Merge bitcoin/bitcoin#29404: refactor: bitcoin-config.h includes cleanup 2024-02-20 13:07:48 +00:00
addrman.h doc, test: Test and explain service flag handling 2024-01-15 16:19:53 -05:00
addrman_impl.h net: Optionally include terrible addresses in GetAddr results 2023-10-04 18:08:49 +02:00
arith_uint256.cpp refactor: Remove unused and fragile string interface from arith_uint256 2023-11-21 17:37:25 +01:00
arith_uint256.h refactor: Remove unused and fragile string interface from arith_uint256 2023-11-21 17:37:25 +01:00
attributes.h
banman.cpp Merge bitcoin/bitcoin#24097: Replace RecursiveMutex m_cs_banned with Mutex, and rename it 2023-11-02 14:09:27 -04:00
banman.h Merge bitcoin/bitcoin#24097: Replace RecursiveMutex m_cs_banned with Mutex, and rename it 2023-11-02 14:09:27 -04:00
base58.cpp
base58.h
bech32.cpp
bech32.h
bip324.cpp
bip324.h
bitcoin-chainstate.cpp node: Make translations of fatal errors consistent 2024-03-21 16:40:22 +01:00
bitcoin-cli-res.rc
bitcoin-cli.cpp Merge bitcoin/bitcoin#29657: Bugfix: bitcoin-cli: Check length of peer.transport_protocol_type 2024-04-22 18:04:27 -04:00
bitcoin-tx-res.rc
bitcoin-tx.cpp doc: Update bitcoin-tx replaceable documentation 2023-12-11 13:08:46 -05:00
bitcoin-util-res.rc
bitcoin-util.cpp Include version.h in fewer places 2023-11-16 11:36:22 +10:00
bitcoin-wallet-res.rc
bitcoin-wallet.cpp
bitcoind-res.rc
bitcoind.cpp Get rid of shutdown.cpp/shutdown.h, use SignalInterrupt directly 2023-12-04 15:39:15 -04:00
blockencodings.cpp refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef> 2024-04-06 19:17:20 +01:00
blockencodings.h refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef> 2024-04-06 19:17:20 +01:00
blockfilter.cpp refactor: SpanReader without nVersion 2023-11-28 12:42:07 +01:00
blockfilter.h
chain.cpp
chain.h assumeutxo: Remove BLOCK_ASSUMED_VALID flag 2024-03-18 11:28:40 -05:00
chainparams.cpp
chainparams.h
chainparamsbase.cpp
chainparamsbase.h
chainparamsseeds.h seeds: Update testnet seeds 2024-03-04 19:53:30 -05:00
checkqueue.h
clientversion.cpp scripted-diff: Fix bitcoin_config_h includes 2024-02-13 20:10:44 +00:00
clientversion.h
coins.cpp Use Txid in COutpoint 2023-11-21 13:15:44 +00:00
coins.h Merge bitcoin/bitcoin#28922: Use Txid in COutpoint 2023-11-24 14:41:58 +00:00
compressor.cpp
compressor.h
core_io.h Remove deprecated -rpcserialversion 2023-12-11 18:22:13 +01:00
core_memusage.h
core_read.cpp rpc: Reword SighashFromStr error message 2024-04-15 10:01:15 +02:00
core_write.cpp Remove deprecated -rpcserialversion 2023-12-11 18:22:13 +01:00
cuckoocache.h doc: fix some typos 2024-03-26 16:51:46 +00:00
dbwrapper.cpp
dbwrapper.h
deploymentinfo.cpp
deploymentinfo.h
deploymentstatus.cpp
deploymentstatus.h
dummywallet.cpp
external_signer.cpp external_signer: replace boost::process with cpp-subprocess 2024-03-27 14:16:37 +00:00
external_signer.h
flatfile.cpp scripted-diff: Replace error() with LogError() 2024-03-11 13:49:37 +01:00
flatfile.h
hash.cpp crypto, hash: replace custom rotl32 with std::rotl 2024-01-05 17:12:38 +01:00
hash.h Include version.h in fewer places 2023-11-16 11:36:22 +10:00
headerssync.cpp refactor: Fix timedata includes 2024-02-01 13:52:05 +01:00
headerssync.h
httprpc.cpp
httprpc.h
httpserver.cpp Merge bitcoin/bitcoin#28318: logging: Simplify API for level based logging 2024-01-10 14:11:32 -05:00
httpserver.h refactor: Remove call to ShutdownRequested from HTTPRequest 2023-12-04 15:39:15 -04:00
i2p.cpp Merge bitcoin/bitcoin#27375: net: support unix domain sockets for -proxy and -onion 2024-03-13 06:53:07 -04:00
i2p.h i2p: construct Session with Proxy instead of CService 2024-03-01 14:47:29 -05:00
indirectmap.h
init.cpp zmq: accept unix domain socket address for notifier 2024-04-16 14:14:37 -04:00
init.h Get rid of shutdown.cpp/shutdown.h, use SignalInterrupt directly 2023-12-04 15:39:15 -04:00
key.cpp refactor: Allow std::span construction from CKey 2024-01-16 15:29:18 +01:00
key.h key: Add constructor for CExtKey that takes CExtPubKey and CKey 2024-02-20 11:20:58 -05:00
key_io.cpp refactor: Allow std::span construction from CKey 2024-01-16 15:29:18 +01:00
key_io.h
logging.cpp logging: remove unused BCLog::UTIL 2024-02-11 15:25:07 +01:00
logging.h Merge bitcoin/bitcoin#29419: log: deduplicate category names and improve logging.cpp 2024-04-02 10:47:05 -04:00
mapport.cpp
mapport.h
memusage.h
merkleblock.cpp [clang-tidy] Enable the misc-no-recursion check 2024-04-07 14:04:45 +01:00
merkleblock.h refactor: Use Txid in CMerkleBlock 2023-11-28 17:49:41 +01:00
net.cpp net: Decrease nMaxIPs when learning from DNS seeds 2024-04-11 14:43:30 +02:00
net.h Accept "in" and "out" flags to -whitelist to allow whitelisting manual connections 2024-02-28 10:05:56 -03:00
net_permissions.cpp Accept "in" and "out" flags to -whitelist to allow whitelisting manual connections 2024-02-28 10:05:56 -03:00
net_permissions.h Accept "in" and "out" flags to -whitelist to allow whitelisting manual connections 2024-02-28 10:05:56 -03:00
net_processing.cpp refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef> 2024-04-06 19:17:20 +01:00
net_processing.h net: move state dependent peer services flags 2024-01-15 10:28:20 -03:00
net_types.cpp
net_types.h
netaddress.cpp netbase: refactor CreateSock() to accept sa_family_t 2024-03-01 13:13:07 -05:00
netaddress.h netbase: refactor CreateSock() to accept sa_family_t 2024-03-01 13:13:07 -05:00
netbase.cpp netbase: clean up Proxy logging 2024-04-16 10:24:02 -04:00
netbase.h net: split ConnectToSocket() from ConnectDirectly() for unix sockets 2024-03-01 14:47:28 -05:00
netgroup.cpp Merge bitcoin/bitcoin#27581: net: Continuous ASMap health check 2023-12-06 11:22:42 -05:00
netgroup.h net: Add continuous ASMap health check logging 2023-12-02 22:03:08 +01:00
netmessagemaker.h refactor: NetMsg::Make() without nVersion 2023-11-20 14:02:27 +01:00
noui.cpp node: Use log levels in noui_ThreadSafeMessageBox 2024-03-21 16:41:16 +01:00
noui.h
outputtype.cpp
outputtype.h
pow.cpp
pow.h
prevector.h refactor: Mark prevector iterator with std::contiguous_iterator_tag 2024-01-18 19:29:34 +01:00
protocol.cpp net: remove now unused global 'g_initial_block_download_completed' 2024-01-23 10:25:16 -03:00
protocol.h net: remove now unused global 'g_initial_block_download_completed' 2024-01-23 10:25:16 -03:00
psbt.cpp Remove unused version.h include 2023-11-30 11:28:19 +01:00
psbt.h refactor: SpanReader without nVersion 2023-11-28 12:42:07 +01:00
pubkey.cpp pubkey: introduce a GetEvenCorrespondingCPubKey helper 2023-10-08 02:43:19 +02:00
pubkey.h Add missing XOnlyPubKey::data() to get mutable data 2024-01-16 10:58:57 +01:00
random.cpp scripted-diff: Fix bitcoin_config_h includes 2024-02-13 20:10:44 +00:00
random.h crypto: replace CountBits with std::bit_width 2024-02-26 16:13:12 +00:00
randomenv.cpp Drop Windows Socket dependency for `randomenv.cpp` 2024-04-02 14:29:24 +01:00
randomenv.h
rest.cpp rest: read raw block in rest_block and deserialize for json 2024-03-12 12:48:04 -04:00
rest.h
reverse_iterator.h
scheduler.cpp scripted-diff: Rename SingleThreadedSchedulerClient to SerialTaskRunner 2024-02-15 14:43:14 +01:00
scheduler.h kernel: Remove dependency on CScheduler 2024-02-16 17:12:52 +01:00
serialize.h Merge bitcoin/bitcoin#29263: serialization: c++20 endian/byteswap/clz modernization 2024-03-01 11:19:58 -05:00
signet.cpp refactor: SpanReader without nVersion 2023-11-28 12:42:07 +01:00
signet.h
span.h Allow int8_t optimized vector serialization 2023-12-22 09:58:19 +01:00
streams.cpp
streams.h Remove unused CDataStream 2023-11-30 11:27:54 +01:00
sync.cpp scripted-diff: Fix bitcoin_config_h includes 2024-02-13 20:10:44 +00:00
sync.h Merge bitcoin/bitcoin#27116: doc: clarify that LOCK() internally checks whether the mutex is held 2023-10-26 15:02:13 -04:00
threadsafety.h
timedata.cpp Remove GetAdjustedTime 2024-01-05 17:16:38 +00:00
timedata.h refactor: Fix timedata includes 2024-02-01 13:52:05 +01:00
tinyformat.h
torcontrol.cpp Merge bitcoin/bitcoin#28318: logging: Simplify API for level based logging 2024-01-10 14:11:32 -05:00
torcontrol.h
txdb.cpp
txdb.h
txmempool.cpp Avoid explicitly computing diagram; compare based on chunks 2024-04-22 09:36:36 -04:00
txmempool.h Avoid explicitly computing diagram; compare based on chunks 2024-04-22 09:36:36 -04:00
txorphanage.cpp fuzz: Improve fuzzing stability for txorphan harness 2023-12-08 13:14:46 +00:00
txorphanage.h fuzz: Improve fuzzing stability for txorphan harness 2023-12-08 13:14:46 +00:00
txrequest.cpp refactor: modernize-use-default-member-init for bit-fields (C++20) 2023-12-07 11:06:01 +01:00
txrequest.h
uint256.cpp
uint256.h
undo.h Include version.h in fewer places 2023-11-16 11:36:22 +10:00
validation.cpp Merge bitcoin/bitcoin#29726: assumeutxo: Fix -reindex before snapshot was validated 2024-04-16 13:03:23 -04:00
validation.h Merge bitcoin/bitcoin#29648: Remove libbitcoinconsensus 2024-04-01 17:53:31 +02:00
validationinterface.cpp kernel: Remove dependency on CScheduler 2024-02-16 17:12:52 +01:00
validationinterface.h kernel: Remove dependency on CScheduler 2024-02-16 17:12:52 +01:00
versionbits.cpp
versionbits.h
walletinitinterface.h
warnings.cpp scripted-diff: Fix bitcoin_config_h includes 2024-02-13 20:10:44 +00:00
warnings.h