Cum să scrii un smart contract în Python pe rețeaua Ontology. Partea 2: Storage API

Cum să scrii un smart contract în Python pe rețeaua Ontology. Partea 2: Storage API

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 Blockchain & Block API 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:

Cum să scrii un smart contract în Python pe rețeaua Ontology. Partea 2: Storage API

Să analizăm mai în detaliu cum să folosim aceste cinci API-uri.

0. Să creăm un nou contract SmartX

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.

Cum să scrii un smart contract în Python pe rețeaua Ontology. Partea 2: Storage API

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.

Cum să scrii un smart contract în Python pe rețeaua Ontology. Partea 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

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.

Cum să scrii un smart contract în Python pe rețeaua Ontology. Partea 2: Storage API

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.

Cum să scrii un smart contract în Python pe rețeaua Ontology. Partea 2: Storage API

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 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)

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— atacul de injecție în stocare, 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 GitHub 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. clic

Ești dezvoltator? Alătură-te comunității noastre tehnice pe Discord. De asemenea, aruncă o privire pe Centrul de Dezvoltatori Ontology, unde poți găsi mai multe instrumente, documentație și multe altele.

Sarcini deschise pentru dezvoltatori. Finalizează sarcina - primește o recompensă.

Aplică pentru programul de talente Ontology pentru studenți

Ontology

site-ul web Ontology — GitHub — Discord — Telegram Russian — Twitter — Reddit

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster