Jak napsat smart kontrakt v Pythonu v síti Ontology. Část 2: Storage API

Jak napsat smart kontrakt v Pythonu v síti Ontology. Část 2: Storage API

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 Blockchain & Block API 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:

Jak napsat smart kontrakt v Pythonu v síti Ontology. Část 2: Storage API

Pojďme se podívat podrobněji, jak využít těchto pět API.

0. Vytvoříme nový kontrakt SmartX

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.

Jak napsat smart kontrakt v Pythonu v síti Ontology. Část 2: Storage API

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.

Jak napsat smart kontrakt v Pythonu v síti Ontology. Část 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

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.

Jak napsat smart kontrakt v Pythonu v síti Ontology. Část 2: Storage API

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.

Jak napsat smart kontrakt v Pythonu v síti Ontology. Část 2: Storage API

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

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— útok na injekci do úložiště, developers must pay particular attention to security when writing code that is related to storage. You can find a complete guide in our GitHub 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. klikněte

Jste vývojář? Připojte se k naší technické komunitě na Discord. Navíc se podívejte na Centrum pro vývojáře Ontology, kde můžete najít více nástrojů, dokumentaci a další informace.

Otevřené úkoly pro vývojáře. Uzavři úkol — získej odměnu.

Odeslat žádost do programu talentů Ontology pro studenty

Ontology

webová stránka Ontology — GitHub — Discord — Telegram Russian — Twitter — Reddit

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster