ProHoster > blog > administratie > 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:
Laten we eens nader bekijken hoe u deze vijf API's kunt gebruiken.
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.
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.
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.
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.
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.