Skip to content

Commit 5b8c597

Browse files
committed
Merge bitcoin/bitcoin#29189: RFC: Deprecate libconsensus
25dc87e 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: hebasto/bitcoin#41 bitcoin/bitcoin#29123 And here: bitcoin/bitcoin#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 25dc87e fanquake: ACK 25dc87e - 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
2 parents f879c1b + 25dc87e commit 5b8c597

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

doc/release-notes-29189.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
libbitcoinconsensus
2+
========================
3+
4+
This library is deprecated and will be removed for v28.
5+
6+
It has existed for nearly 10 years with very little known uptake or impact. It
7+
has become a maintenance burden.
8+
9+
The underlying functionality does not change between versions, so any users of
10+
the library can continue to use the final release indefinitely, with the
11+
understanding that Taproot is its final consensus update.
12+
13+
In the future, libbitcoinkernel will provide a much more useful API that is
14+
aware of the UTXO set, and therefore be able to fully validate transactions and
15+
blocks.

doc/shared-libraries.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ Shared Libraries
22
================
33

44
## bitcoinconsensus
5+
***This library is deprecated and will be removed in v28***
56

67
The purpose of this library is to make the verification functionality that is critical to Bitcoin's consensus available to other applications, e.g. to language bindings.
78

0 commit comments

Comments
 (0)