ნებართვები
ანგარიშებს სჭირდებათ ნებართვის ტოქნები სხვადასხვა ქმედებებისთვის ბლოკჩეინზე, მაგალითად, აქტივების დაფარვა ან დამწვრობისთვის.
საჯარო და კერძო ბლოკჩეინებს შორის განსხვავება არსებობს მომხმარებლებისთვის მინიჭებული ნებართვების თვალსაზრისით. საჯარო ბლოკშეინში, უმეტეს ანგარიშებს აქვთ ერთი და იგივე ნებართვები. კერძო ბლოკჩეინში, სავარაუდოდ, ანგარიშების უმრავლესობას არ შეუძლია გააკეთოს რაიმე მათთვის მინიჭებული უფლებამოსილების მიღმა, თუ მათ პირდაპირ არ მიენიჭა შესაბამისი ნებართვა.
ნებართვის მიღება ნიშნავს, რომ ანგარიშს აქვს შესაბამისი Permission. ნებართვები შეიძლება გადაეცემა პირდაპირ ან Role, რომელიც აერთიანებს ნებართვების კომპლექტს. ნებართვები მინიჭებულია Grant ინსტრუქციით. ნებაყოფები და როლები არ ვადის; ამოიღეთ ისინი Revoke ინსტრუქციის გამოყენებით.
ნებართვის ქაღალდები
ნებართვის ქაღალდები არის ტიპირებული ობიექტები, რომლებიც განსაზღვრულია აქტიური აღმასრულებლის მიერ. ზოგიერთი ქაღალდი გლობალურია, როგორიცაა CanManagePeers, ხოლო სხვები განკუთვნილია კონკრეტულ ლიდერის ობიექტზე, როგორიცაა ანგარიში, აქტივი, აქტივის განსაზღვრა, დომეინი, NFT, როლი ან საგამოძრაო.
აქ მოცემულია პარამეტრების რამდენიმე მაგალითი, რომლებიც გამოიყენება სხვადასხვა ნებართვის ქაღალდებისთვის:
ქაღალდი, რომელიც აძლევს ნებართვას კონკრეტული ანგარიშის მეტა მონაცემების შეცვლისთვის, შეიცავს ველს
account:json{ "account": "<AccountId>" }ქონების განსაზღვრისთვის აქტივების გადაცემის ნებართვის მინიჭებული ტოკი შეიცავს
asset_definitionველს:json{ "asset_definition": "<AssetDefinitionId>" }გლობალური ტოქნი, როგორიცაა
CanManagePeers, არ შეიცავს ველებს:json{}
წინასწარ კონფიგურებული ნებართვის ნიშნები
წინასწარი კონფიგურაციის ნებართვის ნიშნების სია შეგიძლიათ იხილოთ Reference თავში.
ნებართვის ჯგუფები (ფუნქციები)
ნებართვების კომპლექტს როლს უწოდებენ. ნებართვის ტოკენების მსგავსად, როლები შეიძლება დაენიშნოს Grant ინსტრუქციის გამოყენებით და გააუქმონ Revoke ინსტრუქციით.
ანგარიშზე როლის მინიჭებამდე, პირველ რიგში უნდა იყოს რეგისტრირებული.
როლები სასარგებლოა, როდესაც რამდენიმე ანგარიში უნდა მიიღოს ერთი და იგივე ნებართვის ნაკრები. რეგისტრირეთ როლი ერთხელ, მიეცით ნებართვები როლს, შემდეგ კი მიეცით ან გააუქმეთ როლი ცალკეული ანგარიშებისთვის.
დარეგისტრირდით ახალ როლს
მოდით დაარეგისტრიროთ ახალი როლი, რომელიც, მისაცემის შემთხვევაში, სხვა ანგარიშს საშუალებას მისცემს მიაღწიოს მეტოდატას Mouse- ის ანგარიშში:
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 რეფერენციაში .
გაშვების დროის ვალიდატორები
ნებართვის შემოწმებას ახორციელებს აქტიური აღმასრულებელი. დეფოლტურად აღმასრულებელმა უზრუნველყოფს ჩაშენებული ნებართვების ვალიდატორები და ტოქნის განსაზღვრები, ხოლო ქსელს შეუძლია შეცვალოს პოლიტიკა გამოყენებული აღმასრულებლის გაუმჯობესებით.
ვალიდატორები უბრუნებენ დამტკიცების განაჩენს. ვალიდატორი შეიძლება დაუშვას ოპერაცია, უარყოს მას მიზეზით ან გადაიტოვოს ის, თუ ოპერაცია ამ ვალიდატორის მოქმედების ფარგლებს გარეთაა. შერჩეული მოსამართლე ამ განაჩენებს აერთიანებს იმის დასადგენად, შეიძლება თუ არა ინსტრუქციას, გამოკითხვას ან გამოთქმას გაგრძელება .
მხარდაჭერილი კითხვები
ნებართვის ქაღალდები და როლები შეიძლება გამოკითხული იყოს.
როლების შესახებ შეკითხვები:
შეკითხვები ნებართვის ქაღალდებისთვის: