Una bifurcación de libsecp256k1 con soporte para características avanzadas y experimentales como activos confidenciales y musig2
Características adicionales:
Las características experimentales están disponibles para la prueba y la revisión de la comunidad. Las API de estas características no deben considerarse estables.
$ ./autogen.sh
$ ./configure
$ make
$ make check # run the test suite
$ sudo make install # optional
Para compilar módulos opcionales (como firmas Schnorr), debe ejecutar ./configure con banderas adicionales (como --enable-module-schnorrsig ). Ejecutar ./configure --help para ver la lista completa de las banderas disponibles. Para los módulos experimentales, también necesitará --enable-experimental , así como una bandera para cada módulo individual, por ejemplo --enable-module-musig .
Para mantener un árbol de origen prístino, Cmake alienta a realizar una construcción fuera de casa mediante el uso de un árbol de construcción dedicado por separado.
$ mkdir build && cd build
$ cmake ..
$ cmake --build .
$ ctest # run the test suite
$ sudo cmake --build . --target install # optional
Para compilar módulos opcionales (como las firmas Schnorr), debe ejecutar cmake con indicadores adicionales (como -DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON ). Ejecute cmake .. -LH para ver la lista completa de las banderas disponibles.
Para aliviar los problemas con la compilación cruzada, los archivos de cadena de herramientas preconfigurados están disponibles en el directorio cmake . Por ejemplo, para compilar para Windows:
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-w64-mingw32.toolchain.cmake
Para compilar para Android con NDK (usando el archivo de cadena de herramientas de NDK y suponiendo que se haya establecido la variable de entorno ANDROID_NDK_ROOT )::
$ cmake .. -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28
Para construir en Windows con Visual Studio, se debe especificar un generador adecuado para un nuevo árbol de compilación.
El siguiente ejemplo supone que usa Visual Studio 2022 y CMake v3.21+.
En "Solicitud del sistema de desarrolladores para VS 2022":
>cmake -G "Visual Studio 17 2022" -A x64 -S . -B build
>cmake --build build --config RelWithDebInfo
Los ejemplos de uso se pueden encontrar en el directorio de ejemplos. Para compilarlos, debe configurarlo con --enable-examples .
Para compilar los ejemplos de Schnorr Signature, ECDH y Musig, debe habilitar el módulo correspondiente proporcionando un indicador al Script configure , por ejemplo --enable-module-schnorrsig .
Si está configurado con --enable-benchmark (que es el valor predeterminado), los binarios para la evaluación comparativa de las funciones libsecp256k1-zkp estarán presentes en el directorio raíz después de la compilación.
Para imprimir el resultado de referencia en la línea de comando:
$ ./bench_name
Para crear un archivo CSV para el resultado de referencia:
$ ./bench_name | sed '2d;s/ {1,}//g' > bench_name.csv
Ver Security.md
Ver contribuyente.md