Skip to content

דוגמא לעורר אירוע

דוגמא זו משתמשת בחשבון קנוני ללא תחום IDs ובגדרות נכסים מתוכנן במודל הנתונים Iroha 3.

נניח שרשת יש:

  • חשבון קנוני שנשלח על ידי המפתח של אליס.
  • חשבון קנוני שליטה על ידי המפתח של משוגעת Hatter
  • הגדרה של נכס צפויה להיות tea תחת wonderland.universal
  • סולן של נכס זה שנמצא על ידי כל חשבון

המטרה היא לרשום מפעיל שמבחין בסלון תה של אליס ומגיש העברה מהחשבון של כובע משוגע כאשר אירוע הנתונים המתאימים מוציא.

1. להכין חשבונות ונכסים

רשום תחילה את החשבונות המשתתפים וההגדרה של הנכסים. במערכת הנוכחית Iroha, החשבון IDs מגיע מאובטלי חשבונות, בעוד שזרים מתוכננים משתמשים בצורת domain.dataspace:

text
domain: wonderland.universal
asset definition projection: tea in wonderland.universal
holder accounts: AccountId(controller=alice_key), AccountId(controller=mad_hatter_key)

הגדרה של נכס עדיין יש כתובת קנוניקה לא ברורה. שמור או שאל את הכתובת לאחר הרישום ולהשתמש בה בפעולה ההפעלה.

2. בחר את סמכות ההפעלה

להגדיר את החשבון הטכני של המפעיל לחשבון ייחודי כאשר זה אפשרי. חשבון ייחודי מבהיר אילו אישורים נדרשים לביצוע המפעיל וממנע מקושרת המפעיל למפתח החתימה האישי של מפעיל.

החשבון הטכני חייב כבר להתקיים ויש לו רשות להגיש את ההוראות במפעיל הפעלת.

3. להגדיר את המופעל

ניתן לבצע את רצף ההוראות שהצולל שולח כאשר מסנן האירועים מתאים. לדוגמה זו, הוא מכיל העברה אחת:

text
Transfer(
  source = AssetId(tea_definition, mad_hatter_account),
  value = Numeric(1),
  destination = AssetId(tea_definition, alice_account)
)

השתמש בפתוחים הטייפנים הנוכחיים של SDK עבור המטען הפועל של העסקה הסופית. הימנע מהקוד הקשיח טקסטלי ישן IDs בקוד ההדק; חישוב או חיפוש קאנוני IDs לפני בניית המוצא.

להגדיר את מסנן האירועים

השתמשו בפילטר של אירועי נתונים שמצמצם את האירועים לאובייקט שאכפת לכם:

text
EventFilterBox::Data(
  DataEventFilter for asset changes involving
  AssetId(tea_definition, alice_account)
)

שמרו על פילטרים ספציפיים ככל שהם מעשיים. פילטר AcceptAll הוא שימושי לתיקון, אבל זה גורם לכל אירוע מתאים לשלם את העלות של הערכת ההפעלה.

5. רשום את ההדק

רשום את ההדק עם:

  • יציבה TriggerId
  • סדרת ההוראות המוצלחת
  • Repeats::Indefinitely או Repeats::Exactly(n)
  • החשבון הטכני
  • מסנן האירועים
  • נתונים מטאטא אופציונליים

רישום הטריגר עצמו הוא עסקאות נורמליות, כך שחשבון ההרשמה זקוק לאישור כדי לרשום תניעים. החשבון הטכני זקוק לאזורים הנדרשים על ידי המפעיל התניעה.

פקודה להוציא להורג

כאשר בלוק מתבצע:

  1. הוראות עסקאות נורמליות פועלות קודם.
  2. נאסוף נתונים על אירועים שנוצרו בהוראות אלה.
  3. תפעילים שהפילטר שלהם מתאימים לאירועים האלה מיועדים.
  4. ההשפעות המוצרות על ידי הגירוי מתמודדות בצינור ביצוע הבלוק מבלי לאפשר ביצוע בלתי מוגבל של גירוי גירוי.

אם מפוצץ משתמש Repeats::Exactly(n), רשום פוצץ חדש כאשר ההספקה נגמרה ונדרש שוב את אותה התנהגות.