Faʻafefea ona tusia se konekarate atamai ile Python ile Ontology network. Vaega 1: Blockchain & Block API

Faʻafefea ona tusia se konekarate atamai ile Python ile Ontology network. Vaega 1: Blockchain & Block API

O le vaega muamua lea i se faasologa o aʻoaʻoga i le fatuina o konekarate atamai Python i luga o le Ontology blockchain network e faʻaaoga ai le meafaigaluega faʻatautaia konekarate atamai. SmartX.

I lenei tusiga, o le a amata la tatou masani i le Ontology smart contract API. O le Ontology smart contract API ua vaevaeina i 7 modules:

  1. Blockchain & Block API,
  2. API taimi,
  3. teuina API,
  4. API moni,
  5. Fa'aleleia API,
  6. Execution Engine API ma
  7. Vala'au fa'atete'e ma le fa'amalosi API.

Blockchain & Block API o le vaega autu o le Ontology smart contract system. E lagolagoina e le Blockchain API le faʻaogaina o le poloka poloka poloka, e pei o le mauaina o le maualuga o le poloka o loʻo i ai nei, ae o le Block API e lagolagoina le faʻaogaina o poloka poloka, e pei o le fesiligia o le numera o fefaʻatauaiga mo se poloka tuʻuina atu.

Tatou amata!

Muamua, fai se konekarate fou i totonu SmartXona mulimuli lea i faatonuga o loo i lalo.

1. Faʻafefea ona faʻaoga Blockchain API

So'oga i galuega fa'akonekarate atamai e tutusa lelei ma feso'ota'iga Python. E mafai ona e ulufale i galuega talafeagai pe a manaʻomia. Mo se faʻataʻitaʻiga, o le faʻamatalaga o loʻo i lalo o loʻo faʻaalia ai se galuega GetHeight e maua ai le maualuga o le poloka o loʻo i ai nei, ma se galuega GetHeader e maua ai le ulutala o le poloka.

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

GetHeight

GetHeight e faʻaaogaina e maua ai le numera faʻasologa o poloka mulimuli i le poloka poloka, e pei ona faʻaalia i le faʻataʻitaʻiga o loʻo i lalo. I le faʻataʻitaʻiga mulimuli, o le a matou aveese le galuega Autu mo le faʻaogagofie, ae mafai ona e faʻaopopo pe a manaʻomia.

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 e faʻaaogaina e maua ai le ulutala poloka, o le parakalafa o le numera faʻasologa o le poloka i le poloka poloka. Faataitaiga:

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 e faʻaaogaina e maua ai se fefaʻatauaiga e ala i se faʻatauga faʻatau. Ua lafo le hash o fefa'atauaiga i GetTransactionByHash e fai ma tapula'a i le faatulagaga bytearray. O le ki i lenei galuega o le fa'aliliuina lea o le fefa'ataua'iga hash i le hex format i le transaction hash i le bytearray format. O se laasaga taua lea. A leai, e te maua se mea sese e taʻu mai ai e leai se poloka i lena poloka poloka. Se'i o tatou ave le fa'atauga o le hash i le hex format e fai ma fa'ata'ita'iga e fa'aliliu i le bytearray format. O se faʻataʻitaʻiga e pei o lenei:

9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1

Muamua, fesuia'i le hash fefa'ataua'iga:

c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279

E mafai e le au atiaʻe ona faʻataunuʻuina lenei laasaga e faʻaaoga ai le Hex Numera (laititi endian) Numera faʻaliliu meafaigaluega na saunia e SmartX.

Ona liliu lea o le taunuuga i le bytearray format:

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

E mafai ona faia lenei mea i le faʻaaogaina o le String Byte Array conversion tool na saunia e SmartX. Mulimuli ane, liliu le bytearray e maua i se manoa tutusa:

xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f

O se fa'ata'ita'iga lea o le galuega GetTransactionByHash, lea e mana'omia ai se fefa'ataua'iga e fa'aaoga ai le hash o le fefa'atauaiga:

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 e faʻaaogaina e maua ai le maualuga o fefaʻatauaiga e ala i le hash fefaʻatauaiga. Sei o tatou ave le hash mai le faʻataʻitaʻiga i luga:

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

Maua Konekarate

E mafai e tagata atiaʻe ona faʻaogaina le galuega GetContract e maua ai se konekarate e ala i le hash o le konekarate. O le fa'agasologa o le fa'aliliuina o le hash fa'akonekarate e tutusa ma le fa'agasologa o le fa'aliliuina o le hash fefa'ataua'iga o lo'o ta'ua i luga.

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 e faʻaaogaina e maua ai se poloka. E lua auala e maua ai se poloka patino.

1. Maua poloka ma poloka maualuga:

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

2. Maua se poloka ma lea poloka hash:

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

2. Fa'afefea ona fa'aoga Block API

E tolu avanoa avanoa ile Block API: GetTransactions, GetTransactionCountma GetTransactionByIndex. O le a tatou talepeina taitasi i lalo.

GetTransactionCount

GetTransactionCount e faʻaaogaina e maua ai le numera o fefaʻatauaiga mo se poloka tuʻuina atu.

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

E mafai e tagata atiaʻe ona faʻaogaina le galuega GetTransactions e maua uma ai fefaʻatauaiga i totonu o se poloka tuʻuina atu.

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 e faʻaaogaina e maua ai se fefaʻatauaiga patino i totonu o se poloka tuʻuina atu.

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

E mafai ona maua se ta'iala atoatoa ile matou GitHub.

Taofi upu

O le Blockchain & Block API o se vaega taua o konekarate atamai e mafai ona e faʻaogaina e talosagaina faʻamaumauga poloka poloka ma poloka faʻamaumauga i konekarate atamai. I tala i le lumanaʻi, o le a tatou talanoaina pe faʻapefea ona faʻaogaina isi vaega o API ma suʻe pe faʻafefea ona latou fegalegaleai ma le Ontology blockchain.

O le tala na faaliliuina e faatonu o Hashrate&Shares aemaise lava mo OntologyRussia. tagi

O oe ose tagata fa'atupuina? Auai i le matou tech community i Faʻasalaga. E le gata i lea, va'ai i Nofoaga Atina'e i luga o la matou 'upega tafaʻilagi, lea e mafai ona e mauaina ai meafaigaluega faʻapitoa, faʻamaumauga, ma isi mea.

Faʻamatalaga

puna: www.habr.com

Faaopoopo i ai se faamatalaga