
Toto je druhá část ze série vzdělávacích článků o vytváření smart kontraktů v Pythonu na blockchainové síti Ontology. V předchozím článku jsme se seznámili s smart kontraktem Ontology.
Dnes budeme diskutovat o tom, 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 v trvalém úložišti ve smart kontraktech na blockchainu.
Níže je stručný popis těchto pěti API:

Pojďme se podívat podrobněji, jak využít těchto pět API.
0. Vytvoříme nový kontrakt
1. Jak používat Storage API
GetContext & GetReadOnlyContext
GetContext a GetReadOnlyContext vrací kontext, ve kterém se provádí aktuální smart kontrakt. Návratová hodnota je reverzní k aktuálnímu hash smart kontraktu. Jak název napovídá, GetReadOnlyContext bere kontext režimu pouze pro čtení. V následujícím příkladu je návratová hodnota reverzní k hash kontraktu zobrazenému v pravém horním rohu.

Put
Funkce Put je zodpovědné za ukládání dat do blockchainu ve formě slovníku. Jak je vidět, Put přijímá tři parametry. GetContext berou kontext aktuálně vykonávaného smart kontraktu, key— to je hodnota klíče, kterou potřebujete k uložení dat, a value— to je hodnota dat, kterou je třeba uložit. Mějte na paměti, že pokud je hodnota klíče již v úložišti, funkce aktualizuje odpovídající hodnotu.

Get
Funkce Get je zodpovědné za čtení dat v aktuálním blockchainu prostřednictvím hodnoty klíče. V následujícím příkladu můžete vyplnit hodnotu klíče v pravém panelu parametrů, abyste provedli funkci a přečetli data odpovídající hodnotě klíče v blockchainu.

Delete
Funkce Delete je zodpovědné za mazání dat v blockchainu prostřednictvím hodnoty klíče. V následujícím příkladu můžete vyplnit hodnotu klíče ke spuštění funkce v pravém panelu parametrů a odstranit 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 API: GetContext, Get, Put, Delete a GetReadOnlyContext. Můžete vyzkoušet spuštění těchto API v .
z ontology.interop.System.Storage import GetContext, Get, Put, Delete, GetReadOnlyContext
z 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)Poznámka na závěr
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, storage is a target for hacker attacks, such as the security threat we mentioned in one of the previous articles— , developers must pay particular attention to security when writing code that is related to storage. You can find a complete guide in our zde.
In the next article, we will discuss how to use Runtime API.
Článek byl přeložen redakcí Hashrate&Shares speciálně pro OntologyRussia.
Jste vývojář? Připojte se k naší technické komunitě na . Navíc se podívejte na Ontology, kde můžete najít více nástrojů, dokumentaci a další informace.
Uzavři úkol — získej odměnu.
do programu talentů Ontology pro studenty
Ontology
— — — — —
Zdroj: habr.com
