ProHoster > Blog > Administrasyon an > Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 1: Blockchain & Block API
Ki jan yo ekri yon kontra entelijan nan Python sou rezo a Ontology. Pati 1: Blockchain & Block API
Sa a se premye pati nan yon seri atik edikatif sou kreye kontra entelijan nan Python sou rezo blockchain Ontology lè l sèvi avèk zouti devlopman kontra entelijan. SmartX.
Nan atik sa a, nou pral kòmanse konesans nou ak Ontology smart contract API. Ontology smart contract API divize an 7 modil:
Blockchain & Block API,
Runtime API
Depo API
API natif natal
Mizajou API,
Execution Engine API ak
Statik & Dynamic API apèl.
Blockchain & Block API se pati prensipal sistèm kontra entelijan Ontology la. API Blockchain a sipòte operasyon rechèch blòk debaz yo, tankou jwenn wotè aktyèl la nan yon blòk, pandan y ap Blockchain a sipòte operasyon rechèch debaz blòk, tankou demann kantite tranzaksyon pou yon blòk bay yo.
An n kòmanse!
Pou kòmanse, kreye yon nouvo kontra nan SmartX, epi swiv enstriksyon ki anba yo.
1. Ki jan yo sèvi ak Blockchain API
Referans fonksyon kontra entelijan yo idantik ak referans Python. Ou ka antre nan fonksyon enpòtan jan sa nesesè. Pa egzanp, deklarasyon sa a prezante GetHeight, yon fonksyon pou jwenn wotè aktyèl yon blòk, ak GetHeader, yon fonksyon pou jwenn tit blòk la.
from ontology.interop.System.Blockchain import GetHeight, GetHeader
GetHeight
GetHeight yo itilize pou jwenn dènye nimewo sekans blòk nan blockchain la, jan yo montre nan egzanp ki anba a. Nan dènye egzanp lan, pou konvenyans, nou pral sote fonksyon prensipal la, men ou ka ajoute li si sa nesesè.
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
GetHeader
GetHeader yo itilize pou jwenn tèt blòk la; paramèt la se nimewo seri blòk la nan blockchain la. Egzanp:
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
GetTransactionByHash
GetTransactionByHash yo itilize pou rekipere yon tranzaksyon lè l sèvi avèk yon hash tranzaksyon. Se hash tranzaksyon an voye bay GetTransactionByHash kòm paramèt nan fòma bytearray. Kle nan fonksyon sa a se konvèti hash tranzaksyon an nan fòma hex nan hash tranzaksyon an nan fòma bytearray. Sa a se yon etap enpòtan. Sinon ou ta jwenn yon erè ki endike ke pa gen okenn blòk ak hash blòk sa a. Ann pran hash tranzaksyon an nan fòma hex kòm yon egzanp konvèti li nan fòma bytearray. Egzanp la sanble sa a:
Devlopè yo ka itilize fonksyon GetContract pou rekipere yon kontra atravè yon hash kontra. Pwosesis konvèsyon hash kontra a se menm jan ak pwosesis konvèsyon tranzaksyon hash mansyone pi wo a.
GetBlock yo itilize pou jwenn yon blòk. Gen de fason pou jwenn yon blòk espesifik.
1. Jwenn yon blòk pa wotè blòk:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block
2. Jwenn yon blòk pa blòk hash:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
block=GetBlock(block_hash)
2. Kouman pou itilize Block API
Gen twa fonksyon ki disponib nan Block API: GetTransactions, GetTransactionCount, Ak GetTransactionByIndex. Nou pral regle yo youn pa youn.
GetTransactionCount
GetTransactionCount yo itilize pou jwenn kantite tranzaksyon pou yon blòk bay yo.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
block=GetBlock(1408)
count=GetTransactionCount(block)
return count
GetTransactions
Devlopè yo ka itilize fonksyon GetTransactions pou rekipere tout tranzaksyon yo nan yon blòk bay yo.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactions
def demo():
block=GetBlock(1408)
txs=GetTransactions(block)
return txs
GetTransactionByIndex
GetTransactionByIndex yo itilize pou rekipere yon tranzaksyon espesifik nan yon blòk bay yo.
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
Blockchain & Block API se yon pati endispansab nan kontra entelijan paske ou ka sèvi ak li pou rechèch done blockchain ak bloke done nan kontra entelijan. Nan atik nan lavni, nou pral diskite sou fason yo sèvi ak API ki rete yo ak konprann ki jan yo kominike avèk blòk Ontology la.
Atik la te tradui pa editè yo nan Hashrate&Shares espesyalman pou OntologyRussia. kriye
Èske w se yon pwomotè? Antre nan kominote teknoloji nou an nan Dezakò. Epitou, pran yon gade nan Sant Developer sou sit entènèt nou an, kote ou ka jwenn zouti devlopè, dokiman, ak plis ankò.