Eine Gabel von libSecp256K1 mit Unterstützung für fortschrittliche und experimentelle Merkmale wie vertrauliche Vermögenswerte und MUSIG2
Hinzugefügte Funktionen:
Experimentelle Funktionen werden von der Community zum Testen und Überprüfungen zur Verfügung gestellt. Die APIs dieser Merkmale sollten nicht als stabil angesehen werden.
$ ./autogen.sh
$ ./configure
$ make
$ make check # run the test suite
$ sudo make install # optional
Um optionale Module (wie Schnorr-Signaturen) zu kompilieren, müssen Sie ./configure mit zusätzlichen Flaggen ( --enable-module-schnorrsig . Ausführen ./configure --help , um die vollständige Liste der verfügbaren Flags anzuzeigen. Bei experimentellen Modulen benötigen Sie auch --enable-experimental sowie ein Flag für jedes einzelne Modul, z --enable-module-musig .
Um einen makellosen Quellbaum aufrechtzuerhalten, ermutigt CMake, mithilfe eines separaten dedizierten Build-Baumes einen Gebäude außerhalb der Source durchzuführen.
$ mkdir build && cd build
$ cmake ..
$ cmake --build .
$ ctest # run the test suite
$ sudo cmake --build . --target install # optional
Um optionale Module (z. B. Schnorr -Signaturen) zu kompilieren, müssen Sie cmake mit zusätzlichen Flags ausführen ( -DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON . Führen Sie cmake .. -LH aus, um die vollständige Liste der verfügbaren Flaggen anzuzeigen.
Um Probleme bei der Cross -Kompilierung zu lindern, sind im cmake -Verzeichnis vorkonfigurierte Toolchain -Dateien verfügbar. Zum Beispiel zum Überqueren von Compile for Windows:
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-w64-mingw32.toolchain.cmake
Um mit NDK für Android zu kompilieren (unter Verwendung der Toolchain -Datei von NDK und der Annahme der Umgebungsvariablen ANDROID_NDK_ROOT wurde festgelegt):
$ cmake .. -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28
Um mit Visual Studio auf Windows zu erstellen, muss ein richtiger Generator für einen neuen Build -Baum angegeben werden.
Das folgende Beispiel wird unter Verwendung von Visual Studio 2022 und CMake V3.21+vorausgesetzt.
In "Entwicklereingabeaufforderung für VS 2022":
>cmake -G "Visual Studio 17 2022" -A x64 -S . -B build
>cmake --build build --config RelWithDebInfo
Verwendungsbeispiele finden Sie im Beispielverzeichnis. Um sie zu kompilieren, müssen Sie mit --enable-examples konfigurieren.
Um die Beispiele für Schnorr-Signatur, ECDH und MUSIG zu kompilieren, müssen Sie das entsprechende Modul aktivieren, indem Sie dem configure ein Flag bereitstellen, z --enable-module-schnorrsig
Wenn Sie mit --enable-benchmark (der Standard sind) konfiguriert werden, sind Binärdateien zum Benchmarking der LibSecP256K1-ZKP-Funktionen nach dem Build im Stammverzeichnis vorhanden.
So drucken Sie das Benchmark -Ergebnis in die Befehlszeile:
$ ./bench_name
So erstellen Sie eine CSV -Datei für das Benchmark -Ergebnis:
$ ./bench_name | sed '2d;s/ {1,}//g' > bench_name.csv
Siehe Security.md
Siehe Beitrag.md