Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. Del 2: Storage API

Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. Del 2: Storage API

To je drugi del serije izobraževalnih člankov o ustvarjanju pametnih pogodb v Pythonu na blockchain omrežju Ontology. V prejšnjem članku smo se spoznali z Blockchain & Block API pametan pogodba Ontology.

Danes bomo razpravljali o tem, kako uporabiti drugi modul— Storage API. Storage API ima pet povezanih API-jev, ki omogočajo dodajanje, brisanje in spremembe v trajnem shranjevanju v pametnih pogodbah na blockchainu.

Spodaj je kratek opis teh petih API-jev:

Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. Del 2: Storage API

Poglejmo podrobneje, kako uporabljati teh pet API-jev.

0. Ustvarimo novo pogodbo SmartX

1. Kako uporabljati Storage API

GetContext & GetReadOnlyContext

GetContext in GetReadOnlyContext pridobiva kontekst, v katerem se izvaja trenutna pametna pogodba. Vračena vrednost je povratna trenutnemu Hashu pametne pogodbe. Kot pove ime, GetReadOnlyContext vzame kontekst samo za branje. V spodnjem primeru je vračena vrednost povratna vrednost Hasha pogodbe, prikazanega v zgornjem desnem kotu.

Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. Del 2: Storage API

Put

Funkcija Put je odgovorna za shranjevanje podatkov na blockchainu v obliki slovarja. Kot je prikazano, Put sprejema tri parametre. GetContext vzame kontekst trenutno izvajane pametne pogodbe, key— to je vrednost ključa, ki jo je treba shraniti, in value— to je vrednost podatkov, ki jih je treba shraniti. Upoštevajte, če je vrednost ključa že v shrambi, bo funkcija posodobila ustrezno vrednost.

Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. Del 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Get

Funkcija Get je odgovorna za branje podatkov v trenutnem blockchainu preko vrednosti ključa. V spodnjem primeru lahko v panelu parametrov desno vstavite vrednost ključa, da izvedete funkcijo in preberete podatke, povezane z vrednostjo ključa na blockchainu.

Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. Del 2: Storage API

Delete

Funkcija Delete je odgovorna za brisanje podatkov na blockchainu preko vrednosti ključa. V spodnjem primeru lahko v panelu parametrov desno vstavite vrednost ključa, da izvedete funkcijo in izbrišete podatke, ki ustrezajo vrednosti ključa na blockchainu.

Kako napisati pametno pogodbo v Pythonu v omrežju Ontology. Del 2: Storage API

2. Primer kode Storage API

Spodnja koda daje podroben primer uporabe petih API-jev: GetContext, Get, Put, Delete in GetReadOnlyContext. Preizkusite lahko zagon teh API-jev v 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)

Zadnja misel

Blockchain storage is the core of the entire blockchain system. The Ontology Storage API is easy to use and developer-friendly.

On the other hand, the storage is the focus of hacker attacks, such as the security threat we mentioned in one of the previous articles— storage injection attack, developers must pay special attention to security when writing code that is related to storage. You can find the complete guide on our GitHub tu.

In the next article, we will discuss how to use Runtime API.

Članek je bil preveden uredništvom Hashrate&Shares posebej za OntologyRussia. klik

Da li ste programer? Pridružite se našoj tehničkoj zajednici na Discord. Takođe, posetite Centar za programere Ontology, gde možete pronaći više alata, dokumentaciju i još mnogo toga.

Otvoreni zadaci za programere. Zatvorite zadatak — dobijte nagradu.

Prijavite se za program talenata Ontology za studente

Ontology

web stranica Ontology — GitHub — Discord — Telegram Russian — Twitter — Reddit

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster