Hvordan man skriver en smart-kontrakt i Python på Ontology-netværket. Del 2: Storage API

Hvordan man skriver en smart-kontrakt i Python på Ontology-netværket. Del 2: Storage API

Dette er den anden del af en serie af vejledende artikler om oprettelse af smarte kontrakter i Python på Ontology blockchain-netværket. I den tidligere artikel kiggede vi på Blockchain & Block API smarte kontrakter i Ontology.

I dag vil vi diskutere, hvordan man bruger den anden modul— Storage API. Storage API har fem relaterede API'er, der muliggør tilføjelse, sletning og ændringer i vedvarende lagring i smarte kontrakter på blockchain.

Nedenfor er en kort beskrivelse af de fem API'er:

Hvordan man skriver en smart-kontrakt i Python på Ontology-netværket. Del 2: Storage API

Lad os se nærmere på, hvordan vi kan bruge disse fem API'er.

0. Lad os oprette en ny kontrakt SmartX

1. Sådan bruges Storage API

GetContext & GetReadOnlyContext

GetContext og GetReadOnlyContext returnerer konteksten, hvori den aktuelle smarte kontrakt udføres. Returneringsværdien er omvendt hash af den aktuelle smarte kontrakt. Som navnet antyder, GetReadOnlyContext henter konteksten i læseonly-tilstand. I den følgende eksempel er returneringsværdien omvendt hash af den kontrakt, der vises i øverste højre hjørne.

Hvordan man skriver en smart-kontrakt i Python på Ontology-netværket. Del 2: Storage API

Put

Funktion Put er ansvarlig for at gemme data på blockchain i form af et ordbog. Som vist, Put modtager tre parametre. GetContext hæver konteksten for den aktuelt udførende smarte kontrakt, key—er værdien af nøglen, der skal gemme data, og value—er værdien af de data, der skal gemmes. Vær opmærksom på, at hvis nøgleværdien allerede findes i lageret, vil funktionen opdatere dens tilsvarende værdi.

Hvordan man skriver en smart-kontrakt i Python på Ontology-netværket. Del 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Get

Funktion Get er ansvarlig for at læse data i den aktuelle blockchain gennem nøgleværdien. I den følgende eksempel kan du udfylde nøgleværdien i panelet til højre for at udføre funktionen og læse de data, der svarer til nøgleværdien i blockchain.

Hvordan man skriver en smart-kontrakt i Python på Ontology-netværket. Del 2: Storage API

Slet

Funktion Slet er ansvarlig for at slette data i blockchain gennem nøgleværdien. I den følgende eksempel kan du udfylde nøgleværdien for at udføre funktionen i panelet til højre og slette de data, der svarer til nøgleværdien i blockchain.

Hvordan man skriver en smart-kontrakt i Python på Ontology-netværket. Del 2: Storage API

2. Eksempel på kode til Storage API

Den følgende kode giver et detaljeret eksempel på brugen af de fem API'er: GetContext, Get, Put, Delete og GetReadOnlyContext. Du kan prøve at køre disse API'er i 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)

Efterord

Blockchain-lagring er kernen i hele blockchain-systemet. Ontology Storage API er enkelt at anvende og praktisk for udviklere.

På den anden side er lagring et fokus for hackerangreb, for eksempel den sikkerhedstrussel, vi nævnte i en af de tidligere artikler— storage injection attack, udviklere skal være særlig opmærksomme på sikkerheden, når de skriver kode, der er relateret til lagring. Du kan finde en fuld vejledning på vores GitHub her.

I den næste artikel vil vi diskutere, hvordan man bruger Runtime API.

Artiklen er blevet oversat af redaktionen Hashrate&Shares specielt for OntologyRussia. klik

Er du udvikler? Tilmeld dig vores tekniske fællesskab på Discord. Tjek også Udviklercenter Ontology, hvor du kan finde flere værktøjer, dokumentation og meget mere.

Åbne opgaver for udviklere. Luk opgaven — få belønning.

Tilmeld til Ontology talentprogram for studerende

Ontology

Ontology hjemmeside — GitHub — Discord — Telegram Russisk — Twitter — Reddit

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster