bitcoin/src
fanquake b9416c3847
Merge bitcoin/bitcoin#25096: [net] Minor improvements to addr caching
292828cd77 [test] Test addr cache for multiple onion binds (dergoegge)
3382905bef [net] Seed addr cache randomizer with port from binding address (dergoegge)
f10e80b6e4 [net] Use ConnectedThroughNetwork() instead of GetNetwork() to seed addr cache randomizer (dergoegge)

Pull request description:

  The addr cache id randomizer is currently supposed to be seeded with the network of the inbound connection and the local socket (only the address is used not the port):  a8098f2cef/src/net.cpp (L2800-L2804)

  For inbound onion connections `CNode::addr.GetNetwork()` returns `NET_UNROUTABLE` and `CNode::addrBind` is set to `127.0.0.1:<onion bind port>`. This results in the same addr cache for all inbound connections on 127.0.0.1 binds.

  To avoid the same addr cache across all onion and other 127.0.0.1 binds, we should seed the addr cache randomizer with the correct network for inbound onion connections (using `CNode::ConnectedThroughNetwork()`) as well as the port of `CNode::addrBind`.

ACKs for top commit:
  sipa:
    utACK 292828cd77
  mzumsande:
    Code Review ACK 292828cd77
  naumenkogs:
    utACK 292828cd77

