
Aceasta este a doua parte a unei serii de articole de instruire despre crearea de contracte inteligente în Python în rețeaua blockchain Ontology. În articolul anterior, ne-am familiarizat cu contractul inteligent Ontology.
Astăzi vom discuta despre cum să utilizăm al doilea modul— Storage API. API-ul de stocare are cinci API-uri asociate care permit adăugarea, ștergerea și modificarea în depozitul permanent în contractele inteligente pe blockchain.
Mai jos este o scurtă descriere a acestor cinci API-uri:

Să analizăm mai în detaliu cum să folosim aceste cinci API-uri.
0. Să creăm un nou contract
1. Cum să utilizăm API-ul de Stocare
GetContext & GetReadOnlyContext
GetContext și GetReadOnlyContext obține contextul în care se execută contractul inteligent curent. Valoarea returnată este inversul hash-ului curent al contractului inteligent. Așa cum sugerează numele, GetReadOnlyContext preia contextul în modul doar pentru citire. În exemplul de mai jos, valoarea returnată este inversul hash-ului contractului, afișat în colțul din dreapta sus.

Put
Funcția Put este responsabil pentru stocarea datelor pe blockchain sub formă de dicționar. Așa cum este arătat, Put primește trei parametri. GetContext preia contextul contractului inteligent curent în execuție, key— este valoarea cheii care trebuie să fie păstrată, iar value— este valoarea datelor care trebuie păstrate. Rețineți, dacă valoarea cheii este deja în depozit, funcția îi va actualiza valoarea corespunzătoare.

Get
Funcția Get este responsabil pentru citirea datelor din blockchain-ul curent prin valoarea cheii. În exemplul de mai jos, puteți completa valoarea cheii în panoul de parametri din dreapta pentru a executa funcția și a citi datele corespunzătoare valorii cheii din blockchain.

Delete
Funcția Delete este responsabil pentru ștergerea datelor din blockchain prin valoarea cheii. În exemplul de mai jos, puteți completa valoarea cheii pentru a executa funcția în panoul de parametri din dreapta și a șterge datele corespunzătoare valorii cheii din blockchain.

2. Exemplu de cod pentru API-ul de Stocare
Codul de mai jos oferă un exemplu detaliat de utilizare a celor cinci API-uri: GetContext, Get, Put, Delete și GetReadOnlyContext. Puteți încerca să rulați aceste API-uri în .
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)Cuvânt înainte
Stocarea blockchain este inima întregului sistem blockchain. API-ul Ontology Storage este ușor de utilizat și convenabil pentru dezvoltatori.
Pe de altă parte, stocarea este ținta atacurilor hackerilor, de exemplu, amenințarea la securitate pe care am menționat-o într-unul dintre articolele anterioare— , dezvoltatorii trebuie să acorde o atenție deosebită securității atunci când scriu cod care este legat de stocare. Puteți găsi un ghid complet pe site-ul nostru aici.
În articolul următor, vom discuta despre cum să folosiți Runtime API.
Articolul a fost tradus de redacția Hashrate&Shares special pentru OntologyRussia.
Ești dezvoltator? Alătură-te comunității noastre tehnice pe . De asemenea, aruncă o privire pe Ontology, unde poți găsi mai multe instrumente, documentație și multe altele.
Finalizează sarcina - primește o recompensă.
pentru programul de talente Ontology pentru studenți
Ontology
— — — — —
Sursa: habr.com
