ProHoster > blog > Utawala > Jinsi ya kuandika mkataba mzuri katika Python kwenye mtandao wa Ontology. Sehemu ya 1: Blockchain & Block API
Jinsi ya kuandika mkataba mzuri katika Python kwenye mtandao wa Ontology. Sehemu ya 1: Blockchain & Block API
Hii ni sehemu ya kwanza katika mfululizo wa mafunzo kuhusu kuunda mikataba mahiri ya Python kwenye mtandao wa blockchain wa Ontology kwa kutumia zana mahiri ya kuunda kandarasi. SmartX.
Katika makala haya, tutaanza kufahamiana na API ya mkataba mahiri wa Ontology. API ya mkataba mahiri wa Ontology imegawanywa katika moduli 7:
Blockchain & Block API,
API ya wakati wa kukimbia,
API ya kuhifadhi,
API asili,
Boresha API,
API ya Injini ya Utekelezaji na
API ya Simu ya Static & Dynamic.
Blockchain & Block API ndio sehemu kuu ya mfumo wa mkataba mahiri wa Ontology. API ya Blockchain inasaidia shughuli za msingi za uulizaji wa blockchain, kama vile kupata urefu wa sasa wa blockchain, wakati API ya Block inasaidia shughuli za msingi za ulizo la blockchain, kama vile kuuliza idadi ya miamala kwa block fulani.
Tuanze!
Kwanza, tengeneza mkataba mpya SmartXna kisha fuata maagizo hapa chini.
1. Jinsi ya kutumia Blockchain API
Viungo vya kazi za mikataba mahiri ni sawa na viungo vya Python. Unaweza kuingiza vitendaji sambamba kama inahitajika. Kwa mfano, taarifa ifuatayo inatanguliza kitendakazi cha GetHeight ili kupata urefu wa kizuizi cha sasa, na kazi ya GetHeader ili kupata kichwa cha kizuizi.
from ontology.interop.System.Blockchain import GetHeight, GetHeader
GetHeight
GetHeight inatumika kupata nambari ya mwisho ya mlolongo wa block kwenye blockchain, kama inavyoonyeshwa kwenye mfano hapa chini. Katika mfano wa mwisho, tutaacha kazi kuu kwa urahisi, lakini unaweza kuiongeza ikiwa ni lazima.
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 hutumiwa kupata kichwa cha block, parameta ni nambari ya serial ya block kwenye blockchain. Mfano:
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
PataTransactionByHash
GetTransactionByHash hutumiwa kupata muamala kupitia heshi ya muamala. Heshi ya muamala inatumwa kwa PataTransactionByHash kama vigezo katika umbizo la bytearray. Ufunguo wa chaguo hili la kukokotoa ni kubadilisha heshi ya muamala katika umbizo la heksi kuwa heshi ya muamala katika umbizo la bytearray. Hii ni hatua muhimu. Vinginevyo, utapata hitilafu ambayo inaonyesha kuwa hakuna kizuizi na hash hiyo ya kuzuia. Hebu tuchukue heshi ya muamala katika umbizo la hex kama mfano ili kuibadilisha kuwa umbizo la bytearray. Mfano unaonekana kama hii:
Hili linaweza kufanywa kwa kutumia zana ya ubadilishaji ya String Byte Array iliyotolewa na SmartX. Mwishowe, badilisha bytearray inayosababisha kuwa kamba inayofanana:
Wasanidi programu wanaweza kutumia kazi ya GetContract kupata mkataba kupitia heshi ya mkataba. Mchakato wa ubadilishaji wa heshi ya mkataba ni sawa na mchakato wa ubadilishaji wa hashi ya ununuzi uliotajwa hapo juu.
GetBlock hutumiwa kupata kizuizi. Kuna njia mbili za kupata block maalum.
1. Pata block kwa urefu wa block:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block
2. Pata block by block hash:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
block=GetBlock(block_hash)
2. Jinsi ya kutumia Block API
Kuna kazi tatu zinazopatikana katika API ya Kuzuia: Pata Shughuli, GetTransactionCountNa PataTransactionByIndex. Tutazivunja moja baada ya nyingine.
GetTransactionCount
GetTransactionCount inatumika kupata idadi ya miamala kwa block fulani.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
block=GetBlock(1408)
count=GetTransactionCount(block)
return count
Pata Shughuli
Wasanidi programu wanaweza kutumia kazi ya GetTransactions kupata miamala yote katika kizuizi fulani.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactions
def demo():
block=GetBlock(1408)
txs=GetTransactions(block)
return txs
PataTransactionByIndex
GetTransactionByIndex inatumika kupata muamala maalum katika block fulani.
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
Mwongozo kamili unaweza kupatikana kwenye yetu GitHub.
Baada ya
API ya Blockchain & Block ni sehemu ya lazima ya mikataba mahiri kwani unaweza kuitumia kuomba data ya blockchain na kuzuia data katika mikataba mahiri. Katika makala zijazo, tutajadili jinsi ya kutumia API zingine na kujua jinsi zinavyoingiliana na blockchain ya Ontolojia.
Nakala hiyo ilitafsiriwa na wahariri wa Hashrate&Shares haswa kwa OntologyRussia. kulia
Je, wewe ni msanidi programu? Jiunge na jumuiya yetu ya teknolojia kwa Ugomvi. Pia, angalia Kituo cha Wasanidi Programu kwenye tovuti yetu, ambapo unaweza kupata zana za wasanidi programu, nyaraka, na zaidi.