ПроХостер > блог > Администрација > Како написати паметни уговор у Питхон-у на мрежи Онтологи. Део 1: Блоцкцхаин & Блоцк АПИ
Како написати паметни уговор у Питхон-у на мрежи Онтологи. Део 1: Блоцкцхаин & Блоцк АПИ
Ово је први део у низу туторијала о креирању Пајтон паметних уговора на Онтологи блоцкцхаин мрежи помоћу алата за развој паметних уговора. СмартКс.
У овом чланку ћемо започети наше упознавање са АПИ-јем за паметне уговоре Онтологи. Онтологи смарт цонтрацт АПИ је подељен у 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
ГетТрансацтионБиХасх
ГетТрансацтионБиХасх се користи за добијање трансакције путем хеша трансакције. Хеш трансакције се шаље на ГетТрансацтионБиХасх као параметри у формату бајт низа. Кључ за ову функцију је да конвертујете хеш трансакције у хек формату у хеш трансакције у формату бајтова. Ово је важан корак. У супротном, добили бисте грешку која указује да не постоји блок са хешом тог блока. Узмимо хеш трансакције у хек формату као пример да га конвертујемо у формат бајтова. Пример изгледа овако:
Ово се може урадити помоћу алата за конверзију низа бајтова стрингова који обезбеђује СмартКс. Коначно, конвертујте резултујући низ бајтова у сличан низ:
Програмери могу да користе функцију ГетЦонтрацт да би добили уговор преко хеша уговора. Процес конверзије хеш-а уговора је исти као процес конверзије хеш трансакција који је горе поменут.
ГетБлоцк се користи за добијање блока. Постоје два начина да добијете одређени блок.
1. Добијте блок по висину блока:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block
2. Добијте хеш блок по блок:
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
Блоцкцхаин & Блоцк АПИ је неизоставан део паметних уговора јер их можете користити за захтевање блокчејн података и блокирање података у паметним уговорима. У следећим чланцима ћемо разговарати о томе како да користимо остатак АПИ-ја и сазнаћемо како они комуницирају са Онтологи блоцкцхаином.
Чланак су превели уредници Хасхрате&Схарес посебно за ОнтологиРуссиа. кликните
Да ли сте програмер? Придружите се нашој техничкој заједници на Дискорд. Такође, погледајте Центар за програмере на нашој веб страници, где можете пронаћи алатке за програмере, документацију и још много тога.