Sida loo qoro qandaraas caqli gal ah Python shabakadda Ontology. Qeybta 3: Runtime API

Sida loo qoro qandaraas caqli gal ah Python shabakadda Ontology. Qeybta 3: Runtime API

Tani waa qaybtii 3aad ee taxane maqaallo waxbarasho ah oo ku saabsan abuurista qandaraasyo caqli gal ah Python ee shabakadda xannibaadda Ontology. Maqaallo hore ayaan isku barannay

  1. Blockchain & Block API
  2. Kaydinta API.

Hadda oo aad haysatid fikrad ah sida loogu yeero API kaydinta joogtada ah ee ku habboon marka la samaynayo qandaraas caqli-gal ah adoo isticmaalaya Python shabakadda Ontology, aynu u gudubno barashada sida loo isticmaalo Runtime API (Contract Execution API). Runtime API waxa ay leedahay 8 APIs oo la xidhiidha kuwaas oo bixiya is dhexgalyo guud oo lagu fulinayo qandaraaska oo caawiya horumariyayaasha soo saarista, beddelka, iyo xaqiijinta xogta.

Hoos waxaa ah sharraxaad kooban oo ah xogta 8 API:

Sida loo qoro qandaraas caqli gal ah Python shabakadda Ontology. Qeybta 3: Runtime API

Aan si dhow u eegno sida loo isticmaalo xogta API 8. Taas ka hor, waxaad ku abuuri kartaa qandaraas cusub aaladda horumarinta qandaraaska caqliga leh ee Ontology SmartX oo raac tilmaamaha hoose.

Sida loo isticmaalo Runtime API

Waxaa jira laba siyaabood oo loo soo dejiyo Runtime API: ontology.interop.System.Runtime ΠΈ ontology.interop.Ontology.Otology.Runtime. Jidka Ontology wuxuu ka kooban yahay API-yada cusub ee lagu daray. Khadadka hoose waxay soo dejiyaan xogta API

from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash

Ogeysii API

Shaqada Ogeysiisku waxay baahisaa dhacdada shabakada oo dhan. Tusaalaha hoose, shaqada Ogeysiinta ayaa soo celin doonta xargaha hex "hello word" oo ku baahin doona shabakada oo dhan.

from ontology.interop.System.Runtime import Notify
def demo():
    Notify("hello world")

Tan waxaad ku arki kartaa diiwaanka:

Sida loo qoro qandaraas caqli gal ah Python shabakadda Ontology. Qeybta 3: Runtime API

GetTime API

Shaqada GetTime waxay soo celisaa shaambada wakhtiga hadda jirta, taasoo soo celisa wakhtiga Unix ee shaqada loogu yeedhay. Halbeegga cabbirku waa labaad.

from ontology.interop.System.Runtime import GetTime
def demo():
    time=GetTime()
    return time # return a uint num

GetCurrentBlockHash API

Shaqada GetCurrentBlockHash waxay soo celisaa xashiishka xannibaadda hadda jirta.

from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
    block_hash = GetCurrentBlockHash()
    return block_hash

Serialize and Deserialize

Tani waa lamaane ka mid ah hawlaha serialization iyo deserialization. Shaqada Serialize waxay shay u beddeshaa shay aan caadi ahayn, shaqada Deserialize waxay u beddeshaa bytearray shayga asalka ah. Tusaalaha koodka hoose waxa uu beddelaa cabbirrada soo socda oo ku kaydiya kaydinta joogtada ah ee heshiiska. Waxa kale oo ay ka soo saartaa xogta kaydinta joogtada ah ee qandaraaska oo ay u beddesho shaygii asalka ahaa.

from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.System.Storage import Put, Get, GetContext

def Main(operation, args):
    if operation == 'serialize_to_bytearray':
        data = args[0]
        return serialize_to_bytearray(data)
    if operation == 'deserialize_from_bytearray':
        key = args[0]
        return deserialize_from_bytearray(key)
    return False


def serialize_to_bytearray(data):
    sc = GetContext()
    key = "1"
    byte_data = Serialize(data)
    Put(sc, key, byte_data)


def deserialize_from_bytearray(key):
    sc = GetContext()
    byte_data = Get(sc, key)
    data = Deserialize(byte_data)
    return data

Base58Cinwaanka iyo CiwaankaToBase58

Labadan lamaane ee turjumaada ciwaanka Shaqada Base58ToAddress waxay u beddeshaa ciwaanka base58 ku lifaaqan una beddelaa ciwaanka bytearray, iyo AddressToBase58 waxay u beddeshaa ciwaanka bytearray ciwaanka saldhiga58.

from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58
def demo():
    base58_addr="AV1GLfVzw28vtK3d1kVGxv5xuWU59P6Sgn"
    addr=Base58ToAddress(base58_addr)
    Log(addr)
    base58_addr=AddressToBase58(addr)
    Log(base58_addr)

Hubi Markhaati

Shaqada CheckWitness(fromAcct) waxay leedahay laba hawlood:

  • Xaqiiji haddii soo wacaha shaqada hadda uu ka yimidAcct. Hadday haa tahay (taasi waa, xaqiijinta saxeexa way dhaaftay), shaqadu way soo noqonaysaa.
  • Hubi in shayga wacaya shaqada hadda uu yahay qandaraas. Haddii ay tahay qandaraas oo shaqada laga fuliyo heshiiska, markaa xaqiijinta waa la dhaafaa. Taasi waa, xaqiiji haddii fromAcct tahay qiimaha soo celinta GetCallingScriptHash(). Shaqada GetCallingScriptHash() waxay qaadan kartaa qiimaha xashiishka qandaraaska ee qandaraaska smart ee hadda jira.

HelCallingScriptHash()

Wax badan ka sii akhri Guthub

from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
    addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
    res=CheckWitness(addr)
    return res

Macluumaad dheeraad ah ayaa laga heli karaa Guthub. Maqaalka xiga waxaan ku soo bandhigi doonaa Native APIsi aad u barato sida loo wareejiyo hantida Ontology smart contracts.

Maqaalka waxaa turjumay tafatirayaasha Hashrate&Shares gaar ahaan Ontology-ga Ruushka.

Ma tahay horumariye? Ku soo biir bulshadayada farsamada khilaaf. Sidoo kale, fiiri Xarunta Horumarinta Ontology, waxaad ka heli kartaa qalab badan, dukumeenti iyo wax badan oo kale halkaas.

U fur hawlaha horumariyayaal. Dhammaystir hawsha oo hel abaalmarin.

Codso ee barnaamijka hibada Ontology ee ardayda

Ontology

Mareegta Ontology - GitHub - khilaaf - Telegram English - Twitter - Reddit

Source: www.habr.com

Add a comment