libsecp256k1的叉子,支持高级和实验特征,例如机密资产和Musig2
添加的功能:
社区可用于测试和审查实验功能。这些功能的API不应被视为稳定。
$ ./autogen.sh
$ ./configure
$ make
$ make check # run the test suite
$ sudo make install # optional
要编译可选模块(例如Schnorr签名),您需要使用其他标志(例如--enable-module-schnorrsig )运行./configure 。运行./configure --help来查看可用标志的完整列表。对于实验模块,您还需要--enable-experimental和标志,例如每个模块,例如--enable-module-musig 。
为了维护原始的源树,Cmake鼓励使用单独的专用构建树来执行源源外构建。
$ mkdir build && cd build
$ cmake ..
$ cmake --build .
$ ctest # run the test suite
$ sudo cmake --build . --target install # optional
要编译可选模块(例如Schnorr签名),您需要使用其他标志(例如-DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON )运行cmake 。运行cmake .. -LH查看可用标志的完整列表。
为了减轻交叉编译的问题, cmake目录中提供了预配置的工具链文件。例如,要交叉为Windows编译:
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-w64-mingw32.toolchain.cmake
与NDK交叉编译(使用NDK的工具链文件,并假设已设置了ANDROID_NDK_ROOT环境变量):
$ cmake .. -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28
要使用Visual Studio在Windows上构建,必须为新的构建树指定适当的发电机。
下面的示例假设使用Visual Studio 2022和Cmake v3.21+的使用。
在“开发人员命令提示vs 2022”中:
>cmake -G "Visual Studio 17 2022" -A x64 -S . -B build
>cmake --build build --config RelWithDebInfo
用法示例可以在示例目录中找到。要编译它们,您需要使用--enable-examples配置。
为了编译Schnorr签名,ECDH和Musig示例,您需要通过为configure脚本提供标志来启用相应的模块,例如--enable-module-schnorrsig 。
如果配置为--enable-benchmark (默认为默认值),则在构建后的根目录中,将存在用于基准LIBSECP256K1-ZKP函数的二进制文件。
要将基准结果打印到命令行:
$ ./bench_name
为基准结果创建CSV文件:
$ ./bench_name | sed '2d;s/ {1,}//g' > bench_name.csv
请参阅Security.md
参见贡献