Tree-SHA512: d0be13bab6bc121c2926d4b168687f6c2ed4ce0c9dd19be71eb4886adeba8afc3daacdc4e232a0ba3b03a89d69b618abc5595b69abd1ad0c476d825bc6ea1f9f
2022-06-08 11:21:38 +01:00
..
bench Merge bitcoin/bitcoin#24927: Add test util to populate mempool with random transactions, fix #24634 bug 2022-06-02 19:08:43 +02:00
common refactor: make GetRand a template, remove GetRandInt 2022-04-22 09:04:39 -05:00
compat compat: remove glibcxx sanity checks 2022-05-28 09:43:02 +01:00
config
consensus Merge bitcoin/bitcoin#24032: Add defaults to vDeployments to avoid uninitialized variables 2022-05-26 20:06:10 +02:00
crc32c Update crc32c subtree 2021-09-29 14:10:29 +02:00
crypto Unroll the ChaCha20 inner loop for performance 2022-05-04 14:53:46 -04:00
index style-only: Rearrange using decls after scripted-diff 2022-05-23 14:53:35 -04:00
init Move init::SanityCheck to kernel::SanityCheck 2022-06-02 11:42:12 -04:00
interfaces settings: Add resetSettings() method 2022-05-19 11:32:56 -04:00
ipc refactor: Block unsafe fs::path std::string conversion calls 2021-10-05 11:10:47 -04:00
kernel kernel: SanityChecks: Return an error struct 2022-06-02 12:22:46 -04:00
leveldb build: Minor leveldb subtree update 2022-03-02 15:25:48 +01:00
logging util, refactor: Add UNIQUE_NAME helper macro 2022-02-16 14:59:20 +02:00
minisketch Update minisketch subtree to latest upstream 2022-02-04 22:47:49 +08:00
node scripted-diff: remove duplicate categories from LogPrint output 2022-06-06 12:12:03 +02:00
policy Move minRelayTxFee to policy/settings 2022-05-31 15:05:57 +02:00
primitives Merge bitcoin/bitcoin#24350: Primitives: Correct CTransaction deserialization docstring 2022-02-19 09:35:10 +01:00
qt qt: Drop no longer supported Android architecture 2022-06-04 11:42:26 +02:00
rpc Merge bitcoin/bitcoin#25254: Move minRelayTxFee to policy/settings 2022-06-07 11:31:10 +02:00
script Merge bitcoin/bitcoin#24860: Miniscript integration follow-ups 2022-06-04 20:54:20 +01:00
secp256k1 Update secp256k1 subtree to latest upstream master 2022-04-06 20:20:30 +01:00
support refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
test Merge bitcoin/bitcoin#25254: Move minRelayTxFee to policy/settings 2022-06-07 11:31:10 +02:00
univalue Bump univalue subtree 2022-05-30 16:42:13 +02:00
util Use designated initializers 2022-06-01 20:06:01 +02:00
wallet Merge bitcoin/bitcoin#25239: wallet: 'CommitTransaction', remove extra wtx lookup and add exception for db write error 2022-06-07 15:02:53 -04:00
zmq scripted-diff: remove duplicate categories from LogPrint output 2022-06-06 12:12:03 +02:00
.bear-tidy-config tidy: enable modernize-use-nullptr 2022-04-26 10:43:33 +01:00
.clang-format Use c++17 in clang-format 2021-11-12 11:46:34 +01:00
.clang-tidy tidy: use modernize-use-default-member-init 2022-05-17 17:19:07 +01:00
addrdb.cpp Merge bitcoin/bitcoin#24925: refactor: make GetRand a template, remove GetRandInt 2022-05-12 08:57:22 +02:00
addrdb.h [net] Move asmap into NetGroupManager 2022-04-20 14:29:29 +01:00
addrman.cpp Get time less often in AddrManImpl::ResolveCollisions_() 2022-05-25 10:57:08 +02:00
addrman.h [net] Move asmap into NetGroupManager 2022-04-20 14:29:29 +01:00
addrman_impl.h [netgroupman] Add GetMappedAS() and GetGroup() 2022-04-20 14:35:52 +01:00
arith_uint256.cpp Merge bitcoin/bitcoin#24077: util: Make base_uint::GetHex() and base_uint::SetHex() not depend on uint256 2022-04-14 07:15:22 +02:00
arith_uint256.h Remove duplicate static_asserts 2022-04-14 19:26:22 +02:00
attributes.h
banman.cpp refactor: Remove redundant scope in BanMan::SweepBanned() 2022-05-20 15:20:42 +02:00
banman.h refactor: Add thread safety annotation to BanMan::SweepBanned() 2022-05-20 15:17:00 +02:00
base58.cpp scripted-diff: Rename ValidAsCString to ContainsNoNUL 2022-04-27 14:16:35 +02:00
base58.h refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -05:00
bech32.cpp Avoid implicit-integer-sign-change in bech32.cpp 2022-02-25 09:43:54 +01:00
bech32.h Make Bech32 LocateErrors return error list rather than using out-arg 2021-12-06 14:17:41 +13:00
bitcoin-chainstate.cpp kernel: SanityChecks: Return an error struct 2022-06-02 12:22:46 -04:00
bitcoin-cli-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoin-cli.cpp Rename NetinfoRequestHandler::is_block_relay data member to is_tx_relay 2022-05-20 16:06:07 +02:00
bitcoin-tx-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoin-tx.cpp scripted-diff: Use getInt<T> over get_int/get_int64 2022-05-18 19:15:03 +02:00
bitcoin-util-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoin-util.cpp Remove no-op TIME_INIT on deser 2022-05-30 13:55:39 +02:00
bitcoin-wallet-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoin-wallet.cpp Output license info when binaries are passed -version 2022-02-22 15:36:19 +00:00
bitcoind-res.rc windres: use PACKAGE_VERSION rather than building more version numbers 2021-08-17 16:54:47 +08:00
bitcoind.cpp Move init::SanityCheck to kernel::SanityCheck 2022-06-02 11:42:12 -04:00
blockencodings.cpp Remove fUseWTXID parameter from CBlockHeaderAndShortTxIDs constructor 2022-05-17 10:37:10 +01:00
blockencodings.h Remove fUseWTXID parameter from CBlockHeaderAndShortTxIDs constructor 2022-05-17 10:37:10 +01:00
blockfilter.cpp scripted-diff: rename MapIntoRange to FastRange64 2022-01-06 11:29:55 -05:00
blockfilter.h
chain.cpp Avoid integer sanitizer warnings in chain.o 2022-01-25 10:49:46 +01:00
chain.h Merge bitcoin/bitcoin#24146: Avoid integer sanitizer warnings in chain.o 2022-01-31 09:23:54 +01:00
chainparams.cpp refactor: introduce single-separator split helper SplitString 2022-04-11 22:19:46 +02:00
chainparams.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
chainparamsbase.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
chainparamsbase.h
chainparamsseeds.h net: Update hardcoded seeds for 23.x 2022-02-22 15:15:27 +01:00
checkqueue.h Increase threadsafety annotation coverage 2022-05-12 02:25:55 +10:00
clientversion.cpp refactor: shift CopyrightHolders() and LicenseInfo() to clientversion.cpp 2022-02-22 15:36:19 +00:00
clientversion.h refactor: shift CopyrightHolders() and LicenseInfo() to clientversion.cpp 2022-02-22 15:36:19 +00:00
coins.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
coins.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
compat.h compat: remove strnlen back-compat code 2022-03-29 10:15:33 +01:00
compressor.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
compressor.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
core_io.h refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -05:00
core_memusage.h
core_read.cpp core_read: Replace boost::split with SplitString 2022-05-04 07:34:47 +02:00
core_write.cpp refactor: add stdd:: includes to core_write 2022-03-30 20:11:15 +01:00
cuckoocache.h Add FastRange32 function and use it throughout the codebase 2022-01-07 13:37:47 -05:00
dbwrapper.cpp refactor: Change LogPrintLevel order to category, severity 2022-05-25 11:31:58 +02:00
dbwrapper.h Use spans of std::byte in serialize 2022-01-02 11:40:31 +01:00
deploymentinfo.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
deploymentinfo.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
deploymentstatus.cpp validation: move g_versionbitscache into ChainstateManager 2022-05-10 12:09:33 +10:00
deploymentstatus.h validation: move g_versionbitscache into ChainstateManager 2022-05-10 12:09:33 +10:00
dummywallet.cpp wallet: ensure wallet files are not reused across chains 2022-02-16 15:02:26 +02:00
external_signer.cpp parsing external signer master fingerprint string as bytes instead of caring for lower/upper case in ExternalSigner::SignTransaction 2022-05-07 11:09:52 +02:00
external_signer.h refactor: make ExternalSigner NetworkArg() and m_chain private 2021-06-16 10:48:58 +02:00
flatfile.cpp Disallow more unsafe string->path conversions allowed by path append operators 2022-04-21 12:01:00 -05:00
flatfile.h
fs.cpp util: Replace non-threadsafe strerror 2022-04-28 10:24:06 +02:00
fs.h Disallow more unsafe string->path conversions allowed by path append operators 2022-04-21 12:01:00 -05:00
hash.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
hash.h refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -05:00
httprpc.cpp scripted-diff: Use getInt<T> over get_int/get_int64 2022-05-18 19:15:03 +02:00
httprpc.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
httpserver.cpp refactor: Change LogPrintLevel order to category, severity 2022-05-25 11:31:58 +02:00
httpserver.h Merge bitcoin/bitcoin#24681: build: Bump libevent minimum version up to 2.1.8 2022-04-06 13:19:36 +01:00
i2p.cpp scripted-diff: remove duplicate categories from LogPrint output 2022-06-06 12:12:03 +02:00
i2p.h Increase threadsafety annotation coverage 2022-05-12 02:25:55 +10:00
indirectmap.h
init.cpp kernel: SanityChecks: Return an error struct 2022-06-02 12:22:46 -04:00
init.h Move init::SanityCheck to kernel::SanityCheck 2022-06-02 11:42:12 -04:00
key.cpp refactor: Use Span of std::byte in CExtKey::SetSeed 2022-04-27 19:53:37 +02:00
key.h refactor: Use Span of std::byte in CExtKey::SetSeed 2022-04-27 19:53:37 +02:00
key_io.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
key_io.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
logging.cpp logging: fix logging empty threadname 2022-06-02 22:30:30 +08:00
logging.h refactor: Change LogPrintLevel order to category, severity 2022-05-25 11:31:58 +02:00
Makefile.am Merge bitcoin/bitcoin#25065: [kernel 2c/n] Introduce kernel::Context, encapsulate global init/teardown 2022-06-04 20:25:57 +01:00
Makefile.bench.include Merge bitcoin/bitcoin#24852: util: optimize HexStr 2022-05-04 20:36:09 +02:00
Makefile.crc32c.include build: Create .la library for crc32c 2022-04-26 16:25:38 -04:00
Makefile.leveldb.include build: Create .la library for leveldb 2022-04-26 16:29:35 -04:00
Makefile.minisketch.include build: add minisketch build file and include it 2021-10-21 09:37:30 +08:00
Makefile.qt.include build: Remove vestigial LIBLEVELDB_SSE42 2022-04-11 16:56:34 -04:00
Makefile.qt_locale.include qt: Pre-branch translation updates for 23.x 2022-02-28 16:59:56 +01:00
Makefile.qttest.include build: Remove vestigial LIBLEVELDB_SSE42 2022-04-11 16:56:34 -04:00
Makefile.test.include Merge bitcoin/bitcoin#24860: Miniscript integration follow-ups 2022-06-04 20:54:20 +01:00
Makefile.test_fuzz.include build: Don't add unrelated libs to LIBTEST_* 2022-04-11 16:56:34 -04:00
Makefile.test_util.include build: Don't add unrelated libs to LIBTEST_* 2022-04-11 16:56:34 -04:00
Makefile.univalue.include Integrate univalue into our buildsystem 2021-10-11 20:46:25 +08:00
mapport.cpp Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) 2022-04-26 10:41:45 +01:00
mapport.h
memusage.h
merkleblock.cpp
merkleblock.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
net.cpp Merge bitcoin/bitcoin#25096: [net] Minor improvements to addr caching 2022-06-08 11:21:38 +01:00
net.h Merge bitcoin/bitcoin#25109: Strengthen AssertLockNotHeld assertions 2022-05-16 14:18:08 +02:00
net_permissions.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
net_permissions.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
net_processing.cpp Merge bitcoin/bitcoin#25254: Move minRelayTxFee to policy/settings 2022-06-07 11:31:10 +02:00
net_processing.h Do not pass CChainParams& to PeerManager::make 2022-05-18 18:46:27 +02:00
net_types.cpp scripted-diff: Use getInt<T> over get_int/get_int64 2022-05-18 19:15:03 +02:00
net_types.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
netaddress.cpp refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
netaddress.h refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -05:00
netbase.cpp scripted-diff: Rename ValidAsCString to ContainsNoNUL 2022-04-27 14:16:35 +02:00
netbase.h net: use Sock::SetSockOpt() instead of standalone SetSocketNoDelay() 2022-04-15 09:39:25 +02:00
netgroup.cpp [netgroup] Use nStartByte as offset for the last byte of the group 2022-04-25 15:09:14 +02:00
netgroup.h [netgroupman] Remove NetGroupManager::GetAsmap() 2022-04-20 14:35:53 +01:00
netmessagemaker.h
noui.cpp
noui.h
outputtype.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
outputtype.h refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -05:00
pow.cpp
pow.h
prevector.h Merge bitcoin/bitcoin#24962: prevector: enforce is_trivially_copyable_v 2022-05-16 16:25:47 +02:00
protocol.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
protocol.h Remove no-op TIME_INIT on deser 2022-05-30 13:55:39 +02:00
psbt.cpp refactor: Change * to & in MutableTransactionSignatureCreator 2022-05-04 11:49:29 +02:00
psbt.h refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -05:00
pubkey.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
pubkey.h Use spans of std::byte in serialize 2022-01-02 11:40:31 +01:00
random.cpp refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
random.h Merge bitcoin/bitcoin#24925: refactor: make GetRand a template, remove GetRandInt 2022-05-12 08:57:22 +02:00
randomenv.cpp tidy: add readability-redundant-declaration 2022-05-01 10:39:40 +01:00
randomenv.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
rest.cpp Do not call global Params() when chainman is in scope 2022-05-18 18:46:48 +02:00
rest.h Handle query string when parsing data format 2022-03-10 12:01:53 +01:00
reverse_iterator.h
scheduler.cpp refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
scheduler.h Increase threadsafety annotation coverage 2022-05-12 02:25:55 +10:00
serialize.h scripted-diff: rename BytePtr to AsBytePtr 2022-04-26 09:41:45 +01:00
shutdown.cpp Guard #include <config/bitcoin-config.h> 2022-05-02 16:41:30 +02:00
shutdown.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
signet.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
signet.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
span.h scripted-diff: rename BytePtr to AsBytePtr 2022-04-26 09:41:45 +01:00
streams.h scripted-diff: Rename nReadPos to m_read_pos in streams.h 2022-02-09 17:21:04 +01:00
sync.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
sync.h sync.h: strengthen AssertLockNotHeld assertion 2022-05-12 02:25:56 +10:00
threadinterrupt.cpp
threadinterrupt.h Increase threadsafety annotation coverage 2022-05-12 02:25:55 +10:00
threadsafety.h
timedata.cpp logging: Unconditionally log levels >= WARN 2022-05-25 11:26:15 +02:00
timedata.h timedata: make it possible to reset the state 2022-03-02 15:40:30 +01:00
tinyformat.h Use C++17 [[fallthrough]] attribute, and drop -Wno-implicit-fallthrough 2021-07-05 08:59:38 +03:00
torcontrol.cpp scripted-diff: remove duplicate categories from LogPrint output 2022-06-06 12:12:03 +02:00
torcontrol.h torcontrol: Query Tor for correct -onion configuration 2022-03-15 01:33:52 +00:00
txdb.cpp refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
txdb.h Remove utxo db upgrade code 2022-03-10 13:05:29 +01:00
txmempool.cpp Merge bitcoin/bitcoin#23416: doc: Remove fee delta TODO from txmempool.cpp 2022-04-14 09:42:22 +02:00
txmempool.h Use CAmount for fee delta and modified fee 2022-03-21 13:38:08 +01:00
txorphanage.cpp scripted-diff: Update txorphanage naming convention 2021-02-27 01:08:09 +10:00
txorphanage.h [net processing] Add Orphanage empty consistency check 2021-07-20 13:12:42 +01:00
txrequest.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
txrequest.h
uint256.cpp
uint256.h Use spans of std::byte in serialize 2022-01-02 11:40:31 +01:00
undo.h
validation.cpp Merge bitcoin/bitcoin#25254: Move minRelayTxFee to policy/settings 2022-06-07 11:31:10 +02:00
validation.h Move minRelayTxFee to policy/settings 2022-05-31 15:05:57 +02:00
validationinterface.cpp refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -05:00
validationinterface.h scripted-diff: Rename MainSignalsInstance() class to MainSignalsImpl() 2022-05-09 18:35:44 +02:00
version.h
versionbits.cpp Sanity assert GetAncestor() != nullptr where appropriate 2022-05-05 15:55:44 +02:00
versionbits.h Increase threadsafety annotation coverage 2022-05-12 02:25:55 +10:00
walletinitinterface.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
warnings.cpp
warnings.h scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00