Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
490 commits
Select commit Hold shift + click to select a range
7e18e2b
Merge bitcoin/bitcoin#32624: fuzz: wallet: add target for `MigrateToD…
sedited Mar 19, 2026
c0d3d49
Merge bitcoin/bitcoin#34704: validation: Explicitly move blocks to va…
fanquake Mar 19, 2026
445143b
wallet: document structured importdescriptors errors
satsfy Mar 19, 2026
658e68f
scripted-diff: Rename `WAIT_TIMEOUT` to `TEST_WAIT_TIMEOUT`
hebasto Mar 19, 2026
3c9e421
Merge bitcoin/bitcoin#34846: kernel: Add API getter functions for tim…
sedited Mar 19, 2026
c53021b
Merge bitcoin/bitcoin#34499: miniscript: Use valid script in test, et…
sedited Mar 19, 2026
6072a2a
wallet: feebumper, fix crash when combined bump fee is unavailable
furszy Mar 19, 2026
6d2952c
serialize: Add missing `<span>` header
hebasto Mar 10, 2026
b14f2c7
tests: applied PYTHON_GIL to the env for every test
kevkevinpal Mar 19, 2026
3ca3e51
Merge bitcoin/bitcoin#34684: refactor: Enable -Wswitch in exhaustive …
achow101 Mar 19, 2026
bc1c540
Merge bitcoin/bitcoin#29060: Policy: Report debug message why inputs …
achow101 Mar 19, 2026
14053d8
Merge bitcoin/bitcoin#34550: guix: update time-machine to c5eee3336cc…
achow101 Mar 19, 2026
93e8bcc
Merge bitcoin/bitcoin#32442: doc: guix: Troubleshooting zdiff3 issue …
achow101 Mar 19, 2026
d58e0ad
Merge bitcoin/bitcoin#33215: Fix compatibility with `-debuglogfile` c…
achow101 Mar 19, 2026
d14293c
Merge bitcoin/bitcoin#34859: ci: Retry on intermittent Windows genera…
fanquake Mar 20, 2026
b425a81
Merge bitcoin/bitcoin#34868: scripted-diff: Rename `WAIT_TIMEOUT` to …
fanquake Mar 20, 2026
f80bf51
Merge bitcoin/bitcoin#34869: tests: applied PYTHON_GIL to the env for…
fanquake Mar 20, 2026
3333c50
refactor: Use NodeClock::time_point for m_addr_token_timestamp
Dec 12, 2025
faaea78
refactor: Use current_time over redundant call to Now()
Dec 12, 2025
fa9f434
test: Allow time_point in boost checks
May 6, 2025
6e295d8
Merge bitcoin/bitcoin#34059: refactor: Use NodeClock::time_point for …
sedited Mar 20, 2026
fa8fe09
fuzz: Use NodeClockContext
Mar 20, 2026
faad08e
test: Use NodeClockContext in more tests
May 7, 2025
7a9304f
depends: Fix cross-compiling on macOS for Windows
hebasto Mar 20, 2026
19c9474
Merge bitcoin/bitcoin#34791: test: Suppress another unsolicited `mock…
fanquake Mar 20, 2026
65882fa
ci: Remove upstreamed vcpkg workaround
hebasto Mar 20, 2026
9aa5b3c
ci: Switch to `x64-windows-release` triplet
hebasto Mar 20, 2026
179abb3
refactor: Move `StdMutex` to its own header
hebasto Mar 20, 2026
48bfcfe
iwyu, doc: Document `IWYU pragma: export` for `<threadsafety.h>`
hebasto Mar 10, 2026
015bea0
iwyu, doc: Document `IWYU pragma: export` for `<chrono>`
hebasto Mar 10, 2026
cfa3b10
iwyu, doc: Document `IWYU pragma: export` for `<logging/categories.h>`
hebasto Mar 10, 2026
0fe6fcc
doc: Document rationale for using `IWYU pragma: export`
hebasto Mar 13, 2026
4ada575
test: verify createNewBlock wakes promptly when tip advances
enirox001 Mar 3, 2026
63684d6
test: move make_mining_ctx to ipc_util.py
enirox001 Mar 3, 2026
e7a918b
test: verify IPC error handling for invalid coinbase
enirox001 Mar 9, 2026
ad75b14
test: scale IPC mining wait timeouts by timeout_factor
enirox001 Mar 13, 2026
2d5cedf
ci: Switch to VS-vendored vcpkg instance
hebasto Mar 20, 2026
483769c
Merge bitcoin/bitcoin#26201: Remove Taproot BIP 9 deployment
achow101 Mar 20, 2026
3136559
doc: Note that generateblock does not collect transaction fees
HouseOfHufflepuff Mar 22, 2026
0026b33
wallet: fix amount computed as boolean in coin selection
furszy Mar 21, 2026
0b48988
ci: Upgrade IWYU to 0.26 compatible with Clang 22
hebasto Mar 22, 2026
999c424
Merge bitcoin-core/gui#815: Bugfix on TransactionsView - Disable if p…
hebasto Mar 22, 2026
559df68
Merge bitcoin/bitcoin#34878: depends: Fix cross-compiling on macOS fo…
fanquake Mar 22, 2026
3d1b7d0
Merge bitcoin/bitcoin#34639: iwyu: Document or remove some `pragma: e…
fanquake Mar 23, 2026
cdaf2f2
Merge bitcoin/bitcoin#34850: depends: Remove no longer necessary `dsy…
fanquake Mar 23, 2026
a703c70
Merge bitcoin/bitcoin#34589: ci: Temporarily use clang in valgrind tasks
fanquake Mar 23, 2026
e196cf2
util/stdmutex.h: Add STDLOCK() and improve annotation checking for St…
ajtowns Mar 23, 2026
f808786
logging: Add missing thread safety annotations
ajtowns Mar 11, 2026
cbc231e
scripted-diff: logging: Switch from StdLockGuard to STDLOCK
ajtowns Mar 11, 2026
8d2f068
sync: Use StdMutex for thread safety annotations
ajtowns Mar 11, 2026
28b93af
Merge bitcoin/bitcoin#33414: tor: enable PoW defenses for automatical…
fanquake Mar 23, 2026
1a1f584
Merge bitcoin/bitcoin#29963: depends: Do not consider `CC` environmen…
fanquake Mar 23, 2026
a36591d
refactor: Use constexpr in torcontrol where possible
fjahr Dec 27, 2025
6bcb603
refactor: Modernize member variable names in torcontrol
fjahr Dec 27, 2025
8444efb
refactor: Get rid of unnecessary newlines in logs
fjahr Dec 27, 2025
9a03ba1
Merge bitcoin/bitcoin#34888: wallet: fix amount computed as boolean i…
achow101 Mar 24, 2026
696b545
Merge bitcoin/bitcoin#34667: test: ensure FastWalletRescanFilter is c…
achow101 Mar 24, 2026
fbabe86
Merge bitcoin/bitcoin#34870: wallet: feebumper, fix crash when combin…
achow101 Mar 24, 2026
6464f14
depends: disable inotify in Freebsd Qt build
fanquake Mar 24, 2026
7f70187
depends: FreeBSD cross with Clang
fanquake Feb 3, 2026
f44191f
depends: build qrencode for Freebsd
fanquake Mar 24, 2026
65379bb
ci: add FreeBSD cross CI job
fanquake Feb 3, 2026
16613c9
Merge bitcoin/bitcoin#34857: test: Remove confusing assert_debug_log …
fanquake Mar 24, 2026
fa73ed4
refactor: Fix redundant conversion to std::string and then to std::st…
Mar 24, 2026
400aa68
Merge bitcoin/bitcoin#34809: threadsafety: Add STDLOCK() macro for St…
sedited Mar 24, 2026
5b2e4c4
log: update progress calculations for background validation
polespinasa Aug 28, 2025
a3d6f32
rpc, log: add backgroundvalidation to getblockchaininfo
polespinasa Aug 26, 2025
af62982
test: add background validation test for getblockchaininfo
polespinasa Sep 3, 2025
25f69d9
release note
polespinasa Mar 16, 2026
667e081
Merge bitcoin/bitcoin#34598: bench: use larger payload in HexStrBench
sedited Mar 24, 2026
999d18a
net: introduce TxSendStatus internal state container
Mccalabrese Mar 23, 2026
71f827c
kernel: Expose consensus parameters (`btck_ConsensusParams`)
w0xlt Nov 19, 2025
3129d4a
ci: Rename `TIDY_LLVM_V` to `IWYU_LLVM_V` in IWYU-specific code
hebasto Mar 24, 2026
4ecf473
Merge bitcoin/bitcoin#34727: test: Add IPC wake-up test and reuse min…
achow101 Mar 24, 2026
1ef7166
Merge bitcoin/bitcoin#34891: doc: Note that generateblock does not co…
sedited Mar 24, 2026
bfc84eb
Merge bitcoin/bitcoin#33259: rpc, logging: add backgroundvalidation t…
achow101 Mar 24, 2026
0587c56
kernel: Expose context-free block validation
w0xlt Nov 19, 2025
6b99a3e
doc: update cjdns.md for current upstream changes
w0xlt Mar 12, 2026
38886a6
Merge bitcoin/bitcoin#34786: validation: do not add the snapshot to c…
achow101 Mar 24, 2026
a7e4a59
qa: Remove all instances of `remove_all` except test cleanup
davidgumberg Jan 28, 2026
8bfb422
test: functional: drop unused --keepcache argument
davidgumberg Jan 29, 2026
0d1301b
test: functional: drop rmtree usage and add lint check
davidgumberg Jan 28, 2026
c61c504
Merge bitcoin/bitcoin#34883: ci: vcpkg-specific cleanups
fanquake Mar 25, 2026
2fe76ed
Merge bitcoin/bitcoin#34896: ci: Upgrade IWYU to 0.26 compatible with…
fanquake Mar 25, 2026
3e08903
doc: archive release notes for v28.4
fanquake Mar 25, 2026
4e78929
scripted-diff: rpc: Rename RPCHelpMan to RPCMethod
ajtowns Feb 20, 2026
5a81d73
scripted-diff: rpc: Don't pointlessly capture in RPCMethod lambdas
ajtowns Feb 20, 2026
f899674
test: script: boundary at exactly 65535 bytes must use OP_PUSHDATA2
brunoerg Mar 25, 2026
fabbfec
fuzz: Remove unused g_setup pointers
Mar 25, 2026
1438165
wallet: drop stale TODOs
Sjors Mar 25, 2026
325afe6
net: delay stale evaluation and expose time_added in private broadcast
Mccalabrese Mar 23, 2026
fa1ebde
fuzz: Use time helpers in node_eviction
Mar 24, 2026
6d54365
Merge bitcoin/bitcoin#34920: wallet: drop stale TODOs
sedited Mar 25, 2026
fde3777
Merge bitcoin/bitcoin#34915: doc: archive release notes for v28.4
achow101 Mar 25, 2026
99f99c9
Merge bitcoin/bitcoin#34918: fuzz: [refactor] Remove unused g_setup p…
fanquake Mar 26, 2026
d28c989
test: wallet: refactor: fallbackfee extract common send failure checks.
davidgumberg Mar 25, 2026
6664e41
test: wallet: -fallbackfee default is 0
davidgumberg Mar 25, 2026
3dcdb2b
test: wallet: Warning for excessive fallback fee.
davidgumberg Jan 22, 2026
261d229
test: Replace DEBUG_LOG_OUT with -printtoconsole=1
hodlinator Mar 26, 2026
a5609fc
Merge bitcoin/bitcoin#34458: net: Don't log own ips during discover
achow101 Mar 26, 2026
8a8edc8
Merge bitcoin/bitcoin#34741: refactor: Return std::optional from GetN…
achow101 Mar 26, 2026
21da421
Merge bitcoin/bitcoin#34439: qa: Drop recursive deletes from test cod…
achow101 Mar 26, 2026
4f8bd39
Merge bitcoin/bitcoin#34913: fuzz: Use time helpers in node_eviction
fanquake Mar 27, 2026
2478a15
Squashed 'src/ipc/libmultiprocess/' changes from 1868a84451f..70f632b…
ryanofsky Mar 27, 2026
613a548
Merge commit '2478a15ef966cc93d47dd0f461a44be39bc51534' into pr/subtr…
ryanofsky Mar 27, 2026
890a09b
fuzz: Use CAmount for storing best_waste
achow101 Mar 28, 2026
954374d
Merge bitcoin/bitcoin#34926: test: Replace DEBUG_LOG_OUT with -printt…
fanquake Mar 28, 2026
e602ad6
Merge bitcoin/bitcoin#34919: test: script: boundary at exactly 65535 …
fanquake Mar 28, 2026
2b6af62
Merge bitcoin/bitcoin#34491: ci: add FreeBSD Clang cross job
hebasto Mar 29, 2026
826819a
Merge bitcoin/bitcoin#34939: fuzz: Use CAmount for storing best_waste
fanquake Mar 30, 2026
fafb0c4
refactor: Return std::optional from GetLogCategory
Mar 27, 2026
fa0a094
refactor: Return std::optional from GetWalletNameFromJSONRPCRequest
Mar 27, 2026
fabab69
refactor: Return std::optional from ParseDouble
Mar 27, 2026
325f743
guix: Clean up module list in manifest
hebasto Mar 30, 2026
b0f68f0
Merge bitcoin/bitcoin#34804: Update libmultiprocess subtree to fix ra…
fanquake Mar 30, 2026
550f603
Merge bitcoin/bitcoin#34382: test: wallet: Check fallbackfee default …
fanquake Mar 30, 2026
0e2122c
Merge bitcoin/bitcoin#32875: index: handle case where pindex_prev equ…
fanquake Mar 30, 2026
f6e6fad
Merge bitcoin/bitcoin#34867: wallet: document importdescriptors error…
fanquake Mar 30, 2026
3aeccb7
depends, qt: Fix build on aarch64 macOS 26.4
hebasto Mar 30, 2026
5fa6898
policy: remove incorrect MANDATORY_SCRIPT_VERIFY_FLAGS comment
ismaelsadeeq Mar 30, 2026
eb750d2
iwyu: Remove workaround for issue that has been fixed upstream
hebasto Mar 30, 2026
6953363
refactor: Move license info into new module
hebasto Mar 30, 2026
8b49e2d
ci, iwyu: Fix warnings in `src/util` and treat them as errors
hebasto Mar 30, 2026
12c3c3f
test: mining: add coverage for GBT's "coinbasevalue" result field
theStack Mar 30, 2026
a846a7c
Merge bitcoin/bitcoin#34811: doc: update cjdns.md for current cjdns i…
achow101 Mar 30, 2026
c97ac44
Merge bitcoin/bitcoin#32297: bitcoin-cli: Add -ipcconnect option
achow101 Mar 30, 2026
84c3f8d
refactor(rpc): GenerateAuthCookieResult -> AuthCookieResult
hodlinator Mar 31, 2026
20a94c1
cli: Clearer error messages on authentication failure
hodlinator Mar 31, 2026
257769a
qa: Improve error message
hodlinator Mar 31, 2026
4757b71
Merge bitcoin/bitcoin#34938: refactor: Return std::optional over bool…
fanquake Mar 31, 2026
54fa356
Merge bitcoin/bitcoin#34957: policy: remove incorrect `MANDATORY_SCRI…
fanquake Mar 31, 2026
5deed3d
Merge bitcoin/bitcoin#34958: test: mining: add coverage for GBT's "co…
fanquake Mar 31, 2026
d0ed369
Merge bitcoin/bitcoin#34049: rpc: Disallow captures in RPCMethodImpl
fanquake Mar 31, 2026
0831173
Merge bitcoin/bitcoin#34640: wallet: rpc: Improve error message for l…
achow101 Mar 31, 2026
aeb667f
Merge bitcoin/bitcoin#33343: help: enrich help text for `-loadblock`
fanquake Apr 1, 2026
8b461c5
Merge bitcoin/bitcoin#34956: depends, qt: Fix build on aarch64 macOS …
fanquake Apr 1, 2026
8e78932
Merge bitcoin/bitcoin#34944: guix: Clean up module list in manifest
fanquake Apr 1, 2026
fa955af
lint: Clarify rmtree/remove_all error message with preferred alternat…
Apr 1, 2026
7560854
kernel: Remove NONNULL annotation from destroy method
alexanderwiederin Apr 1, 2026
91cd0e3
fuzz: remove GetDescriptorChecksum from string harness
brunoerg Apr 1, 2026
7abf6f6
docs: remove duplicate ///@} from bitcoinkernel.h
alexanderwiederin Apr 1, 2026
2460938
Merge bitcoin/bitcoin#34986: docs: remove duplicate ///@} from bitcoi…
hebasto Apr 1, 2026
52c3381
Merge bitcoin/bitcoin#33506: test: sock: Enable all socket tests on W…
achow101 Apr 1, 2026
1189702
Merge bitcoin/bitcoin#34982: kernel: Remove NONNULL annotation from d…
achow101 Apr 1, 2026
fc9987d
doc: remove stale shortid collision TODO
w0xlt Apr 1, 2026
194f571
Merge bitcoin/bitcoin#34976: lint: Clarify rmtree/remove_all error me…
achow101 Apr 1, 2026
8cc690e
Merge bitcoin/bitcoin#34379: wallet: fix `gethdkeys` RPC for descript…
achow101 Apr 1, 2026
facaeb9
doc: Discourage trailing doxygen comments, and fix the broken ones
Mar 31, 2026
59199fa
Merge bitcoin/bitcoin#33908: kernel: add context‑free block validatio…
achow101 Apr 2, 2026
4b98962
Merge bitcoin/bitcoin#34448: ci, iwyu: Fix warnings in `src/util` and…
achow101 Apr 2, 2026
fa1f4fe
Merge bitcoin/bitcoin#34965: cli: Return more helpful authentication …
achow101 Apr 2, 2026
f1e14df
depends: remove workaround for Make older than 4.2.90
fanquake Mar 26, 2026
d517fa0
rpc: fix initialization-order-fiasco by lazy-init of decodepsbt_inputs
Crypt-iQ Apr 1, 2026
63c68e2
signals: add signals tests
theuni Feb 2, 2026
e60a0b9
signals: Add a simplified boost-compatible implementation
theuni Sep 26, 2022
34eabd7
signals: remove boost compatibility guards
theuni Feb 2, 2026
9958f4f
Revert "signals: Temporarily add boost headers to bitcoind and bitcoi…
theuni Jan 30, 2026
091736a
signals: re-add forward-declares to interface headers
theuni Feb 3, 2026
375397e
signals: remove boost includes where possible
theuni Feb 3, 2026
a4b1607
signals: remove boost::signals2 mentions in linters and docs
theuni Jan 30, 2026
b12f43a
signals: remove boost::signals2 from depends and vcpkg
theuni Jan 30, 2026
242b0eb
btcsignals: use a single shared_ptr for liveness and callback
theuni Mar 6, 2026
eae193e
torcontrol: Remove libevent usage
fjahr Dec 27, 2025
b1869e9
torcontrol: Move tor controller into node context
fjahr Mar 13, 2026
4117b92
fuzz: Improve torcontrol fuzz test
fjahr Dec 28, 2025
5693833
test: Add simple functional test for torcontrol
fjahr Dec 28, 2025
7dff9ec
test: Add test for partial message handling in torcontrol
fjahr Jan 17, 2026
84c1f32
test: Add torcontrol coverage for PoW defense enablement
fjahr Mar 24, 2026
1401011
test: Add test for exceeding max line length in torcontrol
fjahr Mar 25, 2026
a7c30da
Merge bitcoin/bitcoin#34873: net: fix premature stale flagging of unp…
achow101 Apr 4, 2026
851152e
validation: Remove stale BlockManager param in ContextualCheckBlockHe…
ismaelsadeeq Apr 2, 2026
47b7a9f
guix: binutils 2.46.0
fanquake Nov 27, 2025
19e99be
guix: remove riscv exclusion from symbol check
fanquake Mar 6, 2026
8edb13d
Merge bitcoin/bitcoin#34967: doc: Discourage trailing doxygen comment…
fanquake Apr 6, 2026
74e7518
Merge bitcoin/bitcoin#34989: doc: remove stale shortid collision TODO
fanquake Apr 6, 2026
f06de5c
test: clean up and modernize interface_http
pinheadmz Mar 7, 2026
0c1a07e
test: ensure HTTP server timeout is not caused by a delayed response
pinheadmz Mar 7, 2026
b730dc3
Merge bitcoin/bitcoin#34208: bench: add fluent API for untimed `setup…
achow101 Apr 6, 2026
996e4f7
Merge bitcoin/bitcoin#35001: validation: Remove stale `BlockManager` …
fanquake Apr 7, 2026
76a5570
test: use `in` for two-value equality asserts
l0rinc Mar 8, 2026
4f4516e
test: split equality asserts joined by `and`
l0rinc Mar 8, 2026
dcd90fb
test: prep manual equality assert conversions
l0rinc Mar 8, 2026
23c06d4
test: convert equality asserts with comments or special chars
l0rinc Mar 8, 2026
d9a3cf2
test: convert simple equality asserts in excluded files
l0rinc Mar 8, 2026
06a4176
test: convert truthy asserts in `wallet_miniscript` and `rpc_psbt`
l0rinc Apr 7, 2026
301b1d7
test: add missing `assert_equal` imports
l0rinc Mar 8, 2026
3fd68a9
scripted-diff: replace remaining Python test equality asserts
l0rinc Mar 8, 2026
485ebad
Merge bitcoin/bitcoin#33385: contrib: Add bash completion for new bit…
fanquake Apr 7, 2026
422ca21
test: ensure HTTP server enforces limits on headers and body size
pinheadmz Mar 18, 2026
7a6d210
Squashed 'src/ipc/libmultiprocess/' changes from 70f632bda8..3edbe8f67c
Sjors Apr 7, 2026
66b4e30
Merge commit '7a6d210989af56a03d7efa79f1f3a90047bb88fe' into 2026/04/…
Sjors Apr 7, 2026
d868667
Merge bitcoin/bitcoin#34985: fuzz: remove GetDescriptorChecksum from …
ryanofsky Apr 7, 2026
9ee7770
refactor(test): Only specify TestChain100Setup in test cases
hodlinator Apr 7, 2026
2af003a
test: Use BasicTestingSetup when TestingSetup is not necessary
hodlinator Mar 24, 2026
1d7edee
Merge bitcoin/bitcoin#34977: Update libmultiprocess subtree to fix te…
achow101 Apr 7, 2026
b555a0b
test: remove macOS REDUCE_EXPORTS exception workaround
alfonsoromanz Apr 7, 2026
82235bb
Merge bitcoin/bitcoin#34988: rpc: fix initialization-order-fiasco by …
ryanofsky Apr 7, 2026
65900f8
test: Init coin selection params with feerate
murchandamus Mar 20, 2026
64ab974
Test: Add new minimum to tested feerates
murchandamus Mar 20, 2026
2840f04
test: Rework SRD insufficient balance test
murchandamus Mar 20, 2026
fe9f53b
test: Add SRD success tests
murchandamus Mar 20, 2026
858a0a9
test: Add SRD maximum weight tests
murchandamus Mar 20, 2026
d2844c6
Merge bitcoin/bitcoin#35014: test: remove macOS REDUCE_EXPORTS except…
achow101 Apr 7, 2026
c74c6cf
ci: Match `VCPKG_HOST_TRIPLET` to `VCPKG_TARGET_TRIPLET`
hebasto Apr 7, 2026
1b0b3e2
validation: remove redundant marking in FindMostWorkChain
stratospher Mar 19, 2026
aa0eef7
test: add InvalidateBlock/ReconsiderBlock asymmetry test
stratospher Mar 19, 2026
ba01b00
refactor: use for loops in FindMostWorkChain
stratospher Apr 7, 2026
8172099
util: get number of bytes consumed from buffer by LineReader
pinheadmz Mar 18, 2026
b0ca400
string: replace AsciiCaseInsensitiveKeyEqual with CaseInsensitiveEqual
pinheadmz Jan 31, 2026
3de02ab
util/test: Add string_view constructor to LineReader and remove Strin…
pinheadmz Mar 11, 2026
0e712b3
Make DynSock accepted sockets queue optional, with precise lifetime
pinheadmz Mar 10, 2026
06172ef
refactor: rename `hashBlock` to `m_block_hash` to avoid shadowing
l0rinc Feb 20, 2026
38a99f3
scripted-diff: normalize `CCoinsView` naming
l0rinc Feb 15, 2026
a9f92e3
refactor: normalize CCoinsView whitespace and signatures
l0rinc Feb 20, 2026
90c635c
fuzz: keep backend assertions aligned to active backend
l0rinc Feb 15, 2026
b637566
coins: add explicit `CoinsViewEmpty` noop backend
l0rinc Feb 15, 2026
86296f2
coins: make `CCoinsView` methods pure virtual
l0rinc Feb 20, 2026
8783cc8
refactor: inline `CCoinsViewBacked` implementation
l0rinc Feb 20, 2026
80572c7
Merge bitcoin/bitcoin#34158: torcontrol: Remove libevent usage
achow101 Apr 8, 2026
ab304b0
Merge bitcoin/bitcoin#35031: ci: Match `VCPKG_HOST_TRIPLET` to `VCPKG…
fanquake Apr 9, 2026
dfd54c9
Squashed 'src/secp256k1/' changes from 57315a6985..7262adb4b4
fanquake Apr 9, 2026
b7f9178
Update secp256k1 subtree to latest master
fanquake Apr 9, 2026
f8ab0b7
Merge bitcoin/bitcoin#34905: Update string and net utils for future H…
fanquake Apr 9, 2026
2b541ee
Merge bitcoin/bitcoin#34495: Replace boost signals with minimal compa…
fanquake Apr 9, 2026
1ed1a12
net_processing: don't modify addrman for private broadcast connections
vasild Apr 8, 2026
141fbe4
Merge bitcoin/bitcoin#34884: validation: remove unused code in FindMo…
ryanofsky Apr 9, 2026
94f1d35
Merge bitcoin/bitcoin#34922: test: Use BasicTestingSetup when sufficient
achow101 Apr 9, 2026
7c6f1ab
Merge bitcoin/bitcoin#35032: net_processing: don't modify addrman for…
achow101 Apr 9, 2026
7015f70
Merge bitcoin/bitcoin#34886: test: Rework Single Random Draw coin sel…
achow101 Apr 9, 2026
fe3d2be
Merge bitcoin/bitcoin#32757: net: Fix Discover() not running when usi…
achow101 Apr 9, 2026
58dccd2
Merge bitcoin/bitcoin#34858: test: Use NodeClockContext in more tests
achow101 Apr 9, 2026
ea893cf
doc: fix typo 'parlor' to 'parlance' in developer-notes
ArvinFarrelP Apr 10, 2026
7e3e22e
Merge bitcoin/bitcoin#35047: doc: fix typo 'parlor' to 'parlance' in …
fanquake Apr 10, 2026
34c3279
Merge bitcoin/bitcoin#34623: Update secp256k1 subtree to latest master
fanquake Apr 13, 2026
7aa033d
Merge bitcoin/bitcoin#34773: test: migrate functional test equality a…
fanquake Apr 13, 2026
976985e
Merge bitcoin/bitcoin#34124: validation: make `CCoinsView` a pure vir…
ryanofsky Apr 13, 2026
7844a2f
Merge bitcoin/bitcoin#34772: test: modernize interface_http and cover…
fanquake Apr 14, 2026
8666262
Add `SpanWriter` class for zero-allocation stream writing
yuvicc Apr 1, 2026
1ad5512
kernel: Add Block Header serialization method
yuvicc Apr 1, 2026
577a3e7
test: Add check for return type in `HasToBytes` concept
yuvicc Apr 1, 2026
49895b9
kernel: build: remove unused serfloat dependency
theStack Apr 14, 2026
fa02eb8
test: Add missing self.options.timeout_factor scale in tool_bitcoin_c…
Apr 15, 2026
edcf84c
Merge bitcoin/bitcoin#35077: kernel: build: remove unused serfloat de…
fanquake Apr 15, 2026
53f4743
Merge bitcoin/bitcoin#35080: test: Add missing self.options.timeout_f…
fanquake Apr 15, 2026
44ac0c3
Merge bitcoin/bitcoin#34401: kernel: add serialization method for bt…
fanquake Apr 15, 2026
c4361e5
Merge bitcoin/bitcoin#34757: guix: re-enable riscv exported symbol ch…
fanquake Apr 16, 2026
e7d6473
Merge bitcoin/bitcoin#34923: depends: remove workaround for Make olde…
hebasto Apr 16, 2026
bdc8e49
doc: fix typos and formatting in CONTRIBUTING, i2p, bitcoin-conf, files
fernandguil Apr 17, 2026
1fa34f9
Merge bitcoin/bitcoin#35095: doc: fix typos and minor formatting issues
fanquake Apr 17, 2026
649466a
iwyu: compat
kevkevinpal Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/actions/configure-docker/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ runs:
print("::warning title=Unknown input to configure docker action::Provided value was ${{ inputs.cache-provider }}")

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
with:
# Use host network to allow access to cirrus gha cache running on the host
driver-opts: |
network=host

# This is required to allow buildkit to access the actions cache
- name: Expose actions cache variables
uses: actions/github-script@v6
uses: actions/github-script@v8
with:
script: |
Object.keys(process.env).forEach(function (key) {
Expand Down
8 changes: 4 additions & 4 deletions .github/actions/restore-caches/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ runs:
steps:
- name: Restore Ccache cache
id: ccache-cache
uses: cirruslabs/cache/restore@v4
uses: cirruslabs/cache/restore@v5
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ env.CONTAINER_NAME }}-${{ github.run_id }}
Expand All @@ -14,7 +14,7 @@ runs:

- name: Restore depends sources cache
id: depends-sources
uses: cirruslabs/cache/restore@v4
uses: cirruslabs/cache/restore@v5
with:
path: ${{ env.SOURCES_PATH }}
key: depends-sources-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}
Expand All @@ -23,7 +23,7 @@ runs:

- name: Restore built depends cache
id: depends-built
uses: cirruslabs/cache/restore@v4
uses: cirruslabs/cache/restore@v5
with:
path: ${{ env.BASE_CACHE }}
key: depends-built-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}
Expand All @@ -32,7 +32,7 @@ runs:

- name: Restore previous releases cache
id: previous-releases
uses: cirruslabs/cache/restore@v4
uses: cirruslabs/cache/restore@v5
with:
path: ${{ env.PREVIOUS_RELEASES_DIR }}
key: previous-releases-${{ env.CONTAINER_NAME }}-${{ env.PREVIOUS_RELEASES_HASH }}
Expand Down
8 changes: 4 additions & 4 deletions .github/actions/save-caches/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,28 @@ runs:
echo "previous releases direct cache hit to primary key: ${{ env.previous-releases-cache-hit }}"

- name: Save Ccache cache
uses: cirruslabs/cache/save@v4
uses: cirruslabs/cache/save@v5
if: ${{ (github.event_name == 'push') && (github.ref_name == github.event.repository.default_branch) }}
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ env.CONTAINER_NAME }}-${{ github.run_id }}

- name: Save depends sources cache
uses: cirruslabs/cache/save@v4
uses: cirruslabs/cache/save@v5
if: ${{ (github.event_name == 'push') && (github.ref_name == github.event.repository.default_branch) && (env.depends-sources-cache-hit != 'true') }}
with:
path: ${{ env.SOURCES_PATH }}
key: depends-sources-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}

- name: Save built depends cache
uses: cirruslabs/cache/save@v4
uses: cirruslabs/cache/save@v5
if: ${{ (github.event_name == 'push') && (github.ref_name == github.event.repository.default_branch) && (env.depends-built-cache-hit != 'true' )}}
with:
path: ${{ env.BASE_CACHE }}
key: depends-built-${{ env.CONTAINER_NAME }}-${{ env.DEPENDS_HASH }}

- name: Save previous releases cache
uses: cirruslabs/cache/save@v4
uses: cirruslabs/cache/save@v5
if: ${{ (github.event_name == 'push') && (github.ref_name == github.event.repository.default_branch) && (env.previous-releases-cache-hit != 'true' )}}
with:
path: ${{ env.PREVIOUS_RELEASES_DIR }}
Expand Down
3 changes: 0 additions & 3 deletions .github/ci-windows-cross.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,6 @@ def run_functional_tests():
# feature_unsupported_utxo_db.py fails on Windows because of emojis in the test data directory.
"--exclude",
"feature_unsupported_utxo_db.py",
# See https://github.com/bitcoin/bitcoin/issues/31409.
"--exclude",
"wallet_multiwallet.py",
]
run(test_runner_cmd)

Expand Down
17 changes: 14 additions & 3 deletions .github/ci-windows.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import shlex
import subprocess
import sys
import time
from pathlib import Path

sys.path.append(str(Path(__file__).resolve().parent.parent / "test"))
Expand Down Expand Up @@ -70,10 +71,20 @@ def generate(ci_type):
"-B",
"build",
"-Werror=dev",
"--preset",
"vs2026",
"--preset=vs2026",
# Using x64-windows-release for both host and target triplets
# to ensure vcpkg builds only release packages, thereby optimizing
# build time.
# See https://github.com/microsoft/vcpkg/issues/50927.
"-DVCPKG_HOST_TRIPLET=x64-windows-release",
"-DVCPKG_TARGET_TRIPLET=x64-windows-release",
] + GENERATE_OPTIONS[ci_type]
run(command)
if run(command, check=False).returncode != 0:
print("=== ⚠️ ===")
print("Generate failure! Network issue? Retry once ...")
time.sleep(12)
print("=== ⚠️ ===")
run(command)


def build(_ci_type):
Expand Down
32 changes: 14 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ jobs:

- name: Restore Ccache cache
id: ccache-cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ github.job }}-${{ matrix.job-type }}-ccache-${{ github.run_id }}
Expand All @@ -206,7 +206,7 @@ jobs:
FILE_ENV: ${{ matrix.file-env }}

- name: Save Ccache cache
uses: actions/cache/save@v4
uses: actions/cache/save@v5
if: github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.ccache-cache.outputs.cache-hit != 'true'
with:
path: ${{ env.CCACHE_DIR }}
Expand Down Expand Up @@ -253,26 +253,16 @@ jobs:
py -3 --version
bash --version

- name: Using vcpkg with MSBuild
run: |
echo "set(VCPKG_BUILD_TYPE release)" >> "${VCPKG_INSTALLATION_ROOT}/triplets/x64-windows.cmake"
# Workaround for libevent, which requires CMake 3.1 but is incompatible with CMake >= 4.0.
sed -i '1s/^/set(ENV{CMAKE_POLICY_VERSION_MINIMUM} 3.5)\n/' "${VCPKG_INSTALLATION_ROOT}/scripts/ports.cmake"

- name: Set VCPKG_ROOT
run: |
echo "VCPKG_ROOT=${VCPKG_INSTALLATION_ROOT}" >> "$GITHUB_ENV"

- name: Restore vcpkg tools cache
id: vcpkg-tools-cache
uses: actions/cache/restore@v5
with:
path: C:/vcpkg/downloads/tools
path: ~/AppData/Local/vcpkg/downloads/tools
key: ${{ github.job }}-vcpkg-tools-${{ github.run_id }}
restore-keys: ${{ github.job }}-vcpkg-tools-

- name: Restore vcpkg binary cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
id: vcpkg-binary-cache
with:
path: ~/AppData/Local/vcpkg/archives
Expand All @@ -283,7 +273,7 @@ jobs:
py -3 .github/ci-windows.py ${{ matrix.job-type }} generate

- name: Save vcpkg binary cache
uses: actions/cache/save@v4
uses: actions/cache/save@v5
if: github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.vcpkg-binary-cache.outputs.cache-hit != 'true' && matrix.job-type == 'standard'
with:
path: ~/AppData/Local/vcpkg/archives
Expand All @@ -294,7 +284,7 @@ jobs:
# Only save cache from one job as they share tools. If the matrix is expanded to jobs with unique tools, this may need amending.
if: github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && steps.vcpkg-tools-cache.outputs.cache-hit != 'true' && matrix.job-type == 'standard'
with:
path: C:/vcpkg/downloads/tools
path: ~/AppData/Local/vcpkg/downloads/tools
key: ${{ github.job }}-vcpkg-tools-${{ github.run_id }}

- name: Build
Expand Down Expand Up @@ -378,7 +368,7 @@ jobs:
uses: ./.github/actions/save-caches

- name: Upload built executables
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: ${{ matrix.artifact-name }}-${{ github.run_id }}
path: |
Expand Down Expand Up @@ -416,7 +406,7 @@ jobs:
ref: ${{ needs.record-frozen-commit.outputs.commit }}

