ProHoster > Blog > podávání > Jak napsat chytrou smlouvu v Pythonu na síti Ontology. Část 2: Storage API
Jak napsat chytrou smlouvu v Pythonu na síti Ontology. Část 2: Storage API
Toto je druhý díl ze série vzdělávacích článků o vytváření chytrých kontraktů v Pythonu na blockchainové síti Ontology. V předchozím článku jsme se seznámili Blockchain & Block API Ontologická inteligentní smlouva.
Dnes probereme, jak používat druhý modul — Storage API. Storage API má pět souvisejících API, které umožňují přidávání, mazání a změny trvalého úložiště v inteligentních kontraktech na blockchainu.
Níže je uveden stručný popis těchto pěti rozhraní API:
Pojďme se blíže podívat na to, jak těchto pět API používat.
GetContext и GetReadOnlyContext získat kontext, ve kterém se provádí aktuální smart kontrakt. Návratová hodnota je inverzní hodnota aktuální hodnoty hash smart kontraktu. Jak název napovídá, GetReadOnlyContext přebírá kontext pouze pro čtení. V níže uvedeném příkladu je vrácená hodnota inverzní hodnotou hash smlouvy zobrazené v pravém horním rohu.
dát
Funkce dát je zodpovědný za ukládání dat na blockchainu ve formě slovníku. Jak je znázorněno, dát má tři parametry. GetContext bere kontext aktuálně běžícího smart kontraktu, key je hodnota klíče, který je potřeba k uložení dat, a value je hodnota dat, která je potřeba uložit. Všimněte si, že pokud je hodnota klíče již v úložišti, funkce aktualizuje odpovídající hodnotu.
Funkce Získejte je zodpovědný za čtení dat v aktuálním blockchainu prostřednictvím hodnoty klíče. V níže uvedeném příkladu můžete vyplnit hodnotu klíče v panelu možností napravo, abyste provedli funkci a načetli data odpovídající hodnotě klíče v blockchainu.
Vymazat
Funkce Vymazat je zodpovědný za mazání dat v blockchainu prostřednictvím hodnoty klíče. V níže uvedeném příkladu můžete vyplnit hodnotu klíče pro funkci v panelu možností vpravo a smazat data odpovídající hodnotě klíče v blockchainu.
2. Příklad kódu Storage API
Níže uvedený kód poskytuje podrobný příklad použití pěti rozhraní API: GetContext, Get, Put, Delete a GetReadOnlyContext. Můžete zkusit spustit data 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
Blockchainové úložiště je jádrem celého blockchainového systému. Ontology Storage API se snadno používá a je přívětivé pro vývojáře.
Na druhou stranu úložiště je ohniskem hackerských útoků, jako je bezpečnostní hrozba, kterou jsme zmínili v jednom z předchozích článků – útok injekce úložištěVývojáři jsou povinni věnovat zvláštní pozornost bezpečnosti při psaní kódu, který se týká úložiště. Kompletního průvodce najdete na našem GitHub zde.
V dalším článku si řekneme, jak používat Runtime API.
Článek byl přeložen redakcí Hashrate&Shares speciálně pro OntologyRussia. klikněte na tlačítko
Jste vývojář? Připojte se k naší technické komunitě na Svár. Také se podívejte na Vývojářské centrum Ontologie pro další nástroje, dokumentaci a další.