Sida loo qoro qandaraas caqli gal ah Python shabakadda Ontology. Qeybta 1: Blockchain & Block API

Sida loo qoro qandaraas caqli gal ah Python shabakadda Ontology. Qeybta 1: Blockchain & Block API

Tani waa qaybta koowaad ee maqaallo waxbarasho oo taxane ah oo ku saabsan abuurista qandaraasyo caqli-gal ah Python ee shabakadda blockchain ee Ontology iyadoo la adeegsanayo aaladda horumarinta qandaraasyada caqliga leh SmartX.

Maqaalkan, waxaan ku bilaabi doonaa aqoontayada Ontology smart contract API. Ontology smart contract API waxa loo qaybiyaa 7 qaybood:

  1. Blockchain & Block API,
  2. Runtime API
  3. Kaydinta API
  4. Native API
  5. cusboonaysii API,
  6. Execution Engine API iyo
  7. Joogtada & Dhaqdhaqaaqa Wicitaanka API.

Blockchain & Block API waa qaybta xudunta u ah nidaamka qandaraasyada caqliga leh ee Ontology. Blockchain API waxa ay taageertaa hawlgalada aasaasiga ah ee blockchain, sida helitaanka dhererka hadda jira ee block, halka Block API uu taageerayo hawlgalada su'aalaha block ee aasaasiga ah, sida weydiinta tirada wax kala iibsiga ee block la siiyay.

Aan bilowno!

Si aad u bilowdo, samee qandaraas cusub gudaha SmartX, ka dibna raac tilmaamaha hoose.

1. Sida loo isticmaalo Blockchain API

Tixraacyada shaqada qandaraaska ee smart waxay la mid yihiin tixraacyada Python. Waxaad geli kartaa hawlaha khuseeya marka loo baahdo. Tusaale ahaan, bayaankan soo socdaa wuxuu soo bandhigayaa GetHeight, oo ah shaqo lagu helo dhererka block ee hadda, iyo GetHeader, oo ah shaqo lagu helo cinwaanka block.

from ontology.interop.System.Blockchain import GetHeight, GetHeader

GetHeight

GetHeight waxaa loo isticmaalaa in lagu helo nambarka isku xigxiga block ee ugu dambeeya ee blockchain, sida ku cad tusaalaha hoose. Tusaalaha ugu dambeeya, si ay ugu habboonaato, waxaan ka boodi doonaa shaqada ugu weyn, laakiin waxaad ku dari kartaa haddii loo baahdo.

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 waxaa loo isticmaalaa in lagu helo madaxa block; halbeeggu waa lambarka taxanaha ee blockchain. Tusaale:

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

HelTransactionByHash

GetTransactionByHash waxaa loo isticmaalaa in lagu soo celiyo wax kala iibsiga iyadoo la isticmaalayo xashiish wax kala iibsiga. Xashiishka wax kala iibsiga ayaa loo diraa HelTransactionByHash sida qiyaasaha qaabka bytearray. Furaha shaqadan waa in loo beddelo xashiishka macaamil ganacsi qaab hex ah oo loo beddelo xashiishka wax kala iibsiga oo qaab bytearray ah. Tani waa tallaabo muhiim ah. Haddii kale waxaad heli doontaa qalad muujinaya in uusan jirin wax block ah oo xashiishkaas block ah. Aan u soo qaadano xashiishka macaamil ganacsi qaab hex tusaale ahaan si aan ugu badalno qaabka bytearray. Tusaalaha ayaa u eg sidan:

9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1

Marka hore u beddel xashiishka wax kala iibsiga:

c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279

Horumariyayaashu waxay ku fulin karaan tallaabadan iyagoo isticmaalaya Hex Number (ittle endian) nambar beddelka aaladda ay bixiso SmartX.

Ka dib natiijada natiijada u beddel qaab bytearray:

{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}

Tan waxa lagu samayn karaa iyadoo la isticmaalayo String Byte Array aalada beddelka by SmartX. Ugu dambayntii, u beddel bakhti-raacii ka dhashay xadhig sidan oo kale ah:

xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f

Hoos waxaa ku yaal tusaale ahaan shaqada GetTransactionByHash, kaas oo wax kala iibsada xashiishka wax kala iibsiga:

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 waxaa loo isticmaalaa in lagu helo dhererka wax kala iibsiga iyadoo la isticmaalayo xashiishka wax kala iibsiga. Aan xashiishka ka soo qaadano tusaalaha sare:

from ontology.interop.System.Blockchain import  GetTransactionHeight
def demo():
    #   tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"    
    tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
    height=GetTransactionHeight(tx_hash)
    return height

HelContract

Horumariyayaashu waxay isticmaali karaan shaqada GetContract si ay ula soo baxaan heshiiska iyagoo isticmaalaya xashiish qandaraas ah. Habka beddelka xashiishka qandaraaska ayaa la mid ah habka beddelka xashiishka wax kala iibsiga ee kor ku xusan.

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 waxaa loo isticmaalaa in lagu helo block. Waxaa jira laba siyaabood oo lagu helo xannibaad gaar ah.

1. Hel baloog dherer ahaan block ah:

from ontology.interop.System.Blockchain import GetBlock
def demo():
    block=GetBlock(1408)
    return block

2. Ku hel block by block xash:

from ontology.interop.System.Blockchain import GetBlock
def demo():    
    block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
    block=GetBlock(block_hash)

2. Sida loo isticmaalo Block API

Waxa jira saddex hawlood oo diyaar ah oo ku jira Block API: HelIsdhaafsiga, GetTransactionCountiyo GetTransactionByIndex. Mid mid ayaan u kala saari doonaa.

GetTransactionCount

GetTransactionCount waxaa loo isticmaalaa in lagu helo tirada wax kala iibsiga ee block la siiyay.

from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
    block=GetBlock(1408)
    count=GetTransactionCount(block)
    return count

HelIsdhaafsiga

Horumariyayaashu waxay isticmaali karaan shaqada GetTransactions si ay u soo ceshadaan dhammaan wax kala iibsiga ee ku jira block la bixiyay.

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 waxaa loo isticmaalaa in lagu soo celiyo macaamil ganacsi oo gaar ah oo ku jira block la bixiyay.

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

Hagaha buuxa waxaa laga heli karaa our GitHub.

Kadib

Blockchain & Block API waa qayb lagama maarmaan ah oo ka mid ah qandaraasyada caqliga leh sababtoo ah waxaad u isticmaali kartaa inaad waydiiso xogta blockchain oo aad xannibto xogta qandaraasyada caqliga leh. Maqaallada mustaqbalka, waxaan ka wada hadli doonaa sida loo isticmaalo API-yada haray oo aan fahanno sida ay ula falgalaan blockchain Ontology.

Maqaalka waxaa tarjumay tafatirayaasha Hashrate&Shares gaar ahaan OntologyRussia. ooyi

Ma tahay horumariye? Ku soo biir bulshadayada farsamada khilaaf. Sidoo kale, fiiri Xarunta Horumarinta boggayaga internetka, halkaas oo aad ka heli karto qalabka horumarinta, dukumentiyada iyo wax ka badan.

Ontology

Source: www.habr.com

Add a comment