
Ово је први део у низу туторијала о креирању Пајтон паметних уговора на Онтологи блоцкцхаин мрежи помоћу алата за развој паметних уговора. .
У овом чланку ћемо започети наше упознавање са АПИ-јем за паметне уговоре Онтологи. Онтологи смарт цонтрацт АПИ је подељен у 7 модула:
- Блоцкцхаин & Блоцк АПИ,
- рунтиме АПИ,
- АПИ за складиштење,
- изворни АПИ,
- АПИ за надоградњу,
- АПИ за извршни механизам и
- АПИ за статички и динамички позив.
Блоцкцхаин & Блоцк АПИ је главни део система паметних уговора Онтологи. Блоцкцхаин АПИ подржава основне операције блоцкцхаин упита, као што је добијање тренутне висине блока, док Блоцк АПИ подржава основне операције блока упита, као што је испитивање броја трансакција за дати блок.
Хајде да почнемо!
Прво направите нови уговор у а затим следите упутства у наставку.
1. Како користити Блоцкцхаин АПИ
Везе до функција паметног уговора су идентичне Питхон везама. По потреби можете унети одговарајуће функције. На пример, следећа изјава уводи функцију ГетХеигхт да добије тренутну висину блока и ГетХеадер функцију да добије заглавље блока.
from ontology.interop.System.Blockchain import GetHeight, GetHeaderГетХеигхт
ГетХеигхт се користи за добијање последњег редног броја блока у ланцу блокова, као што је приказано у примеру испод. У последњем примеру ћемо изоставити главну функцију ради погодности, али можете је додати ако је потребно.
from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeight
def Main(operation):
if operation == 'demo':
return demo()
return False
def demo():
height=GetHeight()
Notify(height) # print height
return height #return height after running the functionГетХеадер
ГетХеадер се користи за добијање заглавља блока, параметар је серијски број блока у ланцу блокова. Пример:
from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeader
def demo():
block_height=10
header=GetHeader(block_height)
Notify(header)
return headerГетТрансацтионБиХасх
ГетТрансацтионБиХасх се користи за добијање трансакције путем хеша трансакције. Хеш трансакције се шаље на ГетТрансацтионБиХасх као параметри у формату бајт низа. Кључ за ову функцију је да конвертујете хеш трансакције у хек формату у хеш трансакције у формату бајтова. Ово је важан корак. У супротном, добили бисте грешку која указује да не постоји блок са хешом тог блока. Узмимо хеш трансакције у хек формату као пример да га конвертујемо у формат бајтова. Пример изгледа овако:
9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1Прво, обрните хеш трансакције:
c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279Програмери могу да постигну овај корак користећи алатку за конверзију хексадецималног броја (мали ендиан) бројева коју обезбеђује СмартКс.
Затим конвертујте резултат у формат бајт низа:
{0xc1,0x89,0x0c,0x4d,0x73,0x06,0x26,0xdf,0xaa,0x94,0x49,0x41,0x9d,0x66,0x25,0x05,0xea,0xb3,0xbd,0xa2,0xe1,0xf0,0x1f,0x89,0x46,0x3c,0xc1,0xa4,0xa3,0x0a,0x27,0x9f}Ово се може урадити помоћу алата за конверзију низа бајтова стрингова који обезбеђује СмартКс. Коначно, конвертујте резултујући низ бајтова у сличан низ:
xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9fСледи пример функције ГетТрансацтионБиХасх која преузима трансакцију користећи хеш трансакције:
from ontology.interop.System.Blockchain import GetTransactionByHash
def demo():
# tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"
tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
tx=GetTransactionByHash(tx_hash)
return txГетТрансацтионХеигхт
ГетТрансацтионХеигхт се користи за добијање висине трансакције преко хеша трансакције. Узмимо хеш из примера изнад:
from ontology.interop.System.Blockchain import GetTransactionHeight
def demo():
# tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"
tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
height=GetTransactionHeight(tx_hash)
return heightГетЦонтрацт
Програмери могу да користе функцију ГетЦонтрацт да би добили уговор преко хеша уговора. Процес конверзије хеш-а уговора је исти као процес конверзије хеш трансакција који је горе поменут.
from ontology.interop.System.Blockchain import GetContract
def demo():
# contract_hash="d81a75a5ff9b95effa91239ff0bb3232219698fa"
contract_hash=bytearray(b"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8")
contract=GetContract(contract_hash)
return contractГетБлоцк
ГетБлоцк се користи за добијање блока. Постоје два начина да добијете одређени блок.
1. Добијте блок по висину блока:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block2. Добијте хеш блок по блок:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
block=GetBlock(block_hash)2. Како користити Блоцк АПИ
Постоје три доступне функције у Блоцк АПИ-ју: ГетТрансацтионс, ГетТрансацтионЦоунтИ ГетТрансацтионБиИндек. Раставићемо их један по један.
ГетТрансацтионЦоунт
ГетТрансацтионЦоунт се користи за добијање броја трансакција за дати блок.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
block=GetBlock(1408)
count=GetTransactionCount(block)
return countГетТрансацтионс
Програмери могу да користе функцију ГетТрансацтионс да би добили све трансакције у датом блоку.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactions
def demo():
block=GetBlock(1408)
txs=GetTransactions(block)
return txsГетТрансацтионБиИндек
ГетТрансацтионБиИндек се користи за добијање одређене трансакције у датом блоку.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionByIndex
def demo():
block=GetBlock(1408)
tx=GetTransactionByIndex(block,0) # index starts from 0.
return txКомплетан водич можете пронаћи на нашем .
Афтерворд
Блоцкцхаин & Блоцк АПИ је неизоставан део паметних уговора јер их можете користити за захтевање блокчејн података и блокирање података у паметним уговорима. У следећим чланцима ћемо разговарати о томе како да користимо остатак АПИ-ја и сазнаћемо како они комуницирају са Онтологи блоцкцхаином.
Чланак су превели уредници Хасхрате&Схарес посебно за ОнтологиРуссиа.
Да ли сте програмер? Придружите се нашој техничкој заједници на . Такође, погледајте на нашој веб страници, где можете пронаћи алатке за програмере, документацију и још много тога.
онтологија
- /
- Telegram /
- /
Извор: ввв.хабр.цом
