
Þetta er fyrsti hluti af röð fræðslugreina um að búa til snjalla samninga í Python á Ontology blockchain netinu með því að nota snjallsamningaþróunartæki .
Í þessari grein munum við hefja kynni okkar af Ontology smart contract API. Ontology snjallsamnings API er skipt í 7 einingar:
- Blockchain & Block API,
- Runtime API
- Geymsla API
- Native API
- Uppfærsla API,
- Execution Engine API og
- Static & Dynamic Call API.
Blockchain & Block API er kjarnahluti Ontology snjallsamningakerfisins. Blockchain API styður grunn blockchain fyrirspurnaaðgerðir, svo sem að fá núverandi hæð blokkar, en Block API styður grunn blokkafyrirspurnaraðgerðir, svo sem að spyrjast fyrir um fjölda viðskipta fyrir tiltekna blokk.
Byrjum!
Til að byrja skaltu búa til nýjan samning í , og fylgdu síðan leiðbeiningunum hér að neðan.
1. Hvernig á að nota Blockchain API
Snjall samningsaðgerðatilvísanir eru eins og Python tilvísanir. Þú getur slegið inn viðeigandi aðgerðir eftir þörfum. Til dæmis kynnir eftirfarandi setning GetHeight, fall til að fá núverandi hæð blokkar, og GetHeader, fall til að fá titil blokkarinnar.
from ontology.interop.System.Blockchain import GetHeight, GetHeader
GetHeight
GetHeight er notað til að fá síðasta blokkarraðnúmerið í blokkarkeðjunni, eins og sýnt er í dæminu hér að neðan. Í síðasta dæminu, til hægðarauka, sleppum við aðalaðgerðinni, en þú getur bætt henni við ef þörf krefur.
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 er notað til að fá blokkhausinn; færibreytan er raðnúmer blokkarinnar í blockchain. Dæmi:
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 er notað til að sækja viðskipti með því að nota viðskiptakássa. Viðskiptakássið er sent til GetTransactionByHash sem færibreytur á bytearray sniði. Lykillinn að þessari aðgerð er að umbreyta færslukássinu á hex-sniði í færslukássið á bætafylkissniði. Þetta er mikilvægt skref. Annars myndirðu fá villu sem gefur til kynna að það sé engin blokk með því blokkarhash. Tökum viðskiptakássið á hex sniði sem dæmi til að umbreyta því í bytearray snið. Dæmið lítur svona út:
9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1
Snúðu fyrst viðskiptakássinu við:
c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279
Hönnuðir geta náð þessu skrefi með því að nota Hex Number (little endian) númerumbreytingartólið sem SmartX býður upp á.
Umbreyttu síðan niðurstöðunni sem myndast í bytearray snið:
{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}
Þetta er hægt að gera með því að nota String Byte Array umbreytingartólið sem SmartX býður upp á. Að lokum, umbreyttu bætrarásinni sem myndast í streng eins og þetta:
xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f
Hér að neðan er dæmi um GetTransactionByHash aðgerðina, sem tekur færslu með færslukássinu:
from ontology.interop.System.Blockchain import GetTransactionByHash
def demo():
# tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"
tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
tx=GetTransactionByHash(tx_hash)
return tx
GetTransactionHeight
GetTransactionHeight er notað til að fá færsluhæðina með því að nota færslukássa. Tökum hassið úr dæminu hér að ofan:
from ontology.interop.System.Blockchain import GetTransactionHeight
def demo():
# tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"
tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
height=GetTransactionHeight(tx_hash)
return height
Get Contract
Hönnuðir geta notað GetContract aðgerðina til að endurheimta samning í gegnum samningshash. Umbreytingarferli samnings kjötkássa er það sama og umbreytingarferli viðskiptakássa sem nefnt er hér að ofan.
from ontology.interop.System.Blockchain import GetContract
def demo():
# contract_hash="d81a75a5ff9b95effa91239ff0bb3232219698fa"
contract_hash=bytearray(b"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8")
contract=GetContract(contract_hash)
return contract
GetBlock
GetBlock er notað til að fá blokk. Það eru tvær leiðir til að fá ákveðna blokk.
1. Fáðu blokk eftir blokkarhæð:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block
2. Fáðu blokk fyrir blokk hash:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
block=GetBlock(block_hash)
2. Hvernig á að nota Block API
Það eru þrjár tiltækar aðgerðir í Block API: GetTransactions, GetTransactionCountOg GetTransactionByIndex. Við munum raða þeim út eitt af öðru.
GetTransactionCount
GetTransactionCount er notað til að fá fjölda viðskipta fyrir tiltekna blokk.
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
Hönnuðir geta notað GetTransactions aðgerðina til að sækja öll viðskipti í tiltekinni blokk.
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 er notað til að sækja tiltekna færslu í tiltekinni blokk.
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
Leiðsögnina í heild sinni má finna á okkar .
Eftirsögn
Blockchain & Block API er ómissandi hluti af snjöllum samningum vegna þess að þú getur notað það til að spyrjast fyrir um blockchain gögn og loka fyrir gögn í snjöllum samningum. Í framtíðargreinum munum við ræða hvernig eigi að nota API sem eftir eru og skilja hvernig þau hafa samskipti við Ontology blockchain.
Greinin var þýdd af ritstjórum Hashrate&Shares sérstaklega fyrir OntologyRussia.
Ertu verktaki? Vertu með í tæknisamfélaginu okkar á . Skoðaðu líka á vefsíðu okkar, þar sem þú getur fundið verkfæri fyrir þróunaraðila, skjöl og fleira.
Ontology
- /
- Telegram /
- /
Heimild: www.habr.com
