From 3ff50687493b3f3c1600b73e3b7d95620af86847 Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 1 Feb 2024 16:10:13 +0000 Subject: [PATCH 1/2] Merge bitcoin/bitcoin#29189: RFC: Deprecate libconsensus 25dc87e6f84c38c21e109e11f7bbd93f1e1f3183 libconsensus: deprecate (Cory Fields) Pull request description: This library has existed for nearly 10 years with very little known uptake or impact. It has become a maintenance burden. In several cases it dictates our code/library structure (for example necessitating LIBBITCOIN_CRYPTO_BASE), as well as build-system procedures (building multiple copies of object files especially for the lib). Several discussions have arisen wrt migrating it to CMake and it has become difficult to justify adding more complexity for a library that is virtually unused anyway. See for example the discussions: https://github.com/hebasto/bitcoin/pull/41 https://github.com/bitcoin/bitcoin/pull/29123 And here: https://github.com/bitcoin/bitcoin/pull/29180 Where it is pointed out that the libbitcoinconsensus functions are slower than those the internal bitcoind equivalents due to the missing sha2 implementations. Instead, we (fanquake, hebasto, TheCharlatan, and I) propose simply not migrating it to CMake and letting it end with v27. Any remaining use-cases could be handled in the future by libbitcoinkernel. If there are any users currently using libbitcoinconsensus, please chime in with your use-case! Edit: Corrected final release to be v27. ACKs for top commit: TheCharlatan: ACK 25dc87e6f84c38c21e109e11f7bbd93f1e1f3183 fanquake: ACK 25dc87e6f84c38c21e109e11f7bbd93f1e1f3183 - this library has very little, if any impactful real world usage. It has been entirely broken (on various platforms) for long periods of its existence, where nobody even noticed. Pruning this out to save porting, and starting anew with the kernel, is the sane thing to do. Tree-SHA512: baff2b3c4f76f520c96021035f751fdcb51bedf00e767660249e92a7bc7c5c176786bcf2c4cfe2d2351c200f932b39eb886bcfb22fbec824a41617590d6a1638 --- doc/release-notes-29189.md | 15 +++++++++++++++ doc/shared-libraries.md | 1 + 2 files changed, 16 insertions(+) create mode 100644 doc/release-notes-29189.md diff --git a/doc/release-notes-29189.md b/doc/release-notes-29189.md new file mode 100644 index 000000000000..7eec81b4b9cd --- /dev/null +++ b/doc/release-notes-29189.md @@ -0,0 +1,15 @@ +libdashconsensus +======================== + +This library is deprecated and will be removed for v28. + +It has existed for nearly 10 years with very little known uptake or impact. It +has become a maintenance burden. + +The underlying functionality does not change between versions, so any users of +the library can continue to use the final release indefinitely, with the +understanding that its final consensus update. + +In the future, libdashkernel will provide a much more useful API that is +aware of the UTXO set, and therefore be able to fully validate transactions and +blocks. diff --git a/doc/shared-libraries.md b/doc/shared-libraries.md index 0e8e40e9b66b..f4ad447265b4 100644 --- a/doc/shared-libraries.md +++ b/doc/shared-libraries.md @@ -2,6 +2,7 @@ Shared Libraries ================ ## dashconsensus +***This library is deprecated and will be removed in v28*** The purpose of this library is to make the verification functionality that is critical to Dash's consensus available to other applications, e.g. to language bindings. From 47b3e0c0b366ebbac9944169c7258c5c245e8336 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Tue, 9 Dec 2025 11:53:43 -0600 Subject: [PATCH 2/2] validation: Fix grammatical error in libdashconsensus deprecation notice - Complete sentence fragment in release notes (added 'this is' before 'its final consensus update') - Properly adapts Bitcoin's Taproot reference removal for Dash --- doc/release-notes-29189.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-notes-29189.md b/doc/release-notes-29189.md index 7eec81b4b9cd..71b3de8094d2 100644 --- a/doc/release-notes-29189.md +++ b/doc/release-notes-29189.md @@ -8,7 +8,7 @@ has become a maintenance burden. The underlying functionality does not change between versions, so any users of the library can continue to use the final release indefinitely, with the -understanding that its final consensus update. +understanding that this is its final consensus update. In the future, libdashkernel will provide a much more useful API that is aware of the UTXO set, and therefore be able to fully validate transactions and