
See on esimene osa sarjast Ôppematerjale, mis kÀsitlevad nutilepingute loomist Pythonis blockchain-vÔrgus Ontology, kasutades nutilepingute arendamise tööriistu. .
Selles artiklis alustame tutvumist Ontology nutilepingu API-ga. Ontology nutilepingu API on jagatud seitsmeks mooduliks:
- Blockchain & Block API,
- Runtime API,
- Storage API,
- Native API,
- Upgrade API,
- Execution Engine API ja
- Static & Dynamic Call API.
Blockchain & Block API on Ontology nutilepingute sĂŒsteemi pĂ”hiosa. Blockchain API toetab aluseid blockchain-pĂ€ringute teostamiseks, nagu nĂ€iteks praeguse ploki kĂ”rguse saamine, samas kui Block API toetab aluseid plokipĂ€ringute teostamiseks, nĂ€iteks tehingute arvu saamine antud plokis.
Alustame!
Kuna alustuseks looge uus leping , ja seejÀrel jÀrgige allolevaid juhiseid.
1. Kuidas kasutada Blockchain API-d
Nutilepingute funktsioonide viidatud lingid on sarnased Pythonis kasutatavatele linkidele. VÔite vastavaid funktsioone sisestada vastavalt vajadusele. NÀiteks allolev juhend sisaldab GetHeight funktsiooni, et saada praeguse ploki kÔrgus, ja GetHeader funktsiooni, et saada ploki pealkiri.
from ontology.interop.System.Blockchain import GetHeight, GetHeaderGetHeight
GetHeight kasutatakse blockchainis viimase ploki jÀrjestuse numbri saamiseks, nagu on nÀidatud allolevas nÀites. Viimases nÀites hÔlbustamiseks jÀtame funktsiooni Main vahele, kuid vÔite selle lisada, kui see on vajalik.
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 functionGetHeader
GetHeader kasutatakse ploki pealkirja saamiseks, mille parameetriks on ploki jÀrjestuse number blockchainis. NÀide:
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 headerGetTransactionByHash
GetTransactionByHash kasutatakse tehingu saamiseks tehingu hash'i kaudu. Tehingu hash saadetakse GetTransactionByHash nagu parameetrid bytearray formaadis. Selle funktsiooni vÔtmekoht on konverteerida tehingu hash hex formaadis tehingu hash'iks bytearray formaadis. See on oluline samm. Vastasel juhul saaksite vea, mis nÀitab, et sellise hash'iga plokki ei ole. Vaatame hex formaadis tehingu hash'i, et konverteerida see bytearray formaati. NÀide nÀeb vÀlja jÀrgmine:
9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1Esiteks pöörake tehingu hash ĂŒmber:
c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279Arendajad saavad selle sammu teostada SmartX-i pakutava Hex Number (little endian) Number konversioonitööriista abil.
SeejÀrel muuda saadud tulemus bytearray formaati:
{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}Seda saab teha SmartX-i pakutava String Byte Array konversioonitööriistaga. LÔpuks muuda saadud bytearray sarnaseks stringiks:
xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9fAllpool on nÀide funktsioonist GetTransactionByHash, mis vÔtab tehingu tehingu hash'i abil:
from ontology.interop.System.Blockchain import GetTransactionByHash
def demo():
# tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"
tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
tx=GetTransactionByHash(tx_hash)
return txGetTransactionHeight
GetTransactionHeight kasutatakse tehingu kÔrguse saamiseks tehingu hash'i abil. Vaatame eespool toodud hash'i:
from ontology.interop.System.Blockchain import GetTransactionHeight
def demo():
# tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"
tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
height=GetTransactionHeight(tx_hash)
return heightGetContract
Arendajad saavad kasutada funktsiooni GetContract, et saada leping tehingu hash'i abil. Lepinguks hash'i konversiooniprotsess on sama, mis eespool mainitud tehingu hash'i konversiooniprotsess.
from ontology.interop.System.Blockchain import GetContract
def demo():
# contract_hash="d81a75a5ff9b95effa91239ff0bb3232219698fa"
contract_hash=bytearray(b"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8")
contract=GetContract(contract_hash)
return contractGetBlock
GetBlock'i kasutatakse ploki saamiseks. Konkreetse ploki saamiseks on kaks teed.
1. Saada plokk ploki kÔrguse jÀrgi:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block2. Saada plokk ploki hash'i jÀrgi:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
block=GetBlock(block_hash)2. Kuidas kasutada Block API-d
Block API-s on kolm saadaval funktsiooni: GetTransactions, GetTransactionCount, ja GetTransactionByIndex. Vaatame neid ĂŒkshaaval.
GetTransactionCount
GetTransactionCount kasutatakse tehingute arvu saamiseks antud plokis.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
block=GetBlock(1408)
count=GetTransactionCount(block)
return countGetTransactions
Arendajad saavad kasutada funktsiooni GetTransactions, et saada kÔik tehingud antud plokis.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactions
def demo():
block=GetBlock(1408)
txs=GetTransactions(block)
return txsGetTransactionByIndex
GetTransactionByIndex kasutatakse konkreetse tehingu saamiseks antud plokis.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionByIndex
def demo():
block=GetBlock(1408)
tx=GetTransactionByIndex(block,0) # indeks algab nullist.
return txKogu juhend on saadaval meie .
EessÔna
Blockchain & Block API on asendamatu osa nutilepingutest, kuna saate neid kasutada plokiahela ja ploki andmete pĂ€rimiseks nutilepingutes. JĂ€rgmistes artiklites arutame, kuidas kasutada ĂŒlejÀÀnud API-sid ja uurime nende interaktsioone Ontology plokiahelaga.
Artikkel on tÔlgitud Hashrate&Shares toimetuse poolt spetsiaalselt OntologyRussia jaoks.
Oled sa arendaja? Liitu meie tehnilise kogukonnaga . Samuti vaata meie veebisaidil, seal leiad arendaja tööriistad, dokumentatsiooni ja palju muud.
Ontology
- /
- Telegram /
- /
Allikas: habr.com
