Kif tikteb kuntratt intelliġenti f'Python fuq in-netwerk tal-Ontoloġija. Parti 2: API tal-Ħażna

Kif tikteb kuntratt intelliġenti f'Python fuq in-netwerk tal-Ontoloġija. Parti 2: API tal-Ħażna

Din hija t-tieni parti f'serje ta 'artikoli edukattivi dwar il-ħolqien ta' kuntratti intelliġenti f'Python fuq in-netwerk tal-blockchain tal-Ontology. Fl-artiklu preċedenti sirna midħla Blockchain & Blokk API Kuntratt intelliġenti tal-ontoloġija.

Illum se niddiskutu kif nużaw it-tieni modulu— API tal-ħażna. L-API tal-Ħażna għandha ħames APIs relatati li jippermettu żieda, tħassir u bidliet għal ħażna persistenti f'kuntratti intelliġenti fuq il-blockchain.

Hawn taħt hawn deskrizzjoni qasira ta' dawn il-ħames APIs:

Kif tikteb kuntratt intelliġenti f'Python fuq in-netwerk tal-Ontoloġija. Parti 2: API tal-Ħażna

Ejja nagħtu ħarsa aktar mill-qrib lejn kif tuża dawn il-ħames APIs.

0. Ejja noħolqu kuntratt ġdid SmartX

1. Kif tuża l-API tal-Ħażna

GetContext & GetReadOnlyContext

GetContext и GetReadOnlyContext tikseb il-kuntest li fih jiġi esegwit il-kuntratt intelliġenti attwali. Il-valur tar-ritorn huwa l-invers tal-hash tal-kuntratt intelliġenti attwali. Kif jissuġġerixxi l-isem, GetReadOnlyContext jieħu l-kuntest tal-qari biss. Fl-eżempju hawn taħt, il-valur tar-ritorn huwa l-invers tal-hash tal-kuntratt muri fir-rokna ta 'fuq tal-lemin.

Kif tikteb kuntratt intelliġenti f'Python fuq in-netwerk tal-Ontoloġija. Parti 2: API tal-Ħażna

jitqiegħdu

Funzjoni jitqiegħdu huwa responsabbli għall-ħażna tad-data fuq il-blockchain fil-forma ta 'dizzjunarju. Kif muri, jitqiegħdu jieħu tliet parametri. GetContext jieħu l-kuntest tal-kuntratt intelliġenti li qed jaħdem bħalissa, iċ-ċavetta hija l-valur taċ-ċavetta li hija meħtieġa biex issalva d-dejta, u l-valur huwa l-valur tad-dejta li jeħtieġ li tiġi ssejvjata. Innota li jekk il-valur taċ-ċavetta diġà jinsab fil-maħżen, il-funzjoni se taġġorna l-valur korrispondenti tagħha.

Kif tikteb kuntratt intelliġenti f'Python fuq in-netwerk tal-Ontoloġija. Parti 2: API tal-Ħażnahashrate-and-shares.ru/images/obzorontology/python/functionput.png

Get

Funzjoni Get huwa responsabbli għall-qari tad-dejta fil-blockchain attwali permezz tal-valur ewlieni. Fl-eżempju hawn taħt, tista 'timla l-valur ewlieni fil-pannell tal-għażliet fuq il-lemin biex tesegwixxi l-funzjoni u taqra d-dejta li tikkorrispondi għall-valur ewlieni fil-blockchain.

Kif tikteb kuntratt intelliġenti f'Python fuq in-netwerk tal-Ontoloġija. Parti 2: API tal-Ħażna

Ħassar

Funzjoni Ħassar huwa responsabbli għat-tħassir tad-dejta fil-blockchain permezz tal-valur ewlieni. Fl-eżempju hawn taħt, tista 'timla l-valur ewlieni għall-funzjoni fil-pannell tal-għażliet fuq il-lemin u tħassar id-dejta li tikkorrispondi għall-valur ewlieni fil-blockchain.

Kif tikteb kuntratt intelliġenti f'Python fuq in-netwerk tal-Ontoloġija. Parti 2: API tal-Ħażna

2. Eżempju tal-kodiċi API tal-ħażna

Il-kodiċi hawn taħt jagħti eżempju dettaljat tal-użu ta 'ħames APIs: GetContext, Get, Put, Delete u GetReadOnlyContext. Tista' tipprova tħaddem id-dejta tal-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)

Wara kelma

Il-ħażna tal-blockchain hija l-qalba tas-sistema sħiħa tal-blockchain. L-API tal-Ħażna tal-Ontoloġija hija faċli biex tużah u faċli għall-iżviluppatur.

Min-naħa l-oħra, il-ħażna hija l-fokus tal-attakki tal-hackers, bħat-theddida għas-sigurtà li semmejna f'wieħed mill-artikoli preċedenti— attakk injezzjoni ħażnaL-iżviluppaturi huma meħtieġa jagħtu attenzjoni speċjali lis-sigurtà meta jiktbu kodiċi li għandu x'jaqsam mal-ħażna. Tista' ssib il-gwida sħiħa fuq tagħna GitHub hawnhekk.

Fl-artiklu li jmiss se niddiskutu kif tuża Runtime API.

L-artiklu ġie tradott mill-edituri ta 'Hashrate&Shares speċjalment għal OntologyRussia. biki

Inti żviluppatur? Ingħaqad fil-komunità tat-teknoloġija tagħna fuq Diskord. Ukoll, agħti ħarsa lejn Ċentru għall-Iżviluppaturi Ontoloġija, tista 'ssib aktar għodod, dokumentazzjoni u ħafna aktar hemmhekk.

Ħidmiet miftuħa għall-iżviluppaturi. Imla l-kompitu u ikseb premju.

Applika għall-programm ta’ talent tal-Ontoloġija għall-istudenti

Ontoloġija

Il-websajt tal-Ontoloġija - GitHub - Diskord - Telegramma Russu - twitter - Reddit

Sors: www.habr.com

Żid kumment