|
|
|
|
Changelog for bitcoind-27.1-1.1.x86_64.rpm :
* Mon Jun 24 2024 andrea.manziniAATTsuse.com- Update to version 27.1: * doc: update manual pages for 27.1 * build: bump version to v27.1 final * depends: Update Boost download link * build: Fix building `fuzz` binary on on SunOS / illumos * qt: 27.1rc1 translations update * depends: Fetch miniupnpc sources from an alternative website * test: add GetAddedNodeInfo() CJDNS regression unit test * p2p, bugfix: detect addnode cjdns peers in GetAddedNodeInfo() * crypto: disable asan for sha256_sse4 with clang and -O0 * rpc: move UniValue in blockToJSON * gui: don\'t permit port in proxy IP option * gui: fix create unsigned transaction fee bump * depends: Fix build of Qt for 32-bit platforms * Fix #29767, set m_synced = true after Commit() * sign: don\'t assume we are parsing a sane Miniscript * rpc: Reword SighashFromStr error message * build: Fix false positive `CHECK_ATOMIC` test for clang-15 * test: Fix failing univalue float test * doc: archive 27.0 release notes * [rpc, bugfix] Enforce maximum value for setmocktime * Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us * Mon Apr 29 2024 Martin Pluskal - Update to version 27.0: * doc: update manual pages for v27.0 * build: bump version to v27.0 final * doc: import release notes from devwiki * Update the developer mailing list address. * ci: Print tsan errors to stderr * ci: Pull in qtbase5-dev instead of seperate low-level libraries * doc: Suggest installing dev packages for debian/ubuntu qt5 build * ci: Bump msan to llvm-18 * ci, macos: Use `--break-system-packages` with Homebrew\'s python * ci: Add workaround for Homebrew\'s python link error * serfloat: improve/simplify tests * serfloat: do not test encode(bits)=bits anymore * doc: point release-notes.md to the dev wiki * doc: generate example bitcoin.conf for v27.0rc1 * doc: generate manual pages for v27.0rc1 * build: bump version to v27.0rc1 * fuzz: restrict fopencookie usage to Linux & FreeBSD * docs: Fix broken reference to CI setup in test/lint/README.md * seeds: Update testnet seeds * seeds: Update mainnet seeds * makeseeds: Check i2p seeds too * makeseeds: Update PATTERN_AGENT * doc: remove rel note fragments * kernel: chainparams updates for 27.x * kernel: update chainTxData for 27.x * kernel: update nMinimumChainWork & defaultAssumeValid for 27.x * qt: 27.0 translations update * doc: update signet faucet link in offline-signing-tutorial.md * test: remove file-wide interpreter.cpp ubsan suppression * ci: Fix functional tests step for pull requests in Windows GHA job * build, msvc: Do not compile redundant sources * build: move sha256_sse4 into libbitcoin_crypto_base * test: fix flaky wallet_send functional test * test: fix weight estimates in functional tests * p2p: Don\'t consider blocks mutated if they don\'t connect to known prev block * doc: correct function name in AssumeUTXO design docs * doc: remove references to disable-asm option now that it\'s gone * build: remove confusing and inconsistent disable-asm option * refactor: gui, simplify boost signals disconnection * fuzz: add target for local addresses * test: removes unnecessary check from validation_tests * test: Fix intermittent failure in rpc_net.py --v2transport * gui: guard accessing a nullptr \'clientModel\' * ci: print python version on win64 native job * serialization: use internal endian conversion functions * serialization: detect byteswap builtins without autoconf tests * test: make sure keypool sizes do not change on `getrawchangeaddress`/`getnewaddress` failures * wallet: Avoid updating `ReserveDestination::nIndex` when `GetReservedDestination` fails * doc: Fix Broken Links * serialization: replace char-is-int8_t autoconf detection with c++20 concept * Squashed \'src/crc32c/\' changes from 0bac72c455..b60d2b7334 * test: Remove Windows-specific code from `system_tests/run_command` * [test] IsBlockMutated unit tests * Add transaction_identifier::size to allow Span conversion * [validation] Cache merkle root and witness commitment checks * [test] Add regression test for #27608 * [net processing] Don\'t process mutated blocks * [validation] Merkle root malleation should be caught by IsBlockMutated * [validation] Introduce IsBlockMutated * [refactor] Cleanup merkle root checks * [validation] Isolate merkle root checks * build: remove -Wdocumentation conditional * crypto: replace CountBits with std::bit_width * crypto: replace non-standard CLZ builtins with c++20\'s bit_width * doc: Update OpenBSD build docs to 7.4 * test: Drop `x` modifier in `fsbridge::fopen` call for mingw builds * test: Add option to skip unit tests for the test runner * Fix CI-detected codespell warnings * doc: document preference for list-initialization * test: Fix intermittent issue in interface_rest.py * [fuzz] Avoid partial negative result * ci: avoid running git diff after patching * test: assert rpc error for addnode v2transport not enabled * refactor: Add missing include for USE_BDB, USE_SQLITE to bench/wallet_ismine.cpp * lint: Check for missing or redundant bitcoin-config.h includes * lint: Make lint error easier to spot in output * doc: Add missing RUST_BACKTRACE=1 * lint: Add get_subtrees() helper * docs: ci multi-arch requires qemu * doc: document that BIP324 on by default for v27.0 * qt, test: Recognize dialog object by name * depends: fix BDB compilation on OpenBSD * wallet: Retrieve ID from loaded DescSPKM directly * wallet: Use scriptPubKeyCache in GetSolvingProvider * wallet: Use scriptPubKey cache in GetScriptPubKeyMans * wallet: Use scriptPubKey cache in IsMine * wallet: Cache scriptPubKeys for all DescriptorSPKMs * wallet: Introduce a callback called after TopUp completes * bench: Add a benchmark for ismine * ci: Skip git install if it is already installed * doc: Clarify maxfeerate help * rpc: Fixed signed integer overflow for large feerates * rpc: Add ParseFeeRate helper * doc: Update translation_process.md * rpc: Implement RPCHelpMan::ArgValue<> for UniValue * scripted-diff: Fix bitcoin_config_h includes * qt: Update translation source file for v27.0 string freeze * test: fix intermittent failure in wallet_reorgrestore.py * wallet: simplify EraseRecords by using \'ErasePrefix\' * wallet: bdb batch \'ErasePrefix\', do not create txn internally * wallet: db, introduce \'RunWithinTxn()\' helper function * test: enable v2 for python p2p depending on global --v2transport flag * [test] second child of a v3 tx can be replaced individually * [refactor] use MAX_PUBKEYS_PER_MULTISIG instead of magic numbers in test * [test] PackageV3Checks with inheritance violation in mempool ancestor * [doc] fix docs and comments from v3 * scripted-diff: rename ZapSelectTx to RemoveTxs * wallet: batch and simplify ZapSelectTx process * opt: Skip over barren combinations of tiny UTXOs * opt: Skip checking max_weight separately * opt: Cut if last addition was minimal weight * opt: Skip heavier UTXOs with same effective value * opt: Tiebreak UTXOs by weight for CoinGrinder * opt: Skip evaluation of equivalent input sets * opt: Track remaining effective_value in lookahead * opt: Skip branches with worse weight * fuzz: Test optimality of CoinGrinder * fuzz: Add CoinGrinder fuzz target * coinselection: Track whether CG completed * test: Add coin_grinder_tests * coinselection: Add CoinGrinder algorithm * test, assumeutxo: Add test to ensure failure when mempool not empty * [doc] v3 signaling in mempool-replacements.md * [fuzz] v3 transactions and sigop-adjusted vsize * [functional test] v3 transaction submission * test framework: Add and use option for tx-version in MiniWallet methods * [policy/validation] allow v3 transactions with certain restrictions * [policy] add v3 policy rules * fuzz: increase length of string used for `NetWhitelist{bind}Permissions::TryParse` * wallet: migration, batch addressbook records removal * wallet: addressbook migration, batch db writes * refactor: wallet, simplify addressbook migration * refactor: SetAddressBookWithDB, minimize number of map lookups * refactor: SetAddrBookWithDB, signal only if write succeeded * wallet: clean redundancies in DelAddressBook * test: Fix SegwitV0SignatureMsg nLockTime signedness * test: Fix utxo set hash serialisation signedness * qt: Update translation source file * qt: Bump Transifex slug for 27.x * qt: Translation updates from Transifex * test: Don\'t use v2transport when it\'s too slow. * test: enable p2p_invalid_messages.py with v2transport * test: enable p2p_sendtxrcncl.py with v2transport * test: wallet, coverage for concurrent db transactions * tests: Test for concurrent writes with db tx * sqlite: Ensure that only one SQLiteBatch is writing to db at a time * test: speedup bip324_cipher.py unit test * fuzz: remove unused `args` and `context` from `FuzzedWallet` * test: check that mempool msgs lead to disconnect if uploadtarget is reached * test: check for specific disconnect reasons in feature_maxuploadtarget.py * test: verify `-maxuploadtarget` limit state via `getnettotals` RPC result * fuzz: Set -rss_limit_mb=8000 for generate as well * fuzz: Generate with random libFuzzer settings * test: Add makefile target for running unit tests * wallet: remove unused \'accept_no_keys\' arg from decryption process * test: fix intermittent failure in rpc_setban.py --v2transport * tests: Test that descriptors flag is set for migrated blank wallets * wallet: Make sure that the descriptors flag is set for blank wallets * test: Test migration of tx with both spendable and watchonly * wallet: Keep txs that belong to both watchonly and migrated wallets * test: Make sure that migration test does not rescan on reloading * wallet: Reload the wallet if migration exited early * wallet: Write bestblock to watchonly and solvable wallets * refactor: Fix timedata includes * test: p2p: adhere to typical VERSION message protocol flow * test: p2p: process post-v2-handshake data immediately * test: p2p: introduce helper for sending prepared VERSION message * test: Fix CPartialMerkleTree.nTransactions signedness * Modify command line help to show support for BIP21 URIs * Don\'t use scientific notation in log messages * [test] make v2transport arg in addconnection mandatory and few cleanups * test: fix intermittent failure in p2p_v2_earlykeyresponse * test: Assumeutxo with more than just coinbase transactions * libconsensus: deprecate * test: sqlite, add coverage for dangling to-be-reverted db txns * sqlite: guard against dangling to-be-reverted db transactions * sqlite: introduce HasActiveTxn method * sqlite: add ability to interrupt statements * rpc: Do not wait for headers inside loadtxoutset * net: enable v2transport by default * fuzz: Print coverage summary after run_once * doc: update `BroadcastTransaction` comment * test: fix wallet_import_rescan unrounded minimum amount * test: Remove struct import from messages.py * scripted-diff: test: Use int from_bytes and to_bytes over struct packing * test: Use int from_bytes and to_bytes over struct packing * test: Treat msg_version.relay as unsigned * depends: remove (darwin) libtool now that it\'s no longer used * depends: use ar rather than libtool for miniupnpc/libnatpmp * [rpc] return full string for package_msg and package-error * fuzz: also set MSAN_SYMBOLIZER_PATH * ci: Use DEBUG=1 in depends for MSAN jobs * ci: use LLVM 17.0.6 in MSAN jobs * refactor: Compile unreachable code * depends: Do not override CFLAGS when building SQLite with DEBUG=1 * depends: Ensure definitions are passed when building SQLite with DEBUG=1 * ci: Update cache action * qt: Avoid non-self-contained Windows header * [test] Add functional test to test early key response behaviour in BIP 324 * [test] Check whether v2 TestNode performs downgrading * [test] Add functional tests to test v2 P2P behaviour * [test] Ignore BIP324 decoy messages * [test] Allow inbound and outbound connections supporting v2 P2P protocol * [test] Reconnect using v1 P2P when v2 P2P terminates due to magic byte mismatch * [test] Build v2 P2P messages * [test] Use lock for sending P2P messages in test framework * [test] Read v2 P2P messages * [test] Perform initial v2 handshake * [test] Introduce EncryptedP2PState object in P2PConnection * fuzz: Exit and log stderr for parse_test_list errors * [test] Construct class to handle v2 P2P protocol functions * wallet: clarify replaced_by_txid and replaces_txid in help output * init: settings, do not load auto-generated warning msg * validation: move nChainTx assert down in CheckBlockIndex * doc: fix checkblockindex comments * [test] Move MAGIC_BYTES to messages.py * [test/crypto] Add ECDH * [rpc/net] Allow v2 p2p support in addconnection * net: remove now unused global \'g_initial_block_download_completed\' * test: add coverage for peerman adaptive connections service flags * net: peer manager, dynamically adjust desirable services flag * fuzz: extend ConsumeNetAddr() to return I2P and CJDNS addresses * depends: Update libmultiprocess library to fix C++20 macos build error * settings: add auto-generated warning msg for editing the file manually * init: improve corrupted/empty settings file error msg * wallet: remove unused `SignatureData` instances in spkm\'s `FillPSBT` methods * Move TRACEx parameters to seperate lines * wallet: fix coin selection tracing to return -1 when no change pos * test: ensure output is large enough to pay for its fees * refactor: pass CRecipient to FundTransaction * refactor: simplify `CreateRecipients` * refactor: remove out param from `ParseRecipients` * refactor: move parsing to new function * refactor: move normalization to new function * test: add tests for fundrawtx and sendmany rpcs * build: Pass sanitize flags to instrument `libsecp256k1` code * refactor: remove CTxMemPool::queryHashes() * refactor: Mark prevector iterator with std::contiguous_iterator_tag * ci: vary /tmp/env * wallet: avoid returning a reference to vMasterKey after releasing the mutex that guards it * refactor: Fix binary operator+ for prevector iterators * refactor: Fix constness for prevector iterators * refactor: Add missing default constructor to prevector iterators * test: Use blocks_path where possible * rpc: Fix race in loadtxoutset * contrib: Fix clang-format-diff.py lint errors * contrib: Latest clang-format-diff.py script * refactor: Allow std::span construction from CKey * [refactor] change Workspace::m_conflicts and adjacent funcs/structs to use Txid * Add missing XOnlyPubKey::data() to get mutable data * test: Remove all-lint.py script * doc: move-only lint docs to one place * build: move -mlinker-version to *FLAGS * depends: deduplicate use of mmacosx-version-min in macOS build * build: fix optimisation flags used for --coverage * ci: cleanup C *FLAG usage in Valgrind jobs * build: add sanitizer flags to configure output * build: always set -g -O2 in CORE_CXXFLAGS * depends: add NM output to gen_id * test: wallet db, exercise deadlock after write failure * doc, test: Test and explain service flag handling * opt: Tie-break UTXO sort by waste for BnB * doc: Document max_weight on BnB * net: move state dependent peer services flags * net: decouple state independent service flags from desirable ones * net: store best block tip time inside PeerManager * wallet: Reset chain notifications handler if AttachChain fails * doc: Add missing backtick in developer notes logging section * [test] import descriptor wallet with reorged parent + IsFromMe child in mempool * Make v2transport default for addnode RPC when enabled * [log] mempool loading * [test] rescan legacy wallet with reorged parent + IsFromMe child in mempool * Add test for negative transaction version w/ CSV to tx_valid.json * tests: Test migration of blank wallets * wallet: Better error message when missing LegacySPKM during migration * wallet: Check for descriptors flag before migration * wallet: Skip key and script migration for blank wallets * [depends] Allow PATH with spaces in directory names. * doc: refer to \"Node relay options\" in policy/README * doc: add unconditional info loglevel following merge of PR 28318 * ci: Rename tasks (previous releases, macOS cross) * test: Assert that a new tx with a delta of 0 is never added * rpc: exposing modified_fee in getprioritisedtransactions * ci: move CMake into base packages * doc: upgrade Bitcoin Core license to 2024 * [fuzz] Improve fuzzing stability for ellswift_roundtrip harness * test: assumeutxo: spend coin from snapshot chainstate after loading * Fix -netinfo backward compat with getpeerinfo pre-v26 * fuzz: fix `connman` initialization * fuzz: Assume presence of __builtin_ *_overflow, without checks * Revert \"build: Fix undefined reference to __mulodi4\" * build: Bump clang minimum supported version to 14 * rpc: renaming txid -> transactionid * rpc: changed prioritisation-map -> \"\" * build: Drop `ALLOW_HOST_PACKAGES` support in depends * test: wallet migration, add coverage for tx extra data * ci: Switch native macOS CI job to Xcode 15.0 * net: create I2P sessions with both ECIES-X25519 and ElGamal encryption * build: Fix `-Xclang -internal-isystem` option * wallet: migration, remove extra NotifyTransactionChanged call * wallet: ZapSelectTx, remove db rewrite code * Remove GetAdjustedTime * crypto: remove sha256_sse4 from the base crypto helper lib * crypto, hash: replace custom rotl32 with std::rotl * ci, iwyu: Drop backported mappings * fuzz: set `nMaxOutboundLimit` in connman target * build: remove --enable-lto * crypto: remove use of BUILD_BITCOIN_INTERNAL macro in sha256 * doc: Clarify C++20 comments * RPC/Blockchain: scanblocks: Accept named param for filter_false_positives * Revert \"depends: systemtap: remove variadic params that trigger compiler warnings\" * Squashed \'src/secp256k1/\' changes from 199d27cea3..efe85c70a2 * build: Fix check whether `-latomic` needed * wallet: Fix use-after-free in WalletBatch::EraseRecords * contrib: add macho branch protection check * test: change `m_submitted_in_package` input to fuzz data provider boolean * tx fees: update `m_from_disconnected_block` to `m_mempool_limit_bypassed` * doc: fix typo and update incorrect comment * fuzz: rule-out too deep derivation paths in descriptor parsing targets * cli: add transport protcol column to -netinfo * net: attempt v2 transport for addrfetch connections if we support it * net: attempt v2 transport for manual connections if we support it * During IBD, prune as much as possible until we get close to where we will eventually keep blocks * refactor: share and use `GenerateRandomKey` helper * doc: Add multiprocess design doc * Allow int8_t optimized vector serialization * Faster std::byte (pre)vector (un)serialize * depends: patch around non-determinism in qt * build: rename native_clang to native_llvm * Revert \"build: Patch Qt to handle minimum macOS version properly\" * guix: use clang-toolchain-17 for macOS build * build: Bump `native_clang` up to 17.0.6 * Use hardened runtime on macOS release builds. * logging: Replace uses of LogPrintfCategory * logging: add LogError, LogWarning, LogInfo, LogDebug, LogTrace * wallettool: Don\'t create CWallet when dumping DB * wallettool: Don\'t unilaterally reset wallet_instance if loading error * [doc]: add doxygen return comment for CheckPackageLimits * doc: Rework guix docs after 1.4 release * wallet, mempool: propagete `checkChainLimits` error message to wallet * Allow std::byte C-style array serialization * refactor: Print verbose serialize compiler error messages * fuzz: coinselection, improve `min_viable_change`/`change_output_size` * tests: ensure functional tests set permitbaremultisig=1 when needed * tests: test both settings for permitbaremultisig in p2sh tests * logging: add -loglevelalways=1 option * logging: treat BCLog::ALL like BCLog::NONE * logging: Drop BCLog::Level::None * logging: Log Info messages unconditionally * logging: make [cat:debug] and [info] implicit * logging: refactor: pull prefix code out * Update security.md contact for achow101 * [fuzz] Improve fuzzing stability for minisketch harness * refactor: Rename fs::path::u8string() to fs::path::utf8string() * ci: Set `HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK` to avoid failures * fuzz: Limit p2p fuzz targets to MAX_PROTOCOL_MESSAGE_LENGTH * build: Bump guix time-machine to unlock riscv64 metal * fuzz: set `m_fallback_fee`/`m_fee_mode` in `wallet_fees` target * msvc: Fix `test\\config.ini` content * test: add TestNode wait_until helper * test: Actually fail when a python unit test fails * build: Bump minimum required Boost to 1.73.0 to support C++20 * test: wallet, fix change position out of range error * depends: build libmultiprocess with position independant code * depends: always install libmultiprocess to /lib * depends: always install capnp to /lib * Revert \"ci: Only run functional tests on windows in master\" * fuzz: disable BnB when SFFO is enabled * test: add coverage for BnB-SFFO restriction * wallet: Assert that the wallet is not initialized in LoadWallet * tests, bench: Remove incorrect LoadWallet() calls * test: Add tests for CFeeRate multiplication operator * doc: update/clarify max outbound connection count * doc: Update bitcoin-tx replaceable documentation * Remove deprecated -rpcserialversion * ArgsManager: return path by value from GetBlocksDirPath() * refactor: Remove pre-C++20 fs code * Add tests for C++20 std::u8string * refactor: Avoid copy/move in fs.h * refactor: Use C++20 std::chrono::days * Add a note to msvc readme re building Qt for Bitcoin Core. * msvc: Define the same `QT_...` macros as in Autotools builds * Add multiplication operator to CFeeRate * msvc: Optimize \"Release\" builds * test: fix intermittent error in rpc_net.py (#29030) * tests: Add unit tests for bitcoin-tx replaceable command * wallet: return CreatedTransactionResult from FundTransaction * wallet: use optional for change position as an optional in CreateTransaction * wallet: Explicitly preserve scriptSig and scriptWitness in CreateTransaction * wallet: Explicitly preserve transaction version in CreateTransaction * wallet: Explicitly preserve transaction locktime in CreateTransaction * wallet: Set preset input sequence through coin control * wallet: Replace SelectExternal with SetTxOut * coincontrol: Replace HasInputWeight with returning optional from Get * wallet: Introduce and use PreselectedInput class in CCoinControl * test: fix `addnode` functional test failure on OpenBSD * doc: test: mention OS detection preferences in style guideline * test: detect OS consistently using `platform.system()` * test: use `skip_if_platform_not_linux` helper where possible * fuzz: Improve fuzzing stability for txorphan harness * wallet: fix key parsing check for miniscript expressions in `ParseScript` * wallet: create tx, log resulting coin selection info * wallet: skip BnB when SFFO is active * qt: update widgets availability on wallet selection * doc: Missing additions to 26.0 release notes * doc: Add link to needs-release-notes label * doc: add historical release notes for 26.0 * doc: add minimum required Linux Kernel to release-notes * refactor: rpc: Pass CBlockIndex by reference instead of pointer * refactor: Use reference instead of pointer in IsBlockPruned * fuzz: Use C++20 starts_with in rpc.cpp * Revert \"tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings\" * refactor: Drop unused _Pragma to ignore -Wgnu-zero-variadic-macro-arguments * refactor: modernize-use-default-member-init for bit-fields (C++20) * build: Require C++20 compiler * test: Extends MEMPOOL msg functional test * fuzz: Detect deadlocks in process_message * fuzz: Avoid timeout in bitdeque * test: wait for fee estimator to catch up before estimating fees * fuzz: p2p: Detect peer deadlocks * test: fix v2 transport intermittent test failure (#29002) * test: add regression test for the getrawtransaction segfault * rpc: getwalletinfo, return wallet \'birthtime\' * test: coverage for wallet birth time interaction with -reindex * wallet: fix legacy spkm default birth time * rpc, doc: encryptwallet, mention HD seed rotation and new backup * wallet: Migrate entire address book entries * rpc: fix getrawtransaction segfault * build: Enable -Wunreachable-code * build: use macOS 14 SDK (Xcode 15.0) * build: patch boost process for macOS 14 SDK * depends: add -platform_version to macOS build flags * bitcoin-tx: Make replaceable value optional * fuzz: txorphan check wtxids using GenTxid::Wtxid not GenTxid::Txid * Get rid of shutdown.cpp/shutdown.h, use SignalInterrupt directly * refactor: Add InitContext function to initialize NodeContext with global pointers * refactor: Remove calls to StartShutdown from KernelNotifications * refactor: Remove call to StartShutdown from stop RPC * util: Get rid of uncaught exceptions thrown by SignalInterrupt class * refactor: Remove call to ShutdownRequested from IndexWaitSynced * refactor: Remove call to ShutdownRequested from HTTPRequest * refactor: Add NodeContext::shutdown member * refactor: Remove call to StartShutdown from qt * refactor: Remove call to ShutdownRequested from rpc/mining * refactor: Remove call to ShutdownRequested from chainstate init * depends: Build `native_capnp` package with CMake * depends: Build `capnp` package with CMake * init: don\'t delete PID file if it was not generated * ci: Use Ubuntu 24.04 Noble for asan * ci: Use Ubuntu 24.04 Noble for tsan,tidy,fuzz * test: Fix test by checking the actual exception instance * net: Add continuous ASMap health check logging * build: disable external-signer for Windows * ci: remove --enable-external-signer from win64 job * contrib: drop GCC MAX_VERSION to 4.3.0 in symbol-check * ci: remove libz-dev from macOS build deps * Rename version.h to node/protocol_version.h * Remove unused version.h include * Remove unused SER_NETWORK, SER_DISK * Remove unused CDataStream * fuzz: Drop unused version from fuzz input format * guix: switch from guix environment to guix shell * test_submitpackage: only make a chain of 3 txns * doc: submitpackage vsize results are sigops-adjusted * RPC submitpackage: change return format to allow partial errors * fuzz: Avoid signed-integer-overflow in wallet_notifications fuzz target * fuzz: Fix nullptr deref in scriptpubkeyman * ci: Reduce use of bash -c * test: Add missing CBlockPolicyEstimator::processBlockTx suppression * test: Setup networking globally * multiprocess: Add type conversion code for UniValue types * multiprocess: Add type conversion code for serializable types * test: add ipc test to test multiprocess type conversion code * guix: remove input labels * refactor: Use Txid in CMerkleBlock * ci: Rename test script to 03_test_script.sh * scripted-diff: Use DataStream in most places * refactor: SpanReader without nVersion * fuzz: Avoid timeout in process_messages * fuzz: BIP324: damage ciphertext/aad in full byte range * fuzz: Faster wallet_notifications target * bench: add readblock benchmark * msvc: Specify `boost-date-time` package explicitly * msvc: Update vcpkg manifest baseline up to \"2023.08.09 Release\" * msvc: No need to specify the default feature for `libevent` package * Change petertodd seeds to petertodd.net * Revert \"ci: Avoid toolset ambiguity that MSVC can\'t handle\" * ci: Set MSVC toolset version explicitly * ci: Run vcpkg with path prefix * Export assert from util/check.h * ci: remove python3-setuptools from mac build deps * Fix IWYU for the script_flags fuzz target * fuzz: Limit fuzz buffer size in script_flags target * fuzz: CDataStream -> DataStream in script_flags * test: Add gettransaction test for \"coin-join\" tx * wallet: birth time update during tx scanning * refactor: rename FirstKeyTimeChanged to MaybeUpdateBirthTime * refactor: P2P transport without serialize version and type * rpc: `SyncWithValidationInterfaceQueue` on fee estimation RPC\'s * tx fees, policy: CBlockPolicyEstimator update from `CValidationInterface` notifications * CValidationInterface: modify the parameter of `TransactionAddedToMempool` * tx fees, policy: update `CBlockPolicyEstimator::processBlock` parameter * CValidationInterface, mempool: add new callback to `CValidationInterface` * tx fees, policy: cast with static_cast instead of C-Style cast * tx fees, policy: bugfix: move `removeTx` into reason != `BLOCK` condition * ci: Switch from `apt` to `apt-get` * ci: Update apt cache * wallet: batch external signer descriptor import * wallet: descriptors setup, batch db operations * wallet: batch legacy spkm TopUp * wallet: batch descriptor spkm TopUp * test: Directly constructing 2 entry map for getprioritisedtransactions * test: Add uint256 string parse tests * refactor: Remove unused and fragile string interface from arith_uint256 * Use Txid in COutpoint * fuzz: add target for `DescriptorScriptPubKeyMan` * fuzz: create ConsumeCoins * fuzz: move `MockedDescriptorConverter` to `fuzz/util` * pool: change memusage_test to use int64_t, add allocation check * build: Fix regression in \"ARMv8 CRC32 intrinsics\" test * refactor: NetMsg::Make() without nVersion * pool: make sure PoolAllocator uses the correct alignment * refactor: Make CTxMemPoolEntry only explicitly copyable * depends: bump libmultiprocess to fix capnproto deprecation warnings * streams: Drop unused CAutoFile * refactor: switch from CAutoFile to AutoFile * blockstorage: switch from CAutoFile to AutoFile * ci: Avoid toolset ambiguity that MSVC can\'t handle * streams: Remove unused CAutoFile::GetVersion * streams: Base BufferedFile on AutoFile instead of CAutoFile * Remove unused Make() overload in netmessagemaker.h * refactor: VectorWriter without nVersion * doc: Simplify guix install doc, after 1.4 release * doc: remove mingw-w64 install for \"older\" systems * test: replace `Callable`/`Iterable` with their `collections.abc` alternative (PEP 585) * test: add unit test for CConnman::AddedNodesContain() * p2p: do not make automatic outbound connections to addnode peers * test: fix `AddNode` unit test failure on OpenBSD * bench: add benchmark for wallet creation procedure * Include version.h in fewer places * Convert some CDataStream to DataStream * serialize: Drop useless version param from GetSerializeSize() * serialize: drop GetSerializeSizeMany * serialize: Drop nVersion from [C]SizeComputer * doc: remove x86_64 build assumption from depends doc * contrib: use a raw string for a regular expression literal that contains backslashes in signet/miner * doc: remove mention of missing bdb being a configure error * bench: Update nanobench to 4.3.11 * fuzz: AutoFile with XOR * fuzz: Reduce LIMITED_WHILE limit for file fuzzing * fuzz: Remove FuzzedAutoFileProvider * depends: remove PYTHONPATH from config.site * test: migrate to some per-symbol ubsan suppressions * depends: Include `config.guess` and `config.sub` into `meta_depends` * Drop CHashWriter * Drop OverrideStream * Use ParamsWrapper for witness serialization * script: Enhance validations in utxo_snapshot.sh * ci: Add missing COPY for ./test/lint/test_runner * lint: Report all lint errors instead of early exit * guix: default ssp for Windows GCC * guix: remove ssp workaround from Windows GCC * build: remove explicit libssp linking from Windows build * guix: remove python-macholib * guix: update signapple * test: Add test for array serialization * refactor: Initialize magic bytes in constructor initializer * doc: rewrite explanation for -par= * test: add assumeutxo wallet test * guix: update time-machine to 77386bdbfe6b0c649c05ab37f08051d1ab3e5074 * build: Patch Qt to handle minimum macOS version properly * test: fix node index bug when comparing peerinfo * [refactor] remove access to mapTx in validation_block_tests * [refactor] rewrite BlockAssembler inBlock and failedTx as sets of txids * scripted-diff: rename vTxHashes to txns_randomized * [refactor] rewrite vTxHashes as a vector of CTransactionRef * [refactor] remove access to mapTx in validation.cpp * [txmempool] make CTxMemPoolEntry::lockPoints mutable * [refactor] use CheckPackageLimits for checkChainLimits * [refactor] remove access to mapTx.find in mempool_tests.cpp * [refactor] remove access to mapTx in blockencodings_tests.cpp * [refactor] remove access to mapTx from rpc/mempool.cpp * [refactor] get wtxid from entry instead of vTxHashes * [refactor] use exists() instead of mapTx.find() * [refactor] remove access to mapTx from policy/rbf.cpp * [refactor] Add helper for retrieving mempool entry * [refactor] Add helper for iterating through mempool entries * test, assumeutxo: Use assert_debug_log for error details * mempool: persist with XOR * build: Add an old hack to remove bind_at_load from libtool. * build: remove -bind_at_load usage * fuzz: allow fake and duplicate inputs in tx_package_eval target * fuzz: allow reaching MempoolAcceptResult::ResultType::DIFFERENT_WITNESS in tx_package_eval target * test: Avoid intermittent failures in feature_init * ci: remove \"--exclude banman\" for fuzzing in mac * fuzz: call lookup functions before calling `Ban` * ci: Switch IWYU to `clang_17` branch * ci: win64 task does use boost:process * test: enable v2 transport for p2p_timeouts.py * test: enable v2 transport for rpc_net.py * test: enable v2 transport for p2p_node_network_limited.py * test: enable --v2transport in combination with --usecli * test: persist -v2transport over restarts and respect -v2transport=0 * [refactor] updating miniminer comments to be more accurate * ci: remove note re M1 usage * test: Add missing wait for version to be sent in add_outbound_p2p_connection * fuzz: Avoid timeout and bloat in fuzz targets * tests: Increase wallet_miniscript.py rpc timeout to 90 seconds * Throw error if invalid parameters passed to getnetworkhashps RPC endpoint * fuzz: explicitly specify llvm-symbolizer path in runner * [refactor] Miniminer var cached_descendants to descendants * [refactor] Change MiniMinerMempoolEntry order * [validation] change package-fee-too-low, return wtxid(s) and effective feerate * [test] use CheckPackageMempoolAcceptResult in previous tests * doc: fix typos * [validation] add TxValidationResult::TX_RECONSIDERABLE, TX_UNKNOWN * [refactor] use Wtxid for m_wtxids_fee_calculations * test: remove custom rpc timeout for `wallet_miniscript.py`, reorder in test_runner * wallet: cache descriptor ID to avoid repeated descriptor string creation * build: Drop no longer needed MSVC warning suppressions * ci: Drop no longer needed \"Fix Visual Studio installation\" step * snapshots: don\'t core dump when running -checkblockindex after `loadtxoutset` * fuzz: Avoid utxo_total_supply timeout * test: bugfix CheckPackageMempoolAcceptResult return all error strings * init: completely remove `-zapwallettxes` (remaining hidden option) * guix: switch to 6.1 kernel headers over 5.15 * rpc: keep .cookie if it was not generated * test: Add missing sync on send_version in peer_connect * depends: Bump to capnproto-c++-1.0.1 * build: latest config.sub in depends * build: latest config.guess in depends * [test] MiniMiner::Linearize and manual construction * [refactor] unify fee amounts in miniminer_tests * [MiniMiner] track inclusion order and add Linearize() function * [test] add case for MiniMiner working with negative fee txns * [MiniMiner] make target_feerate optional * [MiniMiner] allow manual construction with non-mempool txns * [refactor] change MiniMinerMempoolEntry ctor to take values, update includes * [lint] update expected boost includes * doc: update docs for CHECK_ATOMIC macro * depends: drop -O1 workaround from arm64 apple Qt build * Use CheckPackageMempoolAcceptResult for package evaluation fuzzing * [test util] CheckPackageMempoolAcceptResult for sanity-checking results * tests: Fix LCOV_OPTS to be in the correct position * MOVEONLY: CleanupTemporaryCoins into its own function * [test util] CreateValidTransaction multi-in/out, configurable feerate, signal BIP125 * scripted-diff: rename CheckPackage to IsWellFormedPackage * [refactor] move package checks into helper functions * refactor: Remove unused circular include dependency from validation.cpp * build: Update `qt` package up to 5.15.11 * [primitives] Precompute result of CTransaction::HasWitness * fuzz: tx_pool checks ATMP result invariants * Create net_peer_connection unit tests * netbase: use reliable send() during SOCKS5 handshake * sock: change Sock::SendComplete() to take Span * guix: Zip needs to include all files with time as SOURCE_DATE_EPOCH * guix: update signapple * build: remove potential for duplciate natpmp linking * build: remove duplicate -lminiupnpc linking * gui: fix crash on selecting \"Mask values\" in transaction view * addrman: log AS only when using asmap * Allow unit tests to access additional CConnman members * net/rpc: Makes CConnman::GetAddedNodeInfo able to return only non-connected address on request * rpc: Prevents adding the same ip more than once when formatted differently * net/rpc: Check all resolved addresses in ConnectNode rather than just one * refactor: Remove unused gcc-9 workaround in txrequest * Always enable -Wsuggest-override * Bump g++ minimum supported version to 10 * refactor: Fix bugprone-string-constructor warning * Remove WithParams serialization helper * [test] Test i2p private key constraints * Remove feature_txindex_compatibility.py in V27 * refactor: Add LIFETIMEBOUND to all (w)txid getters * Add offline signing tutorial * [net] Check i2p private key constraints * Fix bugprone-lambda-function-name errors * Remove DirIsWritable, GetUniquePath * Return LockResult::ErrorWrite in LockDirectory * refactor: Return enum in LockDirectory * bugfix: Mark CNoDestination and PubKeyDestination constructor explicit * test: add coverage for snapshot chainstate not matching AssumeUTXO parameters * test: replace random_bytes with randbytes #28720 * iwyu: Export prevector.h from script.h * assumeutxo, blockstorage: prevent core dump on invalid hash * scripted-diff: use PEP 585 built-in collection types for verify-binary script * test: use built-in collection types for type hints (Python 3.9 / PEP 585) * gui: Check for private keys disabled before attempting unlock * build: Bump minimum supported Clang to clang-13 * Bump .python-version from 3.9.17 to 3.9.18 * depends: zeromq 4.3.5 * doc: remove release note fragments for 26.x branch * build: bump version to 26.99 * test: remove unused `find_output` helper * test: refactor: support sending funds with outpoint result * tests: Reset node context members on ~BasicTestingSetup * shutdown: Destroy kernel last * wallet: Add asserts to detect unset transaction height values * wallet, refactor: Add CWalletTx::updateState function * lint: Add `lint-qt-translation.py` * qt: Avoid error prone leading spaces in translatable strings * qt, refactor: Drop superfluous type conversions * doc: fix broken doc/design/multiprocess.md links after #24352 * span: Make Span template deduction guides work in SFINAE context * util: Add ArgsManager SetConfigFilePath method * interfaces: Rename CalculateBumpFees methods to be compatible with capn\'proto * interfaces: Change getUnspentOutput return type to avoid multiprocess segfault * interfaces: Add schedulerMockForward method so mockscheduler RPC can work across processes * interfaces: Fix const virtual method that breaks multiprocess support * streams: Add SpanReader ignore method * [test] DisconnectedBlockTransactions::DynamicMemoryUsage * bugfix: correct DisconnectedBlockTransactions memory usage * rpc: mention that migratewallet can take a while * assume duplicate transactions are not added to `iters_by_txid` * move only: move implementation code to disconnected_transactions.cpp * Move compat.h include from system.h to system.cpp * refactor: update `MAX_DISCONNECTED_TX_POOL` from kb to bytes * scripted-diff: Use ser params operator * test: Use SER_PARAMS_OPFUNC in serialize_tests.cpp * Use type-safe txid types in orphanage * Introduce types for txids & wtxids * test: check that we don\'t send a getaddr msg to an inbound peer * test: make python p2p not send getaddr messages when it\'s being connected to * [net processing] Use HasWitness over comparing (w)txids * test: randomized perturbing in feature_init * test: simplify feature_init * test: Add tests for unfiltered GetAddr usage * fuzz: Let fuzzers use filter options in GetAddr/GetAddresses * net: Optionally include terrible addresses in GetAddr results * Move compat/assumptions.h include to one place that actually needs it * Remove __cplusplus from compat/assumptions.h * Remove duplicate NDEBUG check from compat/assumptions.h * doc: improve documentation around connection limit maximums * scripted-diff: Rename connection limit variables * net: add m_max_inbound to connman * net, refactor: move calculations for connection type limits into connman * refactor: Move `{MAX,DEFAULT}_SCRIPTCHECK_THREADS` constants * refactor: Make `CCheckQueue` non-copyable and non-movable explicitly * refactor: Drop unneeded declaration * refactor: Make `CCheckQueue` constructor start worker threads * Make `CCheckQueue` destructor stop worker threads * Move global `scriptcheckqueue` into `ChainstateManager` class * Add support for RNDR/RNDRRS for aarch64 on Linux * [test/crypto] Add FSChaCha20Poly1305 AEAD python implementation * [test/crypto] Add FSChaCha20 python implementation * [test/crypto] Add RFC 8439\'s ChaCha20Poly1305 AEAD * [test/crypto] Add Poly1305 python implementation * [test/crypto] Use chacha20_block function in `data_to_num3072` * [test/crypto] Add ChaCha20 python implementation * addrman, refactor: improve stochastic test in `AddSingle` * test: add coverage to rpc_blockchain.py * refactor: drop protocol.h include header in rpc/util.h * refactor: move GetServicesNames from rpc/util.{h,cpp} to rpc/net.cpp * gui: Update Node window title with chain type * ci: Add filesystem lint check * refactor: Replace with * [test/crypto] Add HMAC-based Key Derivation Function (HKDF) * [test] Move test framework crypto functions to crypto/ * doc: Recommend lint image build on every call * Bump python minimum version to 3.9 * ci: Bump i686_multiprocess.sh to latest Ubuntu LTS * doc: remove out-of-date external link in src/util/strencodings.h * refactor: use string_view to pass string literals to Parse{Hash,Hex} * Update JSON-RPC-interface.md * GUI: OptionsDialog: Replace verbose two-option font selector with simple combobox with Custom... choice * GUI: Use FontChoice type in OptionsModel settings abstraction * GUI: Load custom FontForMoney from QSettings * GUI: Add possibility for an explicit QFont for FontForMoney in OptionsModel * GUI: Move \"embedded font or not\" decision into new OptionsModel::getFontForMoney method * rpc: Drop migratewallet experimental warning * gui: Show error if unrecognized command line args are present * GUI/Intro: Never change the prune checkbox after the user has touched it * Bugfix: GUI/Intro: Disable GUI prune option if -prune is set, regardless of set value * p2p: return `CSubNet` in `LookupSubNet` * sync: unpublish LocksHeld() which is used only in sync.cpp * doc: clarify that LOCK() does AssertLockNotHeld() internally * Fee estimation: extend bucket ranges consistently * refactor: Add more negative `!m_banned_mutex` thread safety annotations * refactor: replace RecursiveMutex m_banned_mutex with Mutex * scripted-diff: rename m_cs_banned -> m_banned_mutex * refactor: Get rid of `BanMan::SetBannedSetDirty()` * refactor: Get rid of `BanMan::BannedSetIsDirty()` * qt: change QLineEdit error background * Mon Apr 15 2024 Martin Pluskal - Update to version 26.1: * [doc] add manual pages for 26.1 * [doc] update release notes 26.1 * [build] bump version to 26.1 final * ci, macos: Use `--break-system-packages` with Homebrew\'s python * ci: Add workaround for Homebrew\'s python link error * [doc] update manual pages for v26.1rc2 * [build] bump version to v26.1rc2 * update release notes 26.1 * fuzz: restrict fopencookie usage to Linux & FreeBSD * test: make sure keypool sizes do not change on `getrawchangeaddress`/`getnewaddress` failures * wallet: Avoid updating `ReserveDestination::nIndex` when `GetReservedDestination` fails * p2p: Don\'t consider blocks mutated if they don\'t connect to known prev block * [test] IsBlockMutated unit tests * [validation] Cache merkle root and witness commitment checks * [test] Add regression test for #27608 * [net processing] Don\'t process mutated blocks * [validation] Merkle root malleation should be caught by IsBlockMutated * [validation] Introduce IsBlockMutated * [refactor] Cleanup merkle root checks * [validation] Isolate merkle root checks * test: Drop `x` modifier in `fsbridge::fopen` call for mingw builds * rpc: keep .cookie if it was not generated * [doc] add release notes for 26.1rc1 * [doc] update manual pages for 26.1rc1 * [build] bump version to 26.1rc1 * qt: 26.1rc1 translations update * ci: Switch native macOS CI job to Xcode 15.0 * build: Fix `-Xclang -internal-isystem` option * Use hardened runtime on macOS release builds. * [test] import descriptor wallet with reorged parent + IsFromMe child in mempool * [test] rescan legacy wallet with reorged parent + IsFromMe child in mempool * snapshots: don\'t core dump when running -checkblockindex after `loadtxoutset` * [log] mempool loading * net: create I2P sessions with both ECIES-X25519 and ElGamal encryption * [refactor] Add helper for iterating through mempool entries * doc: update release notes for 26.x * wallet: Fix use-after-free in WalletBatch::EraseRecords * ci: Set `HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK` to avoid failures * rpc: getwalletinfo, return wallet \'birthtime\' * test: coverage for wallet birth time interaction with -reindex * wallet: fix legacy spkm default birth time * wallet: birth time update during tx scanning * refactor: rename FirstKeyTimeChanged to MaybeUpdateBirthTime * fuzz: disable BnB when SFFO is enabled * test: add coverage for BnB-SFFO restriction * wallet: create tx, log resulting coin selection info * wallet: skip BnB when SFFO is active * test: add regression test for the getrawtransaction segfault * rpc: fix getrawtransaction segfault * ci: Use Ubuntu 24.04 Noble for asan * ci: Use Ubuntu 24.04 Noble for tsan,tidy,fuzz * doc: Missing additions to 26.0 release notes * doc: add historical release notes for 26.0 * Sat Mar 09 2024 Martin Pluskal - Use gcc13 on Leap * Wed Feb 14 2024 Martin Pluskal - Enable LTO and test package for Leap- Enable sqlite3 support for wallet- Enable asm optimizations unconditionally * Wed Feb 07 2024 Dominique Leuenberger - Provide user/group symbol for user created during pre. * Fri Jan 05 2024 andrea.manziniAATTsuse.com- Update to version 26.0: * doc: update release notes for 26.0 * doc: update manual pages for 26.0 * build: bump version to v26.0 final * doc: update release notes for v26.0rc3 * doc: update manual pages for v26.0rc3 * build: bump version to v26.0rc3 * build: Fix regression in \"ARMv8 CRC32 intrinsics\" test * ci: Avoid toolset ambiguity that MSVC can\'t handle * p2p: do not make automatic outbound connections to addnode peers * ci: Switch from `apt` to `apt-get` * ci: Update apt cache * pool: change memusage_test to use int64_t, add allocation check * pool: make sure PoolAllocator uses the correct alignment * doc: regenerate example bitcoin.conf * doc: rewrite explanation for -par= * doc: update manual pages for v26.0rc2 * build: bump version to v26.0rc2 * gui: fix crash on selecting \"Mask values\" in transaction view * guix: update signapple * guix: Zip needs to include all files with time as SOURCE_DATE_EPOCH * test: add coverage for snapshot chainstate not matching AssumeUTXO parameters * assumeutxo, blockstorage: prevent core dump on invalid hash * [test] Test i2p private key constraints * [net] Check i2p private key constraints * bugfix: Mark CNoDestination and PubKeyDestination constructor explicit * qt: 26.0rc2 translations update * doc: generate example bitcoin.conf for v26.0rc1 * doc: generate manual pages for v26.0rc1 * build: bump version to v26.0rc1 * qt: 26.0rc1 translations update * doc: consolidate release note fragments * test: enable reindex readonly test on *BSD and macOS as root * ci: Add missing --external to podman image prune * Revert \"gui: provide wallet controller context to wallet actions\" * doc: add historical release notes for 24.2 * chainparams, assumeutxo: Fix signet txoutset hash * chainparams, assumeutxo: Fix testnet txoutset hash * assumeutxo: Check deserialized coins for out of range values * docs: Add release notes for #28685 * scripted-diff: Rename hash_serialized_2 to hash_serialized_3 * coinstats: Fix hash_serialized2 calculation * fuzz: Increase merge -rss_limit_mb * refactor: Remove CBlockFileInfo::SetNull * build: Include `config/bitcoin-config.h` explicitly in `util/trace.h` * [fuzz] Delete i2p target * log: Don\'t log cache rebalancing in absense of a snapshot chainstate * test: De-dublicate/optimize assumeutxo test for further extensions * test: check au file with changed outpoint index * test: Check tx metadata is migrated to watchonly * wallet: Reload watchonly and solvables wallets after migration * wallet: Copy all tx metadata to watchonly wallet * build: move -fstack-reuse=none to CORE_CXXFLAGS * docs: Add reference to total.coverage report * test: Fix failing time check in rpc_net.py * test: Check that a failed wallet migration is cleaned up * doc: add historical release notes for 25.1 * test: assumeutxo file with unknown block hash * test: Add assumeutxo test for wrong hash * assumeutxo: fail early if snapshot block hash doesn\'t match AssumeUTXO parameters * fuzz: Allow multiple --m_dir args * net: remove unused CConnman::FindNode(const CSubNet&) * netbase: possibly change the result of LookupSubNet() to CJDNS * doc: add release note for #27460 (new `importmempool` RPC) * gui: disable top bar menu actions during shutdown * gui: provide wallet controller context to wallet actions * miniscript: make GetWitnessSize accurate for tapscript * test: add tests for miniscript GetWitnessSize * test: remove mutable global contexts in miniscript fuzzer/test * fuzz: Merge with -set_cover_merge=1 * lint: Include test_utxo_snapshots in lint_shell * fuzz: add coverage for `bitcoinconsensus_verify_script_with_spent_outputs` * docs: add release notes for #28539 * docs: add docs for additional libconsensus functions * docs: link to rust-bitcoinconsensus * lib: add Taproot support to libconsensus * test: fix `assert_debug_log` call-site bugs, add type checks * ci: always prune all dangling bitcoin-ci-test images * ci: Add missing CI_RETRY_EXE before git clone * ci: Export `IN_GETOPT_BIN` on macOS * Revert \"ci: Upgrading pip version in macos environment\" * ci: add label to docker images * test: Fuzz merge with -use_value_profile=0 for now * ci: Bump asan * ci: Drop no longer needed `NOLINTNEXTLINE` * tidy: modernize-use-emplace * test: Check snapshot file with wrong number of coins * refactor: Remove unused nchaintx from SnapshotMetadata constructor * test: don\'t run old binaries under valgrind * test: BIP324: add check for missing garbage terminator detection * doc: assumeutxo prune and index notes * ci: Install Android API 31 platform as Qt expects * test: Add Wallet Unlock Context Manager * test: Use pathlib over os.path #28362 * build: add `-mbranch-protection=bti` to aarch64 hardening flags * devtools: test_utxo_snapshots.sh sleep cleanup and documentation * contrib: add test for macOS linker version to symbol-check * depends: update LD64_VERSION to 711 * ci: use LLVM/Clang 17 in tidy job * ci: use LLVM 17.0.2 in MSAN jobs * test: check that loading snapshot not matching AssumeUTXO parameters fails * docs: fix typo * test: fix usdt undeclared function errors on mantis * test: Unit test for inferring scripts with hybrid and uncompressed keys * test: Scripts with hybrid pubkeys are migrated to watchonly * descriptors: Move InferScript\'s pubkey validity checks to InferPubkey * descriptors: Check result of InferPubkey * ci: move-only CI_CONTAINER_ID to 02_run_container.sh * ci: Work around podman stop bug * ci: Add set -ex to 02_run_container.sh * ci: Rename 04_install to 02_run_container * qt: Update translation source file for v26.0 string freeze * Adjust Gradle properties * miniscript: remove P2WSH-specific part of GetStackSize doc comment * qa: bound testing for TapMiniscript * miniscript: have a custom Node destructor * qa: Tapscript Miniscript signing functional tests * qa: list descriptors in Miniscript signing functional tests * script/sign: Miniscript support in Tapscript * MOVEONLY: script/sign: move Satisfier declaration above Tapscript signing * qa: functional test Miniscript inside Taproot descriptors * descriptor: parse Miniscript expressions within Taproot descriptors * descriptor: Tapscript-specific Miniscript key serialization / parsing * fuzz: miniscript: higher sensitivity for max stack size limit under Tapscript * qa: test Miniscript max stack size tracking * miniscript: check maximum stack size during execution * fuzz: adapt Miniscript targets to Tapscript * qa: Tapscript-Miniscript unit tests * pubkey: introduce a GetEvenCorrespondingCPubKey helper * miniscript: account for keys as being 32 bytes under Taproot context * miniscript: adapt resources checks depending on context * serialize: make GetSizeOfCompactSize constexpr * miniscript: sanity asserts context in ComputeType * miniscript: make \'d:\' have the \'u\' property under Tapscript context * miniscript: introduce a multi_a fragment * miniscript: restrict multi() usage to P2WSH context * miniscript: store the script context within the Node structure * miniscript: introduce a MsContext() helper to contexts * miniscript: don\'t anticipate signature presence in CalcStackSize() * miniscript: add a missing dup key check bypass in Parse() * gui: fix coin control input size accounting for taproot spends * gui: remove legacy wallet creation * rpc: Use Ensure(Any)Chainman in assumeutxo related RPCs * doc: Drop references to assumevalid in assumeutxo docs * test: Rename wait_until_helper to wait_until_helper_internal * chain: Rename HaveTxsDownloaded to HaveNumChainTxs * blockstorage: Let FlushChainstateBlockFile return true in case of missing cursor * validation, test: Improve and document nChainTx check for testability * doc: Add snapshot chainstate removal warning to reindexing documentation * test: Improvements of feature_assumeutxo * doc: Add and edit some comments around assumeutxo * validation: remove unused mempool param in DetectSnapshotChainstate * test: Use feerate higher than minrelay fee in wallet_fundraw * doc: update example pulls in release-process.md * github actions: Fix test-one-commit when parent of head is merge commit * wallet: No BDB creation, unless -deprecatedrpc=create_bdb * assumeutxo: change getchainstates RPC to return a list of chainstates * net: move MaybeFlipIPv6toCJDNS() from net to netbase * net: move IsReachable() code to netbase and encapsulate it * fuzz: ConsumeNetAddr(): avoid IPv6 addresses that look like CJDNS * net: put CJDNS prefix byte in a constant * test: display abrupt shutdown errors in console output * i2p: destroy the session if we get an unexpected error from the I2P router * i2p: also sleep after errors in Accept() * ci: Avoid cache depends/build * test: Bump walletpassphrase timeouts to avoid intermittent issues * headerssync: update params for 26.x * kernel: update m_assumed_ * chain params for 26.x * kernel: update chainTxData for 26.x * kernel: update nMinimumChainWork & defaultAssumeValid for 26.x * qt: enable -ltcg for windows HOST * test: BIP324: add checks for v1 prefix matching / wrong network magic detection * gui: Add wallet name to address book page * ci: Only run functional tests on windows in master * tests: assumeutxo: accept final height from either chainstate * descriptors: disallow hybrid public keys * test: assumeutxo: avoid race in functional test * test: add wait_for_connect to BitcoinTestFramework.connect_nodes * net: raise V1_PREFIX_LEN from 12 to 16 * build: Update qt package up to 5.15.10 * [test] Make PeerManager\'s rng deterministic in tests * [net processing] FeeFilterRounder doesn\'t own a FastRandomContext * [net processing] Make fee filter rounder non-global * qt: Add \"Session id\" label to peer details * refactor: add and use EnsureAnyAddrman in rpc * doc: add release notes for #27511 * rpc: `getaddrmaninfo` followups * typo: in packages.md * ci: Print Linux kernel info * http: bugfix: track closed connection * http: log connection instead of request count * http: refactor: use encapsulated HTTPRequestTracker * depends: fix unusable memory_resource in macos qt build * [net processing] Addr shuffle uses PeerManager\'s rng * [net processing] PushAddress uses PeerManager\'s rng * [net processing] PeerManager holds a FastRandomContext * qt: Add \"Transport\" label to peer details * doc: mention BIP324 support in bips.md * test: enable v2 transport between nodes in some functional tests * test: Functional test for opportunistic encryption * net: expose transport types/session IDs of connections in RPC and logs * net: reconnect with V1Transport under certain conditions * sync: modernize CSemaphore / CSemaphoreGrant * rpc: addnode arg to use BIP324 v2 p2p * net: use V2Transport when NODE_P2P_V2 service flag is present * rpc: don\'t report v2 handshake bytes in the per-type sent byte statistics * net: advertise NODE_P2P_V2 if CLI arg -v2transport is on * chainparams: add signet assumeutxo param at height 160_000 * chainparams: add testnet assumeutxo param at height 2_500_000 * test: getrawaddrman RPC * rpc: getrawaddrman for addrman entries * bench: drop NO_THREAD_SAFETY_ANALYSIS from disconnected_txs * doc: fix link to developer-notes.md file in multiprocess.md * [doc] add release note for submitpackage * [rpc] allow submitpackage to be called outside of regtest * [rpc] require package to be a tree in submitpackage * [txpackages] IsChildWithParentsTree() * [doc] parent pay for child in aggregate CheckFeeRate * test: add coverage to feature_addrman.py * doc: add note about confusing HaveTxsDownloaded name * contrib: add script to demo/test assumeutxo * test: add feature_assumeutxo functional test * rpc: add getchainstates * refuse to activate a UTXO snapshot if mempool not empty * rpc: add loadtxoutset * validation: do not activate snapshot if behind active chain * validation: assumeutxo: swap m_mempool on snapshot activation * blockstorage: segment normal/assumedvalid blockfiles * validation: populate nChainTx value for assumedvalid chainstates * test: adjust chainstate tests to use recognized snapshot base * validation: pruning for multiple chainstates * validation: indexing changes for assumeutxo * net_processing: validationinterface: ignore some events for bg chain * wallet: validationinterface: only handle active chain notifications * validationinterface: only send zmq notifications for active * validation: pass ChainstateRole for validationinterface calls * validation: only call UpdatedBlockTip for active chainstate * validation: add ChainstateRole * validation: MaybeRebalanceCaches when chain leaves IBD * chainparams: add blockhash to AssumeutxoData * assumeutxo: remove snapshot during -reindex{-chainstate} * bugfix: correct is_snapshot_cs in VerifyDB * net_processing: Request assumeutxo background chain blocks * Add instructions for headerssync-params.py to release-process.md * Update parameters in headerssync.cpp * Add headerssync-params.py script to the repository * lint: fix custom mypy cache dir setting * Add package evaluation fuzzer * key: don\'t allocate secure mem for null (invalid) key * Add make_secure_unique helper * wallet: Add TxStateString function for debugging and logging * tests: Use manual bumps instead of bumpfee for resendwallettransactions * test: Avoid test failure on Linux root without cap-add LINUX_IMMUTABLE * build, macos: Fix `qt` package build with new Xcode 15 linker * net: Simplify v2 recv logic by decoupling AAD from state machine * net: Drop v2 garbage authentication packet * test: Test loading wallets with conflicts without a chain * wallet: Check last block and conflict height are valid in MarkConflicted * rpc: bumpfee, improve doc for \'reduce_output\' arg * ci: Install Homebrew\'s `pkg-config` package * bench: Add SHA256 implementation specific benchmarks * Add ability to specify SHA256 implementation for benchmark purposes * doc: Be vague instead of wrong about MALLOC_ARENA_MAX * test: add unit test coverage for Python ECDSA implementation * Add functional test to catch too large vsize packages * Handle over-sized (in virtual bytes) packages with no in-mempool ancestors * Bugfix: Pass correct virtual size to CheckPackageLimits * Replace MAX_PACKAGE_SIZE with MAX_PACKAGE_WEIGHT to avoid vbyte confusion * test: add functional test for getaddrmaninfo * ci: Use nproc over MAKEJOBS in 01_base_install * Remove SER_GETHASH, hard-code client version in CKeyPool serialize * Remove CHashWriter type * Remove unused GetType() from OverrideStream, CVectorWriter, SpanReader * Add regression test for m_limit mutation * contrib/bash-completions: use package naming conventions * fuzz: Add missing PROVIDE_FUZZ_MAIN_FUNCTION guard to __AFL_FUZZ_INIT * rpc: Introduce getaddrmaninfo for count of addresses stored in new/tried table * ci: Reintroduce fixed \"test-each-commit\" job * doc: add release note * test: check `descriptorprocesspsbt` return hex encoded tx * rpc: `descriptorprocesspsbt` return hex encoded tx * Refactor: Replace \'isMockableChain\' with inline \'ChainType\' check for \'submitpackage\' * build: remove dmg dependencies * macdeploy: remove DMG generation from deploy script * build: produce a .zip for macOS distribution * build: add -zip option to macdeployqtplus * Return CAutoFile from BlockManager::Open *File() * Make BufferedFile to be a CAutoFile wrapper * refactor: Drop unused fclose() from BufferedFile * tests: fix incorrect assumption in v2transport_test * Remove MemPoolAccept::m_limits, only have local copies for carveouts * doc: Remove confusing assert linter * test: cover read-only blockstore * [fuzz] Don\'t use afl++ deferred forkserver mode * build: use _LIBCPP_ENABLE_DEBUG_MODE over ENABLE_ASSERTIONS * Revert \"Merge bitcoin/bitcoin#28279: ci: Add test-each-commit task\" * ci: use LLVM 17.0.0 in MSAN jobs * scripted-diff: use SER_PARAMS_OPFUNC * serialize: add SER_PARAMS_OPFUNC * serialize: specify type for ParamsWrapper not ref * serialize: move ser_action functions out of global namespace * Amend bumpfee for inputs with overlapping ancestry * Bump unconfirmed parent txs to target feerate * coinselection: Move GetSelectionWaste into SelectionResult * [node] interface to get bump fees * Make MiniMinerMempoolEntry fields private * Remove unused imports * Fix calculation of ancestor set feerates in test * Match tx names to index in miniminer overlap test * [test] mempool coins disappearing mid-package evaluation * [refactor] split setup in mempool_limit test * [test framework] add ability to spend only confirmed utxos * [validation] don\'t LimitMempoolSize in any subpackage submissions * [validation] return correct result when already-in-mempool tx gets evicted * [refactor] back-fill results in AcceptPackage * [validation] make PackageMempoolAcceptResult members mutable * [validation] add AcceptSubPackage to delegate Accept * calls and clean up m_view * [CCoinsViewMemPool] track non-base coins and allow Reset * [policy] check for duplicate txids in package * fuzz: Rework addr fuzzing * fuzz: Drop unused params from serialize helpers * make DisconnectedBlockTransactions responsible for its own memory management * MOVEONLY: DisconnectedBlockTransactions to its own file * rewrite DisconnectedBlockTransactions as a list + map * ci: clang-17 for fuzz and tsan * Do not use std::vector = {} to release memory * add std::list to memusage * [bench] DisconnectedBlockTransactions * [refactor] Remove compat.h from kernel headers * [refactor] Remove netaddress.h from kernel headers * [refactor] Add CChainParams member to CConnman * [refactor] Add missing includes for next commit * kernel: Move MessageStartChars to its own file * [refactor] Define MessageStartChars as std::array * [refactor] Allow std::array in serialize.h * gui: macOS, make appMenuBar part of the main app window * wallet: Use CTxDestination in CRecipient rather than scriptPubKey * Add PubKeyDestination for P2PK scripts * Allow CNoDestination to represent a raw script * Make WitnessUnknown members private * [fuzz] Use afl++ shared-memory fuzzing * doc: Clarify that -fstack-reuse=all bugs exist on all versions of GCC * scripted-diff: Rename CBufferedFile to BufferedFile * Remove unused GetType() from CBufferedFile and CAutoFile * dbwrapper: Use DataStream for batch operations * qt: Silence `-Wcast-function-type` warning * rpc: Deprecate rpcserialversion=0 * doc: fix typos and mistakes in BIP324 code comments * net: do not use send buffer to store/cache garbage * net: merge V2Transport constructors, move key gen * gui: macOS, do not process dock icon actions during shutdown * refactor: remove clientversion include from dbwrapper.h * refactor: Use DataStream now that version/type are unused * Remove version/hashing options from CBlockLocator/CDiskBlockIndex * index: add [nodiscard] attribute to functions writing to the db * consensus/validation.h: remove needless GetTransactionOutputWeight helper * [refactor] batch-add transactions to DisconnectedBlockTransactions * index: coinstats reorg, fail when block cannot be reversed * net: detect wrong-network V1 talking to V2Transport * test: add unit tests for V2Transport * net: make V2Transport preallocate receive buffer space * net: make V2Transport send uniformly random number garbage bytes * net: add short message encoding/decoding support to V2Transport * net: make V2Transport auto-detect incoming V1 and fall back to it * net: add V2Transport class with subset of BIP324 functionality * crypto: Spanify EllSwiftPubKey constructor * net: remove unused Transport::SetReceiveVersion * net: add have_next_message argument to Transport::GetBytesToSend() * doc: s/--no-substitute/--no-substitutes in guix/INSTALL * doc: add release note for PR #28414 * test: remove unnecessary finalizepsbt rpc calls * depends: cctools 986 & ld64 711 * depends: libtapi 1300.0.6.5 * ci: enable chattr +i capability inside containers * unit test: add coverage for BlockManager * fuzz: introduce and use `ConsumePrivateKey` helper * wallet rpc: return final tx hex from walletprocesspsbt if complete * test: remove unused variables in `p2p_invalid_block` * test: Combine sync_send_with_ping and sync_with_ping * Remove unused legacy CHashVerifier * test: add tests that exercise WithParams() * Use serialization parameters for CAddress serialization * Squashed \'src/secp256k1/\' changes from c545fdc374..199d27cea3 * ci: Limit test-each-commit to --max-count=6 * ci: Add test-each-commit task * ci: Bump `actions/checkout` version * test: p2p: check that `getaddr` msgs are only responded once per connection * test: remove fixed timeouts from feature_config_args * ci: Avoid saving the same Ccache cache * ci: Avoid oversubscription in functional tests on Windows * qt: Update translation source file * qt: Bump Transifex slug for 26.x * qt: Translation updates from Transifex * blockstorage: Return on fatal undo file flush error * blockstorage: Return on fatal block file flush error * blockstorage: Mark FindBlockPos as nodiscard * Refactor: Remove m_is_test_chain * fuzz: add ConstructPubKeyBytes function * build: use -muse-unaligned-vector-move for Windows * doc: Fill in the required skills in the good_first_issue template * ci, windows: Do not run extended functional tests for pull requests * guix: remove GCC 10 workaround from NSIS * ci: Asan with -ftrivial-auto-var-init=pattern * [doc] move comment about AlreadyHaveTx DoS score to the right place * [log] add more logs related to orphan handling * [log] add category TXPACKAGES for orphanage and package relay * [log] include wtxid in tx {relay,validation,orphanage} logging * Support for serialization parameters * Rename CSerAction * to Action * * Replace READWRITEAS macro with AsBase wrapping function * test: improve sock_tests/move_assignment * doc: Release notes for testnet defaulting to -acceptnonstdtxn=0 * config: default acceptnonstdtxn=0 on all chains * ci: Remove unused TEST_RUNNER_ENV=\"LC_ALL=C\" from s390x task * ci: Remove /ro_base bind mount * doc: Remove sudo from command that is already run as root * test: Support powerpc64le in get_previous_releases.py * log: Print error message when coindb is in inconsistent state * guix: use clang-toolchain-15 for macOS compilation * depends: use LLVM/Clang 15.0.6 for macOS cross-compile * script: replace deprecated pkg_resources with importlib.metadata * refactor: Use HashWriter over legacy CHashWriter (via SerializeHash) * refactor: Use HashWriter over legacy CHashWriter * ci: Run \"Win64 native\" job on GitHub Actions * net: remove Sock default constructor, it\'s not necessary * net: remove now unnecessary Sock::Get() * wallet: accurately account for the size of the witness stack * wallet: use descriptor satisfaction size to estimate inputs size * script/signingprovider: introduce a MultiSigningProvider * descriptor: introduce a method to get the satisfaction size * miniscript: introduce a helper to get the maximum witness size * miniscript: make GetStackSize independent of P2WSH context * net: don\'t check if the socket is valid in ConnectSocketDirectly() * net: don\'t check if the socket is valid in GetBindAddress() * i2p: avoid using Sock::Get() for checking for a valid socket * rpc: Add MaybeArg() and Arg() default helper * guix: drop Windows broken-longjmp.patch * guix: drop NSIS patch now that we use 3.09 * guix: use cross- * keyword arguments * guix: update time-machine to 160f78a4d92205df986ed9efcce7d3aac188cb24 * guix: update python-oscrypto to 1.3.0 * guix: backport glibc patch to fix powerpc build * test: previous releases: speed up fetching sources with shallow clone * refactor: make Transport::ReceivedBytes just return success/fail * net: move message conversion to wire bytes from PushMessage to SocketSendData * net: measure send buffer fullness based on memory usage * fuzz: add bidirectional fragmented transport test * net: make V1Transport implicitly use current chainparams * net: abstract sending side of transport serialization further * refactor: rename Transport class receive functions * net: add V1Transport lock protecting receive state * refactor: merge transport serializer and deserializer into Transport class * test: roundtrip wallet backwards compat downgrade * test: Add 25.0 to wallet backwards compatibiilty test * test: Run upgrade test on all nodes * test: Run downgrade test on descriptor wallets * test: Add 0.21 tr() incompatibility test * test: add logging 0.17 incompatibilities in wallet back compat * test: Refactor v19 addmultisigaddress test to be distinct * test: Remove w1_v18 from wallet backwards compatibility * test: Fix 0.16 wallet paths and downgrade test * ci: Add missing docker.io prefix to CI_IMAGE_NAME_TAG * fuzz: coinselection, fix `m_cost_of_change` * fuzz: coinselection, BnB should never produce change * fuzz: coinselection, compare `GetSelectedValue` with target * fuzz: coinselection, improve `ComputeAndSetWaste` * fuzz: coinselection, add coverage for `Merge` * fuzz: coinselection, add coverage for `GetShuffledInputVector`/`GetInputSet` * fuzz: coinselection, add coverage for `AddInputs` * ci: Remove no longer applicable section * ci: Start with clean env * ci: Limit scope of some env vars * test: wallet_backup.py, fix intermittent failure in \"restore using dumped wallet\" * Update help text for spend and rawtransaction rpcs * test: add functional test for deadlock situation * fuzz: coinselection, add coverage for `EligibleForSpending` * fuzz: coinselection, add `CreateCoins` * test: add basic tests for sendmsgtopeer to rpc_net.py * rpc: add test-only sendmsgtopeer rpc * guix: consolidate Linux GCC package * guix: consolidate glibc 2.27 package * ci: Use concurrency for pull requests only * test: Fix intermittent issue in mempool_reorg * test: Support riscv64 in get_previous_releases.py * test: fix \'unknown named parameter\' test in `wallet_basic` * ci: Disable cache save for pull requests in GitHub Actions * test: ensure acceptstalefeeestimates is supported only on regtest chain * assumeutxo cleanup: Move IsInitialBlockDownload & NotifyHeaderTip to ChainstateManager * ci: Remove distro-name from task name * ci: Switch remaining tasks to self-hosted * ci: Add missing amd64 to win64-cross task * ci: Add missing ${CI_RETRY_EXE} before curl * guix: pre time-machine bump changes (Windows) * Remove unused includes from wallet.cpp * doc, refactor: Changing -torcontrol help to specify that a default port is used * removed StrFormatInternalBug quote delimitation * rpc: remove one more quote from non-string oneline description * crypto: make ChaCha20::SetKey wipe buffer * tests: miscellaneous hex / std::byte improvements * fuzz: support std::byte in Consume{Fixed,Variable}LengthByteVector * crypto: require key on ChaCha20 initialization * random: simplify FastRandomContext::randbytes using fillrand * crypto: refactor ChaCha20 classes to use Span interface * Remove unused includes from blockfilter.h * Make post-p2sh consensus rules mandatory for tx relay * doc, policy: Clarify comment on STANDARD_SCRIPT_VERIFY_FLAGS * move-only: Create src/kernel/mempool_removal_reason.h * Remove unused includes from txmempool.h * Refactor: Remove confusing static_cast * refactor: Add missing includes * ci: Refactor: Remove CI_USE_APT_INSTALL * ci: Ensure that only a single workflow processes `github.ref` at a time * tx fees, policy: doc: update and delete unnecessary comment * bitcoin-tidy: Apply bitcoin-unterminated-logprintf to spkm as well * refactor: Enable all clang-tidy plugin bitcoin tests * ci: Avoid error on macOS native * ci: Fix macOS-cross SDK rsync * refactor: Remove PERSISTENT_WORKER_ * yaml templates * refactor: add missing headers for BIP324 ciphersuite * Rename script/standard.{cpp/h} to script/solver.{cpp/h} * Clean up script/standard.{h/cpp} includes * Clean up things that include script/standard.h * MOVEONLY: Move datacarrier defaults to policy.h * Move CTxDestination to its own file * Move Taproot{SpendData/Builder} to signingprovider.{h/cpp} * Move CScriptID to script.{h/cpp} * Remove ScriptHash from CScriptID constructor * Move MANDATORY_SCRIPT_VERIFY_FLAGS from script/standard.h to policy/policy.h * ci: Drop no longer needed `macos_sdk_cache` * [functional test] transaction orphan handling * [test framework] make it easier to fast-forward setmocktime * crypto: BIP324 ciphersuite follow-up * gui: make \'-min\' minimize wallet loading dialog * test: check backup from `migratewallet` can be successfully restored * fuzz: coins_view: remove an incorrect assertion * bitcoin-tidy: fix macOS build * test: wallet, verify migration doesn\'t crash for an invalid script * wallet: disallow migration of invalid or not-watched scripts * test: locked_wallet, skip default fee estimation * doc: use llvm-config for bitcoin-tidy example * doc: Improve documentation of rpcallowip rpchelp * ci: Move tidy to persistent worker * ci: Use hard-coded root path for CI containers * ci: Only create folders when needed * ci: Drop BASE_SCRATCH_DIR from LIBCXX_DIR * ci: Run \"macOS native x86_64\" job on GitHub Actions * Sort includes in compat.h * remove unused limits.h include in compat.h * Replace LocaleIndependentAtoi with ToIntegral * iwyu on torcontrol * Remove unused boost signals2 from torcontrol * refactor: Enforce C-str fmt strings in WalletLogPrintf() * doc: Fix bitcoin-unterminated-logprintf tidy comments * ci: Use qemu-user through container engine * doc: remove Fedora libdb4- *-devel install docs * mempool_entry: improve struct packing * test: add bip157 coverage for (start height > stop height) disconnect * test: check for specific disconnect reasons in p2p_blockfilters.py * Add importmempool RPC * refactor: Add and use kernel::ImportMempoolOptions * doc: Clarify the getmempoolinfo.loaded RPC field documentation * Remove Chainstate::LoadMempool * refactor: Correct dbwrapper key naming * build: Remove leveldb from BITCOIN_INCLUDES * refactor: Move CDBWrapper leveldb members to their own context struct * refactor: Split dbwrapper CDBWrapper::EstimateSize implementation * refactor: Move HandleError to dbwrapper implementation * refactor: Split dbwrapper CDBWrapper::Exists implementation * refactor: Fix logging.h includes * refactor: Split dbwrapper CDBWrapper::Read implementation * refactor: Pimpl leveldb::Iterator for CDBIterator * refactor: Split dbwrapper CDBIterator::GetValue implementation * refactor: Split dbwrapper CDBIterator::GetKey implementation * refactor: Split dbwrapper CDBIterator::Seek implementation * refactor: Pimpl leveldb::batch for CDBBatch * refactor: Split dbwrapper CDBatch::Erase implementation * refactor: Split dbwrapper CDBBatch::Write implementation * fuzz: coins_view: correct an incorrect assertion * p2p: network-specific management of outbound connections * test: Add test for outbound protection by network * p2p: Protect extra full outbound peers by network * doc: Add release note * p2p: Introduce data struct to track connection counts by network * tidy: Integrate bicoin-tidy clang-tidy plugin * refactor: fix unterminated LogPrintf()s * lint: remove / * Continued */ markers from codebase * lint: remove lint-logs.py * lint: drop DIR_IWYU global * scripted-diff: Specify Python major version explicitly on Windows * net_processing: Clean up INVENTORY_BROADCAST_MAX constants * test: Check tx from disconnected block is immediately requestable * net_processing: don\'t add txids to m_tx_inventory_known_filter * net_processing: drop m_recently_announced_invs bloom filter * refactor: use \"if constexpr\" in std::vector\'s Unserialize() * refactor: use \"if constexpr\" in std::vector\'s Serialize() * refactor: use \"if constexpr\" in prevector\'s Unserialize() * refactor: use \"if constexpr\" in prevector\'s Serialize() * refactor: use fold expressions instead of recursive calls in UnserializeMany() * refactor: use fold expressions instead of recursive calls in SerializeMany() * validation: when adding txs due to a block reorg, allow immediate relay * mempool_entry: add mempool entry sequence number * qa: Close SQLite connection properly * doc: make it clear that `node` in `addnode` refers to the node\'s address * test: `addnode` with an invalid command should throw an error * rpc, refactor: clean-up `addnode` * scripted-diff: Rename CBlockTreeDB -> BlockTreeDB * refactor: Wrap DestroyDB in dbwrapper helper * ci: Add missing linux-headers package to ASan task * ci: Move ASan USDT to persistent_worker * Fixup style of moved code * move-only: Move CBlockTreeDB to node/blockstorage * index: Drop legacy -txindex check * scripted-diff: Use blocks_path where possible * script: update flake8 to 6.1.0 * test: python E721 updates * Remove unused MessageStartChars parameters from BlockManager methods * ci: Use documented `CCACHE_MAXSIZE` instead of `CCACHE_SIZE` * qa, doc: Fix comment * test: remove redundant test values * test: use common assert_signing_completed_successfully helper * test: add coverage for passing an invalid sighashtype * Remove unused raw-pointer read helper from univalue * refactor: Revert addition of univalue sighash string check * doc: Correct release-notes for sighashtype exceptions * tests: add decryption test to bip324_tests * Add BIP324Cipher, encapsulating key agreement, derivation, and stream/AEAD ciphers * crypto: support split plaintext in ChaCha20Poly1305 Encrypt/Decrypt * bench: add benchmark for FSChaCha20Poly1305 * crypto: add FSChaCha20Poly1305, rekeying wrapper around ChaCha20Poly1305 * crypto: add FSChaCha20, a rekeying wrapper around ChaCha20 * crypto: add the ChaCha20Poly1305 AEAD as specified in RFC8439 * crypto: remove outdated variant of ChaCha20Poly1305 AEAD * test: remove unused `totalOut` code * test: remove unecessary `decoderawtransaction` calls * net processing: clamp -blockreconstructionextratxn to uint32_t bounds * net processing: clamp -maxorphantx to uint32_t bounds * doc: document PeerManager::Options members * test: refactor: deduplicate segwitv0 ECDSA signing for tx inputs * kernel: Remove Univalue from kernel library * kernel: Split ParseSighashString * test: Avoid intermittent issues due to async events in validationinterface_tests * test: drop duplicate getaddrs from p2p_getaddr_caching * test: fix intermittent failure in p2p_getaddr_caching * scripted-diff: Use blocks_path where possible * test: Add blocks_path property to TestNode * test: Drop 22.x node from TxindexCompatibilityTest * refactor: deduplicate ignores_incoming_txs * refactor: set ignore_incoming_txs in ApplyArgsManOptions * test: Use clean chain in MempoolCompatibilityTest * doc: misc changes in release-process * suppressions: note that \'type:ClassName::MethodName\' should be used * doc: filter out merge-script from list of authors * doc: remove generate changelog section from release-process.md * doc: remove note to update bips.md version number * valgrind: add suppression for bug 472219 * Don\'t derive secure_allocator from std::allocator * Remove unused function `reliesOnAssumedValid` * Cache block index entry corresponding to assumeutxo snapshot base blockhash * Move CheckBlockIndex() from Chainstate to ChainstateManager * Documentation improvements for assumeutxo * Fix initialization of setBlockIndexCandidates when working with multiple chainstates * Tighten requirements for adding elements to setBlockIndexCandidates * [net processing] Move -capturemessages to PeerManager::Options * [net processing] Move -blockreconstructionextratxn to PeerManager::Options * [net processing] Move -maxorphantx to PeerManager::Options * [net processing] Move -txreconciliation to PeerManager::Options * [net processing] Use ignore_incoming_txs from m_opts * [net processing] Introduce PeerManager options * ci: Keep system env vars as-is * ci: Set PATH inside the CI env * ci: Remove P_CI_DIR and --workdir * test: create wallet specific for test_locked_wallet case * refactor: Use reinterpret_cast where appropriate * refactor: Avoid casting away constness * refactor: Remove unused C-style casts * Add UBSan `-fsanitize=integer` suppressions for `src/secp256k1` subtree * fuzz: use `ConnmanTestMsg` in `connman` * refactor: Make more transaction size variables signed * fuzz: Re-enable symbolize=1 in ASAN_OPTIONS * RPC/Mining: Document template_request better for getblocktemplate * RPC/rpcdoccheck: Error if a oneline_description has a quote for a non-string * Bugfix: RPC: Remove quotes from non-string oneline descriptions * fuzz: increase coverage of the descriptor targets * fuzz: add a new, more efficient, descriptor parsing target * Move block-storage-related logic to ChainstateManager * refactor: Use EnsureAnyNodeContext * test: Add SyncWithValidationInterfaceQueue to mockscheduler RPC * fuzz: make the parsed descriptor testing into a function * Rework receive buffer pushback * test: wallet, add coverage for watch-only raw sh script migration * descriptor: InferScript, do not return top-level only func as sub descriptor * doc: correct Fedora systemtap dep * lint: Ignore check_fileopens failure on * *kwargs * test: Ignore UTF-8 errors in assert_debug_log * test: Fix debug_log_size helper * Inline short, often-called, rarely-changed basic CNetAddr getters * Convert GetLocal() to std::optional and remove out-param * Use higher-level CNetAddr and CNode helpers in net.cpp * Add CNetAddr::IsPrivacyNet() and CNode::IsConnectedThroughPrivacyNet() * test: fix intermittent failure in wallet_resendwallettransactions.py * GetLocal() type-safety, naming, const, and formatting cleanups * Add and use CNetAddr::HasCJDNSPrefix() helper * Move GetLocal() declaration from header to implementation * Move CaptureMessageToFile() declaration from header to implementation * Move IsPeerAddrLocalGood() declaration from header to implementation * test: cover addrv2 support in anchors.dat with a TorV3 address * streams: Teach AutoFile how to XOR * lint: Add missing `set -ex` to ci/lint/06_script.sh * doc: Add doc comment to ci/test_imagefile * test: fix feature_init.py file perturbation * contrib: move user32.dll from bitcoind.exe libs * init: abort loading of blockindex in case of missing height. * build: adapt Windows builds for libsecp256k1 build changes * Squashed \'src/secp256k1/\' changes from 705ce7ed8c..c545fdc374 * ci: document that -Wreturn-type has been fixed upstream (Windows) * depends: xcb-proto 1.15.2 * clang-tidy: turn on modernize-use-noexcept * validation: use noexcept instead of deprecated throw() * test: Disable known broken USDT test * refactor: use Span for SipHash::Write * fuzz: Bump FuzzedDataProvider.h * doc: update windows -fstack-clash-protection doc * ci: Use DOCKER_BUILDKIT for lint image * test: Clear block index flags when testing snapshots * Update CheckBlockIndex invariants for chains based on an assumeutxo snapshot * Add wrapper for adding entries to a chainstate\'s block index candidates * Move block-arrival information / preciousblock counters to ChainstateManager * test: Add helper functions for checking node versions * Remove CChain dependency in node/blockstorage * Explicitly track maximum block height stored in undo files * Added `longpollid` and `data` params to `template_request` #27998 * scripted-diff: Use new FUZZ_TARGET macro everywhere * fuzz: Accept options in FUZZ_TARGET macro * Add AutoFile::detail_fread member function * refactor: Modernize AutoFile * Switch all callers from poly1305_auth to Poly1305 class * tests: add more Poly1305 test vectors * crypto: add Poly1305 class with std::byte Span interface * crypto: switch poly1305 to incremental implementation * fuzz: Generate process_message targets individually * ci: Add missing -O2 to valgrind tasks * guix: backport glibc patch to prevent redundant librt link * contrib: remove librt from release deps * build: remove check for gettimeofday & librt * doc: Remove comments that just repeat what the code does * refactor: Remove redundant file check from AutoFile shift operators * Extract util::Xor, Add key_offset option, Add bench * refactor: Remove duplicate allNetMessageTypesVec * kernel: Remove StartShutdown calls from validation code * wallet: loading, log descriptor parsing error details * refactor: Move stopafterblockimport handling out of blockstorage * test: indexes, fix on error infinite loop * test: add keep_alive option to socks5 proxy in test_framework * test: cover TorV3 address in p2p_addrv2_relay * test: add support for all networks in CAddress in messages.py * index: verify blocks data existence only once * init: don\'t start indexes sync thread prematurely * refactor: simplify pruning violation check * make GetFirstStoredBlock assert that \'start_block\' always has data * refactor: index, decouple \'Init\' from \'Start\' * test: Check expected_stderr after stop * test: add ChaCha20 test triggering 32-bit block counter overflow * test: make assumeUTXO test capture the expected fatal error * refactor: init indexes, decouple \'Start()\' from the creation step * doc: describe \'init load\' thread actions * scripted-diff: rename \'loadblk\' thread name to \'initload\' * init: start indexes sync earlier * tests: improve ChaCha20 unit tests * crypto: Implement RFC8439-compatible variant of ChaCha20 * wallet: bdb: include bdb header from our implementation files only * wallet: bdb: don\'t use bdb define in header * wallet: bdb: move BerkeleyDatabase constructor to cpp file * wallet: bdb: move SafeDbt to cpp file * wallet: bdb: move SpanFromDbt to below SafeDbt\'s implementation * test: miner: add coverage for `-blockmintxfee` setting * wallet: bdb: move TxnBegin to cpp file since it uses a bdb function * wallet: bdb: drop default parameter * wallet: sqlite: force sqlite3.h to be included by the cpp files * test: wallet, add coverage for addressbook migration * wallet: migration bugfix, persist empty labels * wallet: migration bugfix, clone \'send\' record label to all wallets * test: remove race in the user-agent reception check * test: Restore unlimited timeout in IndexWaitSynced * ci: Print full lscpu output * ci: Remove deprecated container.greedy * gui: send, left alignment for \"bytes\" and \"change\" label * Fix RPCConsole wallet selection * qt: remove confusing \"Dust\" label from coincontrol / sendcoins dialog * test: refactor: deduplicate legacy ECDSA signing for tx inputs * docs: fixup honggfuzz patch * descriptor: assert we never parse a sane miniscript with no pubkey * qa: make sure we don\'t let unspendable Miniscript descriptors be imported * descriptor: refuse to parse unspendable miniscript descriptors * Consolidate Win32-specific error formatting * Show descriptive error messages when FileCommit fails * ci: re-enable gui tests for s390x * doc: Fix verify-binaries link in contrib README * Allow std::byte serialization * Allow FastRandomContext::randbytes for all byte types * script: appease spelling linter * script: update ignored-words.txt * script: update linter dependencies * test: fix PEP484 no implicit optional argument types errors * script, test: add missing python type annotations * test: add ellswift test vectors from BIP324 * test: Add ellswift unit tests * test: Add python ellswift implementation to test framework * test: Rename EncodeDecimal to serialization_fallback * refactor: remove in-code warning suppression * contrib: add macOS fixup_chains check to security-check * ci: filter all subtrees from tidy output * build: support -no_fixup_chains in ld64 * miniscript: make GetStackSize() and GetOps() return optionals * Remove now-unnecessary poll, fcntl includes from net(base).cpp * refactor: Drop unsafe AsBytePtr function * fuzz: Generate rpc fuzz targets individually * test: add coverage for descriptor ID * wallet: bugfix, always use apostrophe for spkm descriptor ID * refactor: extract descriptor ID calculation from spkm GetID() * wallet: do not allow loading descriptor with an invalid ID * guix: Specify symbols in modules explicitly * guix: Drop unneeded modules * guix: Unify fetch methods * test: Use same timeout for all index sync * ci: remove duplicate python3 from CI configs * ci: remove duplicate bsdmainutils from CI configs * kernel: Add fatalError method to notifications * kernel: Add flushError method to notifications * scripted-diff: Rename FatalError to FatalErrorf * kernel: Pass interrupt reference to chainman * util: Add SignalInterrupt class and use in shutdown.cpp * doc: simplify the router options in doc/i2p.md * doc: clarify when and how to launch the SAM bridge in doc/i2p.md * doc: Add release note for wallet loading changes * walletdb: Remove loading code where the database is iterated * walletdb: refactor decryption key loading * walletdb: refactor defaultkey and wkey loading * walletdb: refactor active spkm loading * walletdb: refactor tx loading * walletdb: refactor address book loading * walletdb: Refactor descriptor wallet records loading * walletdb: Refactor legacy wallet record loading into its own function * test: EC: optimize scalar multiplication of G by using lookup table * test: add secp256k1 module with FE (field element) and GE (group element) classes * Use only Span{} constructor for byte-like types where possible * util: Allow std::byte and char Span serialization * tests: Test for bumping single output transaction * test: Test bumpfee reduce_output * bumpfee: Allow original change position to be specified * net: remove unused `CConnmanTest` * wallet: Give deprecation warning when loading a legacy wallet * gui: Add File > Migrate Wallet * Bench test for EllSwift ECDH * gui: Optionally return passphrase after unlocking * Bench tests for CKey->EllSwift * Fuzz test for Ellswift ECDH * Fuzz test for CKey->EllSwift->CPubKey creation/decoding * Unit test for ellswift creation/decoding roundtrip * Add ElligatorSwift key creation and ECDH logic * Enable ellswift module in libsecp256k1 * gui: Disable and uncheck blank when private keys are disabled * http: update libevent workaround to correct version * MaybePunishNodeForTx: Remove unused message arg and logging * guix: Update `python-lief` package to 0.13.2 * test: refactor: usdt_mempool: store all events * test: refactor: remove unnecessary nonlocal * test: log sanity check assertion failures * test: store utxocache events * test: refactor: deduplicate handle_utxocache_ * logic * test: refactor: rename inbound to is_inbound * test: refactor: remove unnecessary blocks_checked counter * test: Fix intermittent issue in mining_getblocktemplate_longpoll.py * test: Add implicit-signed-integer-truncation: */include/c++/ suppression * GUI: TransactionRecord: When time/index/etc match, sort send before receive * Bugfix: Ignore ischange flag when we\'re not the sender * GUI: Remove SendToSelf TransactionRecord type * GUI: TransactionRecord: Refactor to turn send-to-self into send+receive pairs * GUI: TransactionRecord: Use \"any from me\" as the criteria for deciding whether a transaction is a send or receive * contrib: remove macOS lazy_bind check * build: explicitly opt-in to new fixup_chains functionality for darwin * depends: Bump MacOS minimum runtime requirement to 11.0 * depends: bump darwin clang to 11.1 * test: added coverage to estimatefee * test: Run fuzz tests on macOS * Added static_assert to check that base_blob is using whole bytes. * [fuzz] Show that SRD budgets for non-dust change * [bug] Increase SRD target by change_fee * Add more tests for the BIP21 implementation * net: Give seednodes time before falling back to fixed seeds * Squashed \'src/secp256k1/\' changes from 4258c54f4e..705ce7ed8c * test: Use TestNode *_path properties where possible * test: Allow pathlib.Path as RPC argument via authproxy * scripted-diff: Use wallets_path and chain_path where possible * test: Use wallet_dir lambda in wallet_multiwallet test where possible * fuzz: Avoid OOM in transaction fuzz target * qt: show own outputs on PSBT signing window * depends: modernize clang flags * ci: disable false-positive warnings for now * ci: Run fuzz target even if input folder is empty * ci: install llvm-symbolizer in MSAN jobs * ci: use LLVM 16.0.6 in MSAN jobs * fuzz: Fix implicit-integer-sign-change in wallet/fees fuzz target * scripted-diff: Following the C++ Standard rules for identifiers with _. * fuzz: addrman, avoid `ConsumeDeserializable` when possible * salvage: Remove use of ReadKeyValue in salvage * feerate: For GetFeePerK() return nSatoshisPerK instead of round trip through GetFee * test: refactor: introduce `generate_keypair` helper with WIF support * walletdb: Refactor hd chain loading to its own function * walletdb: Refactor encryption key loading to its own function * walletdb: Refactor crypted key loading to its own function * walletdb: Refactor key reading and loading to its own function * Manage exceptions in bcc callback functions * fuzz: wallet, add target for CoinControl * bench: disable birth time block skip for wallet_create_tx.cpp * doc: test: update TestShell instructions * validation: add missing insert to m_dirty_blockindex * Remove the syscall sandbox * validation: Stricter assumeutxo error handling in InvalidateCoinsDBOnDisk * validation: Stricter assumeutxo error handling in LoadChainstate * refactor: rename BCLog::BLOCKSTORE to BLOCKSTORAGE * doc: release note re raising on invalid -debug/debugexclude/loglevel * init: remove config option names from translated -loglevel strings * net: net_processing, add `ProcessCompactBlockTxns` * refactor: Avoid copy of bilingual_str when formatting, Fix ADL violation * build: suppress external warnings by default * test: clean up is node stopped * test: ensure old fee_estimate.dat not read on restart and flushed * tx fees, policy: read stale fee estimates with a regtest-only option * tx fees, policy: do not read estimates of old fee_estimates.dat * refactor: Make m_count_with_ * in CTxMemPoolEntry int64_t, drop UBSAN supp * tx fees, policy: periodically flush fee estimates to fee_estimates.dat * test: Make linter to look for `BOOST_ASSERT` macros * test: Kill `BOOST_ASSERT` * test: move random.h include header from setup_common.h to cpp * test: move remaining random test util code from setup_common to random * test: -loglevel raises on invalid values * init: raise on invalid loglevel config option * test: -debug and -debugexclude raise on invalid values * init: raise on invalid debug/debugexclude config options * fuzz: wallet, add target for `fees` * ci: Switch to `amd64` container in \"ARM\" task * ci: Bump macOS cross task to ubuntu:jammy * interfaces, wallet: Expose migrate wallet * ci: Use latest `macos-ventura-xcode:14.3.1` image * wallet: Document blank flag use in descriptor wallets * wallet: Ensure that the blank wallet flag is unset after imports * build: make sure we can overwrite config.{guess,sub} * scripted-diff: Use datadir from options in chainstatemanager test * test: Add test for migrating default wallet and plain file wallet * wallet: Generated migrated wallet\'s path from walletdir and name * Remove txmempool implicit-integer-sign-change sanitizer suppressions * Use `int32_t` type for most transaction size/weight values * test: fix intermittent failure in p2p_leak_tx.py * fuzz: Fix mini_miner_selection running out of coin * net: do not `break` when `addr` is not from a distinct network group * test: add coverage for `/deploymentinfo` passing a blockhash * rest: bugfix, fix crash error when calling `/deploymentinfo` * refactor: decouple early return commands from AppInit * gui: return EXIT_FAILURE on post-init fatal errors * Return EXIT_FAILURE on post-init fatal errors * ci: Use podman stop over podman kill * contrib: docs fix --import-keys flag on verify.py * refactor: index: use `AbortNode` in fatal error helper * move ThreadImport ABC error to use AbortNode * rpc, wallet: Include information about blank flag * doc: Clarify that -datacarriersize applies to the full raw scriptPubKey, not the data push * test: Add -datacarriersize=2 tests * Remove mapRelay * net_processing: relay txs from m_most_recent_block * walletdb: Refactor wallet flags loading * walletdb: Refactor minversion loading * ci: Invalidate Cirrus CI docker cache * ci: Nuke Android APK task, Use credits for tsan * test: add unit test for local address advertising * net: restrict self-advertisements with privacy networks * net, refactor: pass reference for peer address in GetReachabilityFrom * net, refactor: pass CNode instead of CNetAddr to GetLocalAddress * ci: enable AArch64 target in MSAN jobs * ci: use LLVM 16.0.5 in MSAN jobs * doc: add release note about removal of `deprecatedrpc=walletwarningfield` flag * Restorewallet/createwallet help documentation fixups/improvements * rpc: remove deprecated \"warning\" field from {create,load,restore,unload}wallet * test: avoid sporadic MINIMALDATA failure in feature_taproot.py (fixes #27595) * [fuzz] Only check duplicate coinbase script when block was valid * wallet: Add tracing for sqlite statements * guix: remove cURL from build env * Mitigate timeout in CalculateTotalBumpFees * Update .style.yapf * wallet: Add GetPrefixCursor to DatabaseBatch * streams: Drop confusing DataStream::Serialize method and << operator * doc: update getnodeaddresses for CJDNS, I2P and Tor and rm link * walletdb: Handle when database keys are empty * walletdb: Consistently clear key and value streams before writing * Add public Boost headers explicitly * test: Avoid `BOOST_ASSERT` macro * fuzz: fix wallet notifications.cpp * test: add block sync to getblockfrompeer.py * scripted-diff: move settings to common namespace * move-only: Move settings to the common library * kernel: Remove chainparams, chainparamsbase, args, settings from kernel library * refactor: Remove gArgs access from validation.cpp * refactor: Add path argument to FindSnapshotChainstateDir * refactor: Add stop_at_height option in ChainstateManager * fuzz: Avoid timeout in utxo_total_supply * ci: Enable float-divide-by-zero check * ci: Use podman for persistent workers * ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN * ci: return to using Ubuntu 22.04 in MSAN jobs * ci: compile clang and compiler-rt in MSAN jobs * ci: use LLVM 16.0.4 in MSAN jobs * ci: remove extra CC & CXX from MSAN jobs * ci: standardize custom libc++ usage in MSAN jobs * fix includes for touched header files (iwyu) * Add [[nodiscard]] where ignoring a Result return type is an error * lint: stop ignoring LIEF imports * ci: Avoid leaking HOME var into CI pod * ci: Remove \"default\" test env * ci: Add missing set -e to 01_base_install.sh * contrib/init: Better systemd integration * test: ensure addrman test is finite * addrman: change asserts to Assumes * p2p, refactor: return `std::optional` in `LookupHost` * p2p, refactor: return vector/optional in `Lookup` * p2p, refactor: return `std::vector` in `LookupHost` * p2p, refactor: return `std::vector` in `LookupIntern` * fuzz: Change LIMIT_TO_MESSAGE_TYPE from a compile-time to a run-time setting * doc: Fix broken link in release notes * test: Move test_chain_listunspent wallet check from mempool_packages to wallet_basic * p2p: Log addresses of stalling peers * bench: Remove incorrect LoadWallet call in WalletBalance * tests: Move ADDRESS_BCRT1_UNSPENDABLE to wallet/test/util.h * tests, bench: Consolidate {Test,Bench}Un/LoadWallet helper * test: Throw error when -signetchallenge is non-hex * Fix `#include`s in `src/wallet` * wallet: skip block scan if block was created before wallet birthday * refactor: single method to append new spkm to the wallet * doc: Fix typo in doc/release-process.md URL * doc: Add doc/release-notes/release-notes-25.0.md * use \'byte\'/\'bytes\' for bech32(m) validation error * doc: update `Select` function description * refactor: de-duplicate lookups * Unconditionally return when compact block status == READ_STATUS_FAILED * refactor: Replace std::optional with util::Result * util: Add void support to util::Result * Add tests for parallel compact block downloads * Support up to 3 parallel compact block txn fetchings * rpc: Fix invalid bech32 handling * build: disable boost multi index safe mode * depends: remove redundant stdlib option * index: prevent race by calling \'CustomInit\' prior setting \'synced\' flag * test: Make `util/test_runner.py` honor `BITCOINUTIL` and `BITCOINTX` * ci: Log qa-assets repo last commit * fuzz: Print error message when FUZZ is missing * test: p2p: check misbehavior for non-continuous headers messages * ci: remove MSAN getrandom syscall workaround * random: switch to using getrandom() directly * random: add [[maybe_unused]] to GetDevURandom * random: getentropy on macOS does not need unistd.h * ci, iwyu: Double maximum line length for includes * refactor: Move system from util to common library * refactor: Split util::AnyPtr into its own file * refactor: Split util::insert into its own file * refactor: Move ScheduleBatchPriority to its own file * kernel: Add warning method to notifications * kernel: Add progress method to notifications * kernel: Add headerTip method to notifications * kernel: Add notification interface * test: Explicitly specify directory where to search tests for * test: fix `include_immature_coinbase` logic in `get_utxos` * test: fix `interface_usdt_mempool` by mining a block after each test * test: fix mature utxos addition to wallet in `mempool_package_limits` * test: fix intermittent issue in `feature_bip68_sequence` * doc: add 24.1 release notes * doc: add 23.2 release notes * Only request full blocks from the peer we thought had the block in-flight * Convert mapBlocksInFlight to a multimap * Remove nBlocksInFlight * alias BlockDownloadMap for mapBlocksInFlight * build: Detect USDT the same way how it is used in the code * doc: remove Security section from build-unix.md * build: Bump minimum supported GCC to g++-9 * ci: Bump centos:stream8 to centos:stream9 * ci: Document the false positive error for g++-9 * build: Do not define `ENABLE_ZMQ` when ZMQ is not available * test: Add test to check tx in the last block can be downloaded * test: Split up test_notfound_on_unannounced_tx test case * index: Enable reindex-chainstate with active indexes * index: Use first block from locator instead of looking for fork point * ci: Reduce tsan CPU and memory for faster scheduling * ci: Use credits for ARM task * msvc: Provide `ObjectFileName` explicitly * doc: remove mention of glibc 2.10+ * doc: Rework build-unix.md * ci: remove RUN_SECURITY_TESTS * ci: Drop NO_WERROR=1 for clang-10 build * build: Bump minimum Clang to clang-10 * doc: Remove outdated CentOS comment * qt, test: Add missed header * ci: Fix \"Number of CPUs\" output * ConnectTip: don\'t log total disk read time in bench * guix: remove redundant glibc patches * guix: document when certain guix patches can be dropped * ci: Remove unused errtrace trap ERR * walletdb: Remove unused CreateMockWalletDatabase * add `lief` to `spelling.ignore-words` * test: fix spelling in `interface_usdt_utxocache` * test: add coverage for wallet read write db deadlock * walletdb: scope bdb::EraseRecords under a single db txn * wallet: bugfix, GetNewCursor() misses to provide batch ptr to BerkeleyCursor * doc, test: Document steps to reproduce TSan warning for `libdb` * doc: Remove unused NO_BLOOM_VERSION constant * build, doc: Adjust comment after PR27254 * Add wallets_conflicts * wallet, tests: mark unconflicted txs as inactive * ci: Run iwyu on all src files * build: cleanup comments after adding yet another libtool hack * build: Fix shared lib linking for darwin with lld * test: Return dict in MiniWallet::send_to * doc: remove version number from bips.md * depends: no-longer nuke libc++abi.so * in native_clang package * [mempool] clear mapDeltas entry if prioritisetransaction sets delta to 0 * [functional test] prioritisation is not removed during replacement and expiry * [functional test] getprioritisedtransactions RPC * [rpc] add getprioritisedtransactions * [mempool] add GetPrioritisedTransactions * refactor, blockstorage: Replace stopafterblockimport arg * refactor, blockstorage: Replace blocksdir arg * refactor, BlockManager: Replace fastprune from arg with options * refactor/iwyu: Complete includes for blockmanager_args * refactor: Move functions to BlockManager methods * zmq: Pass lambda to zmq\'s ZMQPublishRawBlockNotifier * ci: Remove CI_EXEC bloat * test: added coverage to mining_basic.py * move-only: Move almost all CI_EXEC code to 06_script_b.sh * refactor: Declare g_zmq_notification_interface as unique_ptr * msvc: Do not define `HAVE_CONSENSUS_LIB` * msvc: Clean up `libbitcoin_consensus` source files * scripted-diff: Rename `libbitcoinconsensus` to `libbitcoin_consensus` * refactor: Use ChainType enum exhaustively * net_processing: Boost inv trickle rate * txmempool: have CompareDepthAndScore sort missing txs first * Temporarily work around gcc-13 warning bug in interfaces_tests * p2p: Avoid prematurely clearing download state for other peers * Fix clang-tidy performance-unnecessary-copy-initialization warnings * Remove unused find_value global function * scripted-diff: Use UniValue::find_value method * Add UniValue::find_value method * scripted-diff: Remove unused chainparamsbase includes * Add missing definitions in prep for scripted diff * refactor: Replace string chain name constants with ChainTypes * refactor: Introduce ChainType getters for ArgsManager * refactor: Create chaintype files * add ryanofsky to trusted-keys * doc: clarify PR 26076 release note * refactor: Remove unused GetTimeMillis * test: add test for `descriptorprocesspsbt` RPC * ci: fix asan task name * test: Treat `bitcoin-wallet` binary in the same way as others * test, refactor: Add `set_binary_paths` function * util: improve streams.h:FindByte() performance * [bench] add streams findbyte * fuzz: BIP 42, BIP 30, CVE-2018-17144 * Move LoadVerifyActivateChainstate to ChainTestingSetup * msvc: Cleanup after upgrading libsecp256k1 up to 0.3.0 * ci: Remove CI_EXEC bloat in test/06_script_b.sh * ci: Move CI container kill out of 06_script_b.sh * ci: Pass full env to CI pod to avoid missing a var * scripted-diff: Use platform-agnostic `ALWAYS_INLINE` macro * Introduce platform-agnostic `ALWAYS_INLINE` macro * [doc] Add post branch-off note about fuzz input pruning * Remove unused chainparams from BlockManager methods * Replace pindex pointer with block reference * Add BlockManagerOpts::chainparams reference * rpc: add descriptorprocesspsbt rpc * test: dedup file hashing using `sha256sum_file` helper * rpc: Add check for unintended option/parameter name clashes * test: Update python tests to use named parameters instead of options objects * RPC: Allow RPC methods accepting options to take named parameters * RPC: Add add OBJ_NAMED_PARAMS type * wallet, bench: Remove unused database options from WalletBenchLoading * tests: Modify records directly in wallet ckey loading test * tests: Update DuplicateMockDatabase for MockableDatabase * scripted-diff: Replace CreateMockWalletDB with CreateMockableWalletDB * wallet, tests: Include wallet/test/util.h * wallet: Move DummyDatabase to salvage * wallet, tests: Replace usage of dummy db with mockable db * Introduce MockableDatabase for wallet unit tests * ci: Use arm_container.dockerfile * clarify processing of mempool-msgs when NODE_BLOOM * Avoid dereferencing interruption_point if it is nullptr * contrib: add ELF ABI check to symbol-check.py * test: Add util to mine invalid blocks * fuzz: addrman, add coverage for `network` field in `Select()`, `Size()` and `GetAddr()` * test: Simplify feature_fastprune.py * test: add ripemd160 to test framework modules list * test: added coverage to rpc_scantxoutset.py * ci: remove usage of untrusted bpfcc-tools * ci: use LLVM/clang-16 in native_asan job * rpc: scanblocks, add \"completed\" flag to the result obj * rpc: scanblocks, do not traverse the whole chain block by block * test: remove modinv python util helper function * rpc: return block hash & height in getbalances, gettransaction & getwalletinfo JSONs * refactor: Make ListSelected return vector * wallet: Move CoinCointrol definitions to .cpp * wallet: Use std::optional for GetExternalOutput and fixups * scripted-diff: Rename setSelected->m_selected_inputs * test: fix `feature_addrman.py` on big-endian systems * build: Use newest `config.{guess,sub}` available * test: simplify uint256 (de)serialization routines * wallet: introduce generic recursive tx state updating function * ci: Bump ci/lint/Dockerfile * bugfix: Fix incorrect debug.log config file path * init: Error if ignored bitcoin.conf file is found * lint: Fix lint-format-strings false positives when format specifiers have argument positions * depends: latest config.sub * depends: latest config.guess * test: Use python3.8 pow() * Bump python minimum version to 3.8 * test: Remove unused sanitizer suppressions * test: prevent intermittent failures * depends: reuse _config_opts for CMake options * test: cover fastprune with excessive block size * blockstorage: Adjust fastprune limit if block exceeds blockfile size * move-only: Extract common/args and common/config.cpp from util/system * p2p: \"skip netgroup diversity of new connections for tor/i2p/cjdns\" follow-up * [test] mempool full in package accept * [validation] set PackageValidationState when mempool full * [policy] disallow transactions under min relay fee, even in packages * [test] package cpfp bumps parents =minrelaytxfee * [test util] mock mempool minimum feerate * test: bumpfee, add coverage for \"send coins back to yourself\" * bumpfee: enable send coins back to yourself * fuzz: re-enable prioritisetransaction & analyzepsbt RPC * refactor: Remove CAddressBookData::destdata * wallet: Add DatabaseBatch::ErasePrefix method * [fuzz] Add MiniMiner target + diff fuzz against BlockAssembler * [unit test] GatherClusters and MiniMiner unit tests * refactor: coinselector_tests, unify wallet creation code * test: coverage for bnb max weight * wallet: clean post coin selection max weight filter * coin selection: BnB, don\'t return selection if exceeds max allowed tx weight * test: coin selection, add coverage for SRD * coin selection: heap-ify SRD, don\'t return selection if exceeds max tx weight * coin selection: knapsack, select closest UTXO above target if result exceeds max tx size * test: add coverage to ensure the first arg of scantxoutset is needed * logging: log ASN when using `-asmap` * tracepoints: Disables `-Wgnu-zero-variadic-macro-arguments` to compile without warnings * Switch hardened derivation marker to h in descriptors * wallet: Use steady clock to calculate number of derive iterations * wallet: Use steady clock to measure scanning duration * qt: Use steady clock to throttle GUI notifications * test: Use steady clock in index tests * net: Use steady clock in InterruptibleRecv * net: add `GetMappedAS` in `CConnman` * Implement Mini version of BlockAssembler to calculate mining scores * validation: Move warningcache to ChainstateManager * [mempool] find connected mempool entries with GatherClusters(…) * util: implement prevector\'s move ctor & move assignment * test: CScriptCheck is used a lot in std::vector, make sure that\'s efficient * util: prevector\'s move ctor and move assignment is `noexcept` * bench: Add benchmark for prevector usage in std::vector * test: various `converttopsbt` check cleanups in rpc_psbt.py * Use PoolAllocator for CCoinsMap * Call ReallocateCache() on each Flush() * Add PoolResource fuzzer * Calculate memory usage correctly for unordered_maps that use PoolAllocator * Add pool based memory resource & allocator * refactor: rpc: hide and rename ParseNonRFCJSONValue() * test: move coverage on ParseNonRFCJSONValue() to UniValue::read() * rpc, tests: in `utxoupdatepsbt` also look for the transaction in the txindex * doc: clarify new_only param for Select function * bench: test select for a new table with only one address * bench: add coverage for addrman select with network parameter * test: increase coverage of addrman select (without network) * test: add addrman test for special case * tests: add addrman_select_by_network test * addrman: add functionality to select by network * scripted-diff: rename local variables to match modern conventions * refactor: consolidate select logic for new and tried tables * refactor: generalize select logic * addrman: Introduce helper to generalize looking up an addrman entry * test: add coverage for `-bantime` * doc: document json rpc endpoints * wallet: refactor coin selection algos to return util::Result * refactor: update Select_ function * prune, import: fixes #23852 * Build: Log when test -f fails in Makefile * Build: Use AM_V_GEN in Makefiles where appropriate * rpc: extract psbt updating logic into ProcessPSBT * doc: add release notes for `abandoned` field in `gettransaction` and `listtransactions` * rpc, wallet: add `abandoned` field for all categories of transactions in ListTransactions * assumeutxo: catch and log fs::remove error instead of two exist checks * test: test banlist database recreation * Add test for `sendmany` rpc that uses `subtractfeefrom` parameter * test, init: perturb file to ensure failure instead of only deleting them * rpc, docs: Add note for commands that supports only legacy wallets * test: perturb anchors.dat to test it doesn\'t throw an error during initialization * Periodically check disk space to avoid corruption * Implement CCoinsViewErrorCatcher::HaveCoin * test: add coverage for rpc error when trying to rescan beyond pruned data * build: Drop redundant qt/bitcoin.cpp * build: Include qt sources for parsing with extract_strings.py * Wed May 31 2023 Martin Pluskal - Update to version 25.0: * doc: update release notes for 25.0 * doc: update manual pages for 25.0 * build: bump version to v25.0 final * doc: update manual pages for v25.0rc2 * build: bump version to v25.0rc2 * net_processing: Boost inv trickle rate * txmempool: have CompareDepthAndScore sort missing txs first * p2p: Avoid prematurely clearing download state for other peers- Drop 392dc68e.patch * Thu Apr 06 2023 Dominique Leuenberger - Add 392dc68e.patch: Fix build with gcc 13. * Tue Dec 20 2022 Andrea Manzini - Update to version 24.0.1 changelogs: * https://bitcoincore.org/en/releases/24.0.1/ * https://bitcoincore.org/en/releases/23.0/ * https://bitcoincore.org/en/releases/22.1/ * Sun May 08 2022 Andrei Dziahel - fixed upstream version number change: it\'s not 0.x anymore` * Fri Apr 22 2022 Andrei Dziahel + disabled tests to fix Tumbleweed build + updated source tarball URL per the upstream recommendation + drop 24104.patch: fixed upstream + Update to version 0.22.0 * P2P and network changes - Added support for running Bitcoin Core as an [I2P (Invisible Internet Project)](https://en.wikipedia.org/wiki/I2P) service and connect to such services. See [i2p.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/i2p.md) for details. (#20685) - This release removes support for Tor version 2 hidden services in favor of Tor v3 only, as the Tor network [dropped support for Tor v2](https://blog.torproject.org/v2-deprecation-timeline) with the release of Tor version 0.4.6. Henceforth, Bitcoin Core ignores Tor v2 addresses; it neither rumors them over the network to other peers, nor stores them in memory or to `peers.dat`. (#22050) - Added NAT-PMP port mapping support via [`libnatpmp`](https://miniupnp.tuxfamily.org/libnatpmp.html). (#18077) * New and Updated RPCs - Due to [BIP 350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki) being implemented, behavior for all RPCs that accept addresses is changed when a native witness version 1 (or higher) is passed. These now require a Bech32m encoding instead of a Bech32 one, and Bech32m encoding will be used for such addresses in RPC output as well. No version 1 addresses should be created for mainnet until consensus rules are adopted that give them meaning (as will happen through [BIP 341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki)). Once that happens, Bech32m is expected to be used for them, so this shouldn\'t affect any production systems, but may be observed on other networks where such addresses already have meaning (like signet). (#20861) - The `getpeerinfo` RPC returns two new boolean fields, `bip152_hb_to` and `bip152_hb_from`, that respectively indicate whether we selected a peer to be in compact blocks high-bandwidth mode or whether a peer selected us as a compact blocks high-bandwidth peer. High-bandwidth peers send new block announcements via a `cmpctblock` message rather than the usual inv/headers announcements. See BIP 152 for more details. (#19776) - `getpeerinfo` no longer returns the following fields: `addnode`, `banscore`, and `whitelisted`, which were previously deprecated in 0.21. Instead of `addnode`, the `connection_type` field returns manual. Instead of `whitelisted`, the `permissions` field indicates if the peer has special privileges. The `banscore` field has simply been removed. (#20755) - The following RPCs: `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, `gettransaction`, and REST endpoints: `/rest/tx`, `/rest/getutxos`, `/rest/block` deprecated the following fields (which are no longer returned in the responses by default): `addresses`, `reqSigs`. The `-deprecatedrpc=addresses` flag must be passed for these fields to be included in the RPC response. This flag/option will be available only for this major release, after which the deprecation will be removed entirely. Note that these fields are attributes of the `scriptPubKey` object returned in the RPC response. However, in the response of `decodescript` these fields are top-level attributes, and included again as attributes of the `scriptPubKey` object. (#20286) - When creating a hex-encoded bitcoin transaction using the `bitcoin-tx` utility with the `-json` option set, the following fields: `addresses`, `reqSigs` are no longer returned in the tx output of the response. (#20286) - The `listbanned` RPC now returns two new numeric fields: `ban_duration` and `time_remaining`. Respectively, these new fields indicate the duration of a ban and the time remaining until a ban expires, both in seconds. Additionally, the `ban_created` field is repositioned to come before `banned_until`. (#21602) - The `setban` RPC can ban onion addresses again. This fixes a regression introduced in version 0.21.0. (#20852) - The `getnodeaddresses` RPC now returns a \"network\" field indicating the network type (ipv4, ipv6, onion, or i2p) for each address. (#21594) - `getnodeaddresses` now also accepts a \"network\" argument (ipv4, ipv6, onion, or i2p) to return only addresses of the specified network. (#21843) - The `testmempoolaccept` RPC now accepts multiple transactions (still experimental at the moment, API may be unstable). This is intended for testing transaction packages with dependency relationships; it is not recommended for batch-validating independent transactions. In addition to mempool policy, package policies apply: the list cannot contain more than 25 transactions or have a total size exceeding 101K virtual bytes, and cannot conflict with (spend the same inputs as) each other or the mempool, even if it would be a valid BIP125 replace-by-fee. There are some known limitations to the accuracy of the test accept: it\'s possible for `testmempoolaccept` to return \"allowed\"=True for a group of transactions, but \"too-long-mempool-chain\" if they are actually submitted. (#20833) - `addmultisigaddress` and `createmultisig` now support up to 20 keys for Segwit addresses. (#20867) Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below. * Build System - Release binaries are now produced using the new `guix`-based build system. The [/doc/release-process.md](/doc/release-process.md) document has been updated accordingly. * Files - The list of banned hosts and networks (via `setban` RPC) is now saved on disk in JSON format in `banlist.json` instead of `banlist.dat`. `banlist.dat` is only read on startup if `banlist.json` is not present. Changes are only written to the new `banlist.json`. A future version of Bitcoin Core may completely ignore `banlist.dat`. (#20966) * New settings - The `-natpmp` option has been added to use NAT-PMP to map the listening port. If both UPnP and NAT-PMP are enabled, a successful allocation from UPnP prevails over one from NAT-PMP. (#18077) * Updated settings Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below. - Passing an invalid `-rpcauth` argument now cause bitcoind to fail to start. (#20461) * Tools and Utilities - A new CLI `-addrinfo` command returns the number of addresses known to the node per network type (including Tor v2 versus v3) and total. This can be useful to see if the node knows enough addresses in a network to use options like `-onlynet=` or to upgrade to this release of Bitcoin Core 22.0 that supports Tor v3 only. (#21595) - A new `-rpcwaittimeout` argument to `bitcoin-cli` sets the timeout in seconds to use with `-rpcwait`. If the timeout expires, `bitcoin-cli` will report a failure. (#21056) * Wallet - External signers such as hardware wallets can now be used through the new RPC methods `enumeratesigners` and `displayaddress`. Support is also added to the `send` RPC call. This feature is experimental. See [external-signer.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/external-signer.md) for details. (#16546) - A new `listdescriptors` RPC is available to inspect the contents of descriptor-enabled wallets. The RPC returns public versions of all imported descriptors, including their timestamp and flags. For ranged descriptors, it also returns the range boundaries and the next index to generate addresses from. (#20226) - The `bumpfee` RPC is not available with wallets that have private keys disabled. `psbtbumpfee` can be used instead. (#20891) - The `fundrawtransaction`, `send` and `walletcreatefundedpsbt` RPCs now support an `include_unsafe` option that when `true` allows using unsafe inputs to fund the transaction. Note that the resulting transaction may become invalid if one of the unsafe inputs disappears. If that happens, the transaction must be funded with different inputs and republished. (#21359) - We now support up to 20 keys in `multi()` and `sortedmulti()` descriptors under `wsh()`. (#20867) - Taproot descriptors can be imported into the wallet only after activation has occurred on the network (e.g. mainnet, testnet, signet) in use. See [descriptors.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/descriptors.md) for supported descriptors. * GUI changes - External signers such as hardware wallets can now be used. These require an external tool such as [HWI](https://github.com/bitcoin-core/HWI) to be installed and configured under Options -> Wallet. When creating a new wallet a new option \"External signer\" will appear in the dialog. If the device is detected, its name is suggested as the wallet name. The watch-only keys are then automatically imported. Receive addresses can be verified on the device. The send dialog will automatically use the connected device. This feature is experimental and the UI may freeze for a few seconds when performing these actions. * RPC - The RPC server can process a limited number of simultaneous RPC requests. Previously, if this limit was exceeded, the RPC server would respond with [status code 500 (`HTTP_INTERNAL_SERVER_ERROR`)](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_server_errors). Now it returns status code 503 (`HTTP_SERVICE_UNAVAILABLE`). (#18335) - Error codes have been updated to be more accurate for the following error cases (#18466): - `signmessage` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the passed address is invalid. Previously returned RPC_TYPE_ERROR (-3). - `verifymessage` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the passed address is invalid. Previously returned RPC_TYPE_ERROR (-3). - `verifymessage` now returns RPC_TYPE_ERROR (-3) if the passed signature is malformed. Previously returned RPC_INVALID_ADDRESS_OR_KEY (-5). * See release-notes-22.0.md for complete changelog * Mon Jan 24 2022 Bernhard Wiedemann - Add 24104.patch to fix build with boost-1.78 * Wed Oct 20 2021 Jiri Slaby - Update to version 0.21.2 * P2P protocol and network code * use NetPermissions::HasFlag() in CConnman::Bind() * Rate limit the processing of rumoured addresses * Wallet * Do not iterate a directory if having an error while accessing it * RPC * Reset scantxoutset progress before inferring descriptors * Build System * depends: update Qt 5.9 source url * Update Windows code signing certificate * Use custom MacOS code signing tool * Fix build with Boost 1.77.0 * Tests and QA * Build with --enable-werror by default, and document exceptions * Fix intermittent feature_taproot issue * Fix macOS brew install command * add missing ECCVerifyHandle to base_encode_decode * Run fuzzer task for the master branch only * GUI * Do not use QClipboard::Selection on Windows and macOS. * Remove user input from URI error message * Draw \"eye\" sign at the beginning of watch-only addresses * Miscellaneous * Fix crash when parsing command line with -noincludeconf=0 * util: Properly handle -noincludeconf on command line (take 2) * Fri Aug 27 2021 Johannes Segitz - Added hardening to systemd service(s). Added patch(es): * harden_bitcoind.service.patch Modified: * bitcoind.service * Fri May 14 2021 Ferdinand Thiessen - Update to version 0.21.1 * Consensus: * Speedy trial support for versionbits * Speedy trial activation parameters for Taproot * P2P protocol and network code * allow CSubNet of non-IP networks * Avoid UBSan warning in ProcessMessage * Wallet * Introduce DeferredSignatureChecker and have SignatureExtractorClass subclass it * Avoid requesting fee rates multiple times during coin selection * RPC and other APIs: * Disallow sendtoaddress and sendmany when private keys disabled CVE-2021-3195 * Tue Jan 19 2021 Martin Pluskal - Update to version 0.21.0: * For full details see release-notes-0.21.0.md
|
|
|