From 53064032d99e3a72462d422e64877748b56299bf Mon Sep 17 00:00:00 2001 From: Eric Voskuil Date: Sun, 27 Sep 2026 03:35:52 -0400 Subject: [PATCH 1/4] Update default header table size for work column. --- src/parser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parser.cpp b/src/parser.cpp index 75f8679f..d3796bbb 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -130,7 +130,7 @@ parser::parser(system::chain::selection context, configured.database.header.expected = 962'953; configured.database.header.buckets = table::header::derive_buckets( configured.database.header.expected, contested, target); - configured.database.header.size = 93'406'247; + configured.database.header.size = 124'220'679; configured.database.header.rate = 1; configured.database.txs.buckets = 950'001; @@ -2191,7 +2191,7 @@ options_metadata parser::load_settings() THROWS ( "table.header.size", setting(&configured.database.header.size), - "The minimum allocation of the archive_header table body, defaults to '93406247'." + "The minimum allocation of the archive_header table body, defaults to '124220679'." ) ( "table.header.rate", From a6184c6c766a87925f89a4d7d42b083f2f8c500a Mon Sep 17 00:00:00 2001 From: Eric Voskuil Date: Sat, 26 Sep 2026 04:36:30 -0400 Subject: [PATCH 2/4] Convert psbt_version as an integral. --- .../bitcoind/protocol_bitcoind_transaction.cpp | 12 ++++++------ test/protocols/bitcoind/bitcoind_rpc.cpp | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/protocols/bitcoind/protocol_bitcoind_transaction.cpp b/src/protocols/bitcoind/protocol_bitcoind_transaction.cpp index 66b65a3d..dd78330e 100644 --- a/src/protocols/bitcoind/protocol_bitcoind_transaction.cpp +++ b/src/protocols/bitcoind/protocol_bitcoind_transaction.cpp @@ -499,7 +499,9 @@ bool protocol_bitcoind_transaction::handle_convert_to_psbt(const code& ec, return false; // Construction is bip174 (version 0) or bip370 (version 2). - if (psbt_version != 0.0 && psbt_version != 2.0) + uint32_t document{}; + if (!to_integer(document, psbt_version) || + (document != psbt_tx::version_0 && document != psbt_tx::version_2)) { send_error(error::bitcoind::invalid_parameter); return true; @@ -547,8 +549,6 @@ bool protocol_bitcoind_transaction::handle_convert_to_psbt(const code& ec, tx = { tx.version(), stripped, tx.outputs_ptr(), tx.locktime() }; } - const auto document = psbt_version == 0.0 ? psbt_tx::version_0 : - psbt_tx::version_2; const psbt_tx doc(tx, document); if (!doc) { @@ -569,7 +569,9 @@ bool protocol_bitcoind_transaction::handle_create_psbt(const code& ec, return false; // Construction is bip174 (version 0) or bip370 (version 2). - if (psbt_version != 0.0 && psbt_version != 2.0) + uint32_t document{}; + if (!to_integer(document, psbt_version) || + (document != psbt_tx::version_0 && document != psbt_tx::version_2)) { send_error(error::bitcoind::invalid_parameter); return true; @@ -584,8 +586,6 @@ bool protocol_bitcoind_transaction::handle_create_psbt(const code& ec, return true; } - const auto document = psbt_version == 0.0 ? psbt_tx::version_0 : - psbt_tx::version_2; const psbt_tx doc(tx, document); if (!doc) { diff --git a/test/protocols/bitcoind/bitcoind_rpc.cpp b/test/protocols/bitcoind/bitcoind_rpc.cpp index 608fcadc..470e364f 100644 --- a/test/protocols/bitcoind/bitcoind_rpc.cpp +++ b/test/protocols/bitcoind/bitcoind_rpc.cpp @@ -2624,6 +2624,11 @@ BOOST_AUTO_TEST_CASE(bitcoind_rpc__createpsbt__version_one__invalid_parameter) BOOST_REQUIRE(has_code(rpc("createpsbt", "[[], {}, 0, true, 2, 1]"), -8)); } +BOOST_AUTO_TEST_CASE(bitcoind_rpc__createpsbt__fractional_version__invalid_parameter) +{ + BOOST_REQUIRE(has_code(rpc("createpsbt", "[[], {}, 0, true, 2, 1.5]"), -8)); +} + BOOST_AUTO_TEST_CASE(bitcoind_rpc__createpsbt__invalid_input__error) { BOOST_REQUIRE(has_error(rpc("createpsbt", "[[{\"txid\":\"nothex\",\"vout\":0}], {}]"))); From 9d939c1b2d3655b1c35edbcfd986348340c379bf Mon Sep 17 00:00:00 2001 From: Eric Voskuil Date: Mon, 28 Sep 2026 19:03:23 -0400 Subject: [PATCH 3/4] Update --hardware and --version presentations. --- console/executor_dumps.cpp | 56 +++++++++++++++++------------------ console/executor_warnings.cpp | 2 +- console/localize.hpp | 8 ++--- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/console/executor_dumps.cpp b/console/executor_dumps.cpp index 98fa94d2..b9677a89 100644 --- a/console/executor_dumps.cpp +++ b/console/executor_dumps.cpp @@ -41,16 +41,16 @@ void executor::dump_version() const }; logger(format(BS_VERSION_HEADER)); - logger(format("libbitcoin-system..... %1% %2%") % LIBBITCOIN_SYSTEM_VERSION % thumb(LIBBITCOIN_SYSTEM_COMMIT_HASH, LIBBITCOIN_SYSTEM_IS_DIRTY)); - logger(format("libbitcoin-database... %1% %2%") % LIBBITCOIN_DATABASE_VERSION % thumb(LIBBITCOIN_DATABASE_COMMIT_HASH, LIBBITCOIN_DATABASE_IS_DIRTY)); - logger(format("libbitcoin-network.... %1% %2%") % LIBBITCOIN_NETWORK_VERSION % thumb(LIBBITCOIN_NETWORK_COMMIT_HASH, LIBBITCOIN_NETWORK_IS_DIRTY)); - logger(format("libbitcoin-node....... %1% %2%") % LIBBITCOIN_NODE_VERSION % thumb(LIBBITCOIN_NODE_COMMIT_HASH, LIBBITCOIN_NODE_IS_DIRTY)); - logger(format("libbitcoin-server..... %1% %2%") % LIBBITCOIN_SERVER_VERSION % thumb(LIBBITCOIN_SERVER_COMMIT_HASH, LIBBITCOIN_SERVER_IS_DIRTY)); - logger(format("boost................. %1%.%2%.%3%") % (BOOST_VERSION / 100000) % (BOOST_VERSION / 100 % 1000) % (BOOST_VERSION % 100)); - logger(format("secp256k1............. %1%") % system::secp256k1_library()); - logger(format("tls................... %1%") % network::tls_library()); - logger(format("compiled schema....... %1%") % database::envelope::compiled); - logger(format("database schema....... %1%") % query_.envelope().schema); + logger(format("boost................ %1%.%2%.%3%") % (BOOST_VERSION / 100000) % (BOOST_VERSION / 100 % 1000) % (BOOST_VERSION % 100)); + logger(format("secp256k1............ %1%") % system::secp256k1_library()); + logger(format("openssl (tls)........ %1%") % network::tls_library()); + logger(format("libbitcoin-system.... %1% %2%") % LIBBITCOIN_SYSTEM_VERSION % thumb(LIBBITCOIN_SYSTEM_COMMIT_HASH, LIBBITCOIN_SYSTEM_IS_DIRTY)); + logger(format("libbitcoin-database.. %1% %2%") % LIBBITCOIN_DATABASE_VERSION % thumb(LIBBITCOIN_DATABASE_COMMIT_HASH, LIBBITCOIN_DATABASE_IS_DIRTY)); + logger(format("libbitcoin-network... %1% %2%") % LIBBITCOIN_NETWORK_VERSION % thumb(LIBBITCOIN_NETWORK_COMMIT_HASH, LIBBITCOIN_NETWORK_IS_DIRTY)); + logger(format("libbitcoin-node...... %1% %2%") % LIBBITCOIN_NODE_VERSION % thumb(LIBBITCOIN_NODE_COMMIT_HASH, LIBBITCOIN_NODE_IS_DIRTY)); + logger(format("libbitcoin-server.... %1% %2%") % LIBBITCOIN_SERVER_VERSION % thumb(LIBBITCOIN_SERVER_COMMIT_HASH, LIBBITCOIN_SERVER_IS_DIRTY)); + logger(format("compiled schema...... %1%") % database::envelope::compiled); + logger(format("database schema...... %1%") % query_.envelope().schema); } // The "try" functions are safe for instructions not compiled in. @@ -59,30 +59,30 @@ void executor::dump_hardware() const using namespace system; using namespace database; - logger(BS_HARDWARE_HEADER); #if defined(HAVE_ARM) - logger(format("arm........ " BS_HARDWARE_PLATFORM) % have_arm); - logger(format("crypto..... " BS_HARDWARE_COMPILED) % try_crypto() % have_crypto); - logger(format("neon....... " BS_HARDWARE_COMPILED) % try_neon() % have_neon); + logger(BS_HARDWARE_HEADER_ARM64); + logger(format("crypto...... " BS_HARDWARE_COMPILED) % try_crypto() % have_crypto); + logger(format("sha3........ " BS_HARDWARE_COMPILED) % try_sha3() % have_sha3); + logger(format("neon........ " BS_HARDWARE_COMPILED) % try_neon() % have_neon); #else - logger(format("intel...... " BS_HARDWARE_PLATFORM) % have_xcpu); - logger(format("shani...... " BS_HARDWARE_COMPILED) % try_shani() % have_shani); - logger(format("sse41...... " BS_HARDWARE_COMPILED) % try_sse41() % have_sse41); - logger(format("avx2....... " BS_HARDWARE_COMPILED) % try_avx2() % have_avx2); - logger(format(try_avx512_throttled() ? - "avx512..... " BS_HARDWARE_THROTTLED : - "avx512..... " BS_HARDWARE_COMPILED) % try_avx512() % have_avx512); - logger(format("avx512ifma. " BS_HARDWARE_COMPILED) % try_avx512ifma() % have_avx512ifma); - logger(format("avxifma.... " BS_HARDWARE_COMPILED) % try_avxifma() % have_avxifma); - logger(format("aesni...... " BS_HARDWARE_COMPILED) % try_aesni() % have_aesni); - logger(format("vaes....... " BS_HARDWARE_COMPILED) % try_vaes() % have_vaes); + logger(BS_HARDWARE_HEADER_X64); + logger(format("aesni....... " BS_HARDWARE_COMPILED) % try_aesni() % have_aesni); + logger(format("vaes........ " BS_HARDWARE_COMPILED) % try_vaes() % have_vaes); + logger(format("shani....... " BS_HARDWARE_COMPILED) % try_shani() % have_shani); + logger(format("sha512...... " BS_HARDWARE_COMPILED) % try_sha512() % have_sha512); + logger(format("sse41....... " BS_HARDWARE_COMPILED) % try_sse41() % have_sse41); + logger(format("avx2........ " BS_HARDWARE_COMPILED) % try_avx2() % have_avx2); + logger(format("avxifma..... " BS_HARDWARE_COMPILED) % try_avxifma() % have_avxifma); + logger(format("avx512...... " BS_HARDWARE_COMPILED) % try_avx512() % have_avx512); + logger(format("avx512ifma.. " BS_HARDWARE_COMPILED) % try_avx512ifma() % have_avx512ifma); #endif const auto device = gpu_device(); const auto compiled = batched::compiled(); - logger(format(device && compiled && !batched::accelerated() ? - "gpu........ " BS_HARDWARE_INCOMPATIBLE : - "gpu........ " BS_HARDWARE_COMPILED) % device % compiled); + const auto incompatible = device && compiled && !batched::accelerated(); + logger(format(incompatible ? + "gpu......... " BS_HARDWARE_INCOMPATIBLE : + "gpu......... " BS_HARDWARE_COMPILED) % device % compiled); } // logging compilation and initial values. diff --git a/console/executor_warnings.cpp b/console/executor_warnings.cpp index 80cb30bf..ab883c7a 100644 --- a/console/executor_warnings.cpp +++ b/console/executor_warnings.cpp @@ -54,7 +54,7 @@ void executor::warn_hardware(system::string_list& out) const (try_crypto() && !have_crypto); #else const auto suboptimal = - (try_avx512() && !try_avx512_throttled() && !have_avx512) || + (try_avx512() && !have_avx512) || (try_avx2() && !have_avx2) || (try_sse41() && !have_sse41) || (try_shani() && !have_shani) || diff --git a/console/localize.hpp b/console/localize.hpp index 8e6cad57..65476c64 100644 --- a/console/localize.hpp +++ b/console/localize.hpp @@ -310,14 +310,14 @@ #define BS_VERSION_HEADER \ "Version Information..." -#define BS_HARDWARE_HEADER \ - "Hardware configuration..." +#define BS_HARDWARE_HEADER_ARM64 \ + "Hardware configuration (arm64)..." +#define BS_HARDWARE_HEADER_X64 \ + "Hardware configuration (x64)..." #define BS_HARDWARE_PLATFORM \ "platform:%1%." #define BS_HARDWARE_COMPILED \ "platform:%1% compiled:%2%." -#define BS_HARDWARE_THROTTLED \ - "platform:%1% compiled:%2% (throttled)." #define BS_HARDWARE_INCOMPATIBLE \ "platform:%1% compiled:%2% (unsupported)." From 2db0de55f20eeeca9d4d94cc8630caccb07892a3 Mon Sep 17 00:00:00 2001 From: Eric Voskuil Date: Mon, 28 Sep 2026 19:03:30 -0400 Subject: [PATCH 4/4] Regenerate artifacts. --- builds/cmake/install-cmake.sh | 208 +++++++++--------- builds/cmake/install-presets.sh | 168 +++++++------- builds/gnu/install-gnu.sh | 8 + builds/msvc/build-msvc.cmd | 16 ++ .../vs2026/libbitcoin-system.import.props | 5 +- .../msvc/vs2026/libbitcoin-system.import.xml | 5 + 6 files changed, 229 insertions(+), 181 deletions(-) diff --git a/builds/cmake/install-cmake.sh b/builds/cmake/install-cmake.sh index 1b19b455..f31f9db8 100755 --- a/builds/cmake/install-cmake.sh +++ b/builds/cmake/install-cmake.sh @@ -8,56 +8,60 @@ # Script managing the build and installation of libbitcoin-server and its dependencies. # # Script options: -# -Denable-avx2= Use Intel AVX2 intrinsics. -# Default: OFF -# -Denable-avx512= Use Intel AVX512 intrinsics. -# Default: OFF -# -Denable-avx512ifma=Use Intel AVX512 IFMA intrinsics (implies AVX512VL). -# Default: OFF -# -Denable-avxifma= Use Intel AVX IFMA intrinsics (implies AVX2). -# Default: OFF -# -Denable-sse41= Use SSE4.1 hardware instructions. -# Default: OFF -# -Denable-shani= Use Intel/ARM SHA Extensions. -# Default: OFF -# -Denable-crypto= Use ARM Crypto Extensions. -# Default: OFF -# -Denable-aesni= Use Intel AES-NI and PCLMULQDQ intrinsics. -# Default: OFF -# -Denable-vaes= Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2). -# Default: OFF -# -Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library. -# Default: OFF -# -Dwith-secp256k1= Use bitcoin-core/secp256k1 library. -# Default: OFF -# -Dwith-ssl= Use embedded ssl library. -# Default: ON -# --build-boost Build Boost libraries -# --build-secp256k1 Build libsecp256k1 libraries -# --build-ultrafast Build UltrafastSecp256k1 libraries -# --build-src-dir= Location for sources. -# Default: $(pwd) -# --build-obj-dir= Location for intermediate objects. -# Default: obj -# --build-obj-dir-relative Interpret build-obj-dir as relative to project sources. -# --build-config= Specifies the build configuration. -# Values: { debug, release } -# Toolchain default behavior will occur if no value specified. -# --build-link= Specifies the link mode. -# Values: { dynamic, static } -# Toolchain default behavior will occur if no value specified. -# --build-full-repositories Sync full github repositories. -# Default: git clone --depth 1 --single-branch -# --build-post-install-clean Clean dependencies after installation (saves space). -# --build-skip-tests Skip test compilation and execution. -# --build-parallel= Number of jobs to run simultaneously. -# Default: supported platforms use nproc/sysctl -# --build-use-local-src Use existing sources in relevant paths. -# --prefix= Installation destination. -# Default: /usr/local -# --noninteractive Disable any prompt using default. -# --verbose Display verbose script output. -# --help, -h Display usage, overriding script execution. +# -Denable-avx2= Use Intel AVX2 intrinsics. +# Default: OFF +# -Denable-avx512= Use Intel AVX512 intrinsics. +# Default: OFF +# -Denable-avx512ifma= Use Intel AVX512 IFMA intrinsics (implies AVX512VL). +# Default: OFF +# -Denable-avxifma= Use Intel AVX IFMA intrinsics (implies AVX2). +# Default: OFF +# -Denable-sse41= Use SSE4.1 hardware instructions. +# Default: OFF +# -Denable-shani= Use Intel/ARM SHA Extensions. +# Default: OFF +# -Denable-crypto= Use ARM Crypto Extensions. +# Default: OFF +# -Denable-sha512= Use Intel SHA512 Extensions (implies AVX2). +# Default: OFF +# -Denable-sha3= Use ARM SHA3 Extensions for SHA512 (implies Crypto). +# Default: OFF +# -Denable-aesni= Use Intel AES-NI and PCLMULQDQ intrinsics. +# Default: OFF +# -Denable-vaes= Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2). +# Default: OFF +# -Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library. +# Default: OFF +# -Dwith-secp256k1= Use bitcoin-core/secp256k1 library. +# Default: OFF +# -Dwith-ssl= Use embedded ssl library. +# Default: ON +# --build-boost Build Boost libraries +# --build-secp256k1 Build libsecp256k1 libraries +# --build-ultrafast Build UltrafastSecp256k1 libraries +# --build-src-dir= Location for sources. +# Default: $(pwd) +# --build-obj-dir= Location for intermediate objects. +# Default: obj +# --build-obj-dir-relative Interpret build-obj-dir as relative to project sources. +# --build-config= Specifies the build configuration. +# Values: { debug, release } +# Toolchain default behavior will occur if no value specified. +# --build-link= Specifies the link mode. +# Values: { dynamic, static } +# Toolchain default behavior will occur if no value specified. +# --build-full-repositories Sync full github repositories. +# Default: git clone --depth 1 --single-branch +# --build-post-install-clean Clean dependencies after installation (saves space). +# --build-skip-tests Skip test compilation and execution. +# --build-parallel= Number of jobs to run simultaneously. +# Default: supported platforms use nproc/sysctl +# --build-use-local-src Use existing sources in relevant paths. +# --prefix= Installation destination. +# Default: /usr/local +# --noninteractive Disable any prompt using default. +# --verbose Display verbose script output. +# --help, -h Display usage, overriding script execution. # # All unrecognized options provided shall be passed as configuration # options for all dependencies. @@ -1085,56 +1089,60 @@ help() msg "Script managing the build and installation of libbitcoin-server and its dependencies." msg "" msg "Script options:" - msg "-Denable-avx2= Use Intel AVX2 intrinsics." - msg " Default: OFF" - msg "-Denable-avx512= Use Intel AVX512 intrinsics." - msg " Default: OFF" - msg "-Denable-avx512ifma=Use Intel AVX512 IFMA intrinsics (implies AVX512VL)." - msg " Default: OFF" - msg "-Denable-avxifma= Use Intel AVX IFMA intrinsics (implies AVX2)." - msg " Default: OFF" - msg "-Denable-sse41= Use SSE4.1 hardware instructions." - msg " Default: OFF" - msg "-Denable-shani= Use Intel/ARM SHA Extensions." - msg " Default: OFF" - msg "-Denable-crypto= Use ARM Crypto Extensions." - msg " Default: OFF" - msg "-Denable-aesni= Use Intel AES-NI and PCLMULQDQ intrinsics." - msg " Default: OFF" - msg "-Denable-vaes= Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2)." - msg " Default: OFF" - msg "-Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library." - msg " Default: OFF" - msg "-Dwith-secp256k1= Use bitcoin-core/secp256k1 library." - msg " Default: OFF" - msg "-Dwith-ssl= Use embedded ssl library." - msg " Default: ON" - msg "--build-boost Build Boost libraries" - msg "--build-secp256k1 Build libsecp256k1 libraries" - msg "--build-ultrafast Build UltrafastSecp256k1 libraries" - msg "--build-src-dir= Location for sources." - msg " Default: $(pwd)" - msg "--build-obj-dir= Location for intermediate objects." - msg " Default: obj" - msg "--build-obj-dir-relative Interpret build-obj-dir as relative to project sources." - msg "--build-config= Specifies the build configuration." - msg " Values: { debug, release }" - msg " Toolchain default behavior will occur if no value specified." - msg "--build-link= Specifies the link mode." - msg " Values: { dynamic, static }" - msg " Toolchain default behavior will occur if no value specified." - msg "--build-full-repositories Sync full github repositories." - msg " Default: git clone --depth 1 --single-branch" - msg "--build-post-install-clean Clean dependencies after installation (saves space)." - msg "--build-skip-tests Skip test compilation and execution." - msg "--build-parallel= Number of jobs to run simultaneously." - msg " Default: supported platforms use nproc/sysctl" - msg "--build-use-local-src Use existing sources in relevant paths." - msg "--prefix= Installation destination." - msg " Default: /usr/local" - msg "--noninteractive Disable any prompt using default." - msg "--verbose Display verbose script output." - msg "--help, -h Display usage, overriding script execution." + msg "-Denable-avx2= Use Intel AVX2 intrinsics." + msg " Default: OFF" + msg "-Denable-avx512= Use Intel AVX512 intrinsics." + msg " Default: OFF" + msg "-Denable-avx512ifma= Use Intel AVX512 IFMA intrinsics (implies AVX512VL)." + msg " Default: OFF" + msg "-Denable-avxifma= Use Intel AVX IFMA intrinsics (implies AVX2)." + msg " Default: OFF" + msg "-Denable-sse41= Use SSE4.1 hardware instructions." + msg " Default: OFF" + msg "-Denable-shani= Use Intel/ARM SHA Extensions." + msg " Default: OFF" + msg "-Denable-crypto= Use ARM Crypto Extensions." + msg " Default: OFF" + msg "-Denable-sha512= Use Intel SHA512 Extensions (implies AVX2)." + msg " Default: OFF" + msg "-Denable-sha3= Use ARM SHA3 Extensions for SHA512 (implies Crypto)." + msg " Default: OFF" + msg "-Denable-aesni= Use Intel AES-NI and PCLMULQDQ intrinsics." + msg " Default: OFF" + msg "-Denable-vaes= Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2)." + msg " Default: OFF" + msg "-Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library." + msg " Default: OFF" + msg "-Dwith-secp256k1= Use bitcoin-core/secp256k1 library." + msg " Default: OFF" + msg "-Dwith-ssl= Use embedded ssl library." + msg " Default: ON" + msg "--build-boost Build Boost libraries" + msg "--build-secp256k1 Build libsecp256k1 libraries" + msg "--build-ultrafast Build UltrafastSecp256k1 libraries" + msg "--build-src-dir= Location for sources." + msg " Default: $(pwd)" + msg "--build-obj-dir= Location for intermediate objects." + msg " Default: obj" + msg "--build-obj-dir-relative Interpret build-obj-dir as relative to project sources." + msg "--build-config= Specifies the build configuration." + msg " Values: { debug, release }" + msg " Toolchain default behavior will occur if no value specified." + msg "--build-link= Specifies the link mode." + msg " Values: { dynamic, static }" + msg " Toolchain default behavior will occur if no value specified." + msg "--build-full-repositories Sync full github repositories." + msg " Default: git clone --depth 1 --single-branch" + msg "--build-post-install-clean Clean dependencies after installation (saves space)." + msg "--build-skip-tests Skip test compilation and execution." + msg "--build-parallel= Number of jobs to run simultaneously." + msg " Default: supported platforms use nproc/sysctl" + msg "--build-use-local-src Use existing sources in relevant paths." + msg "--prefix= Installation destination." + msg " Default: /usr/local" + msg "--noninteractive Disable any prompt using default." + msg "--verbose Display verbose script output." + msg "--help, -h Display usage, overriding script execution." msg "" msg "All unrecognized options provided shall be passed as configuration" msg "options for all dependencies." diff --git a/builds/cmake/install-presets.sh b/builds/cmake/install-presets.sh index c823a02b..9dc5604c 100755 --- a/builds/cmake/install-presets.sh +++ b/builds/cmake/install-presets.sh @@ -8,46 +8,50 @@ # Script managing the build and installation of libbitcoin-server and its dependencies. # # Script options: -# -Denable-avx2= Use Intel AVX2 intrinsics. -# Default: OFF -# -Denable-avx512= Use Intel AVX512 intrinsics. -# Default: OFF -# -Denable-avx512ifma=Use Intel AVX512 IFMA intrinsics (implies AVX512VL). -# Default: OFF -# -Denable-avxifma= Use Intel AVX IFMA intrinsics (implies AVX2). -# Default: OFF -# -Denable-sse41= Use SSE4.1 hardware instructions. -# Default: OFF -# -Denable-shani= Use Intel/ARM SHA Extensions. -# Default: OFF -# -Denable-crypto= Use ARM Crypto Extensions. -# Default: OFF -# -Denable-aesni= Use Intel AES-NI and PCLMULQDQ intrinsics. -# Default: OFF -# -Denable-vaes= Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2). -# Default: OFF -# -Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library. -# Default: OFF -# -Dwith-secp256k1= Use bitcoin-core/secp256k1 library. -# Default: OFF -# -Dwith-ssl= Use embedded ssl library. -# Default: ON -# --build-boost Build Boost libraries -# --build-secp256k1 Build libsecp256k1 libraries -# --build-ultrafast Build UltrafastSecp256k1 libraries -# --build-preset= Specifies preset configuration to build. -# --build-src-dir= Location for sources. -# Default: $(pwd) -# --build-full-repositories Sync full github repositories. -# Default: git clone --depth 1 --single-branch -# --build-post-install-clean Clean dependencies after installation (saves space). -# --build-skip-tests Skip test compilation and execution. -# --build-parallel= Number of jobs to run simultaneously. -# Default: supported platforms use nproc/sysctl -# --build-use-local-src Use existing sources in relevant paths. -# --noninteractive Disable any prompt using default. -# --verbose Display verbose script output. -# --help, -h Display usage, overriding script execution. +# -Denable-avx2= Use Intel AVX2 intrinsics. +# Default: OFF +# -Denable-avx512= Use Intel AVX512 intrinsics. +# Default: OFF +# -Denable-avx512ifma= Use Intel AVX512 IFMA intrinsics (implies AVX512VL). +# Default: OFF +# -Denable-avxifma= Use Intel AVX IFMA intrinsics (implies AVX2). +# Default: OFF +# -Denable-sse41= Use SSE4.1 hardware instructions. +# Default: OFF +# -Denable-shani= Use Intel/ARM SHA Extensions. +# Default: OFF +# -Denable-crypto= Use ARM Crypto Extensions. +# Default: OFF +# -Denable-sha512= Use Intel SHA512 Extensions (implies AVX2). +# Default: OFF +# -Denable-sha3= Use ARM SHA3 Extensions for SHA512 (implies Crypto). +# Default: OFF +# -Denable-aesni= Use Intel AES-NI and PCLMULQDQ intrinsics. +# Default: OFF +# -Denable-vaes= Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2). +# Default: OFF +# -Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library. +# Default: OFF +# -Dwith-secp256k1= Use bitcoin-core/secp256k1 library. +# Default: OFF +# -Dwith-ssl= Use embedded ssl library. +# Default: ON +# --build-boost Build Boost libraries +# --build-secp256k1 Build libsecp256k1 libraries +# --build-ultrafast Build UltrafastSecp256k1 libraries +# --build-preset= Specifies preset configuration to build. +# --build-src-dir= Location for sources. +# Default: $(pwd) +# --build-full-repositories Sync full github repositories. +# Default: git clone --depth 1 --single-branch +# --build-post-install-clean Clean dependencies after installation (saves space). +# --build-skip-tests Skip test compilation and execution. +# --build-parallel= Number of jobs to run simultaneously. +# Default: supported platforms use nproc/sysctl +# --build-use-local-src Use existing sources in relevant paths. +# --noninteractive Disable any prompt using default. +# --verbose Display verbose script output. +# --help, -h Display usage, overriding script execution. # # All unrecognized options provided shall be passed as configuration # options for all dependencies. @@ -1163,46 +1167,50 @@ help() msg "Script managing the build and installation of libbitcoin-server and its dependencies." msg "" msg "Script options:" - msg "-Denable-avx2= Use Intel AVX2 intrinsics." - msg " Default: OFF" - msg "-Denable-avx512= Use Intel AVX512 intrinsics." - msg " Default: OFF" - msg "-Denable-avx512ifma=Use Intel AVX512 IFMA intrinsics (implies AVX512VL)." - msg " Default: OFF" - msg "-Denable-avxifma= Use Intel AVX IFMA intrinsics (implies AVX2)." - msg " Default: OFF" - msg "-Denable-sse41= Use SSE4.1 hardware instructions." - msg " Default: OFF" - msg "-Denable-shani= Use Intel/ARM SHA Extensions." - msg " Default: OFF" - msg "-Denable-crypto= Use ARM Crypto Extensions." - msg " Default: OFF" - msg "-Denable-aesni= Use Intel AES-NI and PCLMULQDQ intrinsics." - msg " Default: OFF" - msg "-Denable-vaes= Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2)." - msg " Default: OFF" - msg "-Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library." - msg " Default: OFF" - msg "-Dwith-secp256k1= Use bitcoin-core/secp256k1 library." - msg " Default: OFF" - msg "-Dwith-ssl= Use embedded ssl library." - msg " Default: ON" - msg "--build-boost Build Boost libraries" - msg "--build-secp256k1 Build libsecp256k1 libraries" - msg "--build-ultrafast Build UltrafastSecp256k1 libraries" - msg "--build-preset= Specifies preset configuration to build." - msg "--build-src-dir= Location for sources." - msg " Default: $(pwd)" - msg "--build-full-repositories Sync full github repositories." - msg " Default: git clone --depth 1 --single-branch" - msg "--build-post-install-clean Clean dependencies after installation (saves space)." - msg "--build-skip-tests Skip test compilation and execution." - msg "--build-parallel= Number of jobs to run simultaneously." - msg " Default: supported platforms use nproc/sysctl" - msg "--build-use-local-src Use existing sources in relevant paths." - msg "--noninteractive Disable any prompt using default." - msg "--verbose Display verbose script output." - msg "--help, -h Display usage, overriding script execution." + msg "-Denable-avx2= Use Intel AVX2 intrinsics." + msg " Default: OFF" + msg "-Denable-avx512= Use Intel AVX512 intrinsics." + msg " Default: OFF" + msg "-Denable-avx512ifma= Use Intel AVX512 IFMA intrinsics (implies AVX512VL)." + msg " Default: OFF" + msg "-Denable-avxifma= Use Intel AVX IFMA intrinsics (implies AVX2)." + msg " Default: OFF" + msg "-Denable-sse41= Use SSE4.1 hardware instructions." + msg " Default: OFF" + msg "-Denable-shani= Use Intel/ARM SHA Extensions." + msg " Default: OFF" + msg "-Denable-crypto= Use ARM Crypto Extensions." + msg " Default: OFF" + msg "-Denable-sha512= Use Intel SHA512 Extensions (implies AVX2)." + msg " Default: OFF" + msg "-Denable-sha3= Use ARM SHA3 Extensions for SHA512 (implies Crypto)." + msg " Default: OFF" + msg "-Denable-aesni= Use Intel AES-NI and PCLMULQDQ intrinsics." + msg " Default: OFF" + msg "-Denable-vaes= Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2)." + msg " Default: OFF" + msg "-Dwith-ultrafast= Use shrec/UltrafastSecp256k1 library." + msg " Default: OFF" + msg "-Dwith-secp256k1= Use bitcoin-core/secp256k1 library." + msg " Default: OFF" + msg "-Dwith-ssl= Use embedded ssl library." + msg " Default: ON" + msg "--build-boost Build Boost libraries" + msg "--build-secp256k1 Build libsecp256k1 libraries" + msg "--build-ultrafast Build UltrafastSecp256k1 libraries" + msg "--build-preset= Specifies preset configuration to build." + msg "--build-src-dir= Location for sources." + msg " Default: $(pwd)" + msg "--build-full-repositories Sync full github repositories." + msg " Default: git clone --depth 1 --single-branch" + msg "--build-post-install-clean Clean dependencies after installation (saves space)." + msg "--build-skip-tests Skip test compilation and execution." + msg "--build-parallel= Number of jobs to run simultaneously." + msg " Default: supported platforms use nproc/sysctl" + msg "--build-use-local-src Use existing sources in relevant paths." + msg "--noninteractive Disable any prompt using default." + msg "--verbose Display verbose script output." + msg "--help, -h Display usage, overriding script execution." msg "" msg "All unrecognized options provided shall be passed as configuration" msg "options for all dependencies." diff --git a/builds/gnu/install-gnu.sh b/builds/gnu/install-gnu.sh index 718c419b..1381073a 100755 --- a/builds/gnu/install-gnu.sh +++ b/builds/gnu/install-gnu.sh @@ -22,6 +22,10 @@ # Default: --disable-shani # ---crypto Use ARM Crypto Extensions. # Default: --disable-crypto +# ---sha512 Use Intel SHA512 Extensions (implies AVX2). +# Default: --disable-sha512 +# ---sha3 Use ARM SHA3 Extensions for SHA512 (implies Crypto). +# Default: --disable-sha3 # ---aesni Use Intel AES-NI and PCLMULQDQ intrinsics. # Default: --disable-aesni # ---vaes Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2). @@ -1336,6 +1340,10 @@ help() msg " Default: --disable-shani" msg "---crypto Use ARM Crypto Extensions." msg " Default: --disable-crypto" + msg "---sha512 Use Intel SHA512 Extensions (implies AVX2)." + msg " Default: --disable-sha512" + msg "---sha3 Use ARM SHA3 Extensions for SHA512 (implies Crypto)." + msg " Default: --disable-sha3" msg "---aesni Use Intel AES-NI and PCLMULQDQ intrinsics." msg " Default: --disable-aesni" msg "---vaes Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2)." diff --git a/builds/msvc/build-msvc.cmd b/builds/msvc/build-msvc.cmd index 90925a01..b795b028 100644 --- a/builds/msvc/build-msvc.cmd +++ b/builds/msvc/build-msvc.cmd @@ -18,6 +18,8 @@ REM --enable-avxifma Use Intel AVX IFMA intrinsics (implies AVX2). REM --enable-sse41 Use SSE4.1 hardware instructions. REM --enable-shani Use Intel/ARM SHA Extensions. REM --enable-crypto Use ARM Crypto Extensions. +REM --enable-sha512 Use Intel SHA512 Extensions (implies AVX2). +REM --enable-sha3 Use ARM SHA3 Extensions for SHA512 (implies Crypto). REM --enable-aesni Use Intel AES-NI and PCLMULQDQ intrinsics. REM --enable-vaes Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2). REM --build-config config Build configuration. @@ -305,6 +307,18 @@ if "!libbitcoin_server_TAG!" == "" ( ) else ( set "libbitcoin-system_PARAMS=!libbitcoin-system_PARAMS! /p:Option-sha=true" ) + ) else if "%~1" == "--enable-sha512" ( + if "!libbitcoin-system_PARAMS!" == "" ( + set "libbitcoin-system_PARAMS=/p:Option-sha512=true" + ) else ( + set "libbitcoin-system_PARAMS=!libbitcoin-system_PARAMS! /p:Option-sha512=true" + ) + ) else if "%~1" == "--enable-sha3" ( + if "!libbitcoin-system_PARAMS!" == "" ( + set "libbitcoin-system_PARAMS=/p:Option-sha512=true" + ) else ( + set "libbitcoin-system_PARAMS=!libbitcoin-system_PARAMS! /p:Option-sha512=true" + ) ) else if "%~1" == "--enable-aesni" ( if "!libbitcoin-system_PARAMS!" == "" ( set "libbitcoin-system_PARAMS=/p:Option-aesni=true" @@ -569,6 +583,8 @@ if "!libbitcoin_server_TAG!" == "" ( call :msg "--enable-sse41 Use SSE4.1 hardware instructions." call :msg "--enable-shani Use Intel/ARM SHA Extensions." call :msg "--enable-crypto Use ARM Crypto Extensions." + call :msg "--enable-sha512 Use Intel SHA512 Extensions (implies AVX2)." + call :msg "--enable-sha3 Use ARM SHA3 Extensions for SHA512 (implies Crypto)." call :msg "--enable-aesni Use Intel AES-NI and PCLMULQDQ intrinsics." call :msg "--enable-vaes Use Intel VAES and VPCLMULQDQ intrinsics (implies AES-NI and AVX2)." call :msg "--build-config config Build configuration." diff --git a/builds/msvc/vs2026/libbitcoin-system.import.props b/builds/msvc/vs2026/libbitcoin-system.import.props index 44fb78d7..a71315a1 100644 --- a/builds/msvc/vs2026/libbitcoin-system.import.props +++ b/builds/msvc/vs2026/libbitcoin-system.import.props @@ -21,6 +21,7 @@ false + false false false false @@ -33,7 +34,7 @@ AdvancedVectorExtensions - AdvancedVectorExtensions2 + AdvancedVectorExtensions2 AdvancedVectorExtensions512 @@ -50,6 +51,7 @@ + @@ -77,6 +79,7 @@ WITH_SHA;%(PreprocessorDefinitions) + WITH_SHA512;%(PreprocessorDefinitions) WITH_AVX512IFMA;%(PreprocessorDefinitions) WITH_AVXIFMA;%(PreprocessorDefinitions) WITH_AESNI;%(PreprocessorDefinitions) diff --git a/builds/msvc/vs2026/libbitcoin-system.import.xml b/builds/msvc/vs2026/libbitcoin-system.import.xml index d4ff526e..ba6dd1be 100644 --- a/builds/msvc/vs2026/libbitcoin-system.import.xml +++ b/builds/msvc/vs2026/libbitcoin-system.import.xml @@ -20,6 +20,7 @@ + @@ -29,6 +30,10 @@ + + + +