
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 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:

Laten we in detail bekijken hoe we deze vijf API's kunnen gebruiken.
0. Laten we een nieuw contract aanmaken
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.

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.

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.

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.

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 .
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— , 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 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.
Bent u een ontwikkelaar? Sluit u aan bij onze technische gemeenschap op . Bekijk ook ons Ontology, waar u meer tools, documentatie en meer kunt vinden.
Sluit de taak af — ontvang een beloning.
voor het Ontology talentprogramma voor studenten
Ontology
— — — — —
Bron: habr.com
