يمكن أن ترجع الدالة IsStandardTx
عددًا من الأسباب للمعاملات غير القياسية. يتم اختبار عدد قليل منها حاليًا من جهة من خلال اختبار الوحدة test_IsStandard
( transaction_tests.cpp
) ، والتحقق مباشرةً من نتيجة استدعاء الوظيفة ، من ناحية أخرى عن طريق الاختبار الوظيفي mempool_accept.py
، الاختبار غير المباشر باستخدام testmempoolaccept
RPC والتحقق من الحقل reject-reason
في النتيجة. في الفرع الرئيسي الحالي (7967104aee055476107dc17265cefc4ae4e75378) ، تبدو تغطية الاختبار كما يلي:
| IsStandardTx()
سبب الرفض | اختبار وظيفي ( mempool_accept.py
) | اختبار الوحدة ( transaction_tests.cpp
) |
| ------------- |: -------------: |: -----: |
| "version"
| : heavy_check_mark: | |
| "tx-size"
| : heavy_check_mark: | |
| "scriptsig-size"
|
| "scriptsig-not-pushonly"
| : heavy_check_mark: | |
| "scriptpubkey"
| : heavy_check_mark: | : heavy_check_mark: |
| "bare-multisig"
|
| "dust"
| : heavy_check_mark: | : heavy_check_mark: |
| "multi-op-return"
| : heavy_check_mark: | : heavy_check_mark: |
أعتقد أنه سيكون من المنطقي إجراء اختبار واحد على الأقل لكل سبب إما عن طريق اختبار الوحدة أو الاختبار الوظيفي - مقابل "scriptsig-size"
و "bare-multisig"
ليس لدينا أي اختبار ، لذلك هؤلاء هم الأكثر مطلوب كما هو الحال الآن. بالنظر إلى ذلك ، سيؤدي ذلك إلى القائمة التالية المكونة من سبع مهام صغيرة (مرتبة تقريبًا حسب الأولوية التنازلية):
"scriptsig-size"
reason (PR # 17480 ، الالتزام 5e8a56348b5e1026e9ddcae0b2fa2a68faf4439e ، تم بواسطة نفسي المتواضع)"bare-multisig"
reason (PR # 17502 ، الالتزام 1bb5d517aa616c1d5b5801d2ea36a2de5fb61eba ، تم بواسطة نفسي المتواضع)"scriptsig-size"
reason (PR # 17532 ، الالتزام 8f2d7737cc236b6122f30e31856eb3181960fba1 ، تم إجراؤه بواسطة نفسي المتواضع)"bare-multisig"
reason (PR # 17541 ، الالتزام 1be0b1fb2adcf95d76f879195564c0bf84162e31 ، تم بواسطة نفسي المتواضع)"scriptsig-not-pushonly"
reason (PR # 17720 ، الالتزام 5aab011805ceb12801644170700b1a62e0bf4a5d ، تم بواسطة نفسي المتواضع)"tx-size"
reason (PR # 17947 ، الالتزام 4537ba5f21ad8afb705325cd8e15dd43877eb28f ، dony by humble self)"version"
reason (PR # 17555 ، الالتزام https://github.com/bitcoin/bitcoin/pull/17555/commits/76303f65f92a0fbe9a90c0e807554a6daa860636 ، تم بواسطة dspicher)أعتقد أن هذا سيكون مرشحًا جيدًا "للمشكلة الأولى" - فأنا أميل إلى العمل على ذلك بنفسي ، ولكن لتشجيع المساهمين الجدد (ومعرفة مدى فائدة "المشكلات الأولى الجيدة" في الدخول) المسها لبعض الوقت.
أود العمل على هذا.
theStack هل بدأت بالفعل في اختبارات "bare-multisig"
؟
dspicher : سعيد لسماع أنك مهتم! تم فتح PRs لكل من الوحدة والاختبار الوظيفي لـ "bare-multisig"
خلال الأيام الماضية (انظر # 17502 و # 17541 - لم يتم دمج كلاهما بعد على الرغم من ذلك) ، وبالتالي الآن الاختبارات الثلاثة التالية هي مفقود:
"scriptsig-not-pushonly"
"tx-size"
"version"
لا تتردد في العمل على هؤلاء ، واستمتع! :)
يتم تنفيذ جميع اختبارات الوحدة والاختبارات الوظيفية المفقودة ودمجها في الفرع الرئيسي الآن: tada:: beer: لذلك أقوم بإغلاق هذه المشكلة.
التعليق الأكثر فائدة
dspicher : سعيد لسماع أنك مهتم! تم فتح PRs لكل من الوحدة والاختبار الوظيفي لـ
"bare-multisig"
خلال الأيام الماضية (انظر # 17502 و # 17541 - لم يتم دمج كلاهما بعد على الرغم من ذلك) ، وبالتالي الآن الاختبارات الثلاثة التالية هي مفقود:"scriptsig-not-pushonly"
"tx-size"
"version"
لا تتردد في العمل على هؤلاء ، واستمتع! :)