Si të shkruani një kontratë inteligjente në Python në rrjetin Ontology. Pjesa 2: Storage API

Si të shkruani një kontratë inteligjente në Python në rrjetin Ontology. Pjesa 2: Storage API

Kjo është pjesa e dytë e një serie artikujsh edukative mbi krijimin e kontratave inteligjente në Python në rrjetin e blockchain Ontology. Në artikullin e mëparshëm u njohëm me Blockchain & Block API Kontrata inteligjente ontologjike.

Sot do të diskutojmë se si të përdorim modulin e dytë— API ruajtëse. Storage API ka pesë API të lidhura që lejojnë shtimin, fshirjen dhe ndryshimet në ruajtjen e vazhdueshme në kontratat inteligjente në blockchain.

Më poshtë është një përshkrim i shkurtër i këtyre pesë API-ve:

Si të shkruani një kontratë inteligjente në Python në rrjetin Ontology. Pjesa 2: Storage API

Le të hedhim një vështrim më të afërt se si t'i përdorim këto pesë API.

0. Le të krijojmë një kontratë të re SmartX

1. Si të përdorni Storage API

GetContext & GetReadOnlyContext

GetContext и GetReadOnlyContext merrni kontekstin në të cilin ekzekutohet kontrata aktuale e zgjuar. Vlera e kthimit është e kundërta e hash-it aktual të kontratës inteligjente. Siç sugjeron emri, GetReadOnlyContext merr kontekstin vetëm për lexim. Në shembullin e mëposhtëm, vlera e kthimit është e kundërta e hash-it të kontratës që shfaqet në këndin e sipërm djathtas.

Si të shkruani një kontratë inteligjente në Python në rrjetin Ontology. Pjesa 2: Storage API

Funksion është përgjegjës për ruajtjen e të dhënave në blockchain në formën e një fjalori. Siç tregohet, merr tre parametra. GetContext merr kontekstin e kontratës inteligjente që funksionon aktualisht, çelësi është vlera e çelësit që nevojitet për të ruajtur të dhënat dhe vlera është vlera e të dhënave që duhet të ruhen. Vini re se nëse vlera e çelësit është tashmë në dyqan, funksioni do të përditësojë vlerën e tij përkatëse.

Si të shkruani një kontratë inteligjente në Python në rrjetin Ontology. Pjesa 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Marr

Funksion Marr është përgjegjës për leximin e të dhënave në blockchain aktual përmes vlerës së çelësit. Në shembullin e mëposhtëm, mund të plotësoni vlerën e çelësit në panelin e opsioneve në të djathtë për të ekzekutuar funksionin dhe të lexoni të dhënat që korrespondojnë me vlerën e çelësit në blockchain.

Si të shkruani një kontratë inteligjente në Python në rrjetin Ontology. Pjesa 2: Storage API

Fshij

Funksion Fshij është përgjegjës për fshirjen e të dhënave në blockchain përmes vlerës së çelësit. Në shembullin e mëposhtëm, mund të plotësoni vlerën kryesore për funksionin në panelin e opsioneve në të djathtë dhe të fshini të dhënat që korrespondojnë me vlerën kryesore në blockchain.

Si të shkruani një kontratë inteligjente në Python në rrjetin Ontology. Pjesa 2: Storage API

2. Shembull i kodit API të ruajtjes

Kodi më poshtë jep një shembull të detajuar të përdorimit të pesë API-ve: GetContext, Get, Put, Delete dhe GetReadOnlyContext. Mund të provoni të ekzekutoni të dhënat API në 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)

pasthënje

Ruajtja e Blockchain është thelbi i të gjithë sistemit blockchain. Ontology Storage API është i lehtë për t'u përdorur dhe i përshtatshëm për zhvilluesit.

Nga ana tjetër, ruajtja është fokusi i sulmeve të hakerëve, siç është kërcënimi i sigurisë që përmendëm në një nga artikujt e mëparshëm - sulmi i injektimit të ruajtjesZhvilluesve u kërkohet t'i kushtojnë vëmendje të veçantë sigurisë kur shkruajnë kodin që lidhet me ruajtjen. Udhëzuesin e plotë mund ta gjeni tek ne GitHub këtu.

Në artikullin vijues do të diskutojmë se si ta përdorim Runtime API.

Artikulli u përkthye nga redaktorët e Hashrate&Shares posaçërisht për OntologyRussia. qaj

A jeni një zhvillues? Bashkohuni me komunitetin tonë të teknologjisë në Mosmarrëveshje. Gjithashtu, hidhini një sy Qendra e Zhvilluesve Ontologjia, aty mund të gjeni më shumë mjete, dokumentacion dhe shumë më tepër.

Hapni detyrat për zhvilluesit. Përfundoni detyrën dhe merrni një shpërblim.

Aplikoni për programin e talenteve të Ontologjisë për studentët

ontologji

Uebsajti i Ontologjisë - GitHub - Mosmarrëveshje - Telegrami rus - Twitter - Reddit

Burimi: www.habr.com

Shto një koment