Otu esi ede nkwekọrịta smart na Python na netwọk Ontology. Akụkụ 1: Blockchain & Block API

Otu esi ede nkwekọrịta smart na Python na netwọk Ontology. Akụkụ 1: Blockchain & Block API

Nke a bụ akụkụ nke mbụ na usoro nkuzi maka ịmepụta Python smart contracts na Ontology blockchain network site na iji ngwa mmepe nkwekọrịta smart. SmartX.

N'edemede a, anyị ga-amalite imata anyị na Ontology smart contract API. E kewara Ontology smart contract API na modul 7:

  1. Blockchain & ngọngọ API,
  2. API ọsọ ọsọ,
  3. API nchekwa,
  4. API ala,
  5. API kwalite,
  6. API Execution Engine na
  7. API oku Static & Dynamic.

Blockchain & Block API bụ akụkụ bụ isi nke sistemụ nkwekọrịta smart Ontology. Blockchain API na-akwado ọrụ ajụjụ blockchain bụ isi, dị ka ịnweta ogo nke ngọngọ ugbu a, ebe Block API na-akwado ọrụ ajụjụ ngọngọ bụ isi, dị ka ịjụ ajụjụ ọnụ ọgụgụ azụmahịa maka ngọngọ nyere.

Ka anyị malite!

Mbụ, mepụta nkwekọrịta ọhụrụ n'ime SmartX, wee soro ntuziaka dị n'okpuru.

1. Otu esi eji Blockchain API

Njikọ na ọrụ nkwekọrịta smart bụ otu njikọ Python. Ị nwere ike itinye ọrụ kwekọrọ dịka achọrọ. Dịka ọmụmaatụ, nkwupụta na-esonụ na-ewebata ọrụ GetHeight iji nweta ogo ngọngọ dị ugbu a, yana ọrụ GetHeader iji nweta nkụnye eji isi mee ihe.

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

GetHeight

A na-eji GetHeight nweta nọmba usoro ngọngọ ikpeazụ na blockchain, dị ka egosiri na ihe atụ dị n'okpuru. N'ihe atụ ikpeazụ, anyị ga-ahapụ ọrụ isi maka ịdị mma, mana ịnwere ike ịgbakwunye ya ma ọ dị mkpa.

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

A na-eji GetHeader nweta nkụnye eji isi mee ihe, ihe nrụnye ahụ bụ nọmba serial nke ngọngọ na blockchain. Ọmụmaatụ:

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

NwetaTransactionByHash

A na-eji GetTransactionByHash nweta azụmahịa site na hash azụmahịa. A na-ezigara hash azụmahịa ahụ NwetaTransactionByHash dị ka parameters n'ụdị bytearray. Isi ihe dị na ọrụ a bụ ịtụgharị hash azụmahịa na usoro hex na hash azụmahịa n'ụdị bytearray. Nke a bụ nzọụkwụ dị mkpa. Ma ọ bụghị ya, ị ga-enweta njehie nke na-egosi na ọ nweghị ngọngọ nwere hash ngọngọ ahụ. Ka anyị were hash azụmahịa ahụ n'ụdị hex dị ka ọmụmaatụ iji tọghata ya ka ọ bụrụ usoro bytearray. Ọmụmaatụ dị ka nke a:

9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1

Nke mbụ, tụgharịa hash azụmahịa:

c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279

Ndị mmepe nwere ike rụzuo usoro a site na iji Hex Number(obere endian)Numba ntụgharị ngwaọrụ nke SmartX nyere.

Wee gbanwee nsonaazụ ya ka ọ bụrụ usoro 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}

Enwere ike ime nke a site na iji ngwa ntụgharị String Byte Array nke SmartX nyere. N'ikpeazụ, gbanwee bytearray na-esi na ya pụta ka ọ bụrụ eriri yiri ya:

xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f

Ihe na-esonụ bụ ọmụmaatụ nke ọrụ GetTransactionByHash, nke na-eji hash nke azụmahịa ahụ eme azụmahịa:

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

GetTransactionHeight

A na-eji GetTransactionHeight nweta ogo azụmahịa site na hash azụmahịa. Ka anyị were hash site na ihe atụ dị n'elu:

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

Nweta nkwekọrịta

Ndị mmepe nwere ike iji ọrụ GetContract weghachite nkwekọrịta site na hash nkwekọrịta. Usoro ngbanwe hash nkwekọrịta bụ otu usoro ngbanwe hash nke a kpọtụrụ aha n'elu.

from ontology.interop.System.Blockchain import GetContract
def demo():
    # contract_hash="d81a75a5ff9b95effa91239ff0bb3232219698fa"    
    contract_hash=bytearray(b"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8")
    contract=GetContract(contract_hash)
    return contract

GetBlock

A na-eji GetBlock nweta ngọngọ. Enwere ụzọ abụọ iji nweta otu ngọngọ.

1. Nweta ngọngọ site n'ịdị elu ngọngọ:

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

2. Nweta ngọngọ site block hash:

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

2. Otu esi eji ngọngọ API

Enwere ọrụ atọ dị na Block API: GetTransactions, GetTransactionCountna GetTransactionByIndex. Anyị ga-akụrisị ha otu otu.

GetTransactionCount

A na-eji GetTransactionCount nweta ọnụọgụ azụmahịa maka ngọngọ nyere.

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

Ndị mmepe nwere ike iji ọrụ GetTransactions nweta azụmahịa niile na ngọngọ enyere.

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

A na-eji GetTransactionByIndex nweta otu azụmahịa na ngọngọ enyere.

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

Enwere ike ịchọta ntuziaka zuru oke na anyị GitHub.

Afterword

Blockchain & Block API bụ akụkụ dị mkpa nke nkwekọrịta smart dịka ị nwere ike iji ha rịọ data blockchain na igbochi data na nkwekọrịta smart. N'isiokwu ndị na-abịa n'ihu, anyị ga-atụle otu esi eji API ndị ọzọ wee chọpụta ka ha si emekọrịta ihe na Ontology blockchain.

Ndị ndezi Hashrate&Shares tụgharịrị akụkọ a karịsịa maka OntologyRussia. akwa akwa

Ị bụ onye nrụpụta? Soro obodo teknụzụ anyị na Nsogbu. Ọzọkwa, lelee anya Ebe Onye Mmepụta na webụsaịtị anyị, ebe ị nwere ike ịhụ ngwaọrụ nrụpụta, akwụkwọ, na ndị ọzọ.

Ojiji

isi: www.habr.com

Tinye a comment