ProHoster > Blog > İdarə > Ontology şəbəkəsində Python-da ağıllı müqaviləni necə yazmaq olar. Hissə 2: Storage API
Ontology şəbəkəsində Python-da ağıllı müqaviləni necə yazmaq olar. Hissə 2: Storage API
Bu, Ontology blockchain şəbəkəsində Python-da ağıllı müqavilələrin yaradılmasına dair maarifləndirici məqalələr silsiləsinin ikinci hissəsidir. Əvvəlki yazıda tanış olduq Blockchain & Block API Ontoloji ağıllı müqavilə.
Bu gün biz ikinci moduldan necə istifadə edəcəyimizi müzakirə edəcəyik— Storage API. Storage API-də blokçeyndəki ağıllı müqavilələrdə davamlı yaddaşa əlavə, silmə və dəyişikliklər etməyə imkan verən beş əlaqəli API var.
Aşağıda bu beş API-nin qısa təsviri verilmişdir:
Gəlin bu beş API-dən necə istifadə olunacağına daha yaxından nəzər salaq.
GetContext и GetReadOnlyContext cari smart müqavilənin icra olunduğu konteksti əldə edin. Qaytarma dəyəri cari smart müqavilə hashının tərsidir. Adından da göründüyü kimi, GetReadOnlyContext yalnız oxumaq üçün konteksti götürür. Aşağıdakı misalda, qaytarma dəyəri yuxarı sağ küncdə göstərilən müqavilə hashının tərsidir.
Qoy
Function Qoy lüğət şəklində blokçeynində məlumatların saxlanmasına cavabdehdir. Göstərildiyi kimi, Qoy üç parametr götürür. GetContext hazırda işləyən ağıllı müqavilənin kontekstini götürür, açar məlumatı saxlamaq üçün lazım olan açarın dəyəridir, dəyər isə saxlanmalı olan məlumatların dəyəridir. Qeyd edək ki, açarın dəyəri artıq mağazadadırsa, funksiya onun müvafiq dəyərini yeniləyəcək.
Function Almaq cari blokçeyndəki məlumatların əsas dəyər vasitəsilə oxunmasına cavabdehdir. Aşağıdakı nümunədə siz funksiyanı yerinə yetirmək üçün sağdakı seçimlər panelində açar dəyərini doldura və blokçeyndəki açar dəyərə uyğun olan məlumatları oxuya bilərsiniz.
Sil
Function Sil açar dəyər vasitəsilə blokçeyndəki məlumatların silinməsinə cavabdehdir. Aşağıdakı nümunədə siz sağdakı seçimlər panelində funksiya üçün açar dəyərini doldura və blokçeyndəki əsas dəyərə uyğun olan məlumatları silə bilərsiniz.
2. Storage API kodu nümunəsi
Aşağıdakı kod beş API-nin istifadəsinə dair ətraflı nümunə verir: GetContext, Get, Put, Delete və GetReadOnlyContext. API məlumatlarını işə salmağa cəhd edə bilərsiniz SmartX.
from ontology.interop.System.Storage import GetContext, Get, Put, Delete, GetReadOnlyContext
from ontology.interop.System.Runtime import Notify
def Main(operation,args):
if operation == 'get_sc':
return get_sc()
if operation == 'get_read_only_sc':
return get_read_only_sc()
if operation == 'get_data':
key=args[0]
return get_data(key)
if operation == 'save_data':
key=args[0]
value=args[1]
return save_data(key, value)
if operation == 'delete_data':
key=args[0]
return delete_data(key)
return False
def get_sc():
return GetContext()
def get_read_only_sc():
return GetReadOnlyContext()
def get_data(key):
sc=GetContext()
data=Get(sc,key)
return data
def save_data(key, value):
sc=GetContext()
Put(sc,key,value)
def delete_data(key):
sc=GetContext()
Delete(sc,key)
Sözündən sonra
Blockchain saxlama bütün blockchain sisteminin əsasını təşkil edir. Ontology Storage API-dən istifadə etmək asandır və tərtibatçılar üçün əlverişlidir.
Digər tərəfdən, yaddaş haker hücumlarının diqqət mərkəzindədir, məsələn, əvvəlki məqalələrdən birində qeyd etdiyimiz təhlükəsizlik təhlükəsi— saxlama injection hücumuTərtibatçılardan yaddaşa aid kod yazarkən təhlükəsizliyə xüsusi diqqət yetirmələri tələb olunur. Tam bələdçimizi saytımızda tapa bilərsiniz Github burada.
Növbəti məqalədə necə istifadə edəcəyimizi müzakirə edəcəyik Runtime API.
Məqalə Hashrate&Shares redaktorları tərəfindən xüsusilə OntologyRussia üçün tərcümə edilmişdir. ağlamaq
Siz tərtibatçısınız? texnoloji icmamıza qoşulun Diskordur. Həmçinin, bir nəzər salın İnkişaf etdirici Mərkəzi Daha çox alətlər, sənədlər və s. üçün ontologiya.