Um garfo de LibSecp256k1 com suporte para recursos avançados e experimentais, como ativos confidenciais e Musig2
Recursos adicionados:
Os recursos experimentais são disponibilizados para teste e revisão pela comunidade. As APIs desses recursos não devem ser consideradas estáveis.
$ ./autogen.sh
$ ./configure
$ make
$ make check # run the test suite
$ sudo make install # optional
Para compilar módulos opcionais (como assinaturas de Schnorr), você precisa executar ./configure com sinalizadores adicionais (como --enable-module-schnorrsig ). Execute ./configure --help para ver a lista completa dos sinalizadores disponíveis. Para módulos experimentais, você também precisará --enable-experimental e um sinalizador para cada módulo individual, por exemplo, --enable-module-musig .
Para manter uma árvore de origem intocada, o CMake incentiva a realizar uma construção fora da fonte usando uma árvore de construção dedicada separada.
$ mkdir build && cd build
$ cmake ..
$ cmake --build .
$ ctest # run the test suite
$ sudo cmake --build . --target install # optional
Para compilar módulos opcionais (como assinaturas de Schnorr), você precisa executar cmake com sinalizadores adicionais (como -DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON ). Execute cmake .. -LH para ver a lista completa de sinalizadores disponíveis.
Para aliviar os problemas com a compilação cruzada, os arquivos de cadeia de ferramentas pré -configurados estão disponíveis no diretório cmake . Por exemplo, para atravessar a compilação para o Windows:
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-w64-mingw32.toolchain.cmake
Para atravessar o Android com o NDK (usando o arquivo da Chapa de Toolas do NDK e assumindo que a variável ANDROID_NDK_ROOT Ambients foi definida):
$ cmake .. -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28
Para construir no Windows com o Visual Studio, um gerador adequado deve ser especificado para uma nova árvore de construção.
O exemplo a seguir assume o uso do Visual Studio 2022 e CMake v3.21+.
Em "Prompt de comando do desenvolvedor para vs 2022":
>cmake -G "Visual Studio 17 2022" -A x64 -S . -B build
>cmake --build build --config RelWithDebInfo
Exemplos de uso podem ser encontrados no diretório exemplos. Para compilá-los, você precisa configurar com --enable-examples .
Para compilar os exemplos de assinatura Schnorr, ECDH e MUSIG, você precisa ativar o módulo correspondente, fornecendo um sinalizador para o script configure , por exemplo --enable-module-schnorrsig .
Se configurado com --enable-benchmark (que é o padrão), os binários para comparar as funções LIBSECP256K1-ZKP estarão presentes no diretório raiz após a compilação.
Para imprimir o resultado da referência para a linha de comando:
$ ./bench_name
Para criar um arquivo CSV para o resultado de referência:
$ ./bench_name | sed '2d;s/ {1,}//g' > bench_name.csv
Veja Security.md
Consulte Contribuindo.md