Skip to content

Commit b98d982

Browse files
committed
Squashed 'libbitcoinkernel-sys/bitcoin/' changes from 3d6b3fd8f65e..ce8003578e72
ce8003578e72 kernel: Fix bitcoin-chainstate for windows 9ebe4a83a937 kernel: Add Purpose section to header documentation 10d2432218eb kernel: Allowing reducing exports e04b1e1f5284 kernel: Add pure kernel bitcoin-chainstate e0f98a533cd6 kernel: Add functions to get the block hash from a block af1c5e349550 kernel: Add block index utility functions to C header fd60e50badc5 kernel: Add function to read block undo data from disk to C header f507d230bba3 kernel: Add functions to read block from disk to C header 1480dd9f41fc kernel: Add function for copying block data to C header 26f484b94e66 kernel: Add functions for the block validation state to C header 8c286be14aff kernel: Add validation interface to C header 6d733019bba6 kernel: Add interrupt function to C header c917663b0b51 kernel: Add import blocks function to C header 9c2496406f7e kernel: Add chainstate load options for in-memory dbs in C header 393329899d90 kernel: Add options for reindexing in C header 107156b9362e kernel: Add block validation to C header b83c0d3ba499 kernel: Add chainstate loading when instantiating a ChainstateManager c3279239c75f kernel: Add chainstate manager option for setting worker threads f7a2c3c600e5 kernel: Add chainstate manager object to C header 5e8b57622c33 kernel: Add notifications context option to C header 56298e76271a kernel: Add chain params context option to C header 9bade37d97d7 kernel: Add kernel library context object 9859726fbd6b kernel: Add logging to kernel library C header 6dd7a4fcab08 kernel: Introduce initial kernel C header API cf15d45192e0 Merge bitcoin/bitcoin#33044: contrib: drop use of `PermissionsStartOnly` & `Group=` d7ed47fb80af Merge bitcoin/bitcoin#33077: kernel: create monolithic kernel static library 38e6ea9f3a6b Merge bitcoin/bitcoin#33101: cmake: Proactively avoid use of `SECP256K1_DISABLE_SHARED` c92115dcb219 Merge bitcoin/bitcoin#33119: rpc: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify fix 1dab8d0635b3 Merge bitcoin/bitcoin#33113: refactor: Use immediate lambda to work around GCC bug 117966 45bdbb13174f Merge bitcoin/bitcoin#33122: test: remove duplicated code in test/functional/wallet_migration.py a45cc17d3443 Merge bitcoin/bitcoin#33115: cmake: Switch to generated `ts_files.cmake` file b90da9c2e959 Merge bitcoin/bitcoin#33138: ci: Pass CI_FAILFAST_TEST_LEAVE_DANGLING into container fa1d2f63803e ci: Pass CI_FAILFAST_TEST_LEAVE_DANGLING into container fd813bf863b1 Merge bitcoin/bitcoin#33002: ci: Only pass documented env vars 9617a42fdb6f Merge bitcoin/bitcoin#32581: allocators: Apply manual ASan poisoning to `PoolResource` 33e7fc51f43d Merge bitcoin/bitcoin#33133: rpc: fix getpeerinfo ping duration unit docs 1252eeb997df rpc: fix getpeerinfo ping duration unit docs 6a7c0d3f8749 test: refactor to remove duplicated test code d1b583181dcc Merge bitcoin/bitcoin#32654: init: make `-blockmaxweight` startup option debug only 50a92cd56fab Merge bitcoin/bitcoin#33060: test: Slay BnB Mutants 643bacd124f5 Merge bitcoin/bitcoin#33058: test: add assertions to SRD max weight test eeb0b31e3a4b Merge bitcoin/bitcoin#32941: p2p: TxOrphanage revamp cleanups c0642e558a02 [fuzz] fix latency score check in txorphan_protected 0cb1ed2b7c63 Merge bitcoin/bitcoin#33132: fuzz: txgraph: fix `real_is_optimal` flag propagation in `CommitStaging` a26fbee38f95 qt: Translations update 444dcb2f9944 fuzz: txgraph: fix `real_is_optimal` flag propagation in `CommitStaging` 83a2216f5278 Merge bitcoin/bitcoin#33118: test: fix anti-fee-sniping off-by-one error 3543bfdfec34 test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field e07e2532b4d7 test: fix anti-fee-sniping off-by-one error c7a24c305255 ci: Re-enable DEBUG=1 in centos task 3d4d4f0d92d4 scripted-diff: rename "ann" variables to "latency_score" 3b9244892382 [doc] comment fixups for orphanage changes 1384dbaf6d0b [config] emit warning for -maxorphantx, but allow it to be set b10c55b298d4 fix up TxOrphanage lower_bound sanity checks cfd71c67043a scripted-diff: rename TxOrphanage outpoints index edb97bb3f151 [logging] add logs for inner loop of LimitOrphans 8a58d0e87d70 scripted-diff: rename OrphanTxBase to OrphanInfo cc50f2f0df6e [cleanup] replace TxOrphanage::Size() with CountUniqueOrphans ed24e0169690 [optimization] Maintain at most 1 reconsiderable announcement per wtxid af7402ccfa7f [refactor] make TxOrphanage keep itself trimmed d1fac25ff3c3 [doc] 31829 release note 75ed673193c5 Merge bitcoin/bitcoin#33048: test: reduce runtime of p2p_opportunistic_1p1c.py ca04eebd7282 cmake: Switch to generated `ts_files.cmake` file 95341de6ca65 cmake, refactor: Move handling of Qt TS files into `locale` directory 24246c3deb8d Merge bitcoin/bitcoin#31385: package validation: relax the package-not-child-with-unconfirmed-parents rule b8025b30cc42 Merge bitcoin/bitcoin#32559: doc: add alpine build instructions 18d1071dd124 init: replace deprecated PermissionsStartOnly systemd directive 1caaf650436e init: remove Group= as it will default to the user's default group a7bafb3e0504 refactor: Use immediate lambda to work around GCC bug 117966 b093a19ae2ef cmake: Proactively avoid use of `SECP256K1_DISABLE_SHARED` eb59a192d9ca cmake, refactor: Encapsulate adding secp256k1 subtree in function 4f27e8ca4d2a Merge bitcoin/bitcoin#33083: qa: test that we do not disconnect a peer for submitting an invalid compact block bfc9d951292a Merge bitcoin/bitcoin#33104: test: Perform backup filename checks in migrate_and_get_rpc in wallet_migration.py 8712e074bb54 Merge bitcoin/bitcoin#33093: refactor: remove unused `ser_writedata16be` and `ser_readdata16be` 5ee4e7966957 Merge bitcoin/bitcoin#31244: descriptors: MuSig2 4b80147feb97 test: Perform backup filename checks in migrate_and_get_rpc aef2dbb40276 Merge bitcoin/bitcoin#33099: ci: allow for any libc++ intrumentation & use it for TSAN 8283af13fe86 Merge bitcoin/bitcoin#32584: depends: hard-code necessary c(xx)flags rather than setting them per-host 547c64814d07 Merge bitcoin/bitcoin#32987: init: [gui] Avoid UB/crash in InitAndLoadChainstate e6bfd95d5012 Merge bitcoin-core/gui#881: Move `FreespaceChecker` class into its own module 8a94cf8efebc Merge bitcoin/bitcoin#30635: rpc: add optional blockhash to waitfornewblock, unhide wait methods in help dc78ed214061 Merge bitcoin/bitcoin#33005: refactor: GenTxid type safety followups 3cb65ffa83d4 Merge bitcoin/bitcoin#33100: ci: remove `ninja-build` from MSAN jobs 7aa5b67132df ci: remove DEBUG_LOCKORDER from TSAN job b09af2ce5081 ci: instrument libc++ in TSAN job 6653cafd0b70 ci: allow libc++ instrumentation other than msan 3333d3f75f89 ci: Only pass documented env vars 3fe3fdb02b5c Merge bitcoin/bitcoin#33102: fuzz: cover BanMan::IsDiscouraged c2ed576d2caf fuzz: cover BanMan::IsDiscouraged 3a03f075606b qt: Avoid header circular dependency cab6736b701f ci: remove ninja-build from MSAN jobs 0431a690c3a4 cleanup: remove unused `ser_writedata16be` and `ser_readdata16be` 00604296e178 Merge bitcoin/bitcoin#32866: doc: add note for watch-only wallet migration 91058877ff78 Merge bitcoin/bitcoin#32273: wallet: Fix relative path backup during migration. 6b99670e3c08 Merge bitcoin/bitcoin#33075: doc: Add legacy wallet removal release notes 2cef200340f4 Merge bitcoin/bitcoin#28944: wallet, rpc: add anti-fee-sniping to `send` and `sendall` 932e993b37c4 Merge bitcoin/bitcoin#33073: guix: warn SOURCE_DATE_EPOCH set in guix-codesign 0bed946e5d16 Merge bitcoin/bitcoin#33079: ci: limit max stack size to 512 KiB 28ec91c30e23 Merge bitcoin/bitcoin#33088: doc: move `cmake -B build -LH` up in Unix build docs c15743811685 qa: test that we do disconnect upon a second invalid compact block being announced 2f410ad78c76 Merge bitcoin/bitcoin#32263: cluster mempool: add TxGraph work controls 6757052fc439 doc: move `cmake -B build -LH` up in Unix build docs 9954d6c83338 depends: hard-code necessary c(xx)flags rather than setting them per-host 953c90d7649c Merge bitcoin/bitcoin#33086: contrib: [tracing] fix pointer argument handling in mempool_monitor.py 5888b4a2a556 doc: add note for watch-only wallet migration 3b23f95e3463 ci: limit max stack size to 512 KiB 2931a8747760 ci: limit stack size to 512kb in native macOS jobs 3724e9b40a69 Merge bitcoin/bitcoin#32973: validation: docs and cleanups for MemPoolAccept coins views 0ce041ea88db tracing: fix pointer argument handling in mempool_monitor.py 25884bd89684 qt, refactor: Move `FreespaceChecker` class into its own module fb2dcbb160bd qa: test cached failure for compact block f12d8b104e0e qa: test a compact block with an invalid transaction d6c37b28a782 qa: remove unnecessary tx removal from compact block 321984705dbc Merge bitcoin/bitcoin#32279: [IBD] prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline 94b39ce73831 refactor: Change `m_tx_inventory_to_send` from `std::set<GenTxid>` to `std::set<Wtxid>` fa45ccc15dfc doc: Add legacy wallet removal release notes 2a97ff466d32 Merge bitcoin/bitcoin#29954: RPC: Return `permitbaremultisig` and `maxdatacarriersize` in `getmempoolinfo` fd068257e078 Merge bitcoin/bitcoin#33065: rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` 9cafdf8941a9 Merge bitcoin/bitcoin#33064: test: fix RPC coverage check fdbade6f8ded kernel: create monolithic kernel static library c8309198f812 Merge bitcoin/bitcoin#33070: doc/zmq: fix unix socket path example 1bed0f734b3f guix: warn SOURCE_DATE_EPOCH set in guix-codesign cc33e4578946 test: improve assertion for SRD max weight test 1c10b7351e19 RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo e83699a626b8 doc/zmq: fix unix socket path example 8aed477c3322 test: fix RPC coverage check 2630b64f8100 test: add abortrescan RPC test 75a5c8258ec5 Merge bitcoin/bitcoin#33063: util: Revert "common: Close non-std fds before exec in RunCommandJSON" d5104cfbaeb8 prevector: store `P2WSH`/`P2TR`/`P2PK` scripts inline 52121506b2a3 test: assert `CScript` allocation characteristics 65ac7f6d4d1e refactor: modernize `CScriptBase` definition 756da2a994c5 refactor: extract `STATIC_SIZE` constant to prevector 251d02084688 init, wallet: replace hardcoded output types with `FormatAllOutputTypes` 3b188b8b3dae Merge bitcoin/bitcoin#31576: test: Move `script_assets_tests` into its own suite 2e97541396b9 Merge bitcoin/bitcoin#32944: wallet: Remove `upgradewallet` RPC b08041cac863 Merge bitcoin/bitcoin#32845: rpc, test: Fix JSON parsing errors in unloadwallet and getdescriptoractivity RPCs a3cf623364e8 test: Test max_selection_weight edge cases 57fe8acc8a84 test: Check max_weight_exceeded error e3ba0757a941 rpc, wallet: replace remaining hardcoded output types with `FormatAllOutputTypes` fc162299f0cc Merge bitcoin/bitcoin#32994: p2p: rename GetAddresses -> GetAddressesUnsafe 633d8ea17b9f Merge bitcoin/bitcoin#32970: ci: Enable more shellcheck faa1c3e80d95 Revert "Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON" 6cdc5a90cffe Merge bitcoin/bitcoin#32967: log: [refactor] Use info level for init logs 443c32a3e686 Merge bitcoin/bitcoin#32822: fuzz: Make process_message(s) more deterministic face8123fdc1 log: [refactor] Use info level for init logs fa183761cb09 log: Remove function name from init logs 5ad79b203505 Merge bitcoin/bitcoin#32593: wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC ea17a9423fb4 [doc] release note for relaxing requirement of all unconfirmed parents present 12f48d5ed302 test: add chained 1p1c propagation test 525be56741cf [unit test] package submission 2p1c with 1 parent missing f24771af0581 relax child-with-unconfirmed-parents rule e17fb86382ea Merge bitcoin/bitcoin#32888: ci: Use optimized Debug build type in test-each-commit fd3d80c209e5 Merge bitcoin/bitcoin#33047: test: check proper OP_2ROT behavior 1119ac51f0c8 Merge bitcoin/bitcoin#33040: doc: update headers and remove manual TOCs e2f2df0ead81 Merge bitcoin/bitcoin#32984: wallet: Set migrated wallet name only on success 16f7b43b6808 Merge bitcoin/bitcoin#33049: doc: Fix typos in asmap README b59dc21847d3 doc: Fix typos in asmap README ca38cf701dc6 doc: fix a few obvious typos in the affected files ddab466e0d95 doc: remove manual TOCs 26a3730711c7 doc: unify `developer-notes` and `productivity` header styles eb137184482c Merge bitcoin/bitcoin#31179: RPC: Add reserve member function to `UniValue` and use it in `blockToJSON` function eb65f57f319d [test] setmocktime instead of waiting in 1p1c tests 70772dd4693b [test] cut the number of transactions involved in 1p1c DoS tests b94c6356a29b test: check proper OP_2ROT behavior 73e754bd01b0 Merge bitcoin/bitcoin#33001: test: Do not pass tests on unhandled exceptions a9819b0e9d3c refactor: Change `FindTxForGetData` to take GenTxid instead of CInv d588575ed1e6 refactor: miscellaneous GenTxid followups cfb859e82edf Merge bitcoin/bitcoin#33037: doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) afd3b34dc5e2 Merge bitcoin/bitcoin#33004: Enable `-natpmp` by default 49bbf9ff28f8 Merge bitcoin/bitcoin#33036: Update secp256k1 subtree to latest master c5c1960f9350 doc: Add release notes for changes in RPCs 90fd5acbe57e rpc, test: Fix error message in getdescriptoractivity 39fef1d20367 test: Add missing logging info for each test 53ac704efd66 rpc, test: Fix error message in unloadwallet 1fc3a8e8e7ae rpc, test: Add EnsureUniqueWalletName tests 900bb53905aa Merge bitcoin/bitcoin#32990: wallet: remove outdated `pszSkip` arg of database `Rewrite` func c8ec423719aa Merge bitcoin/bitcoin#33020: test: delete commented-out tests and add a test case in wallet_signer 09f004bd9fec Merge bitcoin/bitcoin#32945: tests: speed up coins_tests by parallelizing 5d98fc755963 Merge bitcoin/bitcoin#33030: test: check tx is final when there is no locktime b635bc089629 rpc, util: Add EnsureUniqueWalletName da318fe53fa9 test: delete commented out tests 6d80e999a064 test: external signer returns invalid JSON response 065e42976a70 test: IsFinalTx returns true when there is no locktime 1cb23997033c doc: clarify the GetAddresses/GetAddressesUnsafe documentation e5a7dfd79f61 p2p: rename GetAddresses -> GetAddressesUnsafe faa2f3b1afe7 doc: Add release notes for 32521 (MAX_TX_LEGACY_SIGOPS) 336b8be37b22 Update secp256k1 subtree to latest master 5600e6fc4bb4 Squashed 'src/secp256k1/' changes from 4187a46649..b9313c6e1a 06ab3a394ade tests: speed up coins_tests by parallelizing 7129c9ea8e95 Merge bitcoin/bitcoin#32827: mempool: Avoid needless vtx iteration during IBD 11c6a864c9ee Merge bitcoin/bitcoin#33007: test: fix `ReadTopologicalSet` unsigned integer overflow 9bc33432e214 Merge bitcoin/bitcoin#32999: ci: Use APT_LLVM_V in msan task 5878f35446ae Merge bitcoin/bitcoin#31144: [IBD] multi-byte block obfuscation 249889bee6b8 orphanage: avoid vtx iteration when no orphans 41ad2be4340d mempool: Avoid expensive loop in `removeForBlock` during IBD e9edd43a9592 Merge bitcoin/bitcoin#32521: policy: make pathological transactions packed with legacy sigops non-standard 80067ac111c2 Merge bitcoin/bitcoin#31829: p2p: improve TxOrphanage denial of service bounds 31c4e77a256c test: fix ReadTopologicalSet unsigned integer overflow 672c85cb1ea0 Merge bitcoin/bitcoin#32868: test: refactor: overhaul block hash determination for `CBlock{,Header}` objects fa1a14a13a15 fuzz: Reset chainman state in process_message(s) targets fa9a3de09b4c fuzz: DisableNextWrite aeeeeec9f749 fuzz: Reset dirty connman state in process_message(s) targets fa11eea4059a fuzz: Avoid non-determinism in process_message(s) target (PeerMan) faa3e684118b test: Log KeyboardInterrupt as exception fac90e5261b8 test: Check that the GUI interactive reindex works b2d07f872c58 Add release notes for -natpmp enabled by default 3fc660d26719 mapport: turn -natpmp to on by default fa30b34026f7 test: Do not pass tests on unhandled exceptions 96da68a38fa2 qa: functional test a transaction running into the legacy sigop limit 367147954d16 qa: unit test standardness of inputs packed with legacy sigops 5863315e33ba policy: make pathological transactions packed with legacy sigops non-standard. 5fa34951ead2 test: avoid unneeded block header hash -> integer conversions 2118301d77c2 test: rename CBlockHeader `.hash` -> `.hash_hex` for consistency 23be0ec2f074 test: rename CBlockHeader `.rehash()`/`.sha256` -> `.hash_int` for consistency 8b09cc350afa test: remove bare CBlockHeader `.rehash()`/`.calc_sha256()` calls 0716382c20a6 test: remove header hash caching in CBlockHeader class 0f044e82bd5f test: avoid direct block header modification in feature_block.py f3c791d2e391 test: refactor: dedup `CBlockHeader` serialization fad040a5787a ci: Use APT_LLVM_V in msan task 76fe0e59ec4a test: Migration of a wallet ending in `../` f0bb3d50fef0 test: Migration of a wallet ending in `/` 41faef5f80d6 test: Migration fail recovery w/ `../` in path 63c6d3643769 test: Migration of a wallet with `../` in path. 70f1c99c901d wallet: Fix migration of wallets with pathnames. f6ee59b6e299 wallet: migration: Make backup in walletdir e22c3599c677 test: wallet: Check direct file backup name. 060695c22ae7 test: Failed load after migrate should restore backup 248b6a27c351 optimization: peel align-head and unroll body to 64 bytes e7114fc6dc34 optimization: migrate fixed-size obfuscation from `std::vector<std::byte>` to `uint64_t` 478d40afc6fa refactor: encapsulate `vector`/`array` keys into `Obfuscation` 377aab8e5a8d refactor: move `util::Xor` to `Obfuscation().Xor` fa5d296e3beb refactor: prepare mempool_persist for obfuscation key change 6bbf2d9311b4 refactor: prepare `DBWrapper` for obfuscation key change 0b8bec8aa626 scripted-diff: unify xor-vs-obfuscation nomenclature 972697976c02 bench: make ObfuscationBench more representative 618a30e326e9 test: compare util::Xor with randomized inputs against simple impl a5141cd39ecb test: make sure dbwrapper obfuscation key is never obfuscated 54ab0bd64c36 refactor: commit to 8 byte obfuscation keys 7aa557a37b73 random: add fixed-size `std::array` generation b6d4688f77df [doc] reword comments in test_mid_package_replacement f3a613aa5bb7 [cleanup] delete brittle test_mid_package_eviction 9f713b83dcf7 Merge bitcoin/bitcoin#32837: depends: fix libevent `_WIN32_WINNT` usage 2dfeb6668cb2 wallet: remove outdated `pszSkip` arg of database `Rewrite` func faaaddaaf8e5 init: [gui] Avoid UB/crash in InitAndLoadChainstate 8a4cfddf23a4 wallet: Set migrated wallet name only on success 4f502baf8f64 doc: add alpine depends build instructions d89c6fa4a718 wallet: Remove `upgradewallet` RPC 184159e4f30c Merge bitcoin/bitcoin#32922: test: use notarized v28.2 binaries and fix macOS detection 5d17e64a0290 Merge bitcoin/bitcoin#32677: test: headers sync timeout 0087ba409b36 Merge bitcoin/bitcoin#32968: test: fix intermittent failure in rpc_invalidateblock.py 50024620b909 [bench] worst case LimitOrphans and EraseForBlock 45c7a4b56d28 [functional test] orphan resolution works in the presence of DoSy peers 835f5c77cdee [prep/test] restart instead of bumpmocktime between p2p_orphan_handling subtests b113877545a1 [fuzz] Add simulation fuzz test for TxOrphanage 03aaaedc6daf [prep] Return the made-reconsiderable announcements in AddChildrenToWorkSet ea29c4371e86 [p2p] bump DEFAULT_MAX_ORPHANAGE_LATENCY_SCORE to 3,000 24afee8d8f94 [fuzz] TxOrphanage protects peers that don't go over limit a2878cfb4ae2 [unit test] strengthen GetChildrenFromSamePeer tests: results are in recency order 7ce3b7ee579c [unit test] basic TxOrphanage eviction and protection 4d23d1d7e7fa [cleanup] remove unused rng param from LimitOrphans 067365d2a8a4 [p2p] overhaul TxOrphanage with smarter limits 1a41e7962db3 [refactor] create aliases for TxOrphanage Count and Usage b50bd72c42bc [prep] change return type of EraseTx to bool 3da6d7f8f6fc [prep/refactor] make TxOrphanage a virtual class implemented by TxOrphanageImpl 77ebe8f28012 [prep/test] have TxOrphanage remember its own limits in LimitOrphans d0af4239b7f0 [prep/refactor] move DEFAULT_MAX_ORPHAN_TRANSACTIONS to txorphanage.h 51365225b898 [prep/config] remove -maxorphantx 8dd24c29aec8 [prep/test] modify test to not access TxOrphanage internals c3cd7fcb2cd9 [doc] remove references to now-nonexistent Finalize() function d8140f5f0500 don't make a copy of m_non_base_coins 98ba2b1db2eb [doc] MemPoolAccept coins views ba02c30b8a63 [doc] always CleanupTemporaryCoins after a mempool trim b53fab1467fd Merge bitcoin/bitcoin#32948: refactor: cleanup index logging 62ed1f92efff txgraph: check that DoWork finds optimal if given high budget (tests) f3c2fc867fc4 txgraph: add work limit to DoWork(), try optimal (feature) fa1fd074685c ci: Enable more shellcheck e96b00d99ebe txgraph: make number of acceptable iterations configurable (feature) cfe9958852be txgraph: track amount of work done in linearization (preparation) 6ba316eaa032 txgraph: 1-or-2-tx split-off clusters are optimal (optimization) fad0eb091e58 txgraph: reset quality when merging clusters (bugfix) 61e800e75cff test: headers sync timeout 28416f367a5d test: fix intermittent failure in rpc_invalidateblock.py e72cb20c3fb7 Merge bitcoin/bitcoin#32943: depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` 97fb46d0a081 Merge bitcoin/bitcoin#32880: ci: Avoid cd into build dir 69b9ad02da89 Merge bitcoin/bitcoin#32954: cmake: Drop no longer necessary "cmakeMinimumRequired" object faa3171ff22f ci: Use optimized Debug build type in test-each-commit fa21c3401e15 ci: [doc] reword debug log message 12a6959892cb cmake: Drop no longer necessary "cmakeMinimumRequired" object 44f532782445 [fuzz] add SeedRandomStateForTest(SeedRand::ZEROS) to txorphan 15a4ec906976 [prep/rpc] remove entry and expiry time from getorphantxs 08e58fa91198 [prep/refactor] move txorphanage to node namespace and directory bb91d23fa956 [txorphanage] change type of usage to int64_t c18bf0bd9be6 refactor: cleanup index logging f5647c6c5ae8 depends: fix libevent _WIN32_WINNT usage 44f3bae300dc depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` fad191ff48b1 ci: Avoid cd into build dir 4bb4c865999b test: document HOST for get_previous_releases.py 609203d5075c test: stop signing previous releases >= v28.2 c6dc2c29f828 test: replace v28.0 with notarized v28.2 5bd73d96a3a7 test: fix macOS detection aac0b6dd79b0 test: test sendall and send do anti-fee-sniping 20802c7b65f4 wallet, rpc: add anti-fee-sniping to `send` and `sendall` 5fe7915c865a doc: Add musig() example d576079ab470 tests: Test musig() parsing a53924bee321 descriptor: Parse musig() key expressions 9473e9606ce7 descriptors: Move DeriveType parsing into its own function 4af0dca096ca descriptor: Add MuSigPubkeyProvider c40dbbbf7707 test: Move `script_assets_tests` into its own suite d00d95437dd1 Add MuSig2 Keyagg Cache helper functions 8ecea91bf296 sign: Add GetMuSig2ParticipantPubkeys to SigningProvider fac0ee0bfc91 build: Enable secp256k1 musig module 1894f9750320 descriptors: Add PubkeyProvider::IsBIP32() 12bc1d0b1e96 util/string: Allow Split to include the separator 88113125716c script/parsing: Allow Const to not skip the found constant e017ef3c7eb7 init: make `-blockmaxweight` startup option debug-only 6135e0553e6e wallet, rpc: Move (Un)LockCoin WalletBatch creation out of RPC ad132761fc49 [allocators] Apply manual ASan poisoning to PoolResource 5fe4c66462e6 XOnlyPubKey: Add GetCPubKeys 5332082d0099 doc: add alpine build instructions c6e2c31c5512 rpc: unhide waitfor{block,newblock,blockheight} 0786b7509acd rpc: add optional blockhash to waitfornewblock 5d82d92aff7c rpc: reserve space for `UniValue` variables in `blockToJSON` 6a506d5c37d1 UniValue: add reserve member function bd461195f4b3 bench: support benching all verbosity of `BlockToJson` REVERT: 3d6b3fd8f65e kernel: Fix bitcoin-chainstate for windows REVERT: ec099435dda4 kernel: Add Purpose section to header documentation REVERT: 832689c68b5a kernel: Allowing reducing exports REVERT: 969a8110a567 kernel: Add pure kernel bitcoin-chainstate REVERT: 88e2f3001b65 kernel: Add functions to get the block hash from a block REVERT: de4a96b341f9 kernel: Add block index utility functions to C header REVERT: c3582e16a774 kernel: Add function to read block undo data from disk to C header REVERT: 183b53c981e6 kernel: Add functions to read block from disk to C header REVERT: d35570686946 kernel: Add function for copying block data to C header REVERT: 3ac26a9911a6 kernel: Add functions for the block validation state to C header REVERT: eb9a90ff5cc0 kernel: Add validation interface to C header REVERT: 451558a160a2 kernel: Add interrupt function to C header REVERT: 55e36cf39fdf kernel: Add import blocks function to C header REVERT: 3671c91fd593 kernel: Add chainstate load options for in-memory dbs in C header REVERT: 128415b1b753 kernel: Add options for reindexing in C header REVERT: add8205e8e93 kernel: Add block validation to C header REVERT: 1404b97942ca kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 76d73226d99d kernel: Add chainstate manager option for setting worker threads REVERT: 6de50dca962f kernel: Add chainstate manager object to C header REVERT: 477df9b640e8 kernel: Add notifications context option to C header REVERT: c3868780f525 kernel: Add chain params context option to C header REVERT: 649bd3fd565e kernel: Add kernel library context object REVERT: b7e24e1547ad kernel: Add logging to kernel library C header REVERT: c1536041e434 kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: ce8003578e725cf3c64a0f3e1447459e26955a3d
1 parent 6f33491 commit b98d982

