Skip to content

רשיונות

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

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

בעלת רשות לעשות משהו פירושה כי לחשבון יש את Permission. רשיונות ניתן להעניק באופן ישיר או באמצעות Role, אשר מקבילה קבוצה של רשיונות. רשיונות מעניקים עם ההוראה Grant. רשיונות ותפקידים אינם פוגמים; הסירו אותם עם ההוראה Revoke.

סימני רשות

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

הנה כמה דוגמאות של פרמטרים המשמשים עבור סימני רשיונות שונים:

  • סימן שמספק רשות לשינוי מטא נתונים לחשבון מסוים יש שדה account:

    json
    {
      "account": "<AccountId>"
    }
  • סימן שמספק רשות להעביר נכסים להגדרה מסוימת של נכסים יש שדה asset_definition:

    json
    {
      "asset_definition": "<AssetDefinitionId>"
    }
  • סימן גלובלי כמו CanManagePeers אינו כולל שדות:

    json
    {}

סימני אישור מראש

אתה יכול למצוא את רשימת סימני הרשות המוגדרים מראש בפרק Reference.

קבוצות רשיונות (פקידים)

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

לפני שניתן תפקיד לחשבון, התפקיד צריך להיות רשום קודם כל.

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

רשום תפקיד חדש

בואו נרשם תפקיד חדש, שכאשר יוענק, יאפשר לחשבון אחר גישה לתנתונים של חשבון העכבר:

rust
let role_id = RoleId::from_str("ACCESS_TO_MOUSE_METADATA")?;
let role = iroha_data_model::role::Role::new(role_id.clone(), mouse_id.clone())
    .add_permission(CanModifyAccountMetadata {
        account: mouse_id.clone(),
    });
let register_role = Register::role(role);

תן תפקיד.

אחרי שהפקיד רשום, עכברוש יכול להעניק את זה לאליס:

rust
let grant_role = Grant::account_role(role_id, alice_id);
let grant_role_tx = TransactionBuilder::new(chain_id, mouse_id)
    .with_instructions([grant_role])
    .sign(mouse_private_key);

מדדני אישור

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

פני ה-validator המקובלים מתקבצים על ידי שטח ספריה:

  • ניהול משותפים
  • תחומים וחשבות
  • נכסים, NFTs, ושכרות
  • תפעילים
  • תפקידים וזכויות
  • מבצע/זמן הפעלה, ראיות, גשרים ומודלים SORA/Nexus

רשימת הסימנים המדויקת נתמכת במקור ב תייחסות סימני הרשות .

בדיקות זמן ההפעלה

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

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

שאלות תומכות

ניתן לבקש סימני רשות ותפקידים.

שאלות לתפקידים:

שאלות עבור סימני רשיון: