ProHoster > Blog > Administrácia > Ako napísať inteligentnú zmluvu v Pythone v sieti Ontology. Časť 2: Storage API
Ako napísať inteligentnú zmluvu v Pythone v sieti Ontology. Časť 2: Storage API
Toto je druhá časť zo série vzdelávacích článkov o vytváraní inteligentných zmlúv v Pythone na blockchain sieti Ontology. V predchádzajúcom článku sme sa zoznámili Blockchain & Block API Ontologická inteligentná zmluva.
Dnes budeme diskutovať o tom, ako používať druhý modul — Storage API. Storage API má päť súvisiacich rozhraní API, ktoré umožňujú pridávanie, mazanie a zmeny v trvalom ukladaní v inteligentných zmluvách na blockchaine.
Nižšie je uvedený stručný popis týchto piatich rozhraní API:
Pozrime sa bližšie na to, ako používať týchto päť API.
GetContext и GetReadOnlyContext získať kontext, v ktorom sa vykonáva aktuálna inteligentná zmluva. Návratová hodnota je inverzná hodnota aktuálneho hashu inteligentnej zmluvy. Ako už názov napovedá, GetReadOnlyContext preberá kontext iba na čítanie. V nižšie uvedenom príklade je vrátená hodnota inverznou hodnotou hašovania zmluvy zobrazenej v pravom hornom rohu.
Dať
Funkcia Dať je zodpovedný za ukladanie údajov na blockchaine vo forme slovníka. Ako je znázornené, Dať má tri parametre. GetContext berie kontext aktuálne spustenej inteligentnej zmluvy, kľúč je hodnota kľúča, ktorý je potrebný na uloženie údajov, a hodnota je hodnota údajov, ktoré je potrebné uložiť. Upozorňujeme, že ak je hodnota kľúča už v obchode, funkcia aktualizuje zodpovedajúcu hodnotu.
Funkcia dostať je zodpovedný za čítanie údajov v aktuálnom blockchaine prostredníctvom hodnoty kľúča. V nižšie uvedenom príklade môžete vyplniť hodnotu kľúča v paneli možností napravo, aby ste vykonali funkciu a prečítali údaje zodpovedajúce hodnote kľúča v blockchaine.
vymazať
Funkcia vymazať je zodpovedný za vymazanie údajov v blockchaine prostredníctvom hodnoty kľúča. V nižšie uvedenom príklade môžete vyplniť hodnotu kľúča pre funkciu na paneli možností vpravo a vymazať údaje zodpovedajúce hodnote kľúča v blockchaine.
2. Príklad kódu Storage API
Nižšie uvedený kód poskytuje podrobný príklad použitia piatich rozhraní API: GetContext, Get, Put, Delete a GetReadOnlyContext. Môžete skúsiť spustiť údaje API 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)
Doslov
Blockchain úložisko je jadrom celého blockchain systému. Ontology Storage API sa ľahko používa a je prívetivé pre vývojárov.
Na druhej strane, úložisko je stredobodom hackerských útokov, ako je bezpečnostná hrozba, ktorú sme spomenuli v jednom z predchádzajúcich článkov – útok injekcie úložiskaVývojári sú povinní venovať osobitnú pozornosť bezpečnosti pri písaní kódu, ktorý sa týka úložiska. Kompletný návod nájdete na našom GitHub tu.
V nasledujúcom článku si povieme, ako ho používať Runtime API.
Článok bol preložený redaktormi Hashrate&Shares špeciálne pre OntologyRussia. cvaknutie
Ste vývojár? Pripojte sa k našej technickej komunite na zvar. Tiež sa pozrite na Vývojárske centrum Ontológie, nájdete tam ďalšie nástroje, dokumentáciu a oveľa viac.