Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
208 commits
Select commit Hold shift + click to select a range
ac7e03e
Enable BIP157 block filters index and serving by default
PastaPastaPasta Jun 5, 2025
0274cd2
docs: Add release notes for PR #6708
PastaPastaPasta Jun 5, 2025
fbde721
docs: Fix PR number in release notes - rename to 6711
PastaPastaPasta Jun 5, 2025
ef2a1e3
Fix initialization error when using default blockfilterindex value
PastaPastaPasta Jun 5, 2025
e6e9ff8
test: Fix functional tests to work with new blockfilterindex defaults
PastaPastaPasta Jul 16, 2025
4412ced
test: Fix feature_index_prune.py to work with new blockfilterindex de…
PastaPastaPasta Jul 16, 2025
2a88db9
test: Fix feature_index_prune.py to explicitly disable indices
PastaPastaPasta Jul 17, 2025
d6c11f0
test: fix feature_index_prune.py for new peerblockfilters default
PastaPastaPasta Jul 18, 2025
40f3d98
refactor: simplify GetLastMinedCommitmentsPerQuorumIndexUntilBlock in…
knst Jul 2, 2025
6d90189
refactor: futher simplification of GetMinedAndActiveCommitmentsUntilB…
knst Jul 2, 2025
d78fb02
perf: replace re-creation of CFinalCommitment and extra unique_ptr to…
knst Jul 14, 2025
f2b2479
refactor: avoid code duplication due to 2 implementation of GetMinedC…
knst Jul 14, 2025
8958152
perf: cache mined commitment for quorum merkle root calculation
knst Jul 4, 2025
8254e06
refactor: resolve freshly introduced circular dependency
knst Jul 22, 2025
eeb577b
perf: swap arrays instead assigments to save allocation
knst Jul 4, 2025
6a53aa2
feat: stop logging 'remove mapSendableNodes' and 'remove mapReceivabl…
knst May 31, 2025
1abe753
refactor: remove useless logs from CQuorumBlockProcessor and make its…
knst May 31, 2025
3458ceb
feat: remove useless checks after UpdateMN
knst Jun 2, 2025
a04e831
feat: use seconds since 1970 for mocktime in logs
knst Jun 2, 2025
f9536e8
fmt: applyed clang format for blockprocessor
knst Jul 11, 2025
ad0c2b7
feat: improve logs in `PoSePunish()`
UdjinM6 Jul 19, 2025
a55c35c
feat: more logging in `CMNPaymentsProcessor::IsTransactionValid()`
UdjinM6 Aug 4, 2025
3cdf6d7
fix: adjust error message in `RemoveMN()`
UdjinM6 Aug 4, 2025
7839b59
fix: make bemchmark logs for `ProcessBlock`-s more explpicit
UdjinM6 Jul 19, 2025
434434b
fix: change connection related logs category from `net` to `net`+`net…
UdjinM6 Jul 19, 2025
9f557c8
feat(llmq): Use randomized sig share session ids
UdjinM6 Aug 4, 2025
4b00a0e
test: add CoinJoin DSTX and inouts tests
PastaPastaPasta Aug 7, 2025
0e154f7
test: enhance CoinJoin DSTX height management tests
PastaPastaPasta Aug 8, 2025
1951a27
feat: add GetConfirmedHeight method to CoinJoin class
PastaPastaPasta Aug 8, 2025
dc9a4f8
test: add CoinJoin base manager and queue tests
PastaPastaPasta Aug 8, 2025
4f42cfa
doc: add extra help for case if entered wallet passphrae is incorrect
knst Aug 7, 2025
c8ca52a
feat: remove TODO for enforcing user to use upgradetohd instead upgra…
knst Aug 8, 2025
960afcf
feat: upgradetohd return string with futher instructions instead bool
knst Aug 7, 2025
1c4be74
chore: remove TODO about v21 sethdseed changes
knst Aug 8, 2025
879a90f
test: proper dashification for WALLET_FLAG_DISABLE_PRIVATE_KEYS in fe…
knst Aug 8, 2025
f818d13
fix: use temporary data stream in `TestSerializationRoundtrip`
UdjinM6 Aug 9, 2025
24c6cf4
fix: re-enable serialization tests in `llmq_snapshot_tests`
UdjinM6 Aug 9, 2025
5dbe407
test: add serialization tests for `CQuorumRotationInfo`
UdjinM6 Aug 9, 2025
aac519f
fix: use `extraShare` flag to guard extra share info in `CQuorumRotat…
UdjinM6 Aug 9, 2025
fb23601
fix: `CSimplifiedMNListDiff` deser
UdjinM6 Aug 9, 2025
da4b39b
test: address review feedback for CoinJoin test improvements
PastaPastaPasta Aug 9, 2025
c0df94c
refactor: use wildcard pattern for CoinJoin test files in non-backpor…
PastaPastaPasta Aug 9, 2025
f038f0a
chore: run clang-format
PastaPastaPasta Aug 9, 2025
55fd182
Merge #6803: test: add CoinJoin DSTX and inouts tests
PastaPastaPasta Aug 9, 2025
a82b57c
test: re-enabled disabled check of hdkeypath for feature_backwards_co…
knst Aug 9, 2025
14cbac0
Merge bitcoin/bitcoin#25471: rpc: Disallow gettxoutsetinfo queries fo…
DashCoreAutoGuix Aug 11, 2025
da51708
Merge bitcoin/bitcoin#27116: doc: clarify that LOCK() internally chec…
DashCoreAutoGuix Aug 11, 2025
8e0e63f
fix: Reset all collections before reading in `CDeterministicMNListDif…
UdjinM6 Aug 11, 2025
4d44efb
Merge #6810: test: finish dashification of feature_backwards_compatib…
PastaPastaPasta Aug 11, 2025
0ced59a
Merge #6806: feat: v21 follow-ups for wallet RPCs
PastaPastaPasta Aug 11, 2025
489c5f0
Merge #6805: feat: better docs for dash specific wallet RPCs supporti…
PastaPastaPasta Aug 11, 2025
d40ae45
test: fix tests incompatible with default peerblockfilters=1
PastaPastaPasta Aug 12, 2025
90ef2d5
refactor: Enable BIP157 block filters only for masternodes
PastaPastaPasta Aug 12, 2025
2fabaa9
fix: Address code review feedback for masternode-only BIP157
PastaPastaPasta Aug 12, 2025
c6e99fb
chore: apply most `clang-format` suggestions
kwvg Aug 12, 2025
024b466
chore: move lock annotations in `chainlock.h` to the next line
kwvg Aug 11, 2025
32156b2
build: assume true 64-bit target, assume `SPH_64` and related macros
kwvg Aug 1, 2025
ee6efaa
refactor: remove unused macros and function definitions
kwvg Aug 1, 2025
fb54ce0
bench: add benchmarks for constituent hash algorithms for proof of work
kwvg Jul 21, 2025
3ec483e
bench: more final proof of work benchmark to `pow_hash`
kwvg Aug 12, 2025
a02ce26
chore: update gitignore to include vscode and compile_commands.json
PastaPastaPasta Aug 12, 2025
3c87475
Merge bitcoin/bitcoin#26913: doc: Clarify debian copyright comment
DashCoreAutoGuix Aug 11, 2025
29e90a2
Merge bitcoin/bitcoin#27453: test: added coverage to rpc_scantxoutset.py
DashCoreAutoGuix Aug 11, 2025
ca3f3dd
Merge bitcoin/bitcoin#27688: doc: remove Security section from build-…
DashCoreAutoGuix Aug 11, 2025
26b154d
Merge bitcoin/bitcoin#27712: test: p2p: check misbehavior for non-con…
DashCoreAutoGuix Aug 11, 2025
fb2cb68
Merge bitcoin/bitcoin#29750: test: makes timeout a forced named argum…
DashCoreAutoGuix Aug 11, 2025
805981c
test: generate less quorums in feature_llmq_simplepose.py
knst Aug 13, 2025
f3262f7
test: generate at least 6 quorums if not instant ban is expecting
knst Aug 13, 2025
8bccb79
test: decrease total amount of nodes from 9 to 7 in feature_llmq_data…
knst Aug 13, 2025
655c5fa
test: wait for reindex on restarted nodes asynchronously in feature_l…
knst Aug 13, 2025
7e94747
test: generate less quorums in case of unlucky members distributions
knst Aug 13, 2025
4517d61
test: remove 1 second delays from p2p_quorum_data.py between steps
knst Aug 13, 2025
f6bc103
test: waiting 1second is not really a bit, but plenty
knst Aug 13, 2025
a29d2ae
Merge #6812: backport: auto 20250811
PastaPastaPasta Aug 13, 2025
d7319b6
Merge #6814: fix: Reset all collections before reading in `CDetermini…
PastaPastaPasta Aug 13, 2025
733cdbc
feat: introduce `CDeterministicMNStateDiffLegacy` class with original…
UdjinM6 Aug 11, 2025
bdb0d00
feat: move `nVersion` from `0x40000` to `0x0001` (first position) in …
UdjinM6 Aug 11, 2025
f7963d4
feat: implement EvoDB migration logic
UdjinM6 Aug 11, 2025
ac6ea47
feat: enforce `nVersion` bit for `pubKeyOperator` and `netInfo` bits …
UdjinM6 Aug 11, 2025
f6a4f01
test: add test cases for bit mapping and migration deser logic
UdjinM6 Aug 11, 2025
8832a3b
docs: add release notes
UdjinM6 Aug 11, 2025
80906fa
fix: apply review suggestions
UdjinM6 Aug 13, 2025
ac5c499
chore: trailing whitespace
PastaPastaPasta Aug 13, 2025
4e33c24
fix: specify utf8
PastaPastaPasta Aug 13, 2025
efea931
fix: do not trust legacy diffs, detect correct `nVersion` on migration
UdjinM6 Aug 14, 2025
225f90b
Merge #6816: chore: update gitignore to include vscode and compile_co…
PastaPastaPasta Aug 14, 2025
81440e3
Merge #6819: test: reduce delays in p2p_quorum_data.py
PastaPastaPasta Aug 14, 2025
ab22cbd
Merge #6817: test: further improvement of feature_llmq_simplepose.py
PastaPastaPasta Aug 14, 2025
dae1f19
Merge #6801: feat(llmq): Use randomized sig share session ids
PastaPastaPasta Aug 14, 2025
fb87a5a
Merge #6800: fix: Various log improvements
PastaPastaPasta Aug 14, 2025
f369673
fix: adjust ser/deser condition for netInfo
UdjinM6 Aug 15, 2025
b051c22
refactor: consolidate `CLSIG_REQUESTID_PREFIX` usage to `clsig.cpp`
kwvg Aug 15, 2025
4a744c7
refactor: use `std::chrono` for time variables, reduce resolution
kwvg Aug 11, 2025
9578146
refactor: document `pindex` assumptions in chainlocks code
kwvg Aug 11, 2025
f341ef5
chore: add `nodiscard` attrib to `MessageProcessingResult` ret functions
kwvg Aug 15, 2025
f3b98ce
chore: add redefinition of `NodeId` to avoid repetitive redefinition
kwvg Aug 15, 2025
e7b23a2
refactor: migrate `CSigningManager::ProcessMessage()`
kwvg Aug 15, 2025
30bf19d
crypto: isolate sphlib sources and apply stronger optimizations to it
kwvg Aug 6, 2025
cec4ae0
test: address code review feedback for feature_masternode_params
PastaPastaPasta Aug 15, 2025
1bbcb95
refactor: migrate `CSporkManager::ProcessMessage()` and friends
kwvg Aug 15, 2025
93d68b8
refactor: migrate `CQuorumManager::ProcessMessage()`
kwvg Aug 15, 2025
ef4a0bb
refactor: migrate `CDKGSessionManager::ProcessMessage()` and friends
kwvg Aug 15, 2025
9f85bd0
refactor: migrate `CInstantSendManager::ProcessMessage()`
kwvg Aug 15, 2025
6352baf
refactor: migrate `CMNAuth::ProcessMessage()`
kwvg Aug 15, 2025
1d50a1a
refactor: migrate `CCoinJoinClientQueueManager::ProcessMessage()`
kwvg Aug 15, 2025
8b9bf7c
refactor: migrate `CCoinJoinServer::ProcessMessage()`
kwvg Aug 15, 2025
9084530
refactor: migrate `CGovernanceManager::ProcessMessage()` and friends
kwvg Aug 15, 2025
0517aff
refactor: mark `RelayInv{,Filtered}`'s `CInv` argument as const
kwvg Aug 12, 2025
4822b93
refactor: allow submitting multiple `CInv`s to `MessageProcessingResult`
kwvg Aug 15, 2025
5d1222e
chore: drop govobj/govobjvote counts, use `ret.m_inventory.size()`
UdjinM6 Aug 15, 2025
2020757
trivial: remove `PeerMsgRet` handling logic
kwvg Aug 15, 2025
491ae50
revert: new util class `expected` for return errors by more convenien…
kwvg Aug 15, 2025
75de576
feat: remove pre-withdrawals fork logic for quorum expiration
knst Aug 13, 2025
a039345
test: activate mn_rr in feature_asset_locks.py for better performance
knst Aug 13, 2025
825dfdd
test: activate v23 earlier (block 750 instead 1050)
knst Aug 15, 2025
4a7937d
test: re-order logic related to IS in feature_asset_locks.py
knst Aug 15, 2025
56711d9
test: flip request-id for asset-unlock-tx instead generation new quor…
knst Aug 15, 2025
44eebe7
chore: resolve `constVariable` linter error
kwvg Aug 15, 2025
fcd1b8c
doc: add disk space requirement note to release notes
PastaPastaPasta Aug 15, 2025
bcff97a
test: remove unused import from feature_masternode_params
PastaPastaPasta Aug 15, 2025
4c6ce0f
Merge #6818: test: optimize feature_llmq_data_recovery.py
PastaPastaPasta Aug 16, 2025
690a1cd
Merge #6808: fix: fix and re-enable snapshot (de)serialization tests,…
PastaPastaPasta Aug 16, 2025
ec764fd
partial bitcoin#22154: Add OutputType::BECH32M and related wallet sup…
kwvg Aug 17, 2025
9e23b11
merge bitcoin#25218: introduce generic 'Result' class and connect it …
kwvg Aug 17, 2025
50ca8cf
refactor: remove `CKey` overload for `Create{,AndProcess}Block()`
kwvg Aug 17, 2025
03939f2
partial bitcoin#24584: avoid mixing different `OutputTypes` during co…
kwvg Mar 11, 2022
56accfe
merge bitcoin#25721: Replace BResult with util::Result
kwvg Aug 17, 2025
bd897fa
merge bitcoin#25656: return util::Result from `GetReservedDestination…
kwvg Aug 16, 2025
240765e
merge bitcoin#25616: Return `util::Result` from WalletLoader methods
kwvg Aug 16, 2025
f15a1b9
merge bitcoin#26005: Fix error handling (copy_file failure in Restore…
kwvg Sep 4, 2022
0fca914
merge bitcoin#24855: Fix `setwalletflag` disabling of flags
kwvg Apr 14, 2022
c5e8bd6
merge bitcoin#18554: ensure wallet files are not reused across chains
kwvg Aug 17, 2025
c349dad
merge bitcoin#17204: Do not turn OP_1NEGATE in scriptSig into 0x0181 …
kwvg Apr 25, 2018
f883122
merge bitcoin#20562: Test that a fully signed tx given to signrawtx i…
kwvg Dec 3, 2020
4e0725e
merge bitcoin#21166: Introduce DeferredSignatureChecker and have Sign…
kwvg Aug 17, 2025
c6eabc1
merge bitcoin#25044: Use MiniWallet in rpc_rawtransaction.py
kwvg Aug 17, 2025
a118fe1
test: reduce `num_nodes` in `feature_nulldummy.py` to 1
kwvg Aug 17, 2025
c24c9ea
merge bitcoin#25364: remove wallet dependency from feature_nulldummy.py
kwvg Aug 17, 2025
f405790
merge bitcoin#25525: remove wallet dependency from mempool_updatefrom…
kwvg Jul 1, 2022
2a880d8
merge bitcoin#25512: remove wallet dependency and refactor rpc_signra…
kwvg Jun 30, 2022
d63ca8a
merge bitcoin#24678: Prevent wallet unload on GetWalletForJSONRPCRequest
kwvg Aug 17, 2025
c0f9225
merge bitcoin#26747: fix confusing error / GUI crash on cross-chain l…
kwvg Dec 23, 2022
38513b6
perf: temporary cache for consequent calls of CDeterministicMNList fo…
knst Jun 23, 2025
bfca726
perf: do not create mini-snapshots during re-index
knst Aug 18, 2025
366cd2b
refactor: clarify logic and add a named constant MINI_SNAPSHOT_INTERVAL
knst Aug 18, 2025
1c50949
refactor: `uint256()` -> `uint256{}`
UdjinM6 Aug 18, 2025
4d9d8f7
chore: update release notes
UdjinM6 Aug 18, 2025
c8592b8
Merge #6820: refactor: migrate `ProcessMessage` definitions to `Messa…
PastaPastaPasta Aug 18, 2025
cc9da5d
Merge #6756: perf: cache mined commitment for quorum merkle root calc…
PastaPastaPasta Aug 19, 2025
25f05c1
refactor: make unknown block clsig flow easier to follow
kwvg Aug 19, 2025
7b4ee6b
trivial: document transaction confirmation safety threshold
kwvg Aug 15, 2025
f3224ae
refactor: consolidate `INPUTLOCK_REQUESTID_PREFIX` usage to `lock.cpp`
kwvg Aug 15, 2025
34a90e6
chore: remove unused `IsInvInFilter` from `PeerManager` interface
kwvg Aug 12, 2025
218998b
Merge #6813: feat: Migrate `CDeterministicMNStateDiff` to a new forma…
PastaPastaPasta Aug 19, 2025
eb9d7d9
Merge #6707: feat: remove useless debug logs and improve mocktime log…
PastaPastaPasta Aug 19, 2025
c2335e9
Merge #6815: refactor: follow-up dash#6761, implement review suggesti…
PastaPastaPasta Aug 19, 2025
8fc24bd
Merge #6734: perf: temporary cache for consequent calls of CDetermini…
PastaPastaPasta Aug 19, 2025
76e4e72
refactor: split quorum commitment verification and its signatures
knst May 23, 2025
0f3a8e4
feat: add -parbls and validate async quorumSig and membersSig in QC
knst May 24, 2025
2b17480
fix(tests): add feature_masternode_params.py to test runner
PastaPastaPasta Aug 19, 2025
3c6ab9f
Merge #6661: feat: remove pre-'withdrawals' logic for enforcing 2 quo…
PastaPastaPasta Aug 19, 2025
7a86e19
refactor: drop unused flag from ProcessCommitment
knst Jul 24, 2025
8530c92
fix: replace strings Bls to BLS in command line help
knst Jul 24, 2025
2d4fe1b
fix: set proper state after async signatures validation in block proc…
knst Jul 25, 2025
43ed80d
fix: increased "max amount of threads" for bls check from 31 to 33
knst Aug 4, 2025
7733740
fix: add missing log for case of no public key is provided
knst Aug 4, 2025
73e56f0
Merge #6692: perf: using asynchronous worker to validate BLS signatur…
PastaPastaPasta Aug 19, 2025
a6f55ee
Merge #6796: crypto: assume true 64-bit target, add benchmarks for co…
PastaPastaPasta Aug 19, 2025
8ae2280
feat: add special transaction support to compact block filters (BIP-1…
PastaPastaPasta Aug 19, 2025
773fe9b
lint: add specialtx_filter circular dependencies to allowed list
PastaPastaPasta Aug 20, 2025
0ea85f7
fix: remove unused variable in blockfilter_tests
PastaPastaPasta Aug 20, 2025
8d08a54
Apply suggestions from code review
PastaPastaPasta Aug 20, 2025
3fb9183
test: improve p2p_blockfilters special transaction tests
PastaPastaPasta Aug 20, 2025
7a33c14
tests: compact filters: fix F841, verify tx inclusion, and cleanups
PastaPastaPasta Aug 20, 2025
1c9809f
filters: add cross-reference comments to keep bloom and compact filte…
PastaPastaPasta Aug 20, 2025
9266b9a
refactor: break circular dependency over evo/assetlock and llmq/signing
knst Aug 20, 2025
a1ecf5d
tests: p2p_blockfilters: skip when wallet module is not available
PastaPastaPasta Aug 20, 2025
a5bab55
test: remove wallet dependency from p2p_blockfilters.py and refactor …
knst Aug 20, 2025
c734b64
tests: p2p_blockfilters: use assert_greater_than for clearer failures
PastaPastaPasta Aug 20, 2025
bf352e7
evo: use Span<const unsigned char> in specialtx filter extraction cal…
PastaPastaPasta Aug 20, 2025
492c109
feat: add versioning to blockfilter index to detect incompatible format
PastaPastaPasta Aug 20, 2025
d3f1b9e
test: remove wallet dependency check from blockfilter tests
PastaPastaPasta Aug 20, 2025
a93d2bf
Merge #6711: feat: auto-enable BIP157 block filters for masternodes only
PastaPastaPasta Aug 20, 2025
b4999d7
Merge #6823: backport: merge bitcoin#25218, #25721, #25656, #25616, #…
PastaPastaPasta Aug 20, 2025
f28bf6d
feat: start blockfilter sync from scratch on db version upgrades
UdjinM6 Aug 20, 2025
4750246
doc: shrink release notes
UdjinM6 Aug 20, 2025
09490b7
chore: drop useless feature_blockfilter_version.py
UdjinM6 Aug 20, 2025
b2522a2
chore: make clang format happy
UdjinM6 Aug 20, 2025
4b90441
docs: indicate that blockfilter will be re-created
PastaPastaPasta Aug 21, 2025
c060a2a
Merge bitcoin/bitcoin#27689: doc: remove mention of glibc 2.10+
DashCoreAutoGuix Aug 21, 2025
56686df
Merge bitcoin/bitcoin#27949: http: update libevent workaround to corr…
DashCoreAutoGuix Aug 21, 2025
5030a4d
Merge bitcoin/bitcoin#27947: MaybePunishNodeForTx: Remove unused mess…
DashCoreAutoGuix Aug 21, 2025
8b77a80
Merge bitcoin/bitcoin#27530: Remove now-unnecessary poll, fcntl inclu…
DashCoreAutoGuix Aug 21, 2025
23c0ea2
Merge bitcoin/bitcoin#28011: test: Rename EncodeDecimal to serializat…
DashCoreAutoGuix Aug 21, 2025
0a4441e
Merge bitcoin-core/gui#719: Remove confusing "Dust" label from coinco…
DashCoreAutoGuix Aug 21, 2025
d6a4ff5
Merge bitcoin/bitcoin#28040: wallet: sqlite: don't include sqlite fil…
DashCoreAutoGuix Aug 21, 2025
92742d8
Merge bitcoin/bitcoin#27928: test: Add more tests for the BIP21 imple…
DashCoreAutoGuix Aug 21, 2025
cbd2802
Merge bitcoin/bitcoin#29237: depends: Allow PATH with spaces in direc…
DashCoreAutoGuix Aug 21, 2025
e26ae22
Merge bitcoin/bitcoin#29235: doc: refer to "Node relay options" in po…
DashCoreAutoGuix Aug 21, 2025
6640a79
Merge bitcoin/bitcoin#29243: wallet: Reset chain notifications handle…
DashCoreAutoGuix Aug 21, 2025
7bb828b
Merge bitcoin/bitcoin#29456: docs: ci multi-arch requires qemu
DashCoreAutoGuix Aug 21, 2025
33a294a
Merge bitcoin/bitcoin#29469: doc: document preference for list-initia…
DashCoreAutoGuix Aug 21, 2025
265eebd
Merge bitcoin/bitcoin#29470: test: Add option to skip python unit tests
DashCoreAutoGuix Aug 21, 2025
479c23b
Merge bitcoin/bitcoin#29481: doc: Update OpenBSD build docs for 7.4
DashCoreAutoGuix Aug 21, 2025
4ffee8c
Merge bitcoin/bitcoin#28014: ci: re-enable gui tests for s390x
DashCoreAutoGuix Aug 21, 2025
1c8c746
test: remove unused EncodeDecimal from test framework util
PastaPastaPasta Aug 22, 2025
445300c
Merge #6827: backport: auto 20250821
PastaPastaPasta Aug 23, 2025
57884f0
Merge #6825: feat: add special transaction support to compact block f…
PastaPastaPasta Aug 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -168,3 +168,7 @@ test/lint/.cppcheck/*

# flake8 cache location
.cache/*

# Editor and tooling
.vscode/
compile_commands.json
4 changes: 2 additions & 2 deletions ci/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ testing compared to other parts of the codebase. If you want to keep the work tr
system in a virtual machine with a Linux operating system of your choice.

To allow for a wide range of tested environments, but also ensure reproducibility to some extent, the test stage
requires `docker` to be installed. To install all requirements on Ubuntu, run
requires `docker` to be installed. To run on different architectures than the host `qemu` is also required. To install all requirements on Ubuntu, run

```
sudo apt install docker.io bash
sudo apt install docker.io bash qemu-user-static
```

To run the default test stage,
Expand Down
2 changes: 1 addition & 1 deletion ci/test/00_setup_env_s390x.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ export RUN_UNIT_TESTS=true
export TEST_RUNNER_EXTRA="--exclude rpc_bind,feature_bind_extra" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export RUN_FUNCTIONAL_TESTS=true
export GOAL="install"
export BITCOIN_CONFIG="--enable-reduce-exports --disable-gui-tests --with-boost-process" # GUI tests disabled for now, see https://github.com/bitcoin/bitcoin/issues/23730
export BITCOIN_CONFIG="--enable-reduce-exports --with-boost-process"
4 changes: 4 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,9 @@ if test "$enable_debug" = "yes"; then
AX_CHECK_PREPROC_FLAG([-DABORT_ON_FAILED_ASSUME], [DEBUG_CPPFLAGS="$DEBUG_CPPFLAGS -DABORT_ON_FAILED_ASSUME"], [], [$CXXFLAG_WERROR])
AX_CHECK_COMPILE_FLAG([-ftrapv], [DEBUG_CXXFLAGS="$DEBUG_CXXFLAGS -ftrapv"], [], [$CXXFLAG_WERROR])
else
dnl If not debugging, enable more aggressive optimizations for sphlib sources
AX_CHECK_COMPILE_FLAG([-O3], [SPHLIB_CFLAGS="$SPHLIB_CFLAGS -O3"], [], [$CXXFLAG_WERROR])

# We always enable at at least -g1 debug info to support proper stacktraces in crash infos
# Stacktraces will be suboptimal due to optimization, but better than nothing. Also, -fno-omit-frame-pointer
# mitigates this a little bit
Expand Down Expand Up @@ -1874,6 +1877,7 @@ AC_SUBST(PIC_FLAGS)
AC_SUBST(PIE_FLAGS)
AC_SUBST(SANITIZER_CXXFLAGS)
AC_SUBST(SANITIZER_LDFLAGS)
AC_SUBST(SPHLIB_CFLAGS)
AC_SUBST(SSE42_CXXFLAGS)
AC_SUBST(SSE41_CXXFLAGS)
AC_SUBST(CLMUL_CXXFLAGS)
Expand Down
8 changes: 4 additions & 4 deletions contrib/debian/copyright
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ Files: *
Copyright: 2009-2025, Bitcoin Core Developers,
2019-2025, Dash Core Developers
License: Expat
Comment: The Bitcoin Core Developers encompasses the current developers listed on bitcoin.org,
as well as the numerous contributors to the project. The Dash Core Developers
encompasses the current developers listed on https://www.dash.org/team/, as well as
the numerous contributors to the project.
Comment: The Bitcoin Core Developers encompasses all contributors to the
project, listed in the release notes or the git log. The Dash Core
Developers encompasses all contributors to the project, listed in the
release notes or the git log.

Files: debian/*
Copyright: 2010-2011, Jonas Smedegaard <dr@jones.dk>
Expand Down
1 change: 0 additions & 1 deletion contrib/devtools/copyright_header.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
'src/ctpl_stl.h',
'src/test/fuzz/FuzzedDataProvider.h',
'src/tinyformat.h',
'src/util/expected.h',
'src/wallet/bip39.cpp',
'src/wallet/bip39.h',
'src/wallet/bip39_english.h',
Expand Down
6 changes: 3 additions & 3 deletions depends/funcs.mk
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ $(1)_config_env+=PKG_CONFIG_LIBDIR=$($($(1)_type)_prefix)/lib/pkgconfig
$(1)_config_env+=PKG_CONFIG_PATH=$($($(1)_type)_prefix)/share/pkgconfig
$(1)_config_env+=PKG_CONFIG_SYSROOT_DIR=/
$(1)_config_env+=CMAKE_MODULE_PATH=$($($(1)_type)_prefix)/lib/cmake
$(1)_config_env+=PATH=$(build_prefix)/bin:$(PATH)
$(1)_build_env+=PATH=$(build_prefix)/bin:$(PATH)
$(1)_stage_env+=PATH=$(build_prefix)/bin:$(PATH)
$(1)_config_env+=PATH="$(build_prefix)/bin:$(PATH)"
$(1)_build_env+=PATH="$(build_prefix)/bin:$(PATH)"
$(1)_stage_env+=PATH="$(build_prefix)/bin:$(PATH)"

# Setting a --build type that differs from --host will explicitly enable
# cross-compilation mode. Note that --build defaults to the output of
Expand Down
4 changes: 3 additions & 1 deletion doc/build-openbsd.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
OpenBSD build guide
======================
(updated for OpenBSD 6.7)
**Updated for OpenBSD [7.4](https://www.openbsd.org/74.html)**

This guide describes how to build dashd, dash-qt, and command-line utilities on OpenBSD.

Expand Down Expand Up @@ -40,6 +40,8 @@ from ports, for the same reason as boost above (g++/libstd++ incompatibility).
If you have to build it yourself, you can use [the installation script included
in contrib/](/contrib/install_db4.sh) like so:

Refer to [depends/README.md](/depends/README.md) for detailed instructions.

```bash
./contrib/install_db4.sh `pwd` CC=cc CXX=c++
```
Expand Down
46 changes: 0 additions & 46 deletions doc/build-unix.md
Original file line number Diff line number Diff line change
Expand Up @@ -250,52 +250,6 @@ Otherwise, you can build Dash Core from self-compiled [depends](/depends/README.

**Note**: You only need Berkeley DB if the wallet is enabled (see [*Disable-wallet mode*](#disable-wallet-mode)).

Security
--------
To help make your Dash Core installation more secure by making certain attacks impossible to
exploit even if a vulnerability is found, binaries are hardened by default.
This can be disabled with:

Hardening Flags:

./configure --enable-hardening
./configure --disable-hardening


Hardening enables the following features:
* _Position Independent Executable_: Build position independent code to take advantage of Address Space Layout Randomization
offered by some kernels. Attackers who can cause execution of code at an arbitrary memory
location are thwarted if they don't know where anything useful is located.
The stack and heap are randomly located by default, but this allows the code section to be
randomly located as well.

On an AMD64 processor where a library was not compiled with -fPIC, this will cause an error
such as: "relocation R_X86_64_32 against `......' can not be used when making a shared object;"

To test that you have built PIE executable, install scanelf, part of paxutils, and use:

scanelf -e ./dashd

The output should contain:

TYPE
ET_DYN

* _Non-executable Stack_: If the stack is executable then trivial stack-based buffer overflow exploits are possible if
vulnerable buffers are found. By default, Dash Core should be built with a non-executable stack,
but if one of the libraries it uses asks for an executable stack or someone makes a mistake
and uses a compiler extension which requires an executable stack, it will silently build an
executable without the non-executable stack protection.

To verify that the stack is non-executable after compiling use:
`scanelf -e ./dashd`

The output should contain:
STK/REL/PTL
RW- R-- RW-

The STK RW- means that the stack is readable and writeable but not executable.

Disable-wallet mode
--------------------
When the intention is to run only a P2P node without a wallet, Dash Core may be compiled in
Expand Down
10 changes: 7 additions & 3 deletions doc/developer-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ code.
- `nullptr` is preferred over `NULL` or `(void*)0`.
- `static_assert` is preferred over `assert` where possible. Generally; compile-time checking is preferred over run-time checking.
- Align pointers and references to the left i.e. use `type& var` and not `type &var`.
- Prefer [`list initialization ({})`](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-list) where possible.
For example `int x{0};` instead of `int x = 0;` or `int x(0);`

For function calls a namespace should be specified explicitly, unless such functions have been declared within it.
Otherwise, [argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl), also known as ADL, could be
Expand All @@ -135,7 +137,7 @@ int main()

Block style example:
```c++
int g_count = 0;
int g_count{0};

namespace foo {
class Class
Expand All @@ -147,7 +149,7 @@ public:
{
// Comment summarising what this section of code does
for (int i = 0; i < n; ++i) {
int total_sum = 0;
int total_sum{0};
// When something fails, return early
if (!Something()) return false;
...
Expand Down Expand Up @@ -946,7 +948,9 @@ Threads and synchronization

- Consistently use [Clang Thread Safety Analysis](https://clang.llvm.org/docs/ThreadSafetyAnalysis.html) annotations to
get compile-time warnings about potential race conditions in code. Combine annotations in function declarations with
run-time asserts in function definitions:
run-time asserts in function definitions (`AssertLockNotHeld()` can be omitted if `LOCK()` is
called unconditionally after it because `LOCK()` does the same check as
`AssertLockNotHeld()` internally, for non-recursive mutexes):

```C++
// txmempool.h
Expand Down
4 changes: 2 additions & 2 deletions doc/policy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

**Policy** (Mempool or Transaction Relay Policy) is the node's set of validation rules, in addition
to consensus, enforced for unconfirmed transactions before submitting them to the mempool. These
rules are local to the node and configurable (e.g. `-minrelaytxfee`, `-limitancestorsize`,
`-incrementalRelayFee`). Policy may include restrictions on the transaction itself, the transaction
rules are local to the node and configurable, see "Node relay options" when running `-help`.
Policy may include restrictions on the transaction itself, the transaction
in relation to the current chain tip, and the transaction in relation to the node's mempool
contents. Policy is *not* applied to transactions in blocks.

Expand Down
2 changes: 1 addition & 1 deletion doc/reduce-memory.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ threads take up 8MiB for the thread stack on a 64-bit system, and 4MiB in a

## Linux specific

By default, glibc's implementation of `malloc` may use more than one arena. This is known to cause excessive memory usage in some scenarios. To avoid this, make a script that sets `MALLOC_ARENA_MAX` before starting dashd:
By default, glibc will create up to two heap arenas per core. This is known to cause excessive memory usage in some scenarios. To avoid this make a script that sets `MALLOC_ARENA_MAX` before starting dashd:

```bash
#!/usr/bin/env bash
Expand Down
9 changes: 9 additions & 0 deletions doc/release-notes-6711.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Updated settings
----------------

- BIP157 compact block filters are now automatically enabled for masternodes. This improves privacy for light clients
connecting to masternodes and enables better support for pruned nodes. When a node is configured as a masternode
(via `-masternodeblsprivkey`), both `-peerblockfilters` and `-blockfilterindex=basic` are automatically enabled.
Note that this feature requires approximately 1GB+ of additional disk space for the block filter index.
Regular nodes keep the previous defaults (disabled). Masternodes can still explicitly disable these features
if needed by setting `-peerblockfilters=0` or `-blockfilterindex=0` (#6711).
4 changes: 4 additions & 0 deletions doc/release-notes-6813.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
EvoDB migration
---------------

This release introduces a new internal format for masternode state data to support extended addresses and make future updates of this data seamless. Nodes will automatically migrate to the new format. Downgrading to an earlier version would require a full reindex. #6813
19 changes: 19 additions & 0 deletions doc/release-notes-6825.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Breaking Change: Block Filter Index Format Update

## Summary
The compact block filter index format has been updated to include Dash special transaction data, providing feature parity with bloom filters for SPV client support. This change is **incompatible** with existing blockfilter indexes. Existing blockfilter indexes will automatically be re-created with the new version.

## Technical Details
- The blockfilter index now includes fields from Dash special transactions:
- ProRegTx (masternode registration)
- ProUpServTx (masternode service updates)
- ProUpRegTx (masternode operator updates)
- ProUpRevTx (masternode revocation)
- AssetLockTx (platform credit outputs)
- A versioning system has been added to detect incompatible indexes on startup
- The index version is now 2 (previously unversioned)

## Benefits
- SPV clients can now detect and track Dash-specific transactions
- Feature parity between bloom filters and compact block filters
- Protection against serving incorrect filter data to light clients
19 changes: 15 additions & 4 deletions src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ LIBBITCOIN_WALLET_TOOL=libbitcoin_wallet_tool.a
endif

LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE)
LIBBITCOIN_CRYPTO_SPH = crypto/libbitcoin_crypto_sph.la
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SPH)
if ENABLE_SSE41
LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.la
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE41)
Expand Down Expand Up @@ -200,6 +202,7 @@ BITCOIN_CORE_H = \
evo/simplifiedmns.h \
evo/smldiff.h \
evo/specialtx.h \
evo/specialtx_filter.h \
evo/specialtxman.h \
dsnotificationinterface.h \
governance/governance.h \
Expand Down Expand Up @@ -357,7 +360,6 @@ BITCOIN_CORE_H = \
util/enumerate.h \
util/epochguard.h \
util/error.h \
util/expected.h \
util/fastrange.h \
util/fees.h \
util/golombrice.h \
Expand Down Expand Up @@ -480,6 +482,7 @@ libbitcoin_node_a_SOURCES = \
evo/simplifiedmns.cpp \
evo/smldiff.cpp \
evo/specialtx.cpp \
evo/specialtx_filter.cpp \
evo/specialtxman.cpp \
flatfile.cpp \
governance/classes.cpp \
Expand Down Expand Up @@ -718,8 +721,16 @@ crypto_libbitcoin_crypto_avx2_la_CXXFLAGS += $(AVX2_CXXFLAGS)
crypto_libbitcoin_crypto_avx2_la_CPPFLAGS += -DENABLE_AVX2
crypto_libbitcoin_crypto_avx2_la_SOURCES = crypto/sha256_avx2.cpp

# x11
crypto_libbitcoin_crypto_base_la_SOURCES += \
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
# CXXFLAGS above
crypto_libbitcoin_crypto_sph_la_LDFLAGS = $(AM_LDFLAGS) -static
crypto_libbitcoin_crypto_sph_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
crypto_libbitcoin_crypto_sph_la_CPPFLAGS = $(AM_CPPFLAGS)
crypto_libbitcoin_crypto_sph_la_CFLAGS = $(SPHLIB_CFLAGS)
crypto_libbitcoin_crypto_sph_la_CPPFLAGS += \
-DSPH_SMALL_FOOTPRINT_CUBEHASH=1 \
-DSPH_SMALL_FOOTPRINT_JH=1
crypto_libbitcoin_crypto_sph_la_SOURCES = \
crypto/x11/aes_helper.c \
crypto/x11/blake.c \
crypto/x11/bmw.c \
Expand Down Expand Up @@ -1009,7 +1020,7 @@ endif
# dashconsensus library #
if BUILD_BITCOIN_LIBS
include_HEADERS = script/bitcoinconsensus.h
libdashconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_la_SOURCES) $(libbitcoin_consensus_a_SOURCES)
libdashconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_la_SOURCES) $(crypto_libbitcoin_crypto_sph_la_SOURCES) $(libbitcoin_consensus_a_SOURCES)

libdashconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS)
libdashconsensus_la_LIBADD = $(LIBDASHBLS) $(LIBSECP256K1) $(GMP_LIBS)
Expand Down
1 change: 1 addition & 0 deletions src/Makefile.bench.include
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ bench_bench_dash_SOURCES = \
bench/nanobench.cpp \
bench/peer_eviction.cpp \
bench/pool.cpp \
bench/pow_hash.cpp \
bench/rpc_blockchain.cpp \
bench/rpc_mempool.cpp \
bench/strencodings.cpp \
Expand Down
6 changes: 6 additions & 0 deletions src/Makefile.test.include
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,10 @@ BITCOIN_TESTS =\
test/fs_tests.cpp \
test/getarg_tests.cpp \
test/governance_validators_tests.cpp \
test/coinjoin_inouts_tests.cpp \
test/coinjoin_dstxmanager_tests.cpp \
test/coinjoin_basemanager_tests.cpp \
test/coinjoin_queue_tests.cpp \
test/hash_tests.cpp \
test/httpserver_tests.cpp \
test/i2p_tests.cpp \
Expand Down Expand Up @@ -158,6 +162,7 @@ BITCOIN_TESTS =\
test/random_tests.cpp \
test/ratecheck_tests.cpp \
test/rest_tests.cpp \
test/result_tests.cpp \
test/reverselock_tests.cpp \
test/rpc_tests.cpp \
test/sanity_tests.cpp \
Expand Down Expand Up @@ -210,6 +215,7 @@ BITCOIN_TESTS += \
wallet/test/wallet_crypto_tests.cpp \
wallet/test/wallet_transaction_tests.cpp \
wallet/test/coinselector_tests.cpp \
wallet/test/availablecoins_tests.cpp \
wallet/test/init_tests.cpp \
wallet/test/ismine_tests.cpp \
wallet/test/scriptpubkeyman_tests.cpp
Expand Down
6 changes: 3 additions & 3 deletions src/bench/coin_selection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ static void CoinSelection(benchmark::Bench& bench)
addCoin(3 * COIN, wallet, wtxs);

// Create coins
std::vector<COutput> coins;
wallet::CoinsResult available_coins;
for (const auto& wtx : wtxs) {
const auto txout = wtx->tx->vout.at(0);
coins.emplace_back(COutPoint(wtx->GetHash(), 0), txout, /*depth=*/6 * 24, CalculateMaximumSignedInputSize(txout, &wallet, /*coin_control=*/nullptr), /*spendable=*/true, /*solvable=*/true, /*safe=*/true, wtx->GetTxTime(), /*from_me=*/true, /*fees=*/ 0);
available_coins.legacy.emplace_back(COutPoint(wtx->GetHash(), 0), txout, /*depth=*/6 * 24, CalculateMaximumSignedInputSize(txout, &wallet, /*coin_control=*/nullptr), /*spendable=*/true, /*solvable=*/true, /*safe=*/true, wtx->GetTxTime(), /*from_me=*/true, /*fees=*/ 0);
}
const CoinEligibilityFilter filter_standard(1, 6, 0);
FastRandomContext rand{};
Expand All @@ -73,7 +73,7 @@ static void CoinSelection(benchmark::Bench& bench)
/*avoid_partial=*/ false,
};
bench.run([&] {
auto result = AttemptSelection(wallet, 1003 * COIN, filter_standard, coins, coin_selection_params);
auto result = AttemptSelection(wallet, 1003 * COIN, filter_standard, available_coins, coin_selection_params, /*allow_mixed_output_types=*/true);
assert(result);
assert(result->GetSelectedValue() == 1003 * COIN);
assert(result->GetInputSet().size() == 2);
Expand Down
Loading
Loading