Hoe een slim contract in Python op het Ontology-netwerk te schrijven. Deel 2: Opslag-API

Hoe een slim contract in Python op het Ontology-netwerk te schrijven. Deel 2: Opslag-API

Dit is het tweede deel in een reeks educatieve artikelen over het creëren van slimme contracten in Python op het Ontology blockchain-netwerk. In het vorige artikel maakten we kennis met Blockchain en blok-API Ontologie slim contract.

Vandaag zullen we bespreken hoe we de tweede module kunnen gebruiken: Opslag-API. De Storage API heeft vijf gerelateerde API's die toevoeging, verwijdering en wijziging van permanente opslag in slimme contracten op de blockchain mogelijk maken.

Hieronder vindt u een korte beschrijving van deze vijf API's:

Hoe een slim contract in Python op het Ontology-netwerk te schrijven. Deel 2: Opslag-API

Laten we eens nader bekijken hoe u deze vijf API's kunt gebruiken.

0. Laten we een nieuw contract opstellen SmartX

1. Hoe u de Opslag-API gebruikt

GetContext en GetReadOnlyContext

GetContext и GetReadOnlyContext krijg de context waarin het huidige slimme contract wordt uitgevoerd. De retourwaarde is het omgekeerde van de huidige smart contract-hash. Zoals de naam al doet vermoeden, GetReadOnlyContext neemt de alleen-lezen context. In het onderstaande voorbeeld is de geretourneerde waarde het omgekeerde van de contracthash die in de rechterbovenhoek wordt weergegeven.

Hoe een slim contract in Python op het Ontology-netwerk te schrijven. Deel 2: Opslag-API

Zetten

Functie Zetten is verantwoordelijk voor het opslaan van gegevens op de blockchain in de vorm van een woordenboek. Zoals getoond, Zetten neemt drie parameters. GetContext neemt de context van het momenteel lopende slimme contract, sleutel is de waarde van de sleutel die nodig is om de gegevens op te slaan, en waarde is de waarde van de gegevens die moeten worden opgeslagen. Houd er rekening mee dat als de waarde van de sleutel al in de winkel aanwezig is, de functie de overeenkomstige waarde zal bijwerken.

Hoe een slim contract in Python op het Ontology-netwerk te schrijven. Deel 2: Opslag-APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Krijgen

Functie Krijgen is verantwoordelijk voor het uitlezen van de gegevens in de huidige blockchain via de sleutelwaarde. In het onderstaande voorbeeld kunt u de sleutelwaarde invullen in het optiepaneel aan de rechterkant om de functie uit te voeren en de gegevens te lezen die overeenkomen met de sleutelwaarde in de blockchain.

Hoe een slim contract in Python op het Ontology-netwerk te schrijven. Deel 2: Opslag-API

Verwijder

Functie Verwijder is verantwoordelijk voor het verwijderen van gegevens in de blockchain via de sleutelwaarde. In het onderstaande voorbeeld kunt u de sleutelwaarde voor de functie invullen in het optiepaneel aan de rechterkant en de gegevens verwijderen die overeenkomen met de sleutelwaarde in de blockchain.

Hoe een slim contract in Python op het Ontology-netwerk te schrijven. Deel 2: Opslag-API

2. Voorbeeld van opslag-API-code

De onderstaande code geeft een gedetailleerd voorbeeld van het gebruik van vijf API's: GetContext, Get, Put, Delete en GetReadOnlyContext. U kunt proberen de API-gegevens uit te voeren 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)

nawoord

Blockchain-opslag is de kern van het hele blockchain-systeem. De Ontology Storage API is eenvoudig te gebruiken en ontwikkelaarsvriendelijk.

Aan de andere kant is opslag de focus van hackeraanvallen, zoals de veiligheidsdreiging die we in een van de vorige artikelen noemden: aanval met opslaginjectieOntwikkelaars moeten speciale aandacht besteden aan beveiliging bij het schrijven van code die betrekking heeft op opslag. De volledige gids vindt u op onze GitHub here.

In het volgende artikel bespreken we hoe u het kunt gebruiken Runtime-API.

Het artikel is speciaal voor OntologyRussia vertaald door de redactie van Hashrate&Shares. schreeuw

Ben je een ontwikkelaar? Word lid van onze technische gemeenschap op Discord. Kijk ook eens naar Ontwikkelaarscentrum Ontologie, je kunt daar meer tools, documentatie en nog veel meer vinden.

Open taken voor ontwikkelaars. Voltooi de taak en ontvang een beloning.

Van toepassing zijn voor het Ontology talentenprogramma voor studenten

Ontologie

Ontologie website - GitHub - Discord - Telegram Russisch - Twitter - Reddit

Bron: www.habr.com

Voeg een reactie