build(secp256k1): upgrade to bitcoin-core v24.2 with taproot modules

Synchronize secp256k1 library to bitcoin-core/secp256k1 as of Bitcoin Core
v24.2, enabling cryptographic primitives required for Taproot (BIP340/341).

Changes:
- Upgrade src/secp256k1 from bitcoin v24.2 tag
- Enable experimental modules via configure.ac:
  * --enable-module-extrakeys (BIP340 x-only public keys)
  * --enable-module-schnorrsig (BIP340 Schnorr signatures)
  * --enable-module-recovery (ECDSA pubkey recovery, pre-existing)
- Update MSVC build configuration with corresponding preprocessor defines
- Regenerate autotools build files via autogen.sh

Module verification:
- ENABLE_MODULE_EXTRAKEYS: provides secp256k1_xonly_pubkey APIs
- ENABLE_MODULE_SCHNORRSIG: provides secp256k1_schnorrsig APIs
- ENABLE_MODULE_RECOVERY: provides secp256k1_ecdsa_recover APIs

Build targets:
- Linux/Unix: verified with autotools + quick-build.sh
- Windows MSVC: configuration updated (requires Windows build verification)

Testing:
- Static library compiled successfully (1.6M)
- All header files present (extrakeys.h, schnorrsig.h)
- Regtest functional tests passed:
  * Transaction signing/verification
  * ECDSA operations
  * Block mining and validation
- No regressions on existing ECDSA functionality

This commit provides the cryptographic foundation for subsequent Taproot
implementation (BIP340/341/342) without modifying consensus or wallet logic.
This commit is contained in:
2026-02-06 09:53:24 +01:00
parent de0ef2ec7a
commit 478e8fc306
122 changed files with 43031 additions and 4742 deletions

View File

@@ -129,13 +129,9 @@ build_palladium() {
make distclean 2>/dev/null || true
fi
# Generate configure script (first time only)
if [ ! -f "./configure" ]; then
log_info "Generating configure script..."
./autogen.sh
else
log_info "Configure script already exists, skipping autogen.sh"
fi
# Always regenerate build files to ensure subdirectories (secp256k1, univalue) are in sync
log_info "Regenerating build files (autogen.sh)..."
./autogen.sh
# Set BerkeleyDB prefix
export BDB_PREFIX="$SCRIPT_DIR/db4"