
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
