نموذج محفز الأحداث
يستخدم هذا المثال الحساب القنوني بدون نطاق IDs وتعريفات الأصول المتوقعة في نموذج البيانات Iroha 3.
لنفترض أن الشبكة لديها:
- الحساب الكنسي الذي يسيطر عليه مفتاح أليس
- حساب تقليدي يتم السيطرة عليه من قبل مفتاح الحلاق المجنون
- تعريف الأصول المتوقعة على
teaفيwonderland.universal - الرصيد من هذا الأصل الذي يحتفظ به كل حساب
الهدف هو تسجيل محفز يلاحظ رصيد الشاي لـ (أليس) ويقدم تحويلًا من حساب (ماد هاتر) عندما يتم إصدار حدث البيانات المتطابقة.
1 - إعداد الحسابات والأصول
تسجيل الحسابات المشاركة وتعريف الأصول أولاً. في Iroha الحالية، يأتي الحساب IDs من مراقبي الحسابات، بينما تستخدم النطاقات المتوقعة نموذج domain.dataspace:
domain: wonderland.universal
asset definition projection: tea in wonderland.universal
holder accounts: AccountId(controller=alice_key), AccountId(controller=mad_hatter_key)تعريف الأصول لا يزال لديه عنوان غير شفاف. تخزين أو استفسار هذا العنوان بعد التسجيل واستخدامه في الإجراء الزناد.
إختيار السلطة الناشئة
قم بتعيين الحساب الفني للإنذار إلى حساب مخصص إذا كان ذلك ممكناً. يحرص الحساب المخصص على توضيح الأذونات اللازمة لتنفيذ إنذار وتجنب ربط الإنذار بمفتاح توقيع الشخصي للمشغل.
يجب أن يكون الحساب الفني موجوداً بالفعل ويجب أن يكون لديه إذن لتقديم التعليمات في جهاز تشغيل التشغيل.
3- تحديد الجهاز التنفيذي
القابل للتنفيذ هو تسلسل الإرشادات الذي يرسله الزناد عندما يتطابق فلتر الأحداث. في هذا المثال، يحتوي على نقل واحد:
Transfer(
source = AssetId(tea_definition, mad_hatter_account),
value = Numeric(1),
destination = AssetId(tea_definition, alice_account)
)استخدم صانعي النمط الحالي في SDK للحمل المفيد النهائي للمعاملة. تجنب تشغيل نصية قديمة IDs بقوة في رمز التشغيل ؛ تحليل أو استفسار القنوني IDs قبل بناء قابلة للتنفذ.
4- تحديد مرشح الأحداث
استخدم مرشح حوادث البيانات الذي يضيق الأحداث إلى الكائن الذي تهتم به:
EventFilterBox::Data(
DataEventFilter for asset changes involving
AssetId(tea_definition, alice_account)
)الحفاظ على المرشحات محددة كما هو عملي. مرشح AcceptAll مفيد للتصحيح، ولكنه يجعل كل حدث مماثل يدفع تكلفة تقييم التسبب.
5. سجل الزناد
سجل الزناد مع:
- مستقر
TriggerId - تسلسل التعليمات القابل للتنفيذ
Repeats::IndefinitelyأوRepeats::Exactly(n)- الحساب الفني
- مرشح الأحداث
- البيانات الأساسية الخيارية
تسجيل المحفز نفسه هو معاملة عادية، لذلك يحتاج حساب التسجيل إلى إذن لتسجيل المحفزات. يحتاج الحساب الفني إلى الإذنات المطلوبة من قبل محفزة تنفيذية.
أمر تنفيذ
عندما يتم تنفيذ حظر:
- تعليمات المعاملة العادية تعمل أولاً.
- يتم جمع بيانات الأحداث التي تنتجها هذه التعليمات.
- المفجرات التي يطابقها الفلترات تلك الأحداث مسجلة.
- يتم التعامل مع الآثار التي تنتجها المحفز في خط تنفيذ الكتل دون السماح بتنفيذ محفز رجعي لا حدود له.
إذا استخدمت الزناد Repeats::Exactly(n) ، قم بتسجيل زناد جديد عندما تنتهي العد وتتطلب نفس السلوك مرة أخرى.