ProHoster > Blog > Administrasi > Kumaha cara nyerat kontrak pinter dina Python dina jaringan Ontology. Bagian 1: Blockchain & Blok API
Kumaha cara nyerat kontrak pinter dina Python dina jaringan Ontology. Bagian 1: Blockchain & Blok API
Ieu mangrupikeun bagian munggaran dina séri tutorial ngeunaan nyiptakeun kontrak pinter Python dina jaringan blockchain Ontology nganggo alat pangembangan kontrak pinter. SmartX.
Dina tulisan ieu, urang bakal ngamimitian kenalan sareng API kontrak pinter Ontology. API kontrak pinter Ontology dibagi kana 7 modul:
Blockchain & Blok API,
API runtime,
gudang API,
API asli,
Ningkatkeun API,
Palaksanaan Engine API jeung
Statis & Dinamis Telepon API.
Blockchain & Block API mangrupikeun bagian utama sistem kontrak pinter Ontology. API Blockchain ngadukung operasi query blockchain dasar, sapertos kéngingkeun jangkungna blok ayeuna, sedengkeun API Blok ngadukung operasi query blok dasar, sapertos naroskeun jumlah transaksi pikeun blok anu dipasihkeun.
Hayu urang ngamimitian!
Kahiji, nyieun kontrak anyar dina SmartXlajeng turutan parentah di handap.
1. Kumaha ngagunakeun Blockchain API
Tumbu ka fungsi kontrak pinter idéntik jeung Tumbu Python. Anjeun tiasa ngalebetkeun fungsi anu saluyu upami diperyogikeun. Contona, pernyataan di handap ieu ngenalkeun fungsi GetHeight pikeun meunangkeun jangkungna blok ayeuna, sarta fungsi GetHeader pikeun meunangkeun lulugu blok.
from ontology.interop.System.Blockchain import GetHeight, GetHeader
GetHeight
GetHeight dipaké pikeun meunangkeun angka runtuyan block panungtungan dina blockchain nu, sakumaha ditémbongkeun dina conto di handap ieu. Dina conto anu terakhir, urang bakal ngaleungitkeun fungsi Utama pikeun genah, tapi anjeun tiasa nambihanana upami diperyogikeun.
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 dipaké pikeun meunangkeun block header, parameter nyaéta nomer serial blok dina blockchain nu. conto:
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 dipaké pikeun meunangkeun transaksi ngaliwatan Hash transaksi. Hash urus dikirim ka GetTransactionByHash salaku parameter dina format bytearray. Konci pikeun fungsi ieu nyaéta ngarobih hash transaksi dina format hex ka hash transaksi dina format bytearray. Ieu mangrupikeun léngkah anu penting. Upami teu kitu, anjeun bakal meunang kasalahan anu nunjukkeun yén teu aya blok sareng blok Hash éta. Hayu urang nyandak Hash transaksi dina format hex sabagé conto pikeun ngarobih kana format bytearray. Hiji conto kasampak kawas kieu:
Pamekar tiasa nganggo fungsi GetContract pikeun kéngingkeun kontrak ngalangkungan hash kontrak. Prosés konversi Hash kontrak sarua jeung prosés konversi Hash urus disebutkeun di luhur.
GetBlock dipaké pikeun meunangkeun blok. Aya dua cara pikeun meunangkeun blok husus.
1. Meunang blok ku jangkungna blok:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block
2. Kéngingkeun blok per blok hash:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
block=GetBlock(block_hash)
2. Kumaha ngagunakeun Blok API
Aya tilu fungsi anu sayogi dina Blok API: GetTransactions, GetTransactionCountjeung GetTransactionByIndex. Urang bakal ngarecahna hiji-hiji.
GetTransactionCount
GetTransactionCount dipaké pikeun meunangkeun jumlah transaksi pikeun blok dibikeun.
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
Pamekar tiasa nganggo fungsi GetTransactions pikeun nyandak sadaya transaksi dina blok anu dipasihkeun.
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 dipaké pikeun meunangkeun transaksi husus dina blok dibikeun.
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
Pitunjuk lengkep tiasa dipendakan dina kami GitHub.
afterword
Blockchain & Block API mangrupikeun bagian penting tina kontrak pinter sabab anjeun tiasa dianggo pikeun nyuhunkeun data blockchain sareng meungpeuk data dina kontrak pinter. Dina tulisan di handap ieu, urang bakal ngabahas kumaha cara ngagunakeun sesa API sareng terang kumaha aranjeunna berinteraksi sareng blockchain Ontology.
Tulisan ieu ditarjamahkeun ku éditor Hashrate&Shares khususna pikeun OntologyRussia. ceurik
Anjeun pamekar? Gabung komunitas tech kami di Discord. Ogé, nyandak katingal di Puseur pamekar dina situs wéb kami, dimana anjeun tiasa mendakan alat pamekar, dokuméntasi, sareng seueur deui.