ืื™ืš ื›ื•ืชื‘ื™ื ื—ื•ื–ื” ื—ื›ื ื‘ืคื™ื™ืชื•ืŸ ื‘ืจืฉืช ืื•ื ื˜ื•ืœื•ื’ื™ื”. ื—ืœืง 2: ืžืžืฉืง API ืœืื—ืกื•ืŸ

ืื™ืš ื›ื•ืชื‘ื™ื ื—ื•ื–ื” ื—ื›ื ื‘ืคื™ื™ืชื•ืŸ ื‘ืจืฉืช ืื•ื ื˜ื•ืœื•ื’ื™ื”. ื—ืœืง 2: ืžืžืฉืง API ืœืื—ืกื•ืŸ

ื–ื”ื• ื”ื—ืœืง ื”ืฉื ื™ ื‘ืกื“ืจืช ืžืืžืจื™ื ื—ื™ื ื•ื›ื™ื™ื ืขืœ ื™ืฆื™ืจืช ื—ื•ื–ื™ื ื—ื›ืžื™ื ื‘-Python ื‘ืจืฉืช ื”ื‘ืœื•ืงืฆ'ื™ื™ืŸ ืื•ื ื˜ื•ืœื•ื’ื™ื”. ื‘ืžืืžืจ ื”ืงื•ื“ื ื”ื›ืจื ื• Blockchain & Block API ื—ื•ื–ื” ื—ื›ื ืื•ื ื˜ื•ืœื•ื’ื™ื”.

ื”ื™ื•ื ื ื“ื•ืŸ ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ืžื•ื“ื•ืœ ื”ืฉื ื™- ืžืžืฉืง API ืœืื—ืกื•ืŸ. ืœ- Storage API ื™ืฉ ื—ืžื™ืฉื” ืžืžืฉืงื™ API ืงืฉื•ืจื™ื ื”ืžืืคืฉืจื™ื ื”ื•ืกืคื”, ืžื—ื™ืงื” ื•ืฉื™ื ื•ื™ื™ื ืœืื—ืกื•ืŸ ืžืชืžืฉืš ื‘ื—ื•ื–ื™ื ื—ื›ืžื™ื ื‘ื‘ืœื•ืงืฆ'ื™ื™ืŸ.

ืœื”ืœืŸ ืชื™ืื•ืจ ืงืฆืจ ืฉืœ ื—ืžืฉืช ืžืžืฉืงื™ API ืืœื”:

ืื™ืš ื›ื•ืชื‘ื™ื ื—ื•ื–ื” ื—ื›ื ื‘ืคื™ื™ืชื•ืŸ ื‘ืจืฉืช ืื•ื ื˜ื•ืœื•ื’ื™ื”. ื—ืœืง 2: ืžืžืฉืง API ืœืื—ืกื•ืŸ

ื‘ื•ืื• ื ืกืชื›ืœ ืžืงืจื•ื‘ ืขืœ ืื™ืš ืœื”ืฉืชืžืฉ ื‘ื—ืžืฉืช ืžืžืฉืงื™ ื”-API ื”ืœืœื•.

0. ื‘ื•ืื• ื ื™ืฆื•ืจ ื—ื•ื–ื” ื—ื“ืฉ SmartX

1. ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘- Storage API

GetContext ื•-GetReadOnlyContext

GetContext ะธ GetReadOnlyContext ืœืงื‘ืœ ืืช ื”ื”ืงืฉืจ ืฉื‘ื• ืžื‘ื•ืฆืข ื”ื—ื•ื–ื” ื”ื—ื›ื ื”ื ื•ื›ื—ื™. ืขืจืš ื”ื”ื—ื–ืจื” ื”ื•ื ื”ื™ืคื•ืš ืฉืœ ื”-hash ืฉืœ ื”ื—ื•ื–ื” ื”ื—ื›ื ื”ื ื•ื›ื—ื™. ื›ืžื• ืฉื”ืฉื ืžืจืžื–, GetReadOnlyContext ืœื•ืงื— ืืช ื”ื”ืงืฉืจ ืœืงืจื™ืื” ื‘ืœื‘ื“. ื‘ื“ื•ื’ืžื” ืœืžื˜ื”, ืขืจืš ื”ื”ื—ื–ืจื” ื”ื•ื ื”ื”ืคืš ืฉืœ ื”-hash ืฉืœ ื”ื—ื•ื–ื” ื”ืžื•ืฆื’ ื‘ืคื™ื ื” ื”ืฉืžืืœื™ืช ื”ืขืœื™ื•ื ื”.

ืื™ืš ื›ื•ืชื‘ื™ื ื—ื•ื–ื” ื—ื›ื ื‘ืคื™ื™ืชื•ืŸ ื‘ืจืฉืช ืื•ื ื˜ื•ืœื•ื’ื™ื”. ื—ืœืง 2: ืžืžืฉืง API ืœืื—ืกื•ืŸ

ืฉื™ื

ืคื•ื ืงืฆื™ื” ืฉื™ื ืื—ืจืื™ืช ืขืœ ืื—ืกื•ืŸ ื”ื ืชื•ื ื™ื ื‘ื‘ืœื•ืงืฆ'ื™ื™ืŸ ื‘ืฆื•ืจื” ืฉืœ ืžื™ืœื•ืŸ. ื›ืคื™ ืฉืžื•ืฆื’, ืฉื™ื ืœื•ืงื— ืฉืœื•ืฉื” ืคืจืžื˜ืจื™ื. GetContext ืœื•ืงื— ืืช ื”ื”ืงืฉืจ ืฉืœ ื”ื—ื•ื–ื” ื”ื—ื›ื ื”ืคื•ืขืœ ื›ืขืช, ืžืคืชื— ื”ื•ื ื”ืขืจืš ืฉืœ ื”ืžืคืชื— ื”ื“ืจื•ืฉ ืœืฉืžื™ืจืช ื”ื ืชื•ื ื™ื, ื•ืขืจืš ื”ื•ื ื”ืขืจืš ืฉืœ ื”ื ืชื•ื ื™ื ืฉื™ืฉ ืœืฉืžื•ืจ. ืฉื™ืžื• ืœื‘ ืฉืื ืขืจืš ื”ืžืคืชื— ื›ื‘ืจ ื ืžืฆื ื‘ื—ื ื•ืช, ื”ืคื•ื ืงืฆื™ื” ืชืขื“ื›ืŸ ืืช ื”ืขืจืš ื”ืžืชืื™ื ืœื”.

ืื™ืš ื›ื•ืชื‘ื™ื ื—ื•ื–ื” ื—ื›ื ื‘ืคื™ื™ืชื•ืŸ ื‘ืจืฉืช ืื•ื ื˜ื•ืœื•ื’ื™ื”. ื—ืœืง 2: ืžืžืฉืง API ืœืื—ืกื•ืŸhashrate-and-shares.ru/images/obzorontology/python/functionput.png

ืœืงื‘ืœ

ืคื•ื ืงืฆื™ื” ืœืงื‘ืœ ืื—ืจืื™ ืœืงืจื™ืืช ื”ื ืชื•ื ื™ื ื‘ื‘ืœื•ืงืฆ'ื™ื™ืŸ ื”ื ื•ื›ื—ื™ ื“ืจืš ืขืจืš ื”ืžืคืชื—. ื‘ื“ื•ื’ืžื” ืœืžื˜ื”, ื ื™ืชืŸ ืœืžืœื ืืช ืขืจืš ื”ืžืคืชื— ื‘ื—ืœื•ื ื™ืช ื”ืืคืฉืจื•ื™ื•ืช ืžื™ืžื™ืŸ ื›ื“ื™ ืœื‘ืฆืข ืืช ื”ืคื•ื ืงืฆื™ื” ื•ืœืงืจื•ื ืืช ื”ื ืชื•ื ื™ื ื”ืžืชืื™ืžื™ื ืœืขืจืš ื”ืžืคืชื— ื‘ื‘ืœื•ืงืฆ'ื™ื™ืŸ.

ืื™ืš ื›ื•ืชื‘ื™ื ื—ื•ื–ื” ื—ื›ื ื‘ืคื™ื™ืชื•ืŸ ื‘ืจืฉืช ืื•ื ื˜ื•ืœื•ื’ื™ื”. ื—ืœืง 2: ืžืžืฉืง API ืœืื—ืกื•ืŸ

ืžื—ืง

ืคื•ื ืงืฆื™ื” ืžื—ืง ืื—ืจืื™ืช ืœืžื—ื™ืงืช ื ืชื•ื ื™ื ื‘ื‘ืœื•ืงืฆ'ื™ื™ืŸ ื“ืจืš ืขืจืš ื”ืžืคืชื—. ื‘ื“ื•ื’ืžื” ืœืžื˜ื”, ื ื™ืชืŸ ืœืžืœื ืืช ืขืจืš ื”ืžืคืชื— ืฉืœ ื”ืคื•ื ืงืฆื™ื” ื‘ื—ืœื•ื ื™ืช ื”ืืคืฉืจื•ื™ื•ืช ืžื™ืžื™ืŸ ื•ืœืžื—ื•ืง ืืช ื”ื ืชื•ื ื™ื ื”ืชื•ืืžื™ื ืœืขืจืš ื”ืžืคืชื— ื‘ื‘ืœื•ืงืฆ'ื™ื™ืŸ.

