اجازت نامے
ایک بلاکچین پر مختلف کارروائیوں کے لئے اکاؤنٹس کو اجازت ٹوکن کی ضرورت ہوتی ہے، مثال کے طور پر اثاثہ جات کو پیسنے یا جلانے کے لئے.
عوامی اور نجی بلاکچین کے مابین صارفین کو دی جانے والی اجازتوں کے لحاظ سے فرق ہے۔ عوامی بلاکچین میں ، زیادہ تر اکاؤنٹس کے پاس ایک ہی اجازت کا سیٹ ہوتا ہے۔ ایک نجی بلاکچین میں، زیادہ تر اکاؤنٹس کو اس اختیار سے باہر کچھ بھی کرنے کے قابل نہیں ہونے کا خیال کیا جاتا ہے جب تک کہ واضح طور پر متعلقہ اجازت نہ دی جائے.
کسی چیز کو کرنے کی اجازت رکھنے کا مطلب یہ ہے کہ اکاؤنٹ میں متعلقہ Permission ہے۔ اجازت براہ راست یا Role کے ذریعہ دی جاسکتی ہے ، جو اجازتوں کے ایک سیٹ کو گروپ کرتی ہے۔ اجازتیں Grant ہدایات کے ساتھ دی جاتی ہیں۔ اجازت اور کردار ختم نہیں ہوتے ہیں؛ انہیں Revoke ہدایات کے ساتھ ہٹا دیں۔
اجازت ٹوکن
اجازت ٹوکن فعال عملدرآمد کنندہ کے ذریعہ بیان کردہ ٹائپ شدہ اشیاء ہیں۔ کچھ ٹوکن گلوبل ہیں ، جیسے CanManagePeers ، اور دوسروں کو ایک مخصوص لیجر آبجیکٹ تک محدود کیا جاتا ہے ، جیسے اکاؤنٹ ، اثاثہ ، اثاثے کی تعریف ، ڈومین ، NFT ، کردار ، یا ٹرگر۔
یہاں مختلف اجازت ٹوکن کے لئے استعمال پیرامیٹرز کی کچھ مثالیں ہیں:
ایک ٹوکن جو کسی مخصوص اکاؤنٹ کے لئے میٹا ڈیٹا کو تبدیل کرنے کی اجازت دیتا ہے اس میں
accountفیلڈ ہوتا ہے۔json{ "account": "<AccountId>" }ایک ٹوکن جس میں مخصوص اثاثہ تعریف کے لئے اثاثوں کی منتقلی کی اجازت دی جاتی ہے اس پر
asset_definitionفیلڈ ہوتا ہے۔json{ "asset_definition": "<AssetDefinitionId>" }CanManagePeersجیسے عالمی ٹوکن میں کوئی فیلڈ نہیں ہے:json{}
پہلے سے ترتیب شدہ اجازت ٹوکن
آپ حوالہ باب میں پہلے سے ترتیب شدہ اجازت ٹوکن کی فہرست تلاش کرسکتے ہیں۔
اجازت دینے والے گروپ (رول)
اجازتوں کے ایک سیٹ کو کردار کہا جاتا ہے۔ اجازت ٹوکن کی طرح ، Grant ہدایات کا استعمال کرتے ہوئے کردار دیئے جاسکتے ہیں اور Revoke ہدایت کا استعمال کرکے منسوخ کیا جاسکتا ہے۔
ایک اکاؤنٹ کو کردار دینے سے پہلے، اس کردار کو سب سے پہلے رجسٹر کیا جانا چاہئے.
کردار مفید ہیں جب متعدد اکاؤنٹس کو ایک ہی اجازت کا سیٹ ملنا چاہئے۔ کردار کو ایک بار رجسٹر کریں ، اس کردار کے لئے اجازت دیں ، اور پھر انفرادی اکاؤنٹس کے لئے کردار عطا کریں یا منسوخ کریں۔
نیا کردار رجسٹر کریں
آئیے ایک نیا کردار رجسٹر کریں جو، جب عطا کیا جائے تو، ماؤس کے اکاؤنٹ میں میٹا ڈیٹا تک کسی اور اکاؤنٹ تک رسائی کی اجازت دے گا:
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);کردار ادا کریں
کردار رجسٹرڈ ہونے کے بعد، ماؤس اسے ایلس کو دے سکتا ہے:
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);اجازت کے تصدیق کنندہ
اجازتیں موجود ہیں تاکہ صرف مطلوبہ اجازت ٹوکن والے اکاؤنٹس محفوظ کارروائی انجام دے سکیں۔ ڈیفالٹ ایگزیکٹر ہدایات ، استفسار اور اظہار کے عمل کے دوران اجازتوں کی جانچ پڑتال کرتا ہے۔
ڈیفالٹ توثیق کنندہ سطح کو لیجر کے علاقے کی طرف سے گروپ کیا جاتا ہے:
- پیئر مینجمنٹ
- ڈومینز اور اکاؤنٹس
- اثاثہ جات، NFTs، اور اسکور
- ٹرگرز
- کردار اور اجازت نامے
- عملدرآمد / رن ٹائم ، ثبوت ، پل اور SORA/Nexus ماڈیولز
ٹوکن کی عین مطابق فہرست Permission Tokens ریفرنس میں ماخذ کے ذریعہ تائید ہے.
رن ٹائم ویلیڈیٹرز
اجازت کی جانچ پڑتال کو فعال عملدرآمد کے ذریعہ نافذ کیا جاتا ہے۔ ڈیفالٹ عملدرآمد بلٹ میں اجازت کی توثیق کرنے والے اور ٹوکن تعریفیں فراہم کرتا ہے ، اور نیٹ ورک اس عملدرآمد کو اپ گریڈ کرکے پالیسی تبدیل کرسکتا ہے جس کا استعمال کرتا ہے۔
توثیق کرنے والے ایک تصدیق کا فیصلہ واپس کرتے ہیں۔ توثیق کنندہ کسی آپریشن کی اجازت دے سکتا ہے ، اسے کسی وجہ سے مسترد کرسکتا ہے ، یا اگر آپریشن اس تصدیق کنندہ کے دائرہ کار سے باہر ہے تو اسے چھوڑ سکتا ہے۔ منتخب کردہ جج ان فیصلوں کو جوڑتا ہے تاکہ یہ فیصلہ کیا جاسکے کہ آیا ہدایات ، استفسار ، یا اظہار جاری ہوسکتا ہے۔
معاون سوالات
اجازت کے ٹوکن اور رولز سے پوچھ گچھ کی جا سکتی ہے۔
کردار کے لئے سوالات:
اجازت ٹوکن کے لئے سوالات: