በኦንቶሎጂ አውታረመረብ ላይ በ Python ውስጥ ብልጥ ውል እንዴት እንደሚፃፍ። ክፍል 3፡ Runtime API

በኦንቶሎጂ አውታረመረብ ላይ በ Python ውስጥ ብልጥ ውል እንዴት እንደሚፃፍ። ክፍል 3፡ Runtime API

በኦንቶሎጂ blockchain አውታረመረብ ላይ በ Python ውስጥ ብልጥ ኮንትራቶችን ስለመፍጠር በተከታታይ ትምህርታዊ መጣጥፎች ውስጥ ይህ 3ኛው ክፍል ነው። በቀደሙት ጽሁፎች ተዋወቅን።

  1. Blockchain እና አግድ API
  2. ማከማቻ ኤፒአይ.

አሁን ፒቲንን በኦንቶሎጂ አውታረመረብ ላይ በመጠቀም ብልጥ ውል ሲያዘጋጁ ተገቢውን የቋሚ ማከማቻ ኤፒአይ እንዴት እንደሚደውሉ ሀሳብ ስላሎት፣ እንዴት መጠቀም እንዳለቦት ወደ መማር እንሂድ። የአሂድ ጊዜ ኤፒአይ (የኮንትራት አፈጻጸም ኤፒአይ)። የአሂድ ጊዜ ኤፒአይ ለኮንትራት ማስፈጸሚያ የጋራ በይነገጾች የሚያቀርቡ እና ገንቢዎች ውሂብ እንዲያነሱ፣ እንዲቀይሩ እና እንዲያረጋግጡ የሚያግዙ 8 ተዛማጅ ኤፒአይዎች አሉት።

ከዚህ በታች የ8 API ውሂብ አጭር መግለጫ አለ፡-

በኦንቶሎጂ አውታረመረብ ላይ በ Python ውስጥ ብልጥ ውል እንዴት እንደሚፃፍ። ክፍል 3፡ Runtime API

የ8 ኤፒአይ መረጃን እንዴት መጠቀም እንዳለብን በዝርዝር እንመልከት። ከዚህ በፊት በኦንቶሎጂ ስማርት ኮንትራት ልማት መሳሪያ ውስጥ አዲስ ውል መፍጠር ይችላሉ። SmartX እና ከታች ያሉትን መመሪያዎች ይከተሉ.

Runtime API እንዴት መጠቀም እንደሚቻል

የማስመጣት ሁለት መንገዶች አሉ። የአሂድ ጊዜ ኤፒአይ፡ ontology.interop.System.Runtime и ontology.interop.ኦንቶሎጂ.የሩጫ ጊዜ. የኦንቶሎጂ ዱካ አዲስ የተጨመሩትን ኤፒአይዎችን ይዟል። ከዚህ በታች ያሉት መስመሮች የኤፒአይ ውሂብን ያስመጡታል።

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

ኤፒአይ አሳውቅ

የማሳወቂያ ተግባር ክስተቱን በመላው አውታረመረብ ያሰራጫል። ከታች ባለው ምሳሌ የማሳወቂያ ተግባር የሄክስ ሕብረቁምፊውን "ሄሎ ቃል" ይመልሳል እና በአውታረ መረቡ ውስጥ ያሰራጫል.

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

ይህንን በምዝግብ ማስታወሻዎች ውስጥ ማየት ይችላሉ-

በኦንቶሎጂ አውታረመረብ ላይ በ Python ውስጥ ብልጥ ውል እንዴት እንደሚፃፍ። ክፍል 3፡ Runtime API

GetTime ኤፒአይ

የ GetTime ተግባር የአሁኑን የጊዜ ማህተም ይመልሳል፣ ይህም ተግባሩ የተጠራበትን የዩኒክስ ጊዜ ይመልሳል። የመለኪያ አሃድ ሁለተኛ ነው.

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

GetCurrentBlockHash ኤፒአይ

የ GetCurrentBlockHash ተግባር የአሁኑን ብሎክ ሃሽ ይመልሳል።

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

ተከታታይ ማድረግ እና መሰረዝ

ይህ ጥንድ ተከታታይ እና የዲሴሪያላይዜሽን ተግባራት ናቸው. የሴሪያላይዝ ተግባር አንድን ነገር ወደ ባይተራይ ነገር ይለውጠዋል፣ እና የ Deserialize ተግባር ባይተarrayን ወደ ዋናው ነገር ይለውጠዋል። ከዚህ በታች ያለው የኮድ ናሙና ገቢ መለኪያዎችን ይለውጣል እና በውሉ ቋሚ ማከማቻ ውስጥ ያከማቻል። እንዲሁም ከኮንትራቱ ቋሚ ማከማቻ መረጃን ሰርስሮ ወደ ዋናው ነገር ይለውጠዋል።

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

Base58ለአድራሻ እና አድራሻ ወደ ቤዝ58

ይህ ጥንድ የአድራሻ ትርጉም ተግባራት። የBase58ToAddress ተግባር ቤዝ58 ኢንኮድ የተደረገ አድራሻን ወደ ባይተራራይ አድራሻ ይለውጣል፣ እና AddressToBase58 bytearray አድራሻን ወደ ቤዝ58 ኢንኮድ አድራሻ ይቀይራል።

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)

ምስክርን አረጋግጥ

የCheckWitness(fromAcct) ተግባር ሁለት ተግባራት አሉት፡-

  • የአሁኑ ተግባር ደዋይ ከAcct መሆኑን ያረጋግጡ። አዎ ከሆነ (ይህም የፊርማ ማረጋገጫ አልፏል) ተግባሩ ይመለሳል።
  • የአሁኑን ተግባር የሚጠራው ዕቃ ውል መሆኑን ያረጋግጡ። ውል ከሆነ እና ተግባሩ ከውሉ ላይ ከተፈፀመ, ማረጋገጫው አልፏል. ማለትም ከAcct የ GetCallingScriptHash() መመለሻ ዋጋ መሆኑን ያረጋግጡ። የጌት ካሊንግ ስክሪፕት ሃሽ() ተግባር የአሁኑን ዘመናዊ ውል የውል ሃሽ ዋጋ ሊወስድ ይችላል።

GetCallingScriptHash()፡

የበለጠ ያንብቡ ጉቱብ

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

ተጨማሪ መረጃ በ ላይ ይገኛል። ጉቱብ. በሚቀጥለው ርዕስ ውስጥ እናስተዋውቃለን ቤተኛ ኤፒአይበኦንቶሎጂ ብልጥ ኮንትራቶች ውስጥ ንብረቶችን እንዴት ማስተላለፍ እንደሚቻል ለማወቅ።

ጽሑፉ በአዘጋጆቹ ተተርጉሟል Hashrate& ማጋራቶች በተለይ ለኦንቶሎጂ ሩሲያ.

ገንቢ ነህ? የእኛን የቴክኖሎጂ ማህበረሰብ በ ላይ ይቀላቀሉ ክርክር. በተጨማሪም, ይመልከቱ የገንቢ ማዕከል ኦንቶሎጂ ለተጨማሪ መሳሪያዎች፣ ሰነዶች እና ሌሎችም።

ተግባሮችን ለገንቢዎች ይክፈቱ። ስራውን ይዝጉ - ሽልማት ያግኙ.

ተግብር ለተማሪዎች የኦንቶሎጂ ተሰጥኦ ፕሮግራም

ተዋረዳዊ

የኦንቶሎጂ ድር ጣቢያ - የፊልሙ - ክርክር - ቴሌግራም ሩሲያኛ - Twitter - Reddit

ምንጭ: hab.com

አስተያየት ያክሉ