ืื™ืš ื›ื•ืชื‘ื™ื ื—ื•ื–ื” ื—ื›ื ื‘ืคื™ื™ืชื•ืŸ ื‘ืจืฉืช ืื•ื ื˜ื•ืœื•ื’ื™ื”. ื—ืœืง 2: ืžืžืฉืง API ืœืื—ืกื•ืŸ

2. ื“ื•ื’ืžื” ืœืงื•ื“ ืื—ืกื•ืŸ API

ื”ืงื•ื“ ืฉืœื”ืœืŸ ื ื•ืชืŸ ื“ื•ื’ืžื” ืžืคื•ืจื˜ืช ืœืฉื™ืžื•ืฉ ื‘ื—ืžื™ืฉื” ืžืžืฉืงื™ API: GetContext, Get, Put, Delete ื•-GetReadOnlyContext. ืืชื” ื™ื›ื•ืœ ืœื ืกื•ืช ืœื”ืคืขื™ืœ ืืช ื ืชื•ื ื™ ื”-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)

ืื—ืจื™ืช ื“ื‘ืจ

ืื—ืกื•ืŸ ื‘ืœื•ืงืฆ'ื™ื™ืŸ ื”ื•ื ื”ืœื™ื‘ื” ืฉืœ ืžืขืจื›ืช ื”ื‘ืœื•ืงืฆ'ื™ื™ืŸ ื›ื•ืœื”. ืžืžืฉืง API ืœืื—ืกื•ืŸ ืื•ื ื˜ื•ืœื•ื’ื™ื” ืงืœ ืœืฉื™ืžื•ืฉ ื•ื™ื“ื™ื“ื•ืชื™ ืœืžืคืชื—ื™ื.

ืžืฆื“ ืฉื ื™, ืื—ืกื•ืŸ ื”ื•ื ื”ืžื•ืงื“ ืฉืœ ื”ืชืงืคื•ืช ื”ืืงืจื™ื, ื›ืžื• ืื™ื•ื ื”ืื‘ื˜ื—ื” ืฉื”ื–ื›ืจื ื• ื‘ืื—ื“ ืžื”ืžืืžืจื™ื ื”ืงื•ื“ืžื™ื - ื”ืชืงืคืช ื”ื–ืจืงืช ืื—ืกื•ืŸืžืคืชื—ื™ื ื ื“ืจืฉื™ื ืœื”ืงื“ื™ืฉ ืชืฉื•ืžืช ืœื‘ ืžื™ื•ื—ื“ืช ืœืื‘ื˜ื—ื” ื‘ืขืช ื›ืชื™ื‘ืช ืงื•ื“ ื”ืžืชื™ื™ื—ืก ืœืื—ืกื•ืŸ. ืืชื” ื™ื›ื•ืœ ืœืžืฆื•ื ืืช ื”ืžื“ืจื™ืš ื”ืžืœื ืืฆืœื ื• GitHub ื›ืืŸ.

ื‘ืžืืžืจ ื”ื‘ื ื ื“ื•ืŸ ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ API ืฉืœ ื–ืžืŸ ืจื™ืฆื”.

ื”ืžืืžืจ ืชื•ืจื’ื ืขืœ ื™ื“ื™ ืขื•ืจื›ื™ Hashrate&Shares ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ OntologyRussia. ืœื—ืฅ ืขืœ

ื”ืื ืืชื” ืžืคืชื—? ื”ืฆื˜ืจืฃ ืœืงื”ื™ืœืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ืฉืœื ื• ื‘- ืžื—ืœื•ืงืช. ื›ืžื• ื›ืŸ, ืชืกืชื›ืœ ืขืœ ืžืจื›ื– ืžืคืชื—ื™ื ืื•ื ื˜ื•ืœื•ื’ื™ื”, ืชื•ื›ืœื• ืœืžืฆื•ื ืฉื ืขื•ื“ ื›ืœื™ื, ืชื™ืขื•ื“ ื•ืขื•ื“ ื”ืจื‘ื” ื™ื•ืชืจ.

ืžืฉื™ืžื•ืช ืคืชื•ื—ื•ืช ืœืžืคืชื—ื™ื. ื”ืฉืœื ืืช ื”ืžืฉื™ืžื” ื•ืงื‘ืœ ืคืจืก.

ืœื”ื’ื™ืฉ ืžื•ืขืžื“ื•ืช ืขื‘ื•ืจ ืชื•ื›ื ื™ืช ื”ื›ื™ืฉืจื•ื ื•ืช ืื•ื ื˜ื•ืœื•ื’ื™ื” ืœืกื˜ื•ื“ื ื˜ื™ื

ืื•ื ื˜ื•ืœื•ื’ื™ื”

ืืชืจ ืื•ื ื˜ื•ืœื•ื’ื™ื” - GitHub - ืžื—ืœื•ืงืช - ื˜ืœื’ืจื ืจื•ืกื™ืช - ื˜ื•ื™ื˜ืจ - reddit

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”