Une fourche de libsecp256k1 avec le support pour les fonctionnalités avancées et expérimentales telles que les actifs confidentiels et MUSIG2
Caractéristiques ajoutées:
Les fonctionnalités expérimentales sont mises à disposition pour les tests et l'examen par la communauté. Les API de ces caractéristiques ne doivent pas être considérées comme stables.
$ ./autogen.sh
$ ./configure
$ make
$ make check # run the test suite
$ sudo make install # optional
Pour compiler des modules facultatifs (tels que les signatures schnorr), vous devez exécuter ./configure avec des drapeaux supplémentaires (tels que --enable-module-schnorrsig ). Exécutez ./configure --help pour voir la liste complète des drapeaux disponibles. Pour les modules expérimentaux, vous aurez également besoin --enable-experimental ainsi qu'un drapeau pour chaque module individuel, par exemple --enable-module-musig .
Pour maintenir un arbre source vierge, CMake encourage à effectuer une version hors de l'origine en utilisant un arbre de construction dédié séparé.
$ mkdir build && cd build
$ cmake ..
$ cmake --build .
$ ctest # run the test suite
$ sudo cmake --build . --target install # optional
Pour compiler des modules facultatifs (tels que les signatures Schnorr), vous devez exécuter cmake avec des drapeaux supplémentaires (tels que -DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON ). Exécutez cmake .. -LH pour voir la liste complète des drapeaux disponibles.
Pour atténuer les problèmes avec la compilation croisée et les fichiers de chaîne d'outils préconfigurés sont disponibles dans le répertoire cmake . Par exemple, pour croiser la compilation pour les fenêtres:
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-w64-mingw32.toolchain.cmake
Pour croiser la compilation pour Android avec NDK (en utilisant le fichier de chaîne d'outils de NDK, et en supposant que la variable d'environnement ANDROID_NDK_ROOT a été définie):
$ cmake .. -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28
Pour construire sur Windows avec Visual Studio, un générateur approprié doit être spécifié pour une nouvelle arborescence de construction.
L'exemple suivant suppose l'utilisation de Visual Studio 2022 et Cmake v3.21 +.
Dans "Developer Command Invite for vs 2022":
>cmake -G "Visual Studio 17 2022" -A x64 -S . -B build
>cmake --build build --config RelWithDebInfo
Des exemples d'utilisation peuvent être trouvés dans le répertoire des exemples. Pour les compiler, vous devez vous configurer avec --enable-examples .
Pour compiler les exemples de la signature Schnorr, ECDH et MUSIG, vous devez activer le module correspondant en fournissant un indicateur au script configure , par exemple --enable-module-schnorrsig .
Si vous êtes configuré avec --enable-benchmark (qui est la valeur par défaut), les binaires pour l'analyse comparative des fonctions LiBSecp256K1-ZKP seront présentes dans le répertoire racine après la version.
Pour imprimer le résultat de référence à la ligne de commande:
$ ./bench_name
Pour créer un fichier CSV pour le résultat de référence:
$ ./bench_name | sed '2d;s/ {1,}//g' > bench_name.csv
Voir Security.md
Voir contribution.md