Merge bitcoin/bitcoin#29189: RFC: Deprecate libconsensus

25dc87e6f8 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 25dc87e6f8
  fanquake:
    ACK 25dc87e6f8 - 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
This commit is contained in:
fanquake 2024-02-01 16:10:13 +00:00
commit 5b8c5970bd
No known key found for this signature in database
GPG Key ID: 2EEB9F5CC09526C1
2 changed files with 16 additions and 0 deletions

View File

@ -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.

View File

@ -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.