- name: Download built executables
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
name: ${{ matrix.artifact-name }}-${{ github.run_id }}

Expand Down Expand Up @@ -486,6 +476,12 @@ jobs:
timeout-minutes: 120
file-env: './ci/test/00_setup_env_mac_cross_intel.sh'

- name: 'FreeBSD Cross'
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
fallback-runner: 'ubuntu-24.04'
timeout-minutes: 120
file-env: './ci/test/00_setup_env_freebsd_cross.sh'

- name: 'No wallet'
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
fallback-runner: 'ubuntu-24.04'
Expand Down
8 changes: 7 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ get_directory_property(precious_variables CACHE_VARIABLES)
# Project / Package metadata
#=============================
set(CLIENT_NAME "Bitcoin Core")
set(CLIENT_VERSION_MAJOR 30)
set(CLIENT_VERSION_MAJOR 31)
set(CLIENT_VERSION_MINOR 99)
set(CLIENT_VERSION_BUILD 0)
set(CLIENT_VERSION_RC 0)
Expand Down Expand Up @@ -117,8 +117,12 @@ if(ENABLE_WALLET)
if(VCPKG_TARGET_TRIPLET)
# Use of the `unofficial::` namespace is a vcpkg package manager convention.
find_package(unofficial-sqlite3 CONFIG REQUIRED)
add_library(SQLite3::SQLite3 ALIAS unofficial::sqlite3::sqlite3)
else()
find_package(SQLite3 3.7.17 REQUIRED)
if(NOT TARGET SQLite3::SQLite3) # CMake < 4.3
add_library(SQLite3::SQLite3 ALIAS SQLite::SQLite3)
endif()
endif()
endif()
cmake_dependent_option(BUILD_WALLET_TOOL "Build bitcoin-wallet tool." ${BUILD_TESTS} "ENABLE_WALLET" OFF)
Expand Down Expand Up @@ -449,6 +453,7 @@ else()
try_append_cxx_flags("-Wall" TARGET warn_interface SKIP_LINK)
try_append_cxx_flags("-Wextra" TARGET warn_interface SKIP_LINK)
try_append_cxx_flags("-Wgnu" TARGET warn_interface SKIP_LINK)
try_append_cxx_flags("-Wcovered-switch-default" TARGET warn_interface SKIP_LINK)
# Some compilers will ignore -Wformat-security without -Wformat, so just combine the two here.
try_append_cxx_flags("-Wformat -Wformat-security" TARGET warn_interface SKIP_LINK)
try_append_cxx_flags("-Wvla" TARGET warn_interface SKIP_LINK)
Expand Down Expand Up @@ -690,6 +695,7 @@ if(configure_warnings)
message(WARNING "${warning}")
endforeach()
message(" ******\n")
message(AUTHOR_WARNING "Warnings have been encountered!")
endif()

# We want all build properties to be encapsulated properly.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ about Git.
### Creating the Pull Request

The title of the pull request should be prefixed by the component or area that
the pull request affects. Valid areas as:
the pull request affects. Valid areas are:

- `consensus` for changes to consensus critical code
- `doc` for changes to the documentation
Expand Down
14 changes: 6 additions & 8 deletions ci/lint/01_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,20 +41,18 @@ command -v python3
python3 --version

${CI_RETRY_EXE} pip3 install \
lief==0.16.6 \
mypy==1.18.2 \
lief==0.17.5 \
mypy==1.19.1 \
pyzmq==27.1.0 \
ruff==0.13.2 \
vulture==2.14
ruff==0.15.5

SHELLCHECK_VERSION=v0.11.0
curl -sL "https://github.com/koalaman/shellcheck/releases/download/${SHELLCHECK_VERSION}/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | \
curl --fail -L "https://github.com/koalaman/shellcheck/releases/download/${SHELLCHECK_VERSION}/shellcheck-${SHELLCHECK_VERSION}.linux.$(uname --machine).tar.xz" | \
tar --xz -xf - --directory /tmp/
mv "/tmp/shellcheck-${SHELLCHECK_VERSION}/shellcheck" /usr/bin/

MLC_VERSION=v1
MLC_BIN=mlc-x86_64-linux
curl -sL "https://github.com/becheran/mlc/releases/download/${MLC_VERSION}/${MLC_BIN}" -o "/usr/bin/mlc"
MLC_VERSION=v1.2.0
curl --fail -L "https://github.com/becheran/mlc/releases/download/${MLC_VERSION}/mlc-$(uname --machine)-linux" -o "/usr/bin/mlc"
chmod +x /usr/bin/mlc

popd || exit
3 changes: 0 additions & 3 deletions ci/retry/retry
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ __sleep_amount() {
if [ -n "$constant_sleep" ]; then
sleep_time=$constant_sleep
else
#TODO: check for awk
#TODO: check if user would rather use one of the other possible dependencies: python, ruby, bc, dc
sleep_time=`awk "BEGIN {t = $min_sleep * $(( (1<<($attempts -1)) )); print (t > $max_sleep ? $max_sleep : t)}"`
fi
}
Expand Down Expand Up @@ -43,7 +41,6 @@ retry()

P="$1"
for param in "${@:2}"; do P="$P '$param'"; done
#TODO: replace single quotes in each arg with '"'"' ?
export RETRY_ATTEMPT=$attempts
bash -c "$P"
return_code=$?
Expand Down
23 changes: 23 additions & 0 deletions ci/test/00_setup_env_freebsd_cross.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
#
# Copyright (c) The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit.

export LC_ALL=C.UTF-8

export CONTAINER_NAME=ci_freebsd_cross
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
export APT_LLVM_V="22"
export FREEBSD_VERSION=15.0
export PACKAGES="clang-${APT_LLVM_V} llvm-${APT_LLVM_V} lld"
export HOST=x86_64-unknown-freebsd
export DEP_OPTS="build_CC=clang build_CXX=clang++ AR=llvm-ar-${APT_LLVM_V} STRIP=llvm-strip-${APT_LLVM_V} NM=llvm-nm-${APT_LLVM_V} RANLIB=llvm-ranlib-${APT_LLVM_V}"
export GOAL="install"
export BITCOIN_CONFIG="\
--preset=dev-mode \
-DREDUCE_EXPORTS=ON \
-DWITH_USDT=OFF \
"
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
5 changes: 3 additions & 2 deletions ci/test/00_setup_env_native_fuzz_with_valgrind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8

export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie"
export CONTAINER_NAME=ci_native_fuzz_valgrind
export PACKAGES="libevent-dev libboost-dev libsqlite3-dev valgrind libcapnp-dev capnproto"
export PACKAGES="clang llvm libclang-rt-dev libevent-dev libboost-dev libsqlite3-dev valgrind libcapnp-dev capnproto"
export NO_DEPENDS=1
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
Expand All @@ -17,5 +17,6 @@ export FUZZ_TESTS_CONFIG="--valgrind"
export GOAL="all"
export BITCOIN_CONFIG="\
-DBUILD_FOR_FUZZING=ON \
-DCMAKE_CXX_FLAGS='-Wno-error=array-bounds' \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
"
10 changes: 5 additions & 5 deletions ci/test/00_setup_env_native_iwyu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ export LC_ALL=C.UTF-8

export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie" # To build codegen, CMake must be 3.31 or newer.
export CONTAINER_NAME=ci_native_iwyu
export TIDY_LLVM_V="21"
export APT_LLVM_V="${TIDY_LLVM_V}"
export PACKAGES="clang-${TIDY_LLVM_V} clang-format-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev jq libevent-dev libboost-dev libzmq3-dev systemtap-sdt-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev libsqlite3-dev libcapnp-dev capnproto"
export IWYU_LLVM_V="22"
export APT_LLVM_V="${IWYU_LLVM_V}"
export PACKAGES="clang-${IWYU_LLVM_V} clang-format-${IWYU_LLVM_V} libclang-${IWYU_LLVM_V}-dev llvm-${IWYU_LLVM_V}-dev jq libevent-dev libboost-dev libzmq3-dev systemtap-sdt-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev libsqlite3-dev libcapnp-dev capnproto"
export NO_DEPENDS=1
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
Expand All @@ -20,6 +20,6 @@ export RUN_IWYU=true
export GOAL="codegen"
export BITCOIN_CONFIG="\
--preset dev-mode -DBUILD_GUI=OFF \
-DCMAKE_C_COMPILER=clang-${TIDY_LLVM_V} \
-DCMAKE_CXX_COMPILER=clang++-${TIDY_LLVM_V} \
-DCMAKE_C_COMPILER=clang-${IWYU_LLVM_V} \
-DCMAKE_CXX_COMPILER=clang++-${IWYU_LLVM_V} \
"
Loading
Loading