Kako napisati pametni ugovor na Pythonu unutar Ontology mreže. Dio 2: Storage API

Kako napisati pametni ugovor na Pythonu unutar Ontology mreže. Dio 2: Storage API

Ovo je drugi dio serije edukativnih članaka o stvaranju pametnih ugovora na Pythonu u blockchain mreži Ontology. U prethodnom članku upoznali smo se sa Blockchain & Block API pametnim ugovorom Ontology.

Danas ćemo razgovarati o tome kako koristiti drugi modul— Storage API. Storage API sadrži pet povezanih API-ja koji omogućavaju dodavanje, brisanje i izmjene u trajnom skladištu u pametnim ugovorima na blockchainu.

U nastavku slijedi sažetak tih pet API-ja:

Kako napisati pametni ugovor na Pythonu unutar Ontology mreže. Dio 2: Storage API

Hajde da detaljnije razmotrimo kako koristiti ovih pet API-ja.

0. Stvorimo novi ugovor SmartX

1. Kako koristiti Storage API

GetContext & GetReadOnlyContext

GetContext i GetReadOnlyContext dobivaju kontekst u kojem se izvršava trenutni pametni ugovor. Povratna vrijednost predstavlja obrnuti hash trenutnog pametnog ugovora. Kao što ime sugerira, GetReadOnlyContext uzima kontekst u načinu samo za čitanje. U donjem primjeru, povratna vrijednost predstavlja obrnuti hash ugovora koji se prikazuje u gornjem desnom kutu.

Kako napisati pametni ugovor na Pythonu unutar Ontology mreže. Dio 2: Storage API

Put

Funkcija Put odgovorna je za pohranu podataka u blockchainu u obliku rječnika. Kao što je prikazano, Put prihvata tri parametra. GetContext uzima kontekst trenutnog izvršavanog pametnog ugovora, key— to je vrijednost ključa koju je potrebno sačuvati, a value— to je vrijednost podataka koju je potrebno sačuvati. Imajte na umu, ako se vrijednost ključa već nalazi u skladištu, funkcija će ažurirati njegovu odgovarajuću vrijednost.

Kako napisati pametni ugovor na Pythonu unutar Ontology mreže. Dio 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Get

Funkcija Get odgovorna je za čitanje podataka u trenutnom blockchainu pomoću vrijednosti ključa. U donjem primjeru možete unijeti vrijednost ključa u panel s parametrima s desne strane kako biste izvršili funkciju i pročitali podatke koji odgovaraju vrijednosti ključa u blockchainu.

Kako napisati pametni ugovor na Pythonu unutar Ontology mreže. Dio 2: Storage API

Obriši

Funkcija Obriši odgovorna je za brisanje podataka u blockchainu pomoću vrijednosti ključa. U donjem primjeru možete unijeti vrijednost ključa kako biste izvršili funkciju u panelu s parametrima s desne strane i izbrisali podatke koji odgovaraju vrijednosti ključa u blockchainu.

Kako napisati pametni ugovor na Pythonu unutar Ontology mreže. Dio 2: Storage API

2. Primjer koda Storage API

Donji kod daje detaljan primjer korištenja pet API-ja: GetContext, Get, Put, Delete i GetReadOnlyContext. Možete pokušati pokrenuti ove API-je u 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)

Epilog

Blockchain skladište je jezgra cijelog blockchain sustava. Ontology Storage API je jednostavan za korištenje i ugodan za programere.

S druge strane, skladište je podložna napadima hakera, primjerice, prijetnjama sigurnosti o kojima smo govorili u jednom od prethodnih članaka— napad umetanja u skladište, programeri moraju posvetiti posebnu pozornost sigurnosti pri pisanju koda koji je povezan sa skladištem. Možete pronaći cjeloviti vodič na našem GitHub ovde.

U sljedećem članku razgovarat ćemo o tome kako koristiti Runtime API.

Članak je preveden uredništvom Hashrate&Shares posebno za OntologyRussia. klik

Jeste li programer? Pridružite se našoj tehničkoj zajednici na Discord. Također, zavirite u Centar za programere Ontology, gdje možete naći više alata, dokumentaciju i još mnogo toga.

Otvoreni zadaci za programere. Zatvori zadatak - dobij nagradu.

Prijaviti se na program za talente Ontology za studente

Ontology

Ontology web stranica — GitHub — Discord — Telegram Ruski — Twitter — Redditu

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster