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

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

Dit is het tweede deel van een serie artikelen over het creëren van smart contracts in Python op het blockchain-netwerk Ontology. In het vorige artikel hebben we kennisgemaakt met Blockchain & Block API smart contract van Ontology.

Vandaag bespreken we hoe we de tweede module kunnen gebruiken— Storage API. De Storage API heeft vijf gerelateerde API's waarmee toevoegingen, verwijderingen en wijzigingen in permanente opslag binnen smart contracts op de blockchain mogelijk worden.

Hieronder volgt een kort overzicht van deze vijf API's:

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

Laten we in detail bekijken hoe we deze vijf API's kunnen gebruiken.

0. Laten we een nieuw contract aanmaken SmartX

1. Hoe de Storage API te gebruiken

GetContext & GetReadOnlyContext

GetContext en GetReadOnlyContext houden de context vast waarin het huidige smart contract wordt uitgevoerd. De returnwaarde is de inverse van de huidige hash van het smart contract. Zoals de naam al aangeeft, GetReadOnlyContext neemt de context van alleen-lezen modus. In het onderstaande voorbeeld is de returnwaarde de inverse van de contracthash die rechtsboven wordt weergegeven.

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

Put

Functie Put is verantwoordelijk voor het opslaan van gegevens op de blockchain in de vorm van een dictionary. Zoals getoond, Put neemt drie parameters aan. GetContext houdt de context van het momenteel uitvoerende smart contract, key—dit is de sleutelwaarde die nodig is om gegevens op te slaan, en value—dit is de waarde van de gegevens die moeten worden opgeslagen. Let op, als de sleutelwaarde al in de opslag staat, dan zal de functie de bijbehorende waarde bijwerken.

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

Get

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

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

Delete

Functie Delete is verantwoordelijk voor het verwijderen van gegevens op de blockchain via de sleutelwaarde. In het onderstaande voorbeeld kunt u de sleutelwaarde invullen om de functie uit te voeren in het parameterspaneel aan de rechterkant en de gegevens te verwijderen die overeenkomen met de sleutelwaarde op de blockchain.

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

2. Voorbeeldcode voor Storage API

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

Naschrift

Blockchainopslag is de kern van het hele blockchain-systeem. De Ontology Storage API is eenvoudig te gebruiken en gebruiksvriendelijk voor ontwikkelaars.

Aan de andere kant zijn opslaglocaties het doelwit van aanvallen door hackers, zoals de beveiligingsdreiging die we in een van de vorige artikelen hebben genoemd— opslaginjectieaanval, ontwikkelaars moeten bijzondere aandacht besteden aan beveiliging bij het schrijven van code die verband houdt met opslag. U kunt de volledige handleiding vinden op onze GitHub hier.

In het volgende artikel bespreken we hoe te gebruiken Runtime API.

Dit artikel is vertaald door de redactie van Hashrate&Shares speciaal voor OntologyRussia. klik

Bent u een ontwikkelaar? Sluit u aan bij onze technische gemeenschap op Discord. Bekijk ook ons Ontwikkelaarscentrum Ontology, waar u meer tools, documentatie en meer kunt vinden.

Openstaande taken voor ontwikkelaars. Sluit de taak af — ontvang een beloning.

Aanmelden voor het Ontology talentprogramma voor studenten

Ontology

Ontology website — GitHub — Discord — Telegram Russisch — Twitter — Reddit

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster