Skip to content

feat(core): Implement BIP 440/441 and expose eval_tapscript_v2 - #230

Draft
alexanderwiederin wants to merge 16 commits into
sedited:masterfrom
alexanderwiederin:varops_kernel_script_tracer
Draft

alexanderwiederin wants to merge 16 commits into
sedited:masterfrom
alexanderwiederin:varops_kernel_script_tracer

Conversation

@alexanderwiederin

@alexanderwiederin alexanderwiederin commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

This Draft implements BIP 440/441 and exposes an eval_tapscript_v2 method in the API.

It is a Work in Progress and opened as a tracker of the latest developments.

Test errors should be fixed with #229

@alexanderwiederin
alexanderwiederin force-pushed the varops_kernel_script_tracer branch from e33ca3e to e4afb1d Compare October 5, 2026 11:12
…8a8daf3fad1

e8a8daf3fad1 kernel: Add script tracer
ea7d459ac08b Merge bitcoin/bitcoin#36057: build: check for SetThreadDescription() at configure time
204256c73f28 Merge bitcoin/bitcoin#35900: iwyu: Fix warnings in `src/interfaces` and treat them as errors
da1cb4dd90e5 Merge bitcoin/bitcoin#35586: doc: note -blocknotify is not run during IBD/reindex in help text
b31aae4f9af5 Merge bitcoin/bitcoin#36094: ci: bump riscv toolchain to tag 2026.08.25
607f220c6cfd Revert "ci: use mirror for riscv submodules"
64af18f4e6d7 ci: bump riscv toolchain to tag 2026.08.25
fd573f6db9d1 Merge bitcoin/bitcoin#36044: test: cover OP_SUCCESSx bypassing the initial stack element size limit
2224e4af6ced Merge bitcoin/bitcoin#35850: fuzz: Implement `connect_block` harness
2777300c68f5 fuzz: Implement connect_block harness
bed46bd16c2b build: check for SetThreadDescription() at configure time
40add915be5c test: Add reset to CuckooCache
a24110cef7fa Merge bitcoin/bitcoin#36092: fix: UB sanitizer in mempool estimator logging
8b84f9177899 Merge bitcoin/bitcoin#36088: util: Set Univalue to null after read failure
576a0ebb536f fix: UB sanitizer in mempool estimator logging
5f45583e4373 Merge bitcoin/bitcoin#36077: bugfix: give TxDownloadManager its own RNG
fa72de78a931 util: Set Univalue to null after read failure
fa7786592d7c test: Add UniValue failed read test
e339043ee9ed Merge bitcoin/bitcoin#35829: http: Make class fields private and make HTTPResponse a struct
031175197f1b Merge bitcoin/bitcoin#36032: rpc: avoid quadratic output lookups
b91d983f66fa Merge bitcoin/bitcoin#36078: qa: Reduce `-maxconnections` in the functional test framework
0f5c6d0b64a2 Merge bitcoin/bitcoin#35618: depends: Make tarball creation from local directory reproducible
b8a8893bf2a1 qa: Lower `-rpcmaxconnections` in `interface_http.py` test
6f4109b44891 qa: Reduce `-maxconnections` in the functional test framework
80eaa6cabf28 bugfix: give TxDownloadManager its own RNG
5e0d7a286a49 refactor: Drastically narrow scope of http_bitcoin namespace and rename it to bitcoin_http
8f9fd8698a75 refactor: Make HTTPRemoteClient fields private
d72f67fd6c9d refactor: Expose additional HTTPRemoteClient fields through accessors
10bbae302fb7 refactor: Expose HTTPRemoteClient fields to tests through methods
5b06d9083169 refactor: Replace HTTPServer::MaybeDispatchRequestsFromClient() with HTTPRemoteClient::TryReadRequest()
794a753958a7 Merge bitcoin/bitcoin#35583: test: close the listeners before terminating the event loop
f6b3f2ff6b16 Merge bitcoin/bitcoin#36064: qa: Minor improvement follow-ups to 35730
6a028161dafc Merge bitcoin/bitcoin#36025: psbt: avoid duplicate taproot leaf script keys when merging
07d92a9d65aa Merge bitcoin/bitcoin#35516: rpc: preserve global xpubs and proprietary fields in joinpsbts
4375d74d24ca Merge bitcoin/bitcoin#34993: wallet: `NotifyCanGetAddressesChanged` when advancing `next_index`
290be9eafa48 qa: Minor feature_init.py improvements
6248331b295c qa: Switch to warning when skipping tests
04cf9ecee435 Merge bitcoin/bitcoin#35978: contrib/init: fix unused variables in openrc script
aed80c739581 Merge bitcoin/bitcoin#36067: test: Remove `BOOST_CHECK_CLOSE` in favor of exact comparison
07ca9ba9e84a Merge bitcoin/bitcoin#36059: test: make index crash test check saved state
402f1fdae6a7 Merge bitcoin/bitcoin#36063: refactor: [test] Remove deprecated SetMockTime(i64) alias
135e05cfa073 Merge bitcoin/bitcoin#36046: fuzz: Use ImmediateBackgroundTaskRunner in process_messages
9e115edd39ff test: Remove `BOOST_CHECK_CLOSE` in favor of exact comparison
6d570415a018 refactor(qa): Move check right below related check
7e3b60584b36 refactor(qa): Simplify through using assert_raises()
fad1e6bf238e util: refactor: Remove deprecated SetMockTime(i64) alias
faf87c3535c5 test: refactor: Use FakeNodeClock over manual/global SetMockTime
994c17d6c0a1 Merge bitcoin/bitcoin#34697: descriptor: fix musig() duplicate key checks and doubled PSBT origin paths
a1183c02aaca refactor: Extract Send() and Receive() into HTTPRemoteClient from HTTPServer
6d9b61d4f8dc refactor: Extract HTTPRemoteClient::MaybeDisconnect() from HTTPServer::DisconnectClients()
6fec8d6914bf refactor: Make HTTPRequest fields private
b8cd77237b34 refactor: Make HTTPRequest::GetHeader() return saner optional type
1cb416397b7a psbt: avoid duplicate taproot leaf script keys when merging
32765aca5c34 Merge bitcoin/bitcoin#35730: http: limit connected HTTPRemoteClients
a3335994a848 Merge bitcoin/bitcoin#35580: bugfix:  compare non-adjusted chunk weight against block weight limit
0ea81904ebdf Merge bitcoin/bitcoin#35933: psbt: don't abort on invalid MuSig2 derivations
7ea36e985a90 test: preserve index crash test state
5aa15df60c49 test: expose missing index crash checkpoint
b3ff9c4d683f iwyu: Fix warnings in `src/interfaces` and treat them as errors
d564b0255f7e iwyu: Add temporary mapping to work around upstream bug
58a7869f860f Merge bitcoin/bitcoin#36051: ci: use ruff 0.16.x
f5e91c6fbae7 Merge bitcoin/bitcoin#35884: util: set os-level thread names on Windows
a1e271622574 Merge bitcoin/bitcoin#36045: test: avoid undersized Boost.Test signal stacks
9d0c38db7466 ci: use mypy 2.3.1
7a53beca06a8 ci: use pyzmq 27.2.0
f29f076f3c27 ci: use ruff 16
7dcb7f09ed64 Merge bitcoin/bitcoin#34075: fees: Introduce Mempool Based Fee Estimation to reduce overestimation
5e8586ec5b01 Merge bitcoin/bitcoin#36019: bench: Construct CTxOut and COutPoint in a single expression
950bdb763e17 bench: Construct CTxOut and COutPoint in a single expression
bf8402c8803f Merge bitcoin/bitcoin#32958: wallet/refactor: Update SignPSBTInput to return util::Expected<void, PSBTError> and remove PSBTError:Ok
02306cc915ca Merge bitcoin/bitcoin#35161: consensus: document merkle mutation root invariant
fae6665f0134 fuzz: Use ImmediateBackgroundTaskRunner in process_messages
9eba3aafa6c2 test: avoid undersized Boost.Test signal stacks
747cff842481 rpc: avoid quadratic output lookups
7f9c4e292899 doc: add release notes
e18d392689da test: add mempool estimator i/o fuzz test
970f02096d37 fees: persist mempool policy estimator data
7dcb37989d25 fees: move fee_estimates.dat into fees directory
0db2b69e6db7 rpc: add verbosity option to estimatesmartfee options
06bb65730ebe fees: gate mempool estimates on recent block coverage
cfe585df25c4 validation: emit block mempool removal signal from ConnectTip
0d88558f9511 fees: return mempool estimates when it's lower than block policy
56db08d5291a Merge bitcoin/bitcoin#35877: build: ci/doc win64-cross build via nix
693b1351aff4 fees: add caching to MemPoolFeeRateEstimator
c9bb3df29ff9 fees: add MemPoolFeeRateEstimator class
558e26e66e02 test: cover OP_SUCCESSx bypassing the initial stack element size limit
e5be0dc35e88 refactor: Make HTTPResponse a struct since all fields are public
69c61f9f2f3d Merge bitcoin/bitcoin#36034: Release: Prepare "Translation string freeze" step
87b8a4ee506e Merge bitcoin-core/gui#944: Fix out-of-bounds read in RPCParseCommandLine on empty command
f9cc0c020c2f Merge bitcoin/bitcoin#36020: doc: Correct after HTTPRequest::m_client changed to weak_ptr
5a431c957d1b qt: Update `src/qt/locale/bitcoin_en.ts` translation source file
08dfaa04f4ca Merge bitcoin/bitcoin#36018: test: [refactor] Properly use BOOST_CHECK_EXCEPTION
fa0fe212f52a test: [refactor] Properly use BOOST_CHECK_EXCEPTION
436921eb469a test: check joinpsbts preserves global xpubs and proprietary fields
011094b282b2 rpc: preserve global xpubs and proprietary fields in joinpsbts
367b2202a496 Merge bitcoin/bitcoin#35665: psbt: avoid duplicate global xpub keys when merging
bab030a6feb9 Merge bitcoin/bitcoin#35859: wallet: use unsigned KDF iteration count
21ee7f6c00ba Merge bitcoin/bitcoin#35069: Refactor keypath parser
a07f1313b145 Merge bitcoin/bitcoin#35980: contrib: reject divergent verify-commits history
32dfed44a2ae Merge bitcoin/bitcoin#36012: psbt: Remove unused `IsNull()` methods
8c366094b89a Merge bitcoin/bitcoin#35956: fuzz: scope fake clocks to target phases
4d86d9cc7ed0 Merge bitcoin/bitcoin#35968: test: sync funding block before isolating nodes
8c1d776bf2ce Merge bitcoin/bitcoin#35965: test: Tighten Coin equality and add debug output
fa8762da626a build: ci/doc win64-cross build via nix
fafe7205cc89 doc: Clarify that cygwin/msys2 are not tested/supported
4b991d7b5fe4 Merge bitcoin/bitcoin#34239: depends: Hash included makefiles in package checksums
fe5e2a6319b8 Merge bitcoin/bitcoin#32162: depends: Switch from multilib to platform-specific toolchains
4e5327bc988b fuzz: refactor: scope fake clocks to target phases
15e5c35c4513 doc: Correct comments after HTTPRequest::m_client was changed from shared to weak pointer
1156ce675457 test: Tighten `Coin` equality and add debug output
59224b66aa1d Merge bitcoin/bitcoin#36008: wallet: WalletBatch->WriteVersion respect argument
2c16efbb7b5b psbt: Remove unused IsNull() methods
dd669f40b98b util: set os-level thread names on Windows
b88bffe550a3 Merge bitcoin/bitcoin#36010: test: Print os exit code on failure
0fd515bbb707 Merge bitcoin/bitcoin#36009: miniscript: remove unused context argument from ParseHexStr
15a7a4ed7c4d Merge bitcoin/bitcoin#35952: kernel: prevent dangling iterators from temporary ranges
ac6b6c1f06e9 Merge bitcoin/bitcoin#35680: private broadcast: bound rebroadcast attempts to 1,000
d411bb02ff83 Merge bitcoin/bitcoin#35993: guix: build glibc with `--enable-kernel=3.17.0`
fada80192bdd test: Print os exit code on failure
381c3312191b Merge bitcoin/bitcoin#36007: http: Make HTTPRequest::m_client a weak_ptr
82b3bfe38c09 Merge bitcoin/bitcoin#35797: psbt: support output metadata updates before inputs are added
681b429393e3 Merge bitcoin/bitcoin#35986: p2p: reconsider orphans when missing inputs are mined
16f4bd15bc9f Merge bitcoin/bitcoin#35954: qa: Disable Qt's glib event dispatcher for GUI tests on OpenBSD
1fdd208c1ce3 miniscript: remove unused context argument from ParseHexStr
4ca07c2fb3d0 Merge bitcoin/bitcoin#35963: doc : update cjdns docs to discourage using onlynet option
4b4ae6e37c54 Merge bitcoin/bitcoin#35995: doc: fix outdated URL in hash_tests.cpp
a23df4bfa874 Merge bitcoin/bitcoin#35946: rpc: Improve some type specs for openrpc
20ad7c9eab8f Merge bitcoin/bitcoin#35955: wallet: remove orphaned GetAffectedKeys and LegacyScriptPubKeyMan declarations
979a42ec1736 http: Make HTTPRequest::m_client a weak_ptr
cf36df070b4d Wallet: Check crypter return values
777aee77d120 refactor: deduplicate keypath element parsing
7d8fddfba258 refactor: define BIP32_HARDENED and BIP32_UNHARDENED constants
e4d80e7001e9 test: close the loop after the network thread has completed
29fba5ddbb9e test: close the listeners before terminating the event loop
bd4b1524eabf init: do not count file descriptors for HTTPServer if -server=0
b08662060db7 init: account for maximum file descriptors needed by HTTP
158efbc723d3 doc: fix outdated URL in hash_tests.cpp
9cacf677a918 rpc: add fee_rate_estimator option to estimatesmartfee
ba6c61bbdd32 fees: add FeeRateEstimatorManager class
2cb6b831e030 fees: add EstimateFeeRate and MaximumTarget to CBlockPolicyEstimator
5adb2ab08433 refactor: test block policy estimator directly
9c8309a89097 test: rename policy estimator tests to block policy estimator tests
e3d5ef1b5fb2 fees: move StringForBlockPolicyEstimateReason to block policy estimator
74245c20e05e fees: split wallet and estimator fee reasons
ec5d19665b89 wallet: WalletBatch->WriteVersion respect argument.
cc2acebefb04 http: configure simultaneous connection limit with -rpcmaxconnections
b3d6d2d1a7ef http: limit connected clients to 16
86651d81971b scripted-diff: Rename nUserBind, nBind, nMaxConnections to snake_case
5548818115c0 guix: build glibc with --enable-kernel=3.17.0
f72537037d33 Merge bitcoin/bitcoin#35972: fuzz: Fix assertion in `txorphan`
4800cb7aea01 Merge bitcoin/bitcoin#35735: Add state to HTTPRequest
e0992599a638 Merge bitcoin/bitcoin#35846: test: Use throwing config parser getters without fallback
e5977f0b9e5b Merge bitcoin/bitcoin#35982: Update minisketch subtree to latest master
fe7dbde52c9e Merge bitcoin/bitcoin#35976: test: Speedup fee estimation functional test with batching
9cc7dc50bdc9 p2p: reconsider orphans when missing inputs are mined
c90c23d388f6 Merge bitcoin/bitcoin#35531: txindex: hash keys and pack positions to reduce disk usage
2dcb2c6df20b Update minisketch subtree to latest master
461e3be8d3d1 Squashed 'src/minisketch/' changes from d1bd01e189..4a179c61e3
05c36d9fadcc Merge bitcoin-core/gui#957: fix: add .dat file extension automatically when exporting watchonly
75a4e6c67881 gui: fix allow restore wallets without .dat file extension
a8b582ec1d25 Merge bitcoin/bitcoin#32784: wallet: derivehdkey RPC to get xpub at arbitrary path
465bca734ebf contrib: reject divergent verify-commits history
b3d1dca33882 contrib: fail on verify-commits ancestry errors
d837bb38a44d contrib/init: fix unused variables in openrc script
fe7d475d450b private broadcast: bound broadcast attempts per tx to 1k
b3d77ea0275e test: Speedup fee estimation functional test with batching
683e05a265c8 Merge bitcoin/bitcoin#35889: rpc: avoid quadratic `gettxspendingprevout` work and preserve order
230185a5ee74 Merge bitcoin/bitcoin#35971: net_processing: remove unused code
ae36e2ef798f rpc: avoid quadratic prevout resolution
da1eaeb35075 rpc: preserve `gettxspendingprevout` order
f98753e76210 refactor: identify prevouts by request index
221a3fe5cfbe test: cover mixed `gettxspendingprevout` order
02de12b1e614 wallet: remove remaining LegacyScriptPubKeyMan references
d194be69d601 wallet: remove orphaned GetAffectedKeys declaration
01dde6b20578 fuzz: Fix assertion in txorphan
dec68f997e7c Merge bitcoin/bitcoin#35852: scripted-diff: Use inline const(expr) over static constexpr in headers
e95bab98f03c Merge bitcoin/bitcoin#35960: common: remove `::runtime_error` from `RunCommandParseJSON`
aad830ac4a65 Merge bitcoin/bitcoin#35847: test: move more tests to `baseindex_tests` and run them for all indexes
b76afff27490 Wallet: Use unsigned KDF iteration count
e07d826e0ebd rpc: Fix type in ApplyTypeStrOverride
0cff3cc51879 net_processing: Remove redundant porphanTx in ProcessOrphanTx
c7eacbd45b08 net_processing: remove Peer& from UpdatePeerStateForReceivedHeaders
8454fb2bd74c test: sync funding block before isolating nodes
8b5da677d7b0 common: remove ::runtime_error from RunCommandParseJSON
25bed560bed3 test: add forward-compat functional test for txindex
703304ed8c19 doc: add release notes for txindex disk usage and downgrading
8e5320a2d246 tests: cover txindex hash prefix collisions and legacy fallback
b75efa19ba80 txindex: skip bloom filters and legacy lookups for new databases
004d7c098cad txindex: hash key prefixes and pack block positions
5a255970fd1b refactor: move txindex db constants and legacy key to txindex_key.h
327660134cb1 txindex: pass the full block to DB::WriteTxs
42771e79980c txindex: use a new block locator for downgrade safety
4b08baed72c4 txindex: return optional tx and block hash from FindTx
fc0dcf950f97 kernel: keep range iterators tied to their owner
0936c55f626c test: characterize kernel range iterators
ef501a63d9d6 consensus: document merkle mutation root invariant
11090c8bb359 Merge bitcoin/bitcoin#35951: doc: release note about I2P ElGamal sunset
beefda21be3f doc : update cjdns docs to discourage using onlynet option
b2c45888fde0 Merge bitcoin/bitcoin#35866: test: Verify unwelcome RPC clients are rejected before reading their requests
c0792889673d psbt: update output metadata without inputs
4f5712476a3c test: characterize P2WSH miniscript output
e24e8fa2a689 test: characterize PSBT output metadata
625f951ba2fc Merge bitcoin/bitcoin#35959: Update secp256k1 subtree to latest master
e9ed5e83a392 Merge bitcoin/bitcoin#35605: wallet: rpc: Deprecate `removeprunedfunds` RPC
800ad9c3c0c4 doc: release note I2P ElGamal sunset
2f72123f613f Merge bitcoin/bitcoin#35867: test: classify SOCKS5 peers via getpeerinfo addrbind
f464f6cd67e5 Update secp256k1 subtree to lastest master
09cc345c3e32 Squashed 'src/secp256k1/' changes from d2d04864ef..687155df6b
c94074fa1b13 rpc: Surface OBJ_USER_KEYS description for openrpc
c020c21d543a rpc: Handle skip type args for openrpc
e33410d88841 fuzz: document arbitrary mocktimes
4c045f1a0323 Merge bitcoin/bitcoin#35945: depends, qt: Add patch for missing headers
b0615672352f Merge bitcoin/bitcoin#35947: build, msvc: Update vcpkg manifest baseline
1f5c46f7ce25 Merge bitcoin/bitcoin#35931: ci: Check DLL imports of cross-built `bitcoind.exe`
b42f7fade0cd descriptor: don't prepend key origins twice
7b15e2cb442c descriptor: fix duplicate check for hardened keys
1bec7fa22c9f Merge bitcoin/bitcoin#35496: kernel: add `btck_set_mock_time` for testing time-dependent paths
c1967c4453b1 Merge bitcoin/bitcoin#35950: Update leveldb subtree to latest master
512dc9af1b13 Merge bitcoin/bitcoin#35930: wallet: post-#35501 cleanups in CWalletTx
b970bb34d0c5 Merge bitcoin/bitcoin#33585: cmake: Use builtin support for .manifest files
de2adc308a42 qa: Disable Qt's glib event dispatcher for GUI tests on OpenBSD
aa0e0f793fed Merge bitcoin/bitcoin#35729: refactor: test: Unroll `&&` conditions in macros
3e76d22de258 Update leveldb subtree to latest master
9f10ef5e96d1 Squashed 'src/leveldb/' changes from a7f9bdc611..13da2d6758
2c01832f7beb Merge bitcoin/bitcoin#35493: wallet, descriptor: Fix MuSig private key completeness checks on `importdescriptors`
b80cee036199 Merge bitcoin/bitcoin#35924: Wallet, refactor: Remove orphaned EraseWatchOnly function
5d051c05629d Merge bitcoin/bitcoin#35943: doc: fix dead link in txrequest.h
4ca182ca4028 doc: clarify alternate_wtxids is empty when only one witness variant
fa48b5d28eb5 test: assert listsinceblock "removed" reports current canonical wtxid
9b96ee12881e wallet, test: add unit test for variant txid validation in CWalletTx deserializer
9de6543cb55f wallet: post-#35501 cleanup in CWalletTx
e2bf51543ad9 build, msvc: Disable default features of the `sqlite3` package
a31425610af3 build, msvc: Update vcpkg manifest baseline
757aa573c458 Merge bitcoin/bitcoin#33186: wallet, test: Ancient Wallet Migration from v0.14.3 (no-HD and Single Chain)
e8cc21c57f9e Merge bitcoin/bitcoin#35925: wallet, rpc: Exclude non-owned addresses from listreceivedby*
e8500cbd19db depends, qt: Add patch for missing headers
9954aa77280e http: don't parse any new requests from a client if m_req_busy = true
c7db3ae1f907 test: cover HTTPRequest state machine
90676e24ad1a Add state to HTTPRequest to avoid duplicate work over I/O cycles
99497b38f6c6 cmake: Unconditionally add .rc files to sources
654a4cf5e69c cmake: Use builtin support for .manifest files
8f695379f314 cmake: Unconditionally set WIN32_EXECUTABLE target property
507e528e8450 http: reuse HTTPHeaders to parse chunked trailer
902d8908c94d http: only read one HTTPRequest at a time per client
a7b0b5084a4a doc: fix dead link in txrequest.h
1d386c250f22 Merge bitcoin/bitcoin#35941: doc: remove mention of `::wsystem`
57246934e712 doc: remove mention of wsystem
5973e0758820 Merge bitcoin/bitcoin#35937: test: Append print_suppressions=0 to LSAN_OPTIONS, and suppress bitcoin-qt
b6bd573eb97a Merge bitcoin/bitcoin#34794: rest: add Cache-Control headers to REST responses
d055a3ab1005 test: verify disallowed RPC clients are rejected upon `accept()`
128456b62d5e Merge bitcoin/bitcoin#35260: doc: clarify test placement guidance
fad9ab714b55 test: Append print_suppressions=0 to LSAN_OPTIONS, and suppress bitcoin-qt
05a7c470d28c Merge bitcoin/bitcoin#35822: fuzz: reset SOCKS5 interrupt between inputs
73a94b45459a psbt: avoid aborting on invalid MuSig2 derivations
e3d1e75a519a test: characterize MuSig2 derivation aborts
1be0b46297c6 Merge bitcoin/bitcoin#35898: rpc: fix mempool entry vsize docs
5f4d5626e7f0 Merge bitcoin/bitcoin#35908: doc: Update NetBSD Build Guide
8397e09e6baa Merge bitcoin/bitcoin#35928: doc: mention -DWITH_ZMQ=ON in macOS build guide
4b4e63f28231 Merge bitcoin/bitcoin#35704: windows: remove deprecated codecvt via UTF-8 narrow APIs
67fee5bf440c ci: Check DLL imports of cross-built `bitcoind.exe`
089c883c558e test: Add coverage for listreceivedby* excluding "send" addresses
873c0548059b wallet: Exclude non-owned addresses from listreceivedby*
c3945bfd2bf8 doc: use derivehdkey in multisig tutorial
3662e3366978 test: use derivehdkey in M-of-N multisig demo
d9570f083835 rpc: add derivehdkey
62da9f961450 wallet: add GetExtKey helper
222855ed1129 doc: mention -DWITH_ZMQ=ON in macOS build guide
aaf1548475de wallet: generalize GetActiveHDPubKeys helper
3821452c4af1 refactor: add hardened derivation helper
0ab61caafd10 rpc: ParsePathBIP32 helper
e36c4b76e198 util: reject out-of-range BIP32 keypath indices
ba78c31a00c9 fuzz: check ParseHDKeypath/WriteHDKeypath round-trip
8cce969085db Have ParseHDKeypath handle h derivation marker
fc5307776236 test: move parse_hd_keypath test to bip32_tests
dab525eb7717 key: add DeriveExtKey() helper
71c06c5cbcd5 Merge bitcoin/bitcoin#35830: fees: Return false for incompatible fee estimates
55dfc244143a Merge bitcoin/bitcoin#35915: Release: Prepare "Open Transifex translations for `v32.0`" step
f11dc6170ed8 Merge bitcoin/bitcoin#35482: fuzz: exercise the transaction-handling path in process_message(s)
6f906106d73d Merge bitcoin/bitcoin#35879: ci: Fix $BASE_ROOT_DIR installation
d36bf709f7f8 Merge bitcoin/bitcoin#35914: test, fuzz: Remove unused variables
ed2c59ab6547 Merge bitcoin/bitcoin#35896: refactor: Default uint256::operator==, add operator<=>
fae7ba9abae8 ci: Fix $BASE_ROOT_DIR installation
fabe100c2b33 test: Use throwing config parser getters without fallback
fa8acd57cd1b test: Write true/false values in config.ini
6304789a18f9 Wallet, refactor: Remove orphaned EraseWatchOnly function
6b6d77cc84e4 windows: remove deprecated codecvt via UTF-8 narrow APIs
b388674acf06 Merge bitcoin/bitcoin#35872: rpc: avoid descriptor range counter overflow
c36ffd870e8b Merge bitcoin/bitcoin#35842: rpc: Properly make RPCResult::Type::ANY non-test-only
7cb9aaaee80c Merge bitcoin/bitcoin#35759: fuzz: check http_request body matches framing
5b008514dbe2 Merge bitcoin/bitcoin#35878: net_processing: process unique tx INVs only
3175d576288f test, refactor: Remove unused `error` in `wallet_tests.cpp`
422f1bd92f15 test, refactor: Remove unused `utxo_pool` in `coinselector_tests.cpp`
e550945a3941 test, refactor: Remove unused `removed_refs` in `txgraph_tests.cpp`
a061b011b786 Merge bitcoin/bitcoin#35912: doc: fix stale bitcoin_en.xlf reference
950b1c09225d Merge bitcoin/bitcoin#34927: test: Check that RPCs do not time out, even under load
bd01e66f0a75 Merge bitcoin/bitcoin#35885: ci: switch to a sourceware mirror for riscv
fa2e76d397a4 bench: Add base_blob compare bench via uint256
97abf95f48ab qt: Update the `src/qt/locale/bitcoin_en.ts` translation source file
81fcecfe4525 Revert "ci: Temporarily remove riscv32 config from GHA matrix"
b283e1751cc4 ci: use mirror for riscv submodules
fa7bc26d1276 test: Check that RPCs do not time out, even under load
fa2bd96cc0d4 test: Map cli CalledProcessError on server error to JSONRPCException
e50f422d25f9 test, refactor: Remove unused variables in `test/rbf_tests.cpp`
b7ae50e2e27e fuzz, refactor: Remove unused `header` in `p2p_transport_serialization.cpp`
3df0d067ade9 fuzz, refactor: Remove unused `random_string` in `locale.cpp`
fc28914de4e1 fuzz, refactor: Remove unused `linearization` in `cluster_linearize.cpp`
da58e559865e test, refactor: Remove unused `warnings` in `wallet/test/util.cpp`
4df077d7cd32 Merge bitcoin/bitcoin#35910: refactor: Remove unused newFeeRate var in ReplacementChecks
e98ffd4bd82d doc: fix stale bitcoin_en.xlf reference
fa9a9a82acd4 refactor: Remove unused newFeeRate var in ReplacementChecks
fa588e9e0f80 refactor: Mark assertion_fail as [[noreturn]]
1278a5970d5a net_processing: process unique tx INVs only
75f585192776 doc: add release note for REST cache-control headers
bbe21ac29f55 doc: document REST cache-control defaults
862a17955631 http: add no-store to dispatcher-generated error responses
f32685315c2e doc: Install `pkgconf` to find `capnproto` on NetBSD
5964c7229fc2 doc: Switch `pkg-config` package to modern `pkgconf` on NetBSD
9b85c9814d1d doc: Drop GCC upgrade instructions for NetBSD
ea59f1722097 test: cover v0.14.3 wallet migration
18b8afd09333 test: support v0.14.x in dumb_sync_blocks
faec059dfe8b refactor: Add uint256::operator<=>()
b9d573e4a959 fees: Return false for incompatible fee estimates
a3ebf8ab607f rpc: fix mempool entry vsize docs
c4fbd3c72114 Merge bitcoin/bitcoin#35895: refactor: Enable clang-tidy rule to reject anon namespace in header
465196d0154c Merge bitcoin/bitcoin#35630: test: Add importdescriptors rpc error test coverage
fa6df14c2360 refactor: uint256::operator==() = default
c940fd75145d Merge bitcoin/bitcoin#35180: coins: group private cache helpers
3db96eb5fd7d Merge bitcoin/bitcoin#35582: rpc: reject null for optional parameters
fa93132d6da5 refactor: Enable misc-definitions-in-headers
fa5ca877b603 refactor: Enable clang-tidy rule to reject anon namespace in header
fafe5042bd1b refactor: Use C++20 std::identity over IntIdentity
28257111acf2 Merge bitcoin/bitcoin#35737: test: Move cluster_linearize.h contents into cluster_linearize namespace
fac4b06e997e refactor: Use CLIENT_NAME in buildOpenRPCDoc
fa3aadbc32e0 refactor: Use self.Arg<bool> in getopenrpcinfo
fa1871a52816 refactor: Remove stale NOLINTNEXTLINE above GetAddressInfoBaseFields
fa2264791490 rpc: Properly make RPCResult::Type::ANY non-test-only
fa1242dcc022 refactor: Use std::visit in ApplyArgFallback
27b6b5a458f5 Merge bitcoin/bitcoin#35836: rpc: Remove meaningless bool fallback in FundTransaction
3ac8b806a699 test: test the result order of a multiple import request is correct
e4732bf01876 test: test invalid or missing timestamp throws importdescriptors
324c231efeaf Merge bitcoin/bitcoin#35881: iwyu: Fix warnings in `src/consensus` and treat them as errors
6ed7e05e20da gui: fix add .dat file extension automatically when exporting watchonly
75183f4464bf Merge bitcoin/bitcoin#35880: fuzz: don't connman.ReceiveMsgFrom oversized msg
fab74a0e922c refactor: Use C++14 digit separator for large int literals
fae759be7930 scripted-diff: Use inline constexpr over plain constexpr
fa74f58a2620 scripted-diff: Use inline const over (static) const
fab1a62c870e refactor: Use inline constexpr for string literals in headers
fa08bbed8dd2 contrib: Adjust generate-seeds.py to write inline constexpr
fad753611b5c scripted-diff: Use inline constexpr over (static) const
faedb52583e1 refactor: Make CFeeRate(integral) ctor constexpr
5555d5dcb559 scripted-diff: Use inline constexpr over static constexpr
fa6e1a1e85e2 refactor: Remove static from constexpr functions in headers
e2ab8ae55142 wallet: spkm: Only notify CanGetAddressesChanged on change
0892f16f911d refactor: moveonly: Pair CanGetAddressesChanged notifications with desc range.
e6adae3db242 wallet: `NotifyCanGetAddressesChanged` when advancing `next_index`
acf45c44c013 rest: add Cache-Control headers to REST responses
d3cfd02bd7f8 Merge bitcoin/bitcoin#35501: wallet: store all witness variants of a transaction
0b8ffd01cde8 Merge bitcoin/bitcoin#35790: fuzz: populate wallet TXO index in wallet_create_transaction
2f52c2e8c062 Merge bitcoin/bitcoin#35886: refactor: Remove unused #include in common/system
fa7304f3a5b8 refactor: Remove unused #include in common/system
e7eb159a868f Merge bitcoin/bitcoin#35773: test: Suppress implicit-unsigned-integer-truncation:SaltedCoinsCacheHasher::operator()
c6ef42d7dbcf Merge bitcoin/bitcoin#35205: kernel,node: add `dbcache` setter and clarify defaults
f280f5eb4749 wallet: rpc: deprecate removeprunedfunds
4e8c4bc794c0 test: classify SOCKS5 peers via getpeerinfo addrbind
17c5e33e9c54 Merge bitcoin/bitcoin#35216: qa: Improve functional test support on illumos and *BSD
13b53f8bf674 iwyu: Fix warnings in `src/consensus` and treat them as errors
bb19f1da19c1 fuzz: don't connman.ReceiveMsgFrom oversized msg
8a4bab8e9753 Merge bitcoin/bitcoin#35863: test: fix wrong transaction in GetP2SHSigOpCount assertion
975a314667ed Merge bitcoin/bitcoin#35832: p2p: avoid block disk reads on unnecessary requests
d24610fa2c7e Merge bitcoin/bitcoin#35870: guix: move `python-minimal` to Linux GUI build
b33a5b5767ef Merge bitcoin/bitcoin#35871: refactor: Annotate `MakeAndPushFeature` with `[[maybe_unused]]`
4b322989ac2d Merge bitcoin/bitcoin#34995: iwyu: Fix warnings in `src/common` and treat them as errors
75f024a84e0a Merge bitcoin/bitcoin#35875: ci: Fix NetBSD SDK download failure, Temp. remove riscv32 from GHA
fa06ea42448d ci: Temporarily remove riscv32 config from GHA matrix
873550bea381 ci: verify cross-build SDK archives
2c87337efe82 ci: update NetBSD cross-build SDK
6a2de55a0d8b test: require `TryGetTotalRam()` detection
cd086c16dd77 node, qt: inline `DEFAULT_DB_CACHE`
8bd9f46082df kernel: allow setting chainstate `dbcache`
8aa21e119b02 kernel, node: colocate dbcache bounds
7cfa21d60a58 scripted-diff: use `MIN_DBCACHE_BYTES`
ab6343257681 common: cache total RAM as `uint64_t`
031fa402c8a2 scripted-diff: use `TryGetTotalRam`
264555af3cc2 rpc: avoid descriptor range counter overflow
143a13fb2bd1 test: characterize descriptor range endpoint
41c44f558852 node, qt: use `1_MiB` for dbcache conversions
0238aebf6190 refactor: Annotate `MakeAndPushFeature` with `[[maybe_unused]]`
1ed14c61222e Merge bitcoin-core/gui#872: Menu action to export a watchonly wallet
b75eb938a041 guix: move python-minimal to GUI build
101400b28f77 guix: remove -Werror=dev
e27c179db2fd Merge bitcoin/bitcoin#35869: lint: (re-)add contrib/guix for Python linting
50145f62c923 ci, iwyu: Enforce warning-free `src/common`
30f6b05857fb Merge bitcoin/bitcoin#35860: fuzz: Rework rpc fuzz target
dcc2ed52b840 Merge bitcoin/bitcoin#35856: fuzz: cover the mempool interface for transaction announcement
8221d714c788 lint: document CI lief version requirement
594a02c3ae05 lint: re-add guix scripts to mypy linting
e8691056c014 test: Unroll `&&` conditions in macros
ddddffda3af4 doc: Add doc/release-notes-35836.md
756afe14b5c1 test: give each ValidateInputsStandardness case its own scope
5559fa464b34 test: fix wrong transaction in GetP2SHSigOpCount assertion
556988790a7f Merge bitcoin/bitcoin#35592: http: check rpcallowip immediately after accepting connection
fa895bb77a8a fuzz: Rework rpc fuzz target
28641fd195db p2p: reject empty getblocktxn requests
dd2561003dd2 fuzz: cover the mempool interface for transaction announcement
9871fb726cb5 p2p: reject filtered block inv early when bloom is disabled
aaf941202667 refactor: split p2p_getdata.py in sub-cases
34c03075a5a0 test: run generic baseindex tests against every index type
11b3e251c488 test: make baseindex flush test chain-length agnostic
8b959f4c6ab6 test: move unclean_shutdown test to baseindex_tests
2232d6afbe21 test: move index_reorg_crash to baseindex_tests
a3597e268376 test: move BuildChain helper into test mining util
954985e6a380 test: simplify blockfilter test's BuildChain helper
67efced1fc83 Merge bitcoin/bitcoin#35838: qa: Enable `interface_gui.py` on macOS
45f5609f2ed9 qa: Enable `interface_gui.py` on macOS
fa7fe798c611 wallet: Remove meaningless bool fallback in FundTransaction
9611a356035b Merge bitcoin/bitcoin#35828: util: Make LineReader consistently use string_view
6e2962e48cb5 Merge bitcoin/bitcoin#35753: kernel: handle null mempool on chainstate deletion
87bc4c74c4df Merge bitcoin/bitcoin#35787: init, rpc: ignore empty addnode values
67998e15c8dd Merge bitcoin/bitcoin#35553: test: Add missing test case for getdata requests from blocks-only peers
9b38d077f894 Merge bitcoin-core/gui#953: Adds option to not load the wallet after migration
146988ef6c53 Merge bitcoin/bitcoin#35551: test: add interface_gui.py to test bitcoin-qt startup
7e5952b0aa04 Merge bitcoin/bitcoin#35821: guix: followups to #35537
683ae4c520b1 guix: consolidate config flags
665f11d04ac0 guix: consolidate gcc toolchain setup
288f76ed0fcb guix: consolidate mingw-w64 toolchain setup
cc9b0f2266d9 guix: consolidate LLVM toolchain setup
b12a70f330d0 guix: turn linux/win linker warnings into errors
fd7d4f29704c Merge bitcoin/bitcoin#35795: build: set CMAKE_VISIBILITY_INLINES_HIDDEN in REDUCE_EXPORTS
8ecbe270f0de Merge bitcoin/bitcoin#35606: script: qa: Improve `Key::Fingerprint` type safety
a9d181f2d353 Merge bitcoin/bitcoin#35084: ipc: Add nonunix platform support
6573196e63bf doc: Release note for export watchonly wallet gui action
cb51f97f6c59 gui: Menu action for exporting a watchonly wallet
4cea59573c83 add release notes
492a715d7841 gui: Adds option to not load the wallet after migration
dff44e4c8f30 util: LineReader - Drop support for raw std::byte spans
5d5cdcd79d4c util: Make LineReader consistently use string_views
e8eaa80ce295 util: LineReader - Don't include newline and acknowledge single-char \r
5907a5c7dc22 gui: Add ExceptionSafeConnect that takes a lambda
7dea464d6b51 Merge bitcoin/bitcoin#35692: addrman: remove unreachable tried-collision branch
a2aab6df97d9 Merge bitcoin/bitcoin#35810: guix: Drop unused `(guix licenses)` import from `manifest_build.scm`
77440814bf2c fuzz: reset SOCKS5 interrupt between inputs
90ce21e21d09 rpc: reject empty node argument in addnode
69465de4470d init: ignore empty addnode values
e75b76b12c5d Merge bitcoin/bitcoin#35261: guix: disable LTO in GCC
a92e93429ee3 guix: Drop unused `(guix licenses)` import from `manifest_build.scm`
5be248341a8e bugfix: compare real chunk weight against block weight limit
fc9879086990 test: `TestChunkBlockLimits` uses incorrect weight for comparison
e34b8d5a7dcd Merge bitcoin/bitcoin#35794: doc: Discourage adding AI agents as commit (co)-authors
b33a7fcd7bd8 Merge bitcoin/bitcoin#34628: p2p: Replace per-peer transaction rate-limiting with global rate limits
6b059d9dbdbd Merge bitcoin/bitcoin#32800: rpc: Distinguish between vsize and sigop adjusted mempool vsize
11ebbd907217 Merge bitcoin/bitcoin#28463: p2p: Increase inbound capacity for block-relay only connections
3f313a774bec build: set CMAKE_VISIBILITY_INLINES_HIDDEN in REDUCE_EXPORTS
3a2c52f9d70d Merge bitcoin/bitcoin#35792: refactor: Make all `const static` class members `constexpr`
f5d7cc66ecba doc: Discourage adding AI agents as commit authors
05c35c402cc5 refactor: Make all `const static` class members `constexpr`
c11508406e6e doc: Update docs that refer to -maxconnections
69ce0dba2ae4 test: add test that EvictTxPeerIfFull only evicts tx-relaying peers
3ed7f064180f p2p: trigger possible eviction if we support bloom filters and change a peer to tx relay
0bd3d3dfa562 init: make inbound tx relay percentage configurable
cc59aee196e2 test: add functional test for inbound maxconnection limits
1b76e0473647 net: increase inbound capacity for block-relay-only connections
baa5a2ce43a8 guix: pass --disable-tm-clone-registry to base GCC
9c2589630f05 guix: mirror some arguments from linux-gcc to mingw-w64-gcc
e0b8fbde8973 guix: disable-nls in *-base-gcc
7dc87f8e1e29 guix: disable-lto in *-base-gcc
9ed3d6ef2a2a guix: modernise style in *-base-gcc
1eac6a728bfc fuzz: populate wallet TXO index in wallet_create_transaction
610dd320d1a8 Merge bitcoin/bitcoin#35783: chainparams: remove my testnet3 seed
afa5e46bbc6d Merge bitcoin/bitcoin#35076: doc: clarify pruning impact on wallet sync
26b730cdbf2c Merge bitcoin/bitcoin#35320: key: validate BIP32 seed length in CExtKey::SetSeed
edf4b807f051 Merge bitcoin/bitcoin#35781: Update secp256k1 subtree to latest master
774d11c58f22 Merge bitcoin/bitcoin#35664: test: add CLTV and CHECK(MULTI)SIGVERIFY failure-path vectors to script_tests.json
526673487cee Merge bitcoin/bitcoin#34683: rpc: support a formal description of our JSON-RPC interface
290cb2f17ef6 Merge bitcoin/bitcoin#35775: scripted-diff: Use C.UTF-8 locale in Guix scripts
d472a7798ac1 Merge bitcoin/bitcoin#32764: guix: Build for macOS using LLVM toolchain only
9755d33390d8 Merge bitcoin/bitcoin#34808: cmake, translation: Use native Qt TS file as source for translations on Transifex
51143291a6c5 Merge bitcoin/bitcoin#35782: doc: fix outdated i2p URLs in comments
2cb3bfa8df7c scripted-diff: Use long form of shell options in Guix scripts
711eb10f08bc guix: Add copyright headers to Guix scripts
7295b8be704a chainparams: remove my testnet3 seed
419f7427eee2 doc: fix outdated i2p URLs in comments
a33f240524da Squashed 'src/secp256k1/' changes from bd0287d650..d2d04864ef
c26d4e2d6f03 Update secp256k1 subtree to latest master
22a03ca69443 Merge bitcoin/bitcoin#35694: clusterlin: minor SFL optimizations
7b6f9ba7bad1 Merge bitcoin/bitcoin#34672: mining: add reason/debug to `submitSolution` and unify with `submitBlock`
5311b15727f2 Merge bitcoin/bitcoin#33014: rpc: Fix internal bug in descriptorprocesspsbt when encountering invalid signatures
c9cedebfffbc coins: group private cache helpers
8a90c7cd9739 guix: Build for macOS using LLVM toolchain only
db74d3390a39 doc: clarify test placement guidance
d3d74e701f76 ipc, refactor: Update mp::g_thread_context references
80f831494e53 guix: Fix `glibc` version in comment
8916f7967e10 scripted-diff: Use C.UTF-8 locale in Guix scripts
a2e074d66ac1 Merge bitcoin-core/gui#951: test: Nudge toward QT_STYLE_OVERRIDE=fusion on macOS
6ced9ad782b8 Merge bitcoin/bitcoin#35770: net: Simplify `AddressPosition` comparitor
b8844d3df759 Merge bitcoin/bitcoin#35766: p2p: Assume v2transport for addresses from seeds
fa7f55378179 test: Suppress implicit-unsigned-integer-truncation:SaltedCoinsCacheHasher::operator()
075e7f421876 net: Simplify `AddressPosition` comparitor
fa0c8337a8d4 test: Nudge toward QT_STYLE_OVERRIDE=fusion on macOS
faa50c08b17b refactor: Run clang-format on qt test_main.cpp
bc49bd154a31 Merge bitcoin/bitcoin#35709: depends: Update Qt to 6.8.4
efa1800a885c Merge bitcoin/bitcoin#35769: depends, zeromq: Apply upstream patch
fc4ceda8b610 Merge bitcoin-core/gui#949: Fix `-Wsfinae-incomplete` warnings when building with GCC 16.x
559d042ba256 Merge bitcoin/bitcoin#35736: bitcoin-util: replace netmagic command with getchainparams command
8f2ed31f7023 Merge bitcoin/bitcoin#35767: fuzz: Avoid dangling prevoutfetch threads after AFL fork
a31c30290d4c Merge bitcoin/bitcoin#35746: ci: Test build directory path with spaces
e446ea09c4d3 depends, zeromq: Apply upstream patch
87b080fe2b66 fuzz: reset the reused mempool in process_message(s)
d522fd319636 fuzz: prepare deterministic mempool rebuilds
b11456386b26 fuzz: let the test input toggle IBD in the p2p fuzz targets
2a29cee68438 test: add helper to reset chainman and mempool
2a4ef42d34ed fuzz: share a single FakeNodeClock in the chainman-resetting fuzz targets
32eb52100296 Merge bitcoin/bitcoin#35215: coins: use SipHash-1-3-UJ for CCoinsMap keys
883ef1d85d74 Merge bitcoin/bitcoin#35727: blockencodings: fix extra transaction count
f3f302150b5f ci: Put space and non-ASCII char in `BASE_BUILD_DIR`
a7e980af31b9 build: Quote host paths in NSIS installer template
faada35f9c09 fuzz: [refactor] Use 100'000 digit separator in __AFL_LOOP
cf0f2aeae009 p2p: Assume v2transport for addresses from seeds
fae067ec4a40 fuzz: Avoid dangling prevoutfetch threads after AFL fork
7e1a750d45d9 guix, refactor: Use `target` variable instead of hardcoded value
de9b436ba365 depends: Switch from multilib to platform-specific toolchains
d673ca765a5a Merge bitcoin/bitcoin#35537: guix: split builds into Linux, Linux GUI and macOS/Windows
b36c2d78a3ad Merge bitcoin/bitcoin#35490: test: cover unused mempool space in coins cache limit
7502b9ddba74 fuzz: check http_request body matches framing
d1d85263f8eb Merge bitcoin/bitcoin#35681: test: cover disconnect on private broadcast peer with relay=false
4906594a3844 Merge bitcoin-core/gui#950: qt, test: Run GUI tests on macOS with `minimal` QPA plugin
e0c196f9c11c Merge bitcoin/bitcoin#35721: lint: drop most remaining default Ruff rule ignores
fd59d68c2629 qt, test: Enable tests on macOS with `minimal` QPA plugin
c8b2aeb2263c qt: Avoid implicit `NSApplication` instantiation
006f8f7d49a3 Merge bitcoin/bitcoin#35090: fuzz: add p2p_private_broadcast harness
51d36dfd076a qt: Fix `-Wsfinae-incomplete` warnings when building with GCC 16.x
0b0785daa00b guix: split macOS and win builds
008a3e29c884 guix: split builds into Linux(gui) and macOS/Windows
a99b27f19209 validation: handle null mempool on delete
a3b5dc057236 cmake: Add `GenerateWindowsInstaller` script
3bfdcbd7ee49 coins: reuse cache hasher for txid set
2beab94896a3 coins: use SipHash-1-3-UJ for `CCoinsMap`
7ff55cc6500e bench: add fixed-width SipHash benchmarks
3aea85411f61 test: add SipHash-1-3-UJ coverage
a0ccd4ad1715 crypto: add fixed-width SipHash-1-3-UJ
c2d7931b5c8b crypto: add generic SipHash-1-3-UJ
25bfca06d669 refactor: simplify adding SipHash-1-3-UJ
af50ba8500a8 test: add shared SipHash vectors
fa5cbb890971 uint256: Workaround GCC-14 stringop-overread bug in Compare
18c05d93016b Merge bitcoin/bitcoin#35590: test: wallet: BnB incomplete result on attempt-limit success
21b4b790e488 test: Move cluster_linearize.h contents into cluster_linearize namespace
b56b66fc64be Merge bitcoin/bitcoin#35679: fuzz: Remove unused `DeserializeFromFuzzingInput` params overload
6ee05c4b188c test: wallet: BnB incomplete result on attempt-limit success
6aa5d8d9481f blockencodings: fix extra transaction count
be4e64d9e405 test: characterize extra transaction miscount
2d3f72fd3fa4 ipc, refactor: Update mp::SpawnProcess call
7298281ba8df bitcoin-util: replace netmagic command with getchainparams command
9d6ba4b3b572 Merge bitcoin/bitcoin#34514: refactor: remove unnecessary `std::move` for a few trivially copyable types
ca9ffb8e1238 rpc: add OpenRPC discovery alias
6c9d76d58942 doc: release note for alternate_wtxids in gettransaction
99bdcb064c2d test: compat, ensure downgrade preserves tx witness variants
ef2afc6a0a3c test: Test for wallet txs with alternate wtxids
2d55c7a74dde wallet: Show alternate wtxids in gettransaction
0b1af01bd442 wallet: Replace CWalletTx::SetTx with Update
56cf27db4dc0 wallet: Store all witness variants of a transaction
798ba6d04faa wallet: Make CWalletTx::tx private and use CWalletTx::GetTx to access
72ebdd6364c7 wallet: Remove unused CWalletTx CopyFrom and copy constructor
19af439bdf36 wallet: Deserialize directly in CWalletTx's ctor
afab8d4225c7 fuzz, refactor: Remove `Serialize` overload
efa7f8c14376 fuzz: Remove unused `DeserializeFromFuzzingInput` params overload
6eca11175be6 lint: remove E731 Ruff ignore
b52454538b08 lint: remove E712 Ruff ignore
e9f19815caa3 ipc, refactor: Add Stream type alias and use it
3859805f05e6 ipc, refactor: Add SocketId type alias and use it
2ee9b69c7a1f ipc, refactor: Add ProcessId type alias and use it
344979714189 ipc: Avoid 'unistd.h' error with MSVC
dbcc192dce61 ipc, refactor: fix include order
7c86d4834ed2 ipc, refactor: use native path separators in test
00287b9a3404 ipc, refactor: Change Protocol class field order
33d37f3c35ef ipc, refactor: Drop connect/listen/serve exe_name parameters
794940469e77 ipc, moveonly: combine ipc_test.cpp and ipc_tests.cpp
efb4eae33861 clusterlin: avoid recomputing intersections in MergeChunks
4b91ad149f00 clusterlin: reserve the suboptimal-chunk queue up front
e6ca996255bb clusterlin: avoid heap allocations in GetLinearization
226e6388b7fd depends: Update Qt to 6.8.4
fef99e6563ae qt: fix out-of-bounds read in RPCParseCommandLine on empty command
349c72ee00a0 net_processing: Drop unnecessary txid arg from InitiateTxBroadcastToAll
12b0dc33c4af doc: Add release note for -txsendrate etc
5cde66341a66 tests: basic functional test for tx rate limiting
4842903ac122 rpc: report -txsendrate and bucket info via getnetworkinfo
74a47a520713 init: add -txsendrate configuration parameter
6307bd034bfb net_processing: Provide a 30bpm heartbeat log while inv backlog is in use
df31ee57aaf5 net_processing: add a global delay queue for sending txs
7927650e56d2 util/tokenbucket.h: Provide a generic TokenBucket class
749bb447f819 txmempool: Drop CompareMiningScoreWithTopology
e1b7490fbc91 net_processing: Replace CompareInvMempoolOrder
6cfc65d2103e txmempool: Add ExtractBestByMiningScoreWithTopology
026f70e05f96 net_processing: Remove per-peer rate-limiting
46c8c471dcf5 net_processing: bump last_inv_sequence for bip35 messages explicitly
5d57f2cefee2 test: cover unused mempool space in coins cache
1fc9277a1c13 test: cover disconnect on private broadcast peer with relay=false
bc7d9050467f addrman: remove unreachable tried-collision branch
0390338692a7 test: check MuSig import private key warnings
5e62fbf09c01 wallet: check descriptor private key completeness on import
cd8d01bf47a2 descriptors: require complete MuSig private keys
55d3cd51a48d doc: add release note describing change for forbidden clients
d1ed2a6e25d7 http: check rpcallowip immediately after accepting connection
d24d3cbad010 fuzz: add p2p_private_broadcast harness
c4068cf37b66 test: add negative zero CSV failure script test vector
37edf0e2338e test: add CHECKLOCKTIMEVERIFY failure-path script test vectors
29b124416e42 doc: add release notes for 32800
5d25a0c28d19 rpc: add `vsize_adjusted` field to getrawtransaction output for mempool transactions
eaef8d31118d rpc: add `vsize_adjusted` and `vsize_bip141` field to mempool-related RPCs
6d387af562fc psbt: remove write-only global xpub tracking set
3b7051c7e338 test: check combinepsbt with conflicting global xpub origins
7c632c0e2a2e psbt: avoid duplicate global xpub keys when merging
a86a96d17b37 test: add CHECKSIGVERIFY/CHECKMULTISIGVERIFY failure script test vectors
07fb58b9ef25 test: Test a locked wallet rejects an empty importdescriptors request
aeca0610865e rpc: reject null for optional parameters
f4a6d079c42b qa: Support `get_bind_addrs` and `feature_bind_extra` on illumos
5e96a8fd5acf doc: Add `lsof` to Test Suite Dependencies on NetBSD
5d01aa4772a4 qa: Ignore `lsof` warnings on NetBSD
70352fda0385 qa: Strip prefix length from NetBSD `ifconfig` output
1c1735567e2a doc: Add `lsof` to Test Suite Dependencies on FreeBSD
4cb7f39c2ceb qa: Drop OpenBSD from supported platforms in `get_bind_addrs` function
8a982eea8540 qa: Add `skip_if_no_lsof_on_nonlinux` helper and use it where needed
7e973cce52ca depends: Make tarball creation from local directory reproducible
e5b7785447fc test: wallet: resend: avoid internal behavior via removeprunedfunds
c9a70f933872 script: qa: Improve Key::Fingerprint type safety
aa01721c8994 test: add interface_gui.py to test bitcoin-gui startup via RPC
ef0676f40077 rpc: factor getaddressinfo embedded field docs
1fb6b6056093 test: add functional test for getopenrpcinfo
672dd42d1402 rpc: add getopenrpcinfo command
d5e64b01e1bf doc: note -blocknotify is not run during IBD/reindex in help text
f5116c587f7a rpc: add placeholder annotation for deprecated params
26c221a980dd rpc: expose RPC metadata for introspection
6a1a66c180cb rpc: render Type::ANY in help text instead of aborting
06de34a0333e rpc: erase empty map entry in removeCommand
d4d64ae73938 rpc: add missing string_view include to server.h
278710a88d8f test: Add missing test case for getdata requests from blocks-only peers
156f2c6c49d6 kernel: add `btck_set_mock_time` for testing time-dependent paths
75929b11edb4 doc: add release note for submitSolution IPC changes
ed75d70fdb82 refactor: centralize SubmitBlock result handling
cbaa1696f374 mining: add reason and debug output to submitSolution
83f3bc002d08 mining: clarify SubmitBlock result handling
87bca1c2adba net: add options to AttemptToEvictConnection
2cf9d79d84cb key: validate BIP32 seed length in CExtKey::SetSeed
3e8e21b2efce txgraph: avoid moving primitive members
d9f94aa882ae rpc: avoid moving RPC enum types
b67baed4e7e4 coins: avoid moving `COutPoint` values
7e19ce200b2e rpc: Fix descriptorprocesspsbt internal bug on invalid signatures
51ee8ca1683c doc: clarify pruning impact on wallet sync
6cca38e2b929 refactor: remove unused PSBTError::Ok
3660678b953c refactor: SignPSBTInput now uses util:Expected
ec61a1af6214 depends: Hash included makefiles in package checksums
a434d6602509 cmake, translation: Specify English as target language explicitly
4097d6d968e8 cmake, translation: Sort messages within contexts alphabetically
312ab8ab0a8e cmake, translation: Skip source locations in TS files
4f553bd0da25 cmake, translation: Remove TS to XLIFF conversion
8c30055458b4 translation: Switch to Qt TS source file

git-subtree-dir: libbitcoinkernel-sys/bitcoin
git-subtree-split: e8a8daf3fad1043b082d4728886c481b658147d3
…acer

Declare the btck_script_trace_* and btck_script_eval_stack_* API added
in bitcoin/bitcoin#35641, which invokes a globally registered callback
on entry to script evaluation, once per decoded opcode and on exit.

The three new opaque handles (btck_ScriptTraceFrame,
btck_ScriptEvalStack and btck_ScriptEvalStack_item) are all views owned
by the kernel, so none need a destroy function. btck_ScriptTraceCallback
is declared as a bare function pointer rather than an Option, matching
btck_LogCallback, since the parameter is marked
BITCOINKERNEL_ARG_NONNULL(1).
Bitcoin core gates the script tracer behind ENABLE_SCRIPT_TRACE, which
defaults to OFF. Add a script-trace cargo feature that passes
-DENABLE_SCRIPT_TRACE=ON to the cmake configure step so consumers can
opt into the trace hooks without patching the build.

Off by default, matching upstream.
Wrap the btck_script_trace_* and btck_script_eval_stack_* API in a
ScriptTracer RAII handle that unregisters on drop. Frames arrive as
ScriptTraceFrameRef and are valid only during the callback.

The extern "C" shim catches unwinds, and a static rejects a second
registration, which the kernel would otherwise accept silently.

Gated behind the script-trace feature, which builds the kernel with
-DENABLE_SCRIPT_TRACE=ON; without the hooks the API would compile but do
nothing.
Move verify_test out of tests/test.rs into tests/common so it can be
shared and add tests/script_trace.rs which registers a trace callback,
verifies a P2PKH spend and asserts the epxected frames are captured.

Gated behind the script-trace feature.
Register a tracer over two P2PKH verifications, one valid and one with a
corrupted pubkey hash, printing the opcode, stack and altstack at each
step. The failing case ends with SCRIPT_ERR_EQUALVERIFY.
…8aedda9e983

38aedda9e983 test: add kernel tapscript v2 evaluation coverage
7d10a1c7a3c2 kernel: expose tapscript v2 script evaluation
4d9d46470a04 script: extract tapscript v2 witness execution
16c0ca94bf8f kernel: add varops to ScriptTraceFrame in Kernel API
599682f1815f kernel: add varops to script tracer
01d61cb08ebd script: extend trace hooks to tapscript v2 evaluation
231b0b2c80d7 kernel: Add script tracer
82cfa2cd9c47 bench: add BIP 440 varops calibration tool
a87b56a1fdae fuzz: add tapscript v2 and Val64 targets
b45d72f04a78 rpc: report script restoration deployment
9afee38c25c0 test: add tapscript v2 functional coverage
133151204f20 test: add BIP 440/441 unit coverage
a5a612b4bb3a script: support tapscript v2 in signing and utilities
0575a794c6b7 script: implement tapscript v2 evaluation
7be8cda33f5d consensus: add BIP 441 script restoration deployment
ecf3a0eb3e49 script: copy EvalScript for tapscript v2
004f8a6fc936 script: plumb transaction-wide varops budgets
cf43ac7d1f77 script: define tapscript v2 limits and opcode classification
ecd26db635fe script: add size-accounting stack for tapscript v2
ecc7779e4f74 test: add Val64 unit coverage
5c526ff67219 script: add Val64 for BIP 441 arithmetic
b6f80778126e script: define varops budgets and costs
ced4c6e6ab47 Merge bitcoin/bitcoin#36321: net: cast vector size to avoid overflow, truncation, sign change
e7a18350967f Merge bitcoin/bitcoin#36235: ci: fail iwyu job on compiler errors instead of silently logging them
05bc2f53ce0c Merge bitcoin/bitcoin#36024: ci: Make `test_bitcoin-qt.exe` output visible
ed7dd7cf4e15 Merge bitcoin/bitcoin#34371: wallet: allow importprunedfunds for spending transactions
f80aaf4bd7c6 Merge bitcoin/bitcoin#29278: Wallet:  Add `maxfeerate` wallet startup option
e19f83e944e9 Merge bitcoin/bitcoin#35984: sign: skip signing SIGHASH_SINGLE inputs with no corresponding output
ab8033566757 Merge bitcoin/bitcoin#36135: fuzz: test HTTPRequest state machine in http_request
65e075f89fdd Merge bitcoin/bitcoin#35696: i2p: update leaseset encryption types
d26f19c77c7b Merge bitcoin/bitcoin#35948: init: correct first-run disk space estimate
90374132737e Merge bitcoin/bitcoin#36335: Remove my key from SECURITY.md
f6b19b190b2e Merge bitcoin/bitcoin#36322: init: fee estimates can lag behind the chain after restart
5820537e1b4b Remove my key from SECURITY.md
da03790dbb11 Merge bitcoin/bitcoin#36324: test: Fixup MAX_BODY_SIZE http throttling test
37969fc15211 Merge bitcoin/bitcoin#36312: net: don't discourage private broadcast peers
e8e7e91a1144 Merge bitcoin/bitcoin#36284: wallet: don't double discard output groups with avoidpartialspends
8c27c3852641 init: drain callbacks before saving fee estimates
08729e6ef9c9 test: characterize fee callback loss at shutdown
308cd670195d net: cast vector size to avoid overflow, truncation, sign change
bfdcd9797cd1 Merge bitcoin/bitcoin#35890: doc: use overwrite (>) instead of append (>>) for one-shot PSBT files in offline-signing-tutorial.md
de9f42c497df Merge bitcoin/bitcoin#36316: ci: use POSIX threads for Nix Windows builds
fa2c62036b1d test: Fixup MAX_BODY_SIZE http throttling test
5c726f2058a4 Merge bitcoin/bitcoin#35675: mining: add block template manager
26241482e530 Merge bitcoin/bitcoin#35923: mempool: count unbroadcast txids in memory usage
a632d4f697f3 Merge bitcoin/bitcoin#35177: test: use MiniWallet for getblockstats test data generation
be5d0b5503fa Merge bitcoin/bitcoin#35301: Silent Payments: Implement bip352 (take 2)
b3f846ec3e5c Merge bitcoin/bitcoin#35440: wallet: check descriptor cache xpub length before decoding
dc3cd1969ed3 Merge bitcoin/bitcoin#35809: contrib: add deterministic fuzz coverage mode
81e2de897dbc Merge bitcoin/bitcoin#35893: test: cover submitpackage other-wtxid for same-txid-diff-witness
eab6630addc3 net: don't discourage private broadcast peers
31754523cd81 Merge bitcoin/bitcoin#36309: private broadcast: clarify claims, mark as experimental
9fd18aedb088 ci: print Windows cross compiler thread model
1d59d5ad2550 ci: use POSIX threads in Nix Windows cross shell
e3ee0ebd89e9 tests: add BIP352 test vectors as unit tests
f133d1373af6 common: add bip352.{h,cpp} secp256k1 module
96d487c11e8f ci: raise BuildKit step log limit
44997c391afc Add "sp" HRP
356c91f6ae51 crypto: add KeyPair::GetSecpKeypair
2b95b45a9abd Merge bitcoin/bitcoin#35813: wallet, rpc: Add listrawtransactions RPC
71c30b608382 Merge bitcoin/bitcoin#27052: test: rpc: add last block announcement time to getpeerinfo result
d36f4a1788da Merge bitcoin/bitcoin#36155: doc: remove json quoting from gettxoutsetinfo and getblockstats cli examples
b7211ba80cde Merge bitcoin/bitcoin#34717: p2p: remove m_getaddr_sent
7ee3d622e5fa Merge bitcoin/bitcoin#35752: wallet: make encryption state updates atomic
f41372998377 private broadcast: mark feature as experimental
2630d8e6c9d6 doc: scope claims about private broadcast feature
248ce46faf70 Merge bitcoin/bitcoin#35619: test:  ExtendedPrivateKey follow-ups
995da8678a02 Merge bitcoin/bitcoin#36302: ci: simplify macOS codesign check
db7ec4fb9762 refactor: (de)serialize CExtKey/CExtPubKey through streams
cb69853fc160 wallet: check descriptor cache xpub length before decoding
f86cbf53eb3e Merge bitcoin/bitcoin#36310: rpc: clarify that `getaddrmaninfo` counts unique addresses
bbc40ede1ba6 Merge bitcoin/bitcoin#36261: test: cover PSBT unknown field merging
f839ee1afb0f Merge bitcoin/bitcoin#35887: ipc: use std::optional for checkSpawned(), add tests and rename arg -ipcfd to -ipcchild
dac53c585b6a Merge bitcoin/bitcoin#31888: contrib: Support re-writing linearize-data dumps
0d34b6e9287f rpc: clarify that getaddrmaninfo counts unique addresses
4ecbc82d412f Merge bitcoin/bitcoin#36278: Update minisketch subtree to latest master
622817f097d6 ci, iwyu: fail job on compiler errors instead of ignoring them
5ca3773414df Merge bitcoin/bitcoin#36298: Update crc32c subtree to latest master
5945cb83ddcf contrib: add deterministic fuzz coverage mode
69ad2a67f26c Merge bitcoin/bitcoin#36283: kernel: expose transaction version
716e8605e5c8 ci: simplify macOS codesign check
bb5296576e8f Merge bitcoin/bitcoin#36206: build: drop use of `OBJC_OLD_DISPATCH_PROTOTYPES`
170d37983c7a Merge bitcoin/bitcoin#36198: http: Add missing LIFETIMEBOUND annotations
c08489fb2741 Merge bitcoin/bitcoin#36288: build: Revert remove `cmake/script/CoverageFuzz.cmake`"
4a583f38ef2f Merge bitcoin/bitcoin#36230: wallet: Improve `HasWalletDescriptor` performance and other canonical descriptor string followups
5f05d8c5f6dd Merge bitcoin/bitcoin#36297: rpc: Correct invalid OpenRPC defaults
b7f740c594ba rpc: Correct OpenRPC default metadata
2c8372db1131 Update crc32c subtree to latest master
5181c61d734f Squashed 'src/crc32c/' changes from efb8ea04e4..60bcf13edf
83434f7683e4 kernel: expose transaction version
7c311f5c6c3e doc: Add release notes for listrawtransactions
b377786df14e test: Add functional test for listrawtransactions
605c4fd3aee0 wallet, rpc: Add listrawtransactions RPC
ba6c179ba07c wallet, rpc: allow omitting parent_descs from TransactionDescriptionString
d48e76e689bb Merge bitcoin/bitcoin#36286: crypto: Fix MuHash3072 division by itself
719324977a41 test: Check that ineligible output groups are discarded only once
6d2414542b86 wallet: reuse unlock and passphrase change errors
593554622e2c wallet: return passphrase errors with Expected
f949b3ba2ad7 wallet: publish descriptor keys after writes
e3712b7d492f test: characterize descriptor insertion failure
bd558107784c wallet: abort failed descriptor key erases
537e79191585 test: cover encrypted descriptor key insertion
d8a6f5e48d6b wallet: abort failed descriptor key writes
14ce3fdb493a test: characterize descriptor key failures
5bc0be16fe4d wallet: reject failed passphrase changes
ee6d45a07e3a test: characterize passphrase write failure
2daa2f94f4a2 wallet: restore lock state before re-encryption
8b23fa47737a wallet: abort failed encryption transactions
e6c374d30201 test: characterize encryption transaction failures
70381010c0af refactor/test: add wallet failure injection
0e9018e8b656 Merge bitcoin/bitcoin#36249: net, rpc: Asmap version improvements/follow-ups
61edcf925325 test: Add 31.1 to wallet back compat
ebf2f69ee819 test: Simplify miniscript descriptor check in wallet back compat
f6cbcfd98a00 wallet: Document WalletDescriptor::UpdateFrom
f0f6dce84963 descriptor, doc: Clarify miniscript CompatDescriptorHash
405b1d6055e7 descriptor: Explicitly handle use_apostrophe cases
64abb3e8d361 wallet: Compare descriptors by hash of canonical string
bb5e8320d76f wallet: Make WalletDescriptor's descriptor const
4cc00f7bc04b wallet: Remove WalletDescriptor's default constructor
dc3e2bc6df68 wallet, rpc: extract PushTxAmountAndFee/PushTxDecoded helpers
b388f9bd0d2b crypto: Fix MuHash3072 division by itself
4f624bb82ddf Revert "build: Remove `cmake/script/CoverageFuzz.cmake`"
ad97933af248 Merge bitcoin/bitcoin#36285: refactor: Use static const over inline const to work around ld64 bug
a604a7647588 Merge bitcoin/bitcoin#36282: Update leveldb subtree to latest master
fa8fefb29b6c refactor: Use static const over inline const to work around ld64 bug
2bbbeaa663ec Merge bitcoin/bitcoin#34861: wallet: Add importdescriptors interface
20307f0ac0e1 wallet: don't double count discarded output groups with avoidpartialspends
7528f799d99d Update leveldb subtree to latest master
4be88b9bce45 Squashed 'src/leveldb/' changes from 13da2d6758..53a1914e00
749bd10fdf01 Update minisketch subtree to latest master
fcb2d832b2d9 Squashed 'src/minisketch/' changes from 4a179c61e3..a12f5de1c9
21e4ea8134d8 test: cover PSBT unknown field merging
59f7f3d07d95 build: drop use of OBJC_OLD_DISPATCH_PROTOTYPES
b82158554372 Merge bitcoin/bitcoin#33593: guix: Use UCRT runtime for Windows release binaries
0b353a9e872e netgroup: Cache asmap version
fb68c27002a7 Merge bitcoin/bitcoin#36260: torcontrol: Use reconnect backoff after dropped connections
7dedc4545a49 Merge bitcoin/bitcoin#36256: guix: Update osslsigncode to 2.14
a687188101af Merge bitcoin/bitcoin#36160: refactor: Minor improvements to HTTP unit tests
651e44f32797 Merge bitcoin/bitcoin#36194: kernel: expose block header Merkle root
d32a515fb0bb Merge bitcoin/bitcoin#34566: feature: Use different datadirs for different signets
59a465ce3782 guix: Validate codesigned windows binaries
66eeac216ad5 guix: Use osslsigncode 2.14
4556ef626754 torcontrol: Apply reconnect backoff after dropped connections
57721f8074c2 Merge bitcoin/bitcoin#36253: fuzz: Use `LIMITED_WHILE` in `connect_block`
dadca55f60ad Merge bitcoin/bitcoin#36251: rest: add `generated` and `height` to spenttxouts JSON
de394ad3b739 Merge bitcoin/bitcoin#36207: kernel: add wtxid accessor
f69e56bc1c43 [doc]: add release notes
40ab7aa90de5 [wallet]: warn when `-maxtxfee` conflicts with `-minrelaytxfee`
df1feeb487dc [wallet]: enforce `-maxfeerate` on wallet transactions
d2c832e9e79d [util]: add a new transaction error type
633c08d3f7af [node]: update `BroadcastTransaction` to check fee rate limit
7bfce65801bf [wallet]: add `maxfeerate` wallet startup option
607568f2b002 [wallet]: update `max_fee` to `max_tx_fee`
6b913b6224bd doc: add missing verb to make sentence readable
a9c39696f4be scripted-diff: rename `m_default_max_tx_fee` to `m_max_tx_fee`
16278c28166b kernel: expose block header Merkle root
51ddab532cb3 Merge bitcoin/bitcoin#35819: test: add coverage for untested descriptor parse error paths
2c249dbdf5c9 wallet: Add an importDescriptors() interface for the wallet
3be5f401370e wallet: add CheckDescriptorRangeBounds
43bba1ed74f8 kernel: expose transaction witness presence
31224d068077 kernel: expose transaction wtxid
a9cd985d0a54 wallet: Move ImportDescriptor and ProcessDescriptorsImport to imports.cpp
c9650d8f0e2f wallet: rename ProcessDescriptorImport to ImportDescriptor and add ProcessDescriptorsImport
a40ee4ec2659 wallet: rpc: refactor: ProcessDescriptorImport returns ImportDescriptorResult
48d3d717fb6e wallet, util: Add HandleWalletErrorCode
04c73a91d2cc wallet: Add ImportError struct and new WalletError codes
975215618505 wallet: rpc: refactor: Extract UniValue processing from ProcessDescriptorImport
f1f61af35727 wallet: Add ImportDescriptorRequest structs
7375124f4c9a wallet: refactor: make is_ranged no longer an optional
90485103c67d wallet: lower the minimum timestamp to 0
380d3ae0deab wallet: rpc: Use std::optional in GetImportTimestamp
e0229ca68515 fuzz: Use LIMITED_WHILE in connect_block
1566a4767afd rest: add generated and height to spenttxouts JSON
cff00c547e74 Merge bitcoin/bitcoin#34743: p2p: don't disconnect manual peers for block stalling
a09a81ebfce3 Merge bitcoin/bitcoin#35961: depends: Update `boost` package to 1.92.0
76343a09f802 Merge bitcoin/bitcoin#36186: test: return False for a too-short ECDSA signature
5551d39b202b doc: document manual peer stalling behavior
24628d3ae7dc test: cover manual peer block download cooldown
4c79f3a34d00 test: support manual connections in addconnection
698b5bbf3a0a p2p: pause stalling manual block downloads
c38e0d20c3c0 Merge bitcoin/bitcoin#36093: test: ipc should reject invalid json
a49fa1f6e698 Merge bitcoin/bitcoin#35849: init: don't suggest -reindex-chainstate for recovery on a pruned node
dd3c62c55fdc Merge bitcoin/bitcoin#36083: test: cover getrawtransaction on a stale block via txindex
36c1b149fe37 Merge bitcoin/bitcoin#35472: test: add coverage for feebumper uncomputable cluster error path
7c4facb51bbe Merge bitcoin/bitcoin#36081: rpc: add bestblockhash to getmininginfo
c1e9d15406fb doc: Describe how to verify the asmap in use
87ce88c1b53c rpc: Add asmap_version to getnetworkinfo
dd5a8a63b223 test: Check embedded asmap version log and addrman re-bucketing
d9d057841029 Merge bitcoin/bitcoin#34681: wallet: move rescan logic into ChainScanner and wallet/scan
2ca83ba2622a Merge bitcoin/bitcoin#35436: wallet: Add addHDkey interface
0bc87365cac1 init: Log asmap version from NetGroupManager
fdfd196908e1 rpc: Reuse AsmapVersion in exportasmap
adca0a97406d Merge bitcoin/bitcoin#36247: iwyu: Always keep `bitcoin-build-info.h` header
1aa500b6b7d8 iwyu: Always keep `bitcoin-build-info.h` header
d25470d992b7 Merge bitcoin/bitcoin#35975: wallet: Fix `CWalletTx` malleated transaction metadata sync
2c6047df8746 test: Bumping a transaction prevents bumping malleations
a44f9ad35058 test: Test rbf metadata sync of malleated tx
752fd437c7cf wallet: persist synced metadata and do not sync on load
31eedfc6fc8b wallet: simplify wtx metadata sync
6c16d76f790c wallet: sync tx replacement metadata to malleated txs
34533d5d22b6 wallet: Clarify IsEquivalentTo is actually checking malleation
b973a355c4eb Replace CTransaction::operator== with Equals that has options
8df006f23383 wallet: skip signing SIGHASH_SINGLE inputs with no corresponding output
3d7d190b6995 ci: enforce iwyu for block template manager
ffe3a631f38b node: remove NodeContext::mining and EnsureMining
6c71166bcfa4 test: create templates via BlockTemplateManager
ec4f24ef181a rpc: wait for tips via BlockTemplateManager
8372721f20e2 rpc: build generation templates via BlockTemplateManager
38556f817e06 rpc: only copy the header in getblocktemplate
951fac807d37 rpc: do not copy template data in getblocktemplate
0998c0bbdfcc rpc: build getblocktemplate via BlockTemplateManager
011cbfbcd2e3 rpc: route getblocktemplate internals through node
400ac328c91b interfaces: create block template via BlockTemplateManager
037d3519f2ff node: move tip and wait helpers into BlockTemplateManager
07964c525d47 miner: move SubmitBlock into BlockTemplateManager
bcdadf2b7111 node: move mining_args to BlockTemplateManager
482a5d27124c node: introduce BlockTemplateManager
2efaa6763bd2 wallet: simplify and restrict SyncMetaData to malleated txs
fc718ade4fce test: Test that metadata is synced to malleated transactions
17817818da3c Merge bitcoin/bitcoin#36228: ci, iwyu: generate embedded ASMap header explicitly
1cbbf64ea810 ci, iwyu: generate embedded ASMap header explicitly
1afa0cd70a09 cmake: add raw data header generation target
0476444e33bd Merge bitcoin/bitcoin#35935: wallet: Avoid unnecessary wtxvariant rewrites
feeb00af8cf3 cli: Add -signetchallenge info on RPC auth error
c47ea370dc9f doc: Update documentation for signet datadir
6f8c43f9efc6 test: Add signet datadir tests
9b37d42b23be Use different datadirs for different signets
6bdcae3f768b refactor: Import signet constant and helper from kernel/signet.h
f3fec67c3eeb Merge bitcoin/bitcoin#36227: Pre 32.x branching updates
9a48134aea11 docs: Update bips.md
57d3d0013054 build: Bump version to 32.99
4d463de80408 Merge bitcoin/bitcoin#36226: doc: Move release notes to wiki ahead of branch-off
5df082721cdb doc: Move release notes to wiki ahead of branch-off
8c64ff02425d Merge bitcoin/bitcoin#34914: contrib: replace deprecated --deep codesign flag, fix accidental --verify skip on ci
501ba4cad4b3 Merge bitcoin/bitcoin#36196: contrib, kernel: fixed seeds, chainparams, headerssync params, and assumeutxo updates pre-32.0
92986c736223 Merge bitcoin/bitcoin#36213: Release: 32.0 translations update
1a4e034ddbdc Merge bitcoin/bitcoin#36209: guix: cache GUI depends separately
a6b330973e64 Merge bitcoin/bitcoin#36150: indexes: set prune lock to genesis before first block
fed50258f8f0 kernel: add recent assumeutxo snapshot
7eb4cec1a983 kernel: Update headerssync params
9b2299514028 indexes: set prune lock to genesis before first block
fc6923cec5b4 Merge bitcoin/bitcoin#36215: asmap: Make version match externally computed hashes
2c2667eaa902 qt: 32.0 translations update
51b540c59aae Merge bitcoin/bitcoin#36218: build: avoid `pipe2` on Darwin (for now)
a42da819a96c Merge bitcoin/bitcoin#36174: http: throttle send buffer when client stops draining
da7d7dbc7c00 contrib: remove deprecated --deep codesign flag
9c7748315d31 build: avoid pipe2 on Darwin (for now)
1fe87c250547 guix: cache GUI depends separately
7ee94bf4b023 asmap: Make outputted ASMap version match externally computed hashes
4a15e0b6f9c5 Merge bitcoin/bitcoin#36195: test: `get_previous_releases.py` use `PREVIOUS_RELEASES_DIR`
b5ef74b248cd Merge bitcoin/bitcoin#36211: doc: Fix PR reference in productivity guide
5a5b1ed7471f Merge bitcoin/bitcoin#36201: Update embedded asmap to 1788801420
b3a9b84b37c0 doc: Correct upstream-pull reference
fc4f35fdce4d Merge bitcoin/bitcoin#35513: rpc: help metadata fixes
af83bacdf9d6 Merge bitcoin/bitcoin#36202: doc: add rel note about potential CJDNS removal
ecdf9db906b4 test: get_previous_releases.py use `PREVIOUS_RELEASES_DIR`
28b69e298884 http: stop processing requests from a client when send buffer is full
ad4eeaf859c4 ci: avoid modifying GOAL in 03_test_script.sh
7e75b3b922f9 Merge bitcoin/bitcoin#36116: iwyu: Fix warnings in `src/rpc` and treat them as errors
9d4325f40316 Merge bitcoin/bitcoin#36203: Update secp256k1 subtree to latest master
3c91db262b74 net: Update embedded asmap to 1788801420
ffe6aa57fef1 Merge bitcoin/bitcoin#36199: net: treat RFC 9637 new IPv6 documentation range as invalid
00d0c5107b92 test: return False for a too-short ECDSA signature
ba9050ac9b35 Update secp256k1 subtree to latest master
da3401e50fc1 Squashed 'src/secp256k1/' changes from 687155df6b..a7f264373e
7d54a88b4453 iwyu: Fix warnings in `src/rpc` and treat them as errors
462ff18d79bd iwyu, refactor: Fix includes in some source files
2285d1931aa8 Merge bitcoin/bitcoin#35468: ci, iwyu: Request IPC file generation explicitly
b48a27691ded fuzz: assert invalid addresses are not routable
e6c775c6d63a net: treat RFC 9637 new IPv6 documentation range as invalid
005ea9f42e50 Merge bitcoin/bitcoin#35778: scripted-diff: Use C.UTF-8 locale in all shell scripts
064122af269b Merge bitcoin/bitcoin#36181: ci: Upgrade IWYU to 0.27 compatible with Clang 23
99f81fe0296b Merge bitcoin/bitcoin#35303: policy: fix negative CFeeRate::ToString() formatting
46654094beef lint: Use C.UTF-8 locale only in shell scripts
d6a2341632a0 doc: add rel note about potential CJDNS removal
fb26bc9cfefe Merge bitcoin/bitcoin#35445: wallet, descriptor: Revert `StringType::COMPAT` for Miniscript expressions and drop the concept of a Descriptor ID that can be validated
494300f4cc92 Merge bitcoin/bitcoin#35796: depends: fix IPC listeners on macOS dying when accepting a dead socket
42d93d40de35 kernel: update chainTxData
a25511dfbcd3 kernel: update defaultAssumeValid and minimumChainWork
67726a63a41f kernel: update assumed blockchain and chainstate sizes
fcfc1df041b8 contrib: Update fixed seeds
6385aa1df8ab contrib: Update makeseeds for 30.3 and 31.x
0ae3b40c274a test: characterize startup with newly added prune and index
4c9d55a6125a Merge bitcoin/bitcoin#36076: psbt: preserve sighash type when merging inputs
59fd053dac83 Merge bitcoin/bitcoin#34931: validation: abort on DB unreadable coins instead of treating them as missing
33a363ea2508 Merge bitcoin/bitcoin#36168: PSBT: Make input/output `Merge()` methods return void
0b46fc9c5935 http: Add missing LIFETIMEBOUND annotations
ea785a31f783 psbt: preserve sighash type when merging inputs
013b0b2de481 Merge bitcoin/bitcoin#36176: wallet: avoid a crash when creating a wallet with -nosettings
2ed4be47213f Merge bitcoin/bitcoin#36113: psbt: fix rendering for invalid long sighash type field
19b0ff2fa050 Merge bitcoin/bitcoin#36136: rpc: remove stale "canonical form" claim from getdescriptorinfo help
0c6f2af97b5c Merge bitcoin/bitcoin#36127: wallet: remove unused code
3b944f194fdd iwyu: Switch to generated Clang intrinsics mapping file
1b5ee3be5948 ci: Upgrade IWYU to 0.27 compatible with Clang 23
6ed7c535adb0 iwyu: Prefer canonical headers
35104a8654f8 Merge bitcoin/bitcoin#35949: miner: Enforce Murch-Zawy rule (BIP54)
51db0e7696ed Merge bitcoin/bitcoin#36096: rpc: avoid quadratic JSON construction when keys are unique
161a9add8e02 Merge bitcoin/bitcoin#35164: test: cover P2SH sigop counting in test_witness_sigops
a174dd4017cf Merge bitcoin/bitcoin#36161: build: Remove `cmake/script/CoverageFuzz.cmake`
b557fb2728e9 Merge bitcoin/bitcoin#36164: util: diagnose dangling views of temporary strings
5f0daa0eae80 Merge bitcoin/bitcoin#36169: http: Use SO_EXCLUSIVEADDRUSE on Windows
a34fc8b11a42 wallet: handle disabled startup settings
b7113e6f42c2 test: characterize disabled wallet settings
f0c839ace5a2 Merge bitcoin/bitcoin#36123: http: throttle per-connection reads while a request is in flight
0f206eed51e2 Merge bitcoin/bitcoin#36130: test: add tests in transaction_tests.cpp covering live mutants
0b43dea121fc Merge bitcoin/bitcoin#36163: test: Add coverage for unsatisfiable locktime combination in PSBT `ComputeTimeLock()`
3596658af5eb Merge bitcoin/bitcoin#36166: validation: refactor: encapsulate Chainstate::m_target_blockhash
f32bfb25934f Merge bitcoin/bitcoin#35738: coins: parallel input prevout fetching followups
bcb09b3f4aec qa: Verify HTTP listen port exclusivity
af65069fd15b windows: Use SO_EXCLUSIVEADDRUSE over SO_REUSEADDR
82deb69111f1 PSBT: Make input/output `Merge()` methods return void
f04b0c31627a refactor(test): Make test method use Uppercase, shorten enum values
6eea8e313cce refactor(test): Simplify HTTP response check
852f201e09cb validation: refactor: encapsulate Chainstate::m_target_blockhash
fca8fef8f903 fuzz: assert HTTP framing is independent of stream segmentation
b57b0dbebd56 util: annotate `Split` input lifetime
34c5dc0583dd util: annotate string view input lifetimes
c368de3eec9c fuzz: exercise the HTTPRequest state machine
00a5f9b7375e build: Remove `cmake/script/CoverageFuzz.cmake`
69a640e05ec0 test: Add coverage for unsatisfiable locktime combination in PSBT ComputeTimeLock
5ce3a0b4aab5 test: cover legacy sigops count CHECKMULTISIG inaccurately
a5fc82e2b140 test: cover enforce BIP68 to tx versions higher than 2
bba1d4150ee8 test: cover IsFinalTx requires every input to be SEQUENCE_FINAL
4519933391dd Merge bitcoin/bitcoin#36137: validation: use unused SetTargetBlockHash
4ec6ff022a4b Merge bitcoin/bitcoin#36100: ci: use LLVM 23 in *san, fuzz, *cross jobs
7f0c4020e8d3 Merge bitcoin/bitcoin#36118: test: tolerate race condition in interface_http.py
455080105835 validation: use unused SetTargetBlockHash
5ba9af6b6922 ci: pass LIBCXX_INCLUDE_TESTS=OFF to LLVM build
feb3bd46e4c8 clang-tidy: remove some performance-* options
b4bd12d3d5d6 ci: use LLVM 23 in *san, fuzz, *cross jobs
d840adb9da54 Merge bitcoin/bitcoin#36144: rpc: detail x-bitcoin-unit in openrpc help
f41b917f47cd Merge bitcoin/bitcoin#36145: qa: Use IP_PORTRANGE_HIGH on OpenBSD for dynamic port allocation
d5fbe61f55b2 Merge bitcoin/bitcoin#35958: net: align v2 message type validation with v1 range
64ab0a06979e Merge bitcoin/bitcoin#36148: test: Avoid unsafe memory race in index_reorg_crash shutdown
57a79c69627d doc: remove json quoting from gettxoutsetinfo and getblockstats cli examples
a51df9b0ecf6 test: tolerate race condition in interface_http.py
fab80e82c108 test: Avoid unsafe memory race in baseindex_no_commit_ahead_of_flush
b811aeabad94 Merge bitcoin/bitcoin#36048: util: keep wallet names literal in notification commands
fa0f14ef5e76 test: Avoid unsafe memory race in index_reorg_crash shutdown
faf9c8e8a12c test: Clarify index.GetSummary().synced state in index_reorg_crash
a34861d280b3 test: unify how to avoid the creation of the default wallet in nodes
3458837a0b76 test: use ExtendedPrivateKey in wallet_importdescriptors.py
59ebf558f345 qa: Use IP_PORTRANGE_HIGH on OpenBSD for dynamic port allocation
6f6b2bbde244 Merge bitcoin/bitcoin#35808: fuzz: reset connman state in p2p targets
e85e27976bfb rpc: detail x-bitcoin-unit in openrpc help
3d1004cb9b8f http: throttle per-connection reads while a request is in flight
db39de560109 doc: add `-walletnotify` security note
1f9dfabef641 refactor: use string views in `ReplaceAll`
469b0e59a29a util: make `ReplaceAll` literal
604d7e8fdd95 test: characterize walletnotify shell injection
4efaa6763a7e test: simplify `ReplaceAll` coverage
793e22eed586 test: cover getrawtransaction on a stale block via txindex
a84fbf9dfd2c test: name the getrawtransaction test nodes
74ddf1c0a0ef refactor: use structured bindings for map entries
21d5d5cb7390 rpc: append unique container keys directly
23e512a58e69 rpc: avoid quadratic prioritised transaction JSON
9f0543d69a13 wallet: remove unused DatabaseOptions members
dc0395c5858a Merge bitcoin/bitcoin#36112: ci: Exclude subtrees from iwyu
37c57bc5c297 Merge bitcoin/bitcoin#36065: test: refactor: Remove confusing ignore_errors=True
8157964e66ce Merge bitcoin/bitcoin#36134: doc: Correct comment about which subsystem detects lagging clocks
259553c6628a Merge bitcoin/bitcoin#36131: rpc: Improve two field's OpenRPC types
1dad06eff3d5 remove stale canonical form claim from getdescriptorinfo help
55390d1827c7 doc: Correct comment about which subsystem detects lagging clocks
fe3c92cfe0da Merge bitcoin/bitcoin#36102: util: Replace !ContainsNoNUL() with ContainsNUL()
d23b53e0cfbc fuzz: allow http_request inputs to reach MAX_HEADERS_SIZE
58dfcf29f6da Merge bitcoin/bitcoin#35351: net: Disallow invalid HeadersSyncState due to lagging clock
c0ed327845be Merge bitcoin/bitcoin#36103: validation: remove unused code
78e691ea10a1 rpc: Change listunspent's ancestorfees type to NUM
73fb9ced563c rpc: Fix private key type in signrawtransactionwithkey
128e5c6805a0 Merge bitcoin/bitcoin#35477: test: exercise Schnorr signature cache in txvalidationcache_tests.cpp
bbed824a64f0 wallet: remove unused warnings parameter from CreateFromDump
2f6aa41d3d19 wallet: remove unused WalletDatabase::m_refcount
f64b3fa70f6a wallet: remove unused CHDChain keypool index members
4afc7bc40d4f wallet: remove unused COutput::ToString
a0e9aac42802 wallet: remove unused DescriptorScriptPubKeyMan::AddDescriptorKey
56af5e072a0d fuzz: extract http_request parse and framing check into helpers
d2e24e951de4 Merge bitcoin/bitcoin#36054: test: add script_tests cases covering interpreter mutants
75f64e50c67d test: exercise node abort on UTXO deserialization failure
4652cd0d828a txdb: detect UTXO deserialization errors via CDBWrapper::TryRead()
5dfbb91b6cc5 dbwrapper: add TryRead() to distinguish errors from valid outcomes
ca7162cde58e Merge bitcoin/bitcoin#35868: rpc, wallet: fix invalid JSON in HelpExampleRpc curl examples
d0e777baf5e2 Merge bitcoin/bitcoin#36111: rpc: bound memory for overlong Bech32 errors
fa3971011d1e ci: Exclude subtrees from iwyu
fa8566152a05 refactor: Bump old copyright header in univalue
05e49b342faa Merge bitcoin/bitcoin#36107: iwyu: Fix warnings in `src/init` and treat them as errors
1fca81960abc psbt: fix rendering for invalid long sighash type field
f14569f97d08 test: ipc should reject invalid json
858814146dd2 test: refactor Cap'n Proto exception assertions
7fcaccd9d0b7 bech32: bound overlength error locations
1bb5820b4411 wallet: Add addhdkey interface
1ad864127832 iwyu: Fix warnings in `src/init` and treat them as errors
82867073d6c3 wallet: Use WalletError for AddHDKey failures
f8769fc0b124 wallet: Move addhdkey logic into CWallet
e1a2b25d6c3b test: expand addhdkey coverage for locked wallet and bad key
21d4e0ba759b rpc, wallet, test: fix invalid JSON in HelpExampleRpc curl examples
15630c7b852c validation: remove unused m_chainparams from ATMPArgs
fa7be0a8df9d test: refactor: Remove confusing ignore_errors=True
84c5290149a3 validation: remove unused args from PolicyScriptChecks
a9d5cf7f9901 validation: remove unused args from ConsensusScriptChecks
d26dc09ee33e validation: remove unused total_vsize arg from PackageRBFChecks
2cb6c156e18b validation: remove unused PackageMempoolAcceptResult constructor
8d930981e9e1 refactor: Replace !ContainsNoNUL() with ContainsNUL()
f78834fac916 test: add missing coverage for CDBWrapper::Read() errors
1548d15de618 walletdb: Rename WriteTx to WriteFullTx
9a0628d9320d wallet: Write tx to database during CWalletTx::Update
74e1cd38f2a3 rpc: add bestblockhash to getmininginfo
ec2adf3c51ca test: Check miniscript descriptor h and apostrophe equivalence
a2d001b57c5f test: Enforce descriptor reimport is an update
e2b2f1c5c6f7 descriptor: Rename DescriptorID to CompatDescriptorHash
6ad31c062c70 test: Add 31.0 to wallet backwards compatibility test
2a6c53371be7 wallet, spkm: Treat Descriptor ID as an opaque SPKM ID
62e826fa7617 wallet: Update WalletDescriptor from another one instead of overwriting
1113f7590ed0 wallet, export: Include descriptor cache when exporting descriptors
9fc7b2618b6a spkm: Remove DescriptorSPKM constructor that doesn't take a descriptor
770ff64bd7fd test: Add v30.2 and Miniscript to wallet backwards compatibility test
35d6a60dbf5a descriptor: Add ToCanonicalString
1d87af26ce14 descriptors: Remove default StringType from PubkeyProvider::ToString()
1c7f9aaf758f miniscript: Don't use StringType::COMPAT
e07224f2d554 depends: fix IPC listeners on macOS dying when accepting a dead socket
b07810544f15 Remove MSVCRT-specific workarounds
7c86a370c8a2 doc: Update Windows build docs to reflect migration from MSVCRT to UCRT
f5910d1a3aaa ci: Remove Windows + MSVCRT jobs for cross-compiling and native testing
55f86ab1624a guix: Use UCRT runtime for Windows release binaries
4a12773f2697 test: cover DERSIG rejects a non-compound signature type
86c7fb910d67 test: cover OP_16 does not count towards the opcode limit
331bf798819c test: cover OP_WITHIN must pop all 3 elements
3bb87bc61b48 test: cover OP_FROMALTSTACK must pop the altstack
70701de7c555 ci: Make `test_bitcoin-qt.exe` output visible
ff3e2e4ebdce net: Trigger process abort when behind start block MTP
1883cecb4d05 test: Characterize lagging-clock headers presync
05e7d5731840 ipc, test: add checkSpawned() unit tests
42215b85811a init: correct first-run disk space estimate
e014e5bb61c1 miner: Enforce murch-zawy rule (BIP54)
d29b22d07897 fuzz: reset connman state in p2p targets
4200f8163a55 policy: fix negative CFeeRate::ToString() formatting
94cb65945738 depends: Update `boost` package to 1.92.0
cc577de95467 net: align v2 message type validation with v1 range
9054f7cde43a test: cover submitpackage other-wtxid for same-txid-diff-witness
1c557a380288 wallet: Add WriteTxMetadata to write just the tx record
e67f75cf7d3e wallet/scan: extract progress tracking helpers from `ChainScanner::Scan`
062aa3ce56d7 wallet/scan: extract QueueNextBlock
3655beb8f153 wallet/scan: extract block scanning logic to ScanBlock
4535dc0c7885 wallet/scan: extract block filter matching to ShouldFetchBlock
72a37031d325 wallet/scan: move WalletRescanReserver to scan files
0274e80130af wallet/scan: move RescanFromTime to ChainScanner as ScanFromTime
db9185a44464 wallet: introduce ChainScanner as a CWallet member
525163c2413e wallet/tests: pin rescan behavior
d180b891a290 test: add mixed P2SH/witness sigop accounting
c2da52d3660f wallet: allow importprunedfunds for spending transactions
db21e03c9d50 mempool: include unbroadcast txid memory
8d5c4a9290b0 test: characterize unbroadcast memory accounting
be30864ed1a6 doc: use overwrite (>) instead of append (>>) for one-shot PSBT files in offline-signing-tutorial.md
8bca7555f832 ipc, refactor: rename arg -ipcfd to -ipcchild
bd3a38f10ab7 ipc, refactor: return std::optional<mp::SocketId> from checkSpawned()
a31eb8bfa412 ci, iwyu: Request IPC file generation explicitly
0b3bb071036a test: add coverage for untested descriptor parse error paths
8e4b7ab7258a fuzz: use per-level fetch scopes in coinscache_sim
5292386b785a doc: improve CoinsViewOverlay documentation
d552c52b081c coins: log error reason when prevout fetch submission fails
2ffaa6e6a7db coins: delete Sync and SetBackend on CoinsViewOverlay
330022993fb9 coins: filter coinbase txid from parallel input fetching
adbff4d44286 init: don't suggest -reindex-chainstate for recovery on a pruned node
8976ba50a2b9 rpc: require connman in getnetworkinfo
975229580f74 rpc: Fix inaccuracies in RPC help docs
47632ab2a387 test: add coverage for feebumper uncomputable cluster error path
982ee649381f lint: Skip `libmultiprocess` subtree in `lint-shell-locale.py`
1194918a5d9c scripted-diff: Use C.UTF-8 locale in all shell scripts
13ce46ba1a79 doc: add release note for 27052
5d5397d84108 test: add functional test for block announcement time tracking
7d3d04e925c7 rpc: add last_block_announcement to the getpeerinfo output
26a25162a48a net: add m_last_block_announcement to CNodeStateStats
bb8bca630a8a change m_last_block_announcement type from int64_t to NodeClock::time_point
6e60c362bc1e test: add P2SH sigop counting coverage
412540e18d87 i2p: update leaseset encryption types
3ba1bbfa3f85 test: exercise Schnorr signature cache in txvalidationcache_tests.cpp
198b36bc85d5 test: respect "TAPROOT requires WITNESS" rule in `ValidateCheckInputsForAllFlags`
e78a2a0d00cf test: refactor: simplify tx vin/vout creation in txvalidationcache_tests.cpp
b7cbd804284b test: use MiniWallet for getblockstats test data generation
c8ee319fffa1 net: remove m_getaddr_sent
a1ecda260996 test: delete redundant addr relay assertion
e9dc16194b47 correct the linearize-data script (minor)
REVERT: e8a8daf3fad1 kernel: Add script tracer

git-subtree-dir: libbitcoinkernel-sys/bitcoin
git-subtree-split: 38aedda9e983f6dd1df7f3ec7bc5f1d0782e9459
@alexanderwiederin
alexanderwiederin force-pushed the varops_kernel_script_tracer branch 6 times, most recently from c1e2f7c to ea334e7 Compare October 7, 2026 12:55
Bind btck_tapscript_v2_eval and the owned btck_ScriptStack it takes its
initial stack from, along with the status codes, the spend context
struct and the sentinel for running unmetered.

btck_ScriptStack is a separate type from btck_ScriptEvalStack: the
latter is a borrowed view into a live evaluation handed to a trace
callback, this one is created and destroyed by the caller.
Add eval_tapscript_v2, which runs a tapscript v2 (BIP 440/441) leaf
script against a caller-supplied ScriptStack. Evaluating one previously
meant building a whole taproot spend around it; this is the short path
for when the script itself is the thing under test, and pairs with
ScriptTracer for stepping through it.

Setup failures and evaluation failures stay on separate channels: Err
mean the evaluation could not run, while a script that ran and was not
staisfied comes back as Ok(TapscriptV2Result::Invalid) with the
interpreter's script error and the unspent varops budget.
@alexanderwiederin
alexanderwiederin force-pushed the varops_kernel_script_tracer branch from ea334e7 to 3405ed8 Compare October 9, 2026 08:48
@alexanderwiederin
alexanderwiederin force-pushed the varops_kernel_script_tracer branch from 3405ed8 to 5340fc7 Compare October 13, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant