#dusk $DUSK @Dusk
في البداية اعتقدت أن بناء عقد DuskVM يعني قضاء الكثير من الوقت في إعداد منخفض المستوى قبل حتى الوصول إلى منطق العقد الفعلي.
لكن عند إلقاء نظرة أقرب على @Dusk، غيّر Forge هذا التصوّر. إذ يمكن لـ "macro" تحويل طرق Rust العامة إلى نقاط دخول DuskVM تلقائيًا، كما يولّد جزءًا كبيرًا من البنية اللازمة لـ ABI بشكل آلي. كذلك يتولى Forge التعامل مع تسلسل بيانات الإدخال والإخراج، لذلك لا يضطر المطوّرون إلى تجهيز كل بايت يمر بين العقد والآلة الافتراضية يدويًا.
وهذا ما يعجبني في هذا الأسلوب. يمكن للمطوّر أن يقضي وقتًا أكبر في التفكير بتغييرات الحالة والصلاحيات وسلوك العقد بدلًا من توصيل الصادرات وإجراء الترميز للنداءات بشكل متكرر يدويًا.
الجزء المثير للاهتمام هو أن Forge لا يزيل التعقيد من العقود الذكية. بل يزيل الإعدادات المتكررة حولها، مما يجعل التعقيد المهم أسهل في الرؤية والاختبار.
الآن أصبحت فضوليًا بشأن مدى تبنّي هذا النهج.
هل تفضّل التحكم بالـ ABI يدويًا، أم ترك Forge يتولى التعامل مع الأعمال المعيارية (boilerplate) بينما تركز على منطق العقد؟
في البداية اعتقدت أن بناء عقد DuskVM يعني قضاء الكثير من الوقت في إعداد منخفض المستوى قبل حتى الوصول إلى منطق العقد الفعلي.
لكن عند إلقاء نظرة أقرب على @Dusk، غيّر Forge هذا التصوّر. إذ يمكن لـ "macro" تحويل طرق Rust العامة إلى نقاط دخول DuskVM تلقائيًا، كما يولّد جزءًا كبيرًا من البنية اللازمة لـ ABI بشكل آلي. كذلك يتولى Forge التعامل مع تسلسل بيانات الإدخال والإخراج، لذلك لا يضطر المطوّرون إلى تجهيز كل بايت يمر بين العقد والآلة الافتراضية يدويًا.
وهذا ما يعجبني في هذا الأسلوب. يمكن للمطوّر أن يقضي وقتًا أكبر في التفكير بتغييرات الحالة والصلاحيات وسلوك العقد بدلًا من توصيل الصادرات وإجراء الترميز للنداءات بشكل متكرر يدويًا.
الجزء المثير للاهتمام هو أن Forge لا يزيل التعقيد من العقود الذكية. بل يزيل الإعدادات المتكررة حولها، مما يجعل التعقيد المهم أسهل في الرؤية والاختبار.
الآن أصبحت فضوليًا بشأن مدى تبنّي هذا النهج.
هل تفضّل التحكم بالـ ABI يدويًا، أم ترك Forge يتولى التعامل مع الأعمال المعيارية (boilerplate) بينما تركز على منطق العقد؟
