Skip to content

Commit

Permalink
Merge bitcoin#29189: RFC: Deprecate libconsensus
Browse files Browse the repository at this point in the history
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#41
  bitcoin#29123

  And here: 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
  • Loading branch information
fanquake committed Feb 1, 2024
2 parents f879c1b + 25dc87e commit 5b8c597
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
15 changes: 15 additions & 0 deletions doc/release-notes-29189.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
libbitcoinconsensus
========================

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 Taproot is its final consensus update.

In the future, libbitcoinkernel will provide a much more useful API that is
aware of the UTXO set, and therefore be able to fully validate transactions and
blocks.
1 change: 1 addition & 0 deletions doc/shared-libraries.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ Shared Libraries
================

## bitcoinconsensus
***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 Bitcoin's consensus available to other applications, e.g. to language bindings.

Expand Down

0 comments on commit 5b8c597

Please sign in to comment.