diff --git a/doc/release-notes-6825.md b/doc/release-notes-6825.md new file mode 100644 index 0000000000000..a21eb6cc35faa --- /dev/null +++ b/doc/release-notes-6825.md @@ -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 diff --git a/src/Makefile.am b/src/Makefile.am index 18c318829dc59..45c98edb9a8f8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -200,6 +200,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 \ @@ -479,6 +480,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 \ diff --git a/src/blockfilter.cpp b/src/blockfilter.cpp index e58c4c2110ed9..f4638dabcc0d1 100644 --- a/src/blockfilter.cpp +++ b/src/blockfilter.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include