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:

Cum se scrie un contract inteligent în Python în rețeaua Ontology. Partea 2: API-ul de stocare

Să aruncăm o privire mai atentă asupra modului de utilizare a acestor cinci API-uri.

0. Să creăm un nou contract SmartX

1. Cum se utilizează API-ul de stocare

GetContext și GetReadOnlyContext

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.

Cum se scrie un contract inteligent în Python în rețeaua Ontology. Partea 2: API-ul de stocare

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.

Cum se scrie un contract inteligent în Python în rețeaua Ontology. Partea 2: API-ul de stocarehashrate-and-shares.ru/images/obzorontology/python/functionput.png

Obține

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.

Cum se scrie un contract inteligent în Python în rețeaua Ontology. Partea 2: API-ul de stocare

Ș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.

Cum se scrie un contract inteligent în Python în rețeaua Ontology. Partea 2: API-ul de stocare

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.

Deschideți sarcini pentru dezvoltatori. Finalizați sarcina și obțineți o recompensă.

aplica pentru programul de talent Ontologie pentru studenți

ontologie

Site-ul de ontologie - GitHub - Discordie - Telegramă rusă - Twitter - Reddit

Sursa: www.habr.com

Adauga un comentariu