ProHoster > BLOG > administrare > Cum se scrie un contract inteligent în Python în rețeaua Ontology. Partea 2: API-ul de stocare
Cum se scrie un contract inteligent în Python în rețeaua Ontology. Partea 2: API-ul de stocare
Aceasta este a doua parte dintr-o serie de articole educaționale despre crearea de contracte inteligente în Python în rețeaua blockchain Ontology. În articolul precedent ne-am familiarizat Blockchain și Block API Contract inteligent de ontologie.
Astăzi vom discuta cum să folosim cel de-al doilea modul— API de stocare. API-ul de stocare are cinci API-uri conexe care permit adăugarea, ștergerea și modificările stocării persistente în contractele inteligente pe blockchain.
Mai jos este o scurtă descriere a acestor cinci API-uri:
Să aruncăm o privire mai atentă asupra modului de utilizare a acestor cinci API-uri.
GetContext и GetReadOnlyContext obține contextul în care este executat contractul inteligent curent. Valoarea returnată este inversul hash-ului curent al contractului inteligent. Așa cum sugerează și numele, GetReadOnlyContext preia contextul numai pentru citire. În exemplul de mai jos, valoarea returnată este inversul hash-ului contractului afișat în colțul din dreapta sus.
Pune
Funcție Pune este responsabil pentru stocarea datelor pe blockchain sub forma unui dicționar. Așa cum se arată, Pune ia trei parametri. GetContext ia contextul contractului inteligent care rulează în prezent, cheia este valoarea cheii care este necesară pentru a salva datele, iar valoarea este valoarea datelor care trebuie salvate. Rețineți că, dacă valoarea cheii este deja în magazin, funcția își va actualiza valoarea corespunzătoare.
Funcție Obține este responsabil pentru citirea datelor din blockchain-ul curent prin valoarea cheie. În exemplul de mai jos, puteți completa valoarea cheii în panoul de opțiuni din dreapta pentru a executa funcția și a citi datele corespunzătoare valorii cheii din blockchain.
Șterge
Funcție Șterge este responsabil pentru ștergerea datelor din blockchain prin valoarea cheie. În exemplul de mai jos, puteți completa valoarea cheii pentru funcție în panoul de opțiuni din dreapta și puteți șterge datele corespunzătoare valorii cheii din blockchain.
2. Exemplu de cod API de stocare
Codul de mai jos oferă un exemplu detaliat al utilizării a cinci API-uri: GetContext, Get, Put, Delete și GetReadOnlyContext. Puteți încerca să rulați datele API în 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)
postfață
Stocarea blockchain este nucleul întregului sistem blockchain. API-ul Ontology Storage este ușor de utilizat și ușor de dezvoltat.
Pe de altă parte, stocarea este punctul central al atacurilor hackerilor, cum ar fi amenințarea de securitate pe care am menționat-o într-unul dintre articolele anterioare— atac de injecție de depozitareDezvoltatorii trebuie să acorde o atenție deosebită securității atunci când scriu cod care se referă la stocare. Ghidul complet îl găsiți pe site-ul nostru GitHub aici.
În articolul următor vom discuta despre cum se utilizează Runtime API.
Articolul a fost tradus de editorii Hashrate&Shares în special pentru OntologyRussia. clic
Ești dezvoltator? Alăturați-vă comunității noastre tehnologice la Discordie. De asemenea, aruncați o privire la Centrul pentru dezvoltatori Ontologie, puteți găsi acolo mai multe instrumente, documentație și multe altele.