Paano magsulat ng isang matalinong kontrata sa Python sa network ng Ontology. Bahagi 2: Storage API

Paano magsulat ng isang matalinong kontrata sa Python sa network ng Ontology. Bahagi 2: Storage API

Ito ang pangalawang bahagi ng isang serye ng mga tutorial sa paglikha ng mga matalinong kontrata sa Python sa Ontology blockchain network. Sa nakaraang artikulo, nagkita kami Blockchain at Block API matalinong kontrata Ontology.

Ngayon ay tatalakayin natin kung paano gamitin ang pangalawang modyulβ€” Storage API. Ang Storage API ay may limang nauugnay na API na nagbibigay-daan sa pagdaragdag, pagtanggal, at pagbabago ng patuloy na storage sa mga smart contract sa blockchain.

Nasa ibaba ang isang maikling paglalarawan ng limang API na ito:

Paano magsulat ng isang matalinong kontrata sa Python sa network ng Ontology. Bahagi 2: Storage API

Tingnan natin kung paano gamitin ang limang API na ito.

0. Gumawa tayo ng bagong kontrata SmartX

1. Paano gamitin ang Storage API

GetContext at GetReadOnlyContext

GetContext ΠΈ GetReadOnlyContext makuha ang konteksto kung saan isinasagawa ang kasalukuyang smart contract. Ang return value ay ang kapalit ng kasalukuyang hash ng smart contract. Gaya ng ipinahihiwatig ng pangalan, GetReadOnlyContext tumatagal ng read-only mode na konteksto. Sa halimbawa sa ibaba, ang return value ay ang reverse ng contract hash na ipinapakita sa kanang sulok sa itaas.

Paano magsulat ng isang matalinong kontrata sa Python sa network ng Ontology. Bahagi 2: Storage API

ilagay

Tungkulin ilagay ay responsable para sa pag-iimbak ng data sa blockchain sa anyo ng isang diksyunaryo. Gaya ng ipinapakita, ilagay tumatagal ng tatlong parameter. GetContext tumatagal ang konteksto ng kasalukuyang nagpapatupad ng matalinong kontrata, ang susi ay ang pangunahing halaga na kailangan para i-save ang data, at ang halaga ay ang halaga ng data na kailangang i-save. Tandaan na kung nasa store na ang value ng key, ia-update ng function ang katumbas na value nito.

Paano magsulat ng isang matalinong kontrata sa Python sa network ng Ontology. Bahagi 2: Storage APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Magsimula

Tungkulin Magsimula ay responsable para sa pagbabasa ng data sa kasalukuyang blockchain sa pamamagitan ng pangunahing halaga. Sa halimbawa sa ibaba, maaari mong punan ang key value sa panel ng mga opsyon sa kanan upang isagawa ang function at basahin ang data na tumutugma sa key value sa blockchain.

Paano magsulat ng isang matalinong kontrata sa Python sa network ng Ontology. Bahagi 2: Storage API

alisin

Tungkulin alisin ay responsable para sa pagtanggal ng data sa blockchain sa pamamagitan ng pangunahing halaga. Sa halimbawa sa ibaba, maaari mong punan ang key value para sa function sa panel ng mga opsyon sa kanan at tanggalin ang data na tumutugma sa key value sa blockchain.

Paano magsulat ng isang matalinong kontrata sa Python sa network ng Ontology. Bahagi 2: Storage API

2. Halimbawa ng storage API code

Ang code sa ibaba ay nagbibigay ng detalyadong halimbawa ng paggamit ng limang API: GetContext, Get, Put, Delete, at GetReadOnlyContext. Maaari mong subukang patakbuhin ang data ng API 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)

afterword

Ang imbakan ng Blockchain ay ang core ng buong sistema ng blockchain. Ang Ontology Storage API ay madaling gamitin at madaling gamitin ng developer.

Sa kabilang banda, ang imbakan ay ang pokus ng mga pag-atake ng hacker, tulad ng banta sa seguridad na binanggit namin sa isa sa mga nakaraang artikuloβ€” pag-atake ng iniksyon sa imbakan, ang mga developer ay kinakailangang magbayad ng espesyal na pansin sa seguridad kapag nagsusulat ng code na nauugnay sa repositoryo. Mahahanap mo ang kumpletong gabay sa aming GitHub dito.

Sa susunod na artikulo, tatalakayin natin kung paano gamitin Runtime API.

Ang artikulo ay isinalin ng mga editor ng Hashrate&Shares lalo na para sa OntologyRussia. mag-click

Ikaw ba ay isang developer? Sumali sa aming tech community sa Hindi magkasundo. Gayundin, tingnan mo Developer Center Ontology para sa higit pang mga tool, dokumentasyon, at higit pa.

Buksan ang mga gawain para sa mga developer. Isara ang gawain - makakuha ng gantimpala.

Mag-apply para sa Ontology talent program para sa mga mag-aaral

Ontolohiya

Website ng ontology - GitHub - Hindi magkasundo - Telegram na Ruso - kaba - reddit

Pinagmulan: www.habr.com

Magdagdag ng komento