File tree

357 files changed

+14298
-45142
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

357 files changed

+14298
-45142
lines changed

.cirrus.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ task:
143143
FILE_ENV: "./ci/test/00_setup_env_native_previous_releases.sh"
144144

145145
task:
146-
name: 'TSan, depends, gui'
146+
name: 'TSan, depends, no gui'
147147
<< : *GLOBAL_TASK_TEMPLATE
148148
persistent_worker:
149149
labels:

.github/ci-test-each-commit-exec.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,25 @@ def run(cmd, **kwargs):
1717

1818

1919
def main():
20-
print("Running test-one-commit on ...")
20+
print("Running tests on commit ...")
2121
run(["git", "log", "-1"])
2222

2323
num_procs = int(run(["nproc"], stdout=subprocess.PIPE).stdout)
2424

25-
# Use clang++, because it is a bit faster and uses less memory than g++
2625
run([
2726
"cmake",
2827
"-B",
2928
"build",
3029
"-Werror=dev",
30+
# Use clang++, because it is a bit faster and uses less memory than g++
3131
"-DCMAKE_C_COMPILER=clang",
3232
"-DCMAKE_CXX_COMPILER=clang++",
33+
# Use mold, because it is faster than the default linker
34+
"-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=mold",
35+
# Use Debug build type for more debug checks, but enable optimizations
36+
"-DAPPEND_CXXFLAGS='-O3 -g2'",
37+
"-DAPPEND_CFLAGS='-O3 -g2'",
38+
"-DCMAKE_BUILD_TYPE=Debug",
3339
"-DWERROR=ON",
3440
"-DWITH_ZMQ=ON",
3541
"-DBUILD_GUI=ON",

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ jobs:
7777
git config user.name "CI"
7878
- run: |
7979
sudo apt-get update
80-
sudo apt-get install clang ccache build-essential cmake ninja-build pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev systemtap-sdt-dev libzmq3-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev -y
80+
sudo apt-get install clang mold ccache build-essential cmake ninja-build pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev systemtap-sdt-dev libzmq3-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev -y
8181
- name: Compile and run tests
8282
run: |
8383
# Run tests on commits after the last merge commit and before the PR head commit

CMakePresets.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"version": 3,
3-
"cmakeMinimumRequired": {"major": 3, "minor": 21, "patch": 0},
43
"configurePresets": [
54
{
65
"name": "vs2022",

ci/test/00_setup_env_arm.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export USE_BUSY_BOX=true
1616
export RUN_UNIT_TESTS=true
1717
export RUN_FUNCTIONAL_TESTS=false
1818
export GOAL="install"
19+
export CI_LIMIT_STACK_SIZE=1
1920
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
2021
# This could be removed once the ABI change warning does not show up by default
2122
export BITCOIN_CONFIG="-DREDUCE_EXPORTS=ON -DCMAKE_CXX_FLAGS='-Wno-psabi -Wno-error=maybe-uninitialized'"

ci/test/00_setup_env_mac_native.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export LC_ALL=C.UTF-8
1111
export PIP_PACKAGES="--break-system-packages zmq"
1212
export GOAL="install deploy"
1313
export CMAKE_GENERATOR="Ninja"
14-
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DBUILD_KERNEL_LIB=ON -DBUILD_KERNEL_TEST=ON -DREDUCE_EXPORTS=ON"
14+
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DBUILD_KERNEL_LIB=ON -DBUILD_KERNEL_TEST=ON -DREDUCE_EXPORTS=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000'"
1515
export CI_OS_NAME="macos"
1616
export NO_DEPENDS=1
1717
export OSX_SDK=""

ci/test/00_setup_env_mac_native_fuzz.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
export LC_ALL=C.UTF-8
88

99
export CMAKE_GENERATOR="Ninja"
10-
export BITCOIN_CONFIG="-DBUILD_FOR_FUZZING=ON"
10+
export BITCOIN_CONFIG="-DBUILD_FOR_FUZZING=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000'"
1111
export CI_OS_NAME="macos"
1212
export NO_DEPENDS=1
1313
export OSX_SDK=""

ci/test/00_setup_env_native_asan.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@ export APT_LLVM_V="20"
2323
export PACKAGES="systemtap-sdt-dev clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev python3-zmq qt6-base-dev qt6-tools-dev qt6-l10n-tools libevent-dev libboost-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE}"
2424
export NO_DEPENDS=1
2525
export GOAL="install"
26+
export CI_LIMIT_STACK_SIZE=1
2627
export BITCOIN_CONFIG="\
2728
-DWITH_USDT=ON -DWITH_ZMQ=ON -DBUILD_GUI=ON \
2829
-DSANITIZERS=address,float-divide-by-zero,integer,undefined \
29-
-DCMAKE_C_COMPILER=clang-${APT_LLVM_V} \
30-
-DCMAKE_CXX_COMPILER=clang++-${APT_LLVM_V} \
30+
-DCMAKE_C_COMPILER=clang \
31+
-DCMAKE_CXX_COMPILER=clang++ \
3132
-DCMAKE_C_FLAGS='-ftrivial-auto-var-init=pattern' \
3233
-DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern' \
3334
-DAPPEND_CXXFLAGS='-std=c++23' \

ci/test/00_setup_env_native_centos.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ export CONTAINER_NAME=ci_native_centos
1010
export CI_IMAGE_NAME_TAG="quay.io/centos/centos:stream10"
1111
export CI_BASE_PACKAGES="gcc-c++ glibc-devel libstdc++-devel ccache make ninja-build git python3 python3-pip which patch xz procps-ng ksh rsync coreutils bison e2fsprogs cmake"
1212
export PIP_PACKAGES="pyzmq"
13+
export DEP_OPTS="DEBUG=1"
1314
export GOAL="install"
1415
export BITCOIN_CONFIG="\
1516
-DWITH_ZMQ=ON \
1617
-DBUILD_GUI=ON \
1718
-DREDUCE_EXPORTS=ON \
18-
-DAPPEND_CPPFLAGS='-D_GLIBCXX_ASSERTIONS' \
1919
-DCMAKE_BUILD_TYPE=Debug \
2020
"

ci/test/00_setup_env_native_fuzz.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ export CI_CONTAINER_CAP="--cap-add SYS_PTRACE" # If run with (ASan + LSan), the
1919
export BITCOIN_CONFIG="\
2020
-DBUILD_FOR_FUZZING=ON \
2121
-DSANITIZERS=fuzzer,address,undefined,float-divide-by-zero,integer \
22-
-DCMAKE_C_COMPILER=clang-${APT_LLVM_V} \
23-
-DCMAKE_CXX_COMPILER=clang++-${APT_LLVM_V} \
22+
-DCMAKE_C_COMPILER=clang \
23+
-DCMAKE_CXX_COMPILER=clang++ \
2424
-DCMAKE_C_FLAGS='-ftrivial-auto-var-init=pattern' \
2525
-DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern' \
2626
"
27-
export LLVM_SYMBOLIZER_PATH="/usr/bin/llvm-symbolizer-${APT_LLVM_V}"

0 commit comments

Comments
 (0)