
CKB's vm، مبني على مجموعة تعليمات RISC-V مفتوحة المصدر
CKB VM هو تطبيق برمجي خالص لمجموعة تعليمات RISC-V المستخدمة كآلة افتراضية للنصوص البرمجية في CKB. حاليًا، ينفذ تعليمات IMCB الكاملة لكل من دعم حجم السجلات 32 بت و64 بت. في المستقبل، قد ننفذ أيضًا امتدادات V لتمكين تطبيقات تشفير أفضل.
يُصدر Nervos CKB بموجب شروط ترخيص MIT. راجع COPYING لمزيد من المعلومات أو راجع https://opensource.org/licenses/MIT.
هذا الجهاز منشور حاليًا ومستخدم في شبكة CKB الرئيسية للإنتاج.
فرع develop يُبنى ويُختبر بانتظام، لكنه غير مضمون ليكون مستقرًا تمامًا. ستستخدم CKB إصدارات منشورة من CKB VM التي تم اختبارها وتكون أكثر استقرارًا.
تم وصف سير العمل للمساهمة في CONTRIBUTING.md، وسياسة الأمان موصوفة في SECURITY.md. لاقتراح بروتوكول أو معيار جديد لـ Nervos، راجع Nervos RFC.
يتم اختبار CKB VM حاليًا بشكل أساسي باستخدام إصدار stable من Rust على أنظمة Linux وmacOS وWindows 64 بت.
# تحميل CKB VM
$ git clone https://github.com/nervosnetwork/ckb-vm
$ cd ckb-vm
$ cargo build
يمكنك أيضًا تشغيل الاختبارات:
make test
لقد تضمن CKB VM بالفعل ثنائيات RISC-V المستخدمة في الاختبارات، لذلك لا تحتاج إلى مترجم RISC-V لبناء الثنائيات. ولكن إذا كنت ترغب في تجربة ثنائياتك الخاصة، فقد تحتاج إلى مترجم RISC-V. يمكن أن يكون riscv-tools نقطة انطلاق جيدة هنا، أو إذا كنت خبيرًا في سلسلة أدوات GNU، يمكنك أيضًا تجميع GCC الرئيسي من المصدر مع دعم RISC-V، هنا مثال. يستخدم CKB VM تعليمات RISC-V القياسية وتنسيق ELF الثنائي، لذا من الناحية النظرية يمكن لأي مترجمات متوافقة مع RISC-V إنتاج عقود تُستخدم في CKB VM (مع أننا نرحب بتقارير الأخطاء إذا وجدت أي خلل).
يحتوي CKB VM حاليًا على وضعين مختلفين:
للحصول على سلوك متسق، يجب عليك استخدام وضع ASM فقط. تم تطوير وضع Rust بشكل أكبر للمساعدة في التطوير، ولم يُستخدم مطلقًا في الإنتاج من قبلنا. في حالة وجود أخطاء، قد يكون هناك سلوك غير متسق بين وضع Rust ووضع ASM.