التكليف#
تجمع محفظة Chia المرجعية في تنزيل واحد لأنظمة Windows وmacOS وLinux أداةً للزراعة وعقدةً كاملة ومحفظة. ويُطرح كل إصدار أولاً على شكل إصدارات مرشحة، عادةً من اثنين إلى أربعة على مدى أسبوعين تقريباً، ويجب أن يعمل كل منها على الأنظمة الثلاثة.
وطلب منا فريق الأمن في Chia اختبار تلك الإصدارات المرشحة. ومن جدول يضم نحو 80 اختباراً يدوياً، تمتد من التثبيت مروراً بإنشاء ملفات plot والانضمام إلى المجمّعات والرموز وNFTs والعروض، اختار الفريق 42 اختباراً هي الأهم للإصدار الأول، لتُجرى داخل التطبيق على Debian Linux وWindows 11 وجهاز Mac بمعالج Apple Silicon. واستخدم كل اختبار برامج التثبيت الصادرة عن مسار الإصدار لدى Chia نفسها، أي الملفات ذاتها التي ينزّلها المستخدمون.
ثلاثة أنظمة، وكل إصدار مرشح#
كان على كل جهاز أن يزامن عقدة Chia مع testnet11 وهي شبكة الاختبار لدى Chia. وتوقفت الأجهزة الثلاثة كلها عند تحميل مخزن المفاتيح، ولم تفتح نسخة Windows من أحد الإصدارات المرشحة نافذتها. وكانت لدى فريق Chia الإجابات، المبيّنة أدناه، وسرعان ما صارت الأجهزة الثلاثة تعمل. وأرسلت Chia رموزاً وNFTs للاختبار إلى محافظنا، وسككنا نحن NFTs إضافية من سطر الأوامر، كل منها مرتبط بهوية لامركزية.
وشغّل فريقنا كلاً من الإصدارات المرشحة الثلاثة للإصدار 2.4.3 على الأنظمة الثلاثة خلال الأيام الثلاثة التي أتاحتها Chia، وسجّل كل نتيجة في جدول يستطيع مهندسو Chia قراءته. وذهبت الإخفاقات إلى GitHub لدى Chia حيث وسمها مهندسوها لفريق ضمان الجودة لديهم، ثم تابعوا كلاً منها معنا، يطلبون السجلات ويعيدون التجربة على الإصدار المرشح التالي.
وبعض ما وجدناه وقع خارج تلك الاختبارات الـ 42. ففي نافذة التوقيع على أجهزة Linux وMac كانت الهوية المختارة لتوقيع رسالة تفيض خارج إطارها. وجاء الإصلاح من مهندسي Chia بعد يومين وصدر في 2.4.4. وحين قبلت محفظة أخرى عرض NFT، ظلت المحفظة التي أنشأته تعرضه على أنه معلّق، فأضفنا خطوات لإعادة إنتاج الخلل إلى البلاغ المفتوح لدى Chia، وهو بلاغ يذكره الإصدار 2.4.4 ضمن ما أُصلح. وفي 2.4.4، انتقلت Chia إلى مختبِر واحد بدوام كامل من فريقنا، شغّل إصداراته المرشحة الثلاثة بالطريقة نفسها، وفحص موقع Chia الجديد بحثاً عن روابط معطلة قبل إطلاقه.
الجزء الصعب: محفظة بلا كلمات مرور#
وفي أثناء العمل على الإصدارات، طلبت Chia من فريقنا أيضاً اختبار محفظتها التالية. تعمل Cloud Wallet في المتصفح، وليست لديها عقدة تحتاج إلى مزامنة. وكانت Chia تريد مزيداً من الاختبارات، مؤتمتة، وعملية تتوسع مع فريق ضمان الجودة لديها، فاختارت أداة Playwright لذلك.
كل تسجيل حساب جديد، وكل تسجيل دخول، وكل إرسال في Cloud Wallet يُعتمد بـ مفتاح مرور. ونافذة مفتاح المرور تتبع نظام التشغيل والمتصفح لا الصفحة، فلا يستطيع Playwright الوصول إليها. وتحت الواجهة بلوكتشين حي: الخزنة الجديدة معاملة يجب أن تتأكد، والإرسال يجب أن يدخل مجمّع المعاملات (mempool) ثم يُسوّى، وعبارة الاسترداد لا تظهر إلا مرة واحدة.
مجموعة اختبارات Playwright#
بمساعدة فريق ضمان الجودة لدينا، بنى Saif Pasha مجموعة اختبارات Playwright تغطي الواجهتين الخلفية والأمامية في Cloud Wallet، وتعمل على testnet11 بنسخة التطوير منها. وكتب فريق المنتج في Chia كل ميزة في صورة قصة مستخدم مع معايير قبول. ومن تلك القصص جاءت الاختبارات، من رسالة الترحيب وصولاً إلى صفحة مفاتيح المرور.
خزّن Saif مفتاح المرور لحساب الاختبار في إضافة متصفح لإدارة كلمات المرور، وحمّل تلك الإضافة في المتصفح الذي يتحكم Playwright فيه. فتجيب الإضافة عن طلبات مفتاح المرور التي ترسلها المحفظة داخل المتصفح نفسه، حيث تستطيع الاختبارات النقر عليها. ويسجّل اختبارٌ الدخول وينشئ خزنة، وينسخ عبارة الاسترداد ثم يلصقها من جديد لتأكيدها، ثم يعيد تسمية الخزنة ويحذفها. ويرسل أيضاً XCH للاختبار مع رسوم، ويعتمد ذلك الإرسال بمفتاح المرور، ثم يتتبعه من غير موقَّع إلى الـ mempool ثم إلى التسوية. وحصل دفتر العناوين والرموز والإعدادات على مسارات خاصة بها.
ونجح ذلك التشغيل الكامل الأول. ثم طلب فريق المنتج في Chia نقل مجموعة الاختبارات إلى GitHub لدى Chia نفسها، حيث اتّبعت أعراف الشركة في رسائل الإيداع (commit) ووقّعت إيداعاتها، وصارت تعمل في مسار CI/CD للمستودع الرئيسي. وظل فريق ضمان الجودة لدينا يحدّثها مع كل إصدار من إصدارات Cloud Wallet.
النتيجة#
حين أطلقت Chia الإصدار 2.4.3 من المحفظة المرجعية ثم الإصدار 2.4.4، كان كل إصدار مرشح قد اختُبر على Linux وmacOS وWindows، وكانت الأخطاء التي وجدها فريقنا مسجّلة على GitHub لدى Chia. وصارت لمحفظتها Cloud Wallet مجموعة اختبارات Playwright في GitHub لدى Chia نفسها، تختبرها من البداية إلى النهاية، فتسجّل الدخول بمفتاح مرور حقيقي وتحرّك أموال اختبار حقيقية على testnet11.
ومن بين المختبِرين الذين رشّحتهم Chia لأسبوع اختبار Cloud Wallet قبل إطلاقها كان مهندس ضمان جودة من فريقنا. ووصلت محفظة Chia الجديدة إلى الجمهور مختبَرةً من البداية إلى النهاية، بما في ذلك مفاتيح المرور.
