شوكة من libsecp256k1 بدعم للميزات المتقدمة والتجريبية مثل الأصول السرية و musig2
الميزات المضافة:
يتم توفير الميزات التجريبية للاختبار والمراجعة من قبل المجتمع. لا ينبغي اعتبار واجهات برمجة التطبيقات لهذه الميزات مستقرة.
$ ./autogen.sh
$ ./configure
$ make
$ make check # run the test suite
$ sudo make install # optional
لتجميع الوحدات الاختيارية (مثل توقيعات Schnor) --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
لتجميع الوحدات الاختيارية (مثل توقيعات Schnor) ، تحتاج إلى تشغيل cmake مع أعلام إضافية (مثل -DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON ). قم بتشغيل cmake .. -LH لمشاهدة القائمة الكاملة للأعلام المتاحة.
للتخفيف من المشكلات المتعلقة بالتجميع المتقاطع ، تتوفر ملفات أدوات الأدوات المسبقة في دليل cmake . على سبيل المثال ، للتجميع المتقاطع لنظام التشغيل Windows:
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-w64-mingw32.toolchain.cmake
للتجميع المتقاطع لنظام Android مع NDK (باستخدام ملف أدوات NDK ، وافتراض تم تعيين متغير بيئة ANDROID_NDK_ROOT ):
$ cmake .. -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28
للبناء على Windows مع Visual Studio ، يجب تحديد مولد مناسب لشجرة بناء جديدة.
يفترض المثال التالي استخدام 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
انظر الأمن
انظر المساهمة