์˜จํ†จ๋กœ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ Python์œผ๋กœ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. 2๋ถ€: ์Šคํ† ๋ฆฌ์ง€ API

์˜จํ†จ๋กœ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ Python์œผ๋กœ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. 2๋ถ€: ์Šคํ† ๋ฆฌ์ง€ API

์ด๊ฒƒ์€ ์˜จํ†จ๋กœ์ง€ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์—์„œ Python์œผ๋กœ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ต์œก ๊ธฐ์‚ฌ ์‹œ๋ฆฌ์ฆˆ์˜ ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์ด์ „ ๊ธฐ์‚ฌ์—์„œ ์šฐ๋ฆฌ๋Š” ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋ก์ฒด์ธ ๋ฐ ๋ธ”๋ก API ์˜จํ†จ๋กœ์ง€ ์Šค๋งˆํŠธ ๊ณ„์•ฝ.

์˜ค๋Š˜์€ ๋‘ ๋ฒˆ์งธ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šคํ† ๋ฆฌ์ง€ API. Storage API์—๋Š” ๋ธ”๋ก์ฒด์ธ์˜ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์—์„œ ์˜๊ตฌ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์ถ”๊ฐ€, ์‚ญ์ œ ๋ฐ ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•˜๋Š” XNUMX๊ฐœ์˜ ๊ด€๋ จ API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ด ๋‹ค์„ฏ ๊ฐ€์ง€ API์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

์˜จํ†จ๋กœ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ Python์œผ๋กœ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. 2๋ถ€: ์Šคํ† ๋ฆฌ์ง€ API

์ด ๋‹ค์„ฏ ๊ฐ€์ง€ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

0. ์ƒˆ๋กœ์šด ๊ณ„์•ฝ์„ ๋งบ์ž SmartX

1. ์Šคํ† ๋ฆฌ์ง€ API ์‚ฌ์šฉ๋ฐฉ๋ฒ•

GetContext ๋ฐ GetReadOnlyContext

GetContext ะธ GetReadOnlyContext ํ˜„์žฌ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์ด ์‹คํ–‰๋˜๋Š” ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜ ๊ฐ’์€ ํ˜„์žฌ ์Šค๋งˆํŠธ ๊ณ„์•ฝ ํ•ด์‹œ์˜ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, GetReadOnlyContext ์ฝ๊ธฐ ์ „์šฉ ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์—์„œ ๋ฐ˜ํ™˜ ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ํ‘œ์‹œ๋œ ๊ณ„์•ฝ ํ•ด์‹œ์˜ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค.

์˜จํ†จ๋กœ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ Python์œผ๋กœ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. 2๋ถ€: ์Šคํ† ๋ฆฌ์ง€ API

๋„ฃ์–ด

๊ธฐ๋Šฅ ๋„ฃ์–ด ๋ธ”๋ก์ฒด์ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์ „ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ์ผ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ณด์—ฌ์ง„ ๋ฐ”์™€ ๊ฐ™์ด, ๋„ฃ์–ด ์„ธ ๊ฐ€์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. GetContext ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์ทจํ•˜๊ณ , key๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ‚ค์˜ ๊ฐ’์ด๊ณ , value๋Š” ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค. ํ‚ค ๊ฐ’์ด ์ด๋ฏธ ์ €์žฅ์†Œ์— ์žˆ๋Š” ๊ฒฝ์šฐ ํ•จ์ˆ˜๋Š” ํ•ด๋‹น ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

์˜จํ†จ๋กœ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ Python์œผ๋กœ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. 2๋ถ€: ์Šคํ† ๋ฆฌ์ง€ APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

๋ˆ์„ ๋ฐ›์•„๊ฐ€์„ธ์š”

๊ธฐ๋Šฅ ๋ˆ์„ ๋ฐ›์•„๊ฐ€์„ธ์š” ํ‚ค๊ฐ’์„ ํ†ตํ•ด ํ˜„์žฌ ๋ธ”๋ก์ฒด์ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ์—์„œ๋Š” ์˜ค๋ฅธ์ชฝ ์˜ต์…˜ ํŒจ๋„์— ํ‚ค ๊ฐ’์„ ์ž…๋ ฅํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ณ , ํ‚ค ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ธ”๋ก์ฒด์ธ์—์„œ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜จํ†จ๋กœ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ Python์œผ๋กœ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. 2๋ถ€: ์Šคํ† ๋ฆฌ์ง€ API

.

๊ธฐ๋Šฅ . ํ‚ค๊ฐ’์„ ํ†ตํ•ด ๋ธ”๋ก์ฒด์ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ์—์„œ๋Š” ์˜ค๋ฅธ์ชฝ ์˜ต์…˜ ํŒจ๋„์— ํ•ด๋‹น ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ‚ค ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  ํ•ด๋‹น ํ‚ค ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ธ”๋ก์ฒด์ธ์—์„œ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜จํ†จ๋กœ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ Python์œผ๋กœ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. 2๋ถ€: ์Šคํ† ๋ฆฌ์ง€ API

2. ์Šคํ† ๋ฆฌ์ง€ API ์ฝ”๋“œ ์˜ˆ์‹œ

์•„๋ž˜ ์ฝ”๋“œ๋Š” GetContext, Get, Put, Delete ๋ฐ GetReadOnlyContext๋ผ๋Š” XNUMX๊ฐ€์ง€ API ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์˜ˆ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์—์„œ 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)

์‚ฌํ›„

๋ธ”๋ก์ฒด์ธ ์Šคํ† ๋ฆฌ์ง€๋Š” ์ „์ฒด ๋ธ”๋ก์ฒด์ธ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. Ontology Storage API๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ๊ฐœ๋ฐœ์ž ์นœํ™”์ ์ž…๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, ์Šคํ† ๋ฆฌ์ง€๋Š” ์ด์ „ ๊ธฐ์‚ฌ ์ค‘ ํ•˜๋‚˜์—์„œ ์–ธ๊ธ‰ํ•œ ๋ณด์•ˆ ์œ„ํ˜‘๊ณผ ๊ฐ™์€ ํ•ด์ปค ๊ณต๊ฒฉ์˜ ์ดˆ์ ์ž…๋‹ˆ๋‹ค. ์Šคํ† ๋ฆฌ์ง€ ์ธ์ ์…˜ ๊ณต๊ฒฉ๊ฐœ๋ฐœ์ž๋Š” ์Šคํ† ๋ฆฌ์ง€์™€ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ณด์•ˆ์— ํŠน๋ณ„ํ•œ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๊ฐ€์ด๋“œ๋Š” ๋‹น์‚ฌ ์›น์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์˜ ์—ฌ๊ธฐ์—.

๋‹ค์Œ ๊ธ€์—์„œ๋Š” ์‚ฌ์šฉ๋ฒ•์„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ API.

์ด ๊ธฐ์‚ฌ๋Š” ํŠนํžˆ OntologyRussia๋ฅผ ์œ„ํ•ด Hashrate&Shares ํŽธ์ง‘์ž๊ฐ€ ๋ฒˆ์—ญํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋ฆญ

๋‹น์‹ ์€ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๊นŒ? ๊ธฐ์ˆ  ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ฐ€์ž…ํ•˜์„ธ์š”. ๋””์Šค์ฝ”๋“œ. ๋˜ํ•œ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. ๊ฐœ๋ฐœ์ž ์„ผํ„ฐ ์˜จํ†จ๋กœ์ง€์—์„œ๋Š” ๋” ๋งŽ์€ ๋„๊ตฌ, ๋ฌธ์„œ ๋“ฑ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๊ณต๊ฐœ ์ž‘์—…. ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ณ  ๋ณด์ƒ์„ ๋ฐ›์œผ์„ธ์š”.

์ ์šฉํ•˜๋‹ค ์˜จํ†จ๋กœ์ง€ ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์ธ์žฌ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•ด

์˜จํ†จ๋กœ์ง€

์˜จํ†จ๋กœ์ง€ ์›น์‚ฌ์ดํŠธ - GitHub์˜ - ๋””์Šค์ฝ”๋“œ - ์ „๋ณด ๋Ÿฌ์‹œ์•„์–ด - ํŠธ์œ„ํ„ฐ - ๋ ˆ๋”ง

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€