په اونټولوژي شبکه کې په پایتون کې د سمارټ قرارداد لیکلو څرنګوالی. دریمه برخه: د چلولو وخت API

په اونټولوژي شبکه کې په پایتون کې د سمارټ قرارداد لیکلو څرنګوالی. دریمه برخه: د چلولو وخت API

دا د اونټولوژي بلاکچین شبکه کې په پایتون کې د سمارټ قراردادونو رامینځته کولو په اړه د تعلیمي مقالو لړۍ کې دریمه برخه ده. په تیرو مقالو کې موږ ورسره اشنا شو

  1. بلاکچین او بلاک API
  2. د ذخیره کولو API.

اوس چې تاسو د دې په اړه نظر لرئ چې څنګه مناسب دوامداره ذخیره API ته زنګ ووهئ کله چې د اونټولوژي شبکه کې د Python په کارولو سره سمارټ قرارداد رامینځته کړئ ، راځئ چې د کارولو څرنګوالي زده کولو ته لاړ شو. د چلولو وخت API (د تړون اجرا کولو API). د Runtime API 8 اړوند APIs لري چې د قرارداد اجرا کولو لپاره عام انٹرفیسونه چمتو کوي او پراختیا کونکو سره مرسته کوي چې ډاټا بیرته ترلاسه کړي، بدل کړي، او اعتبار وکړي.

لاندې د 8 API ډیټا لنډ تفصیل دی:

په اونټولوژي شبکه کې په پایتون کې د سمارټ قرارداد لیکلو څرنګوالی. دریمه برخه: د چلولو وخت API

راځئ چې د 8 API ډاټا کارولو څرنګوالي ته نږدې کتنه وکړو. د دې دمخه ، تاسو کولی شئ د اونټولوژي سمارټ قرارداد پراختیا وسیلې کې نوی تړون رامینځته کړئ سمارټ ایکس او لاندې لارښوونې تعقیب کړئ.

د Runtime API کارولو څرنګوالی

د واردولو لپاره دوه لارې شتون لري د چلولو API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. د اونټولوژي لاره نوي اضافه شوي APIs لري. لاندې کرښې د API ډاټا واردوي.

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

د API خبرتیا

د خبرتیا فنکشن په ټوله شبکه کې پیښه خپروي. په لاندې مثال کې، د خبرتیا فنکشن به د هیکس تار "هیلو کلمه" بیرته راولي او په ټوله شبکه کې به یې خپور کړي.

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

تاسو کولی شئ دا په لاګونو کې وګورئ:

په اونټولوژي شبکه کې په پایتون کې د سمارټ قرارداد لیکلو څرنګوالی. دریمه برخه: د چلولو وخت API

GetTime API

د GetTime فنکشن اوسنی مهال ویش بیرته راګرځوي، کوم چې د یونکس وخت بیرته راګرځوي په کوم کې چې فنکشن ویل شوی و. د اندازه کولو واحد دوهم دی.

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

GetCurrentBlockHash API

د GetCurrentBlockHash فنکشن د اوسني بلاک هش بیرته راګرځوي.

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

سیریلائز او ډیسیریلائز کړئ

دا د سیریل کولو او ډیسیریل کولو دندو جوړه ده. د سیریلائز فنکشن یو څیز د بایټیرري څیز ته بدلوي ، او د ډیسیریلائز فنکشن یو بایټری اصلي څیز ته بدلوي. لاندې د کوډ نمونه راتلونکی پیرامیټونه بدلوي او د قرارداد په دوامداره ذخیره کې یې ذخیره کوي. دا د قرارداد د دوامداره ذخیره کولو څخه ډاټا هم ترلاسه کوي او اصلي شی ته یې بدلوي.

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

Base58ToAddress او AddressToBase58

دا جوړه د پتې ژباړې دندې ترسره کوي. د Base58ToAddress فنکشن د بیس 58 کوډ شوی پته د بایټری پتې ته بدلوي، او AddressToBase58 د بای ټیری پته په بیس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) فنکشن دوه فعالیت لري:

  • تصدیق کړئ چې ایا د اوسني فعالیت زنګ وهونکی د اکټ څخه دی. که هو (دا، د لاسلیک تایید تیریږي)، فنکشن بیرته راځي.
  • وګورئ چې ایا هغه شی چې اوسنی فعالیت غږوي یو تړون دی. که دا یو تړون وي او فعالیت د تړون څخه اجرا کیږي، نو بیا تایید کیږي. دا دی، تصدیق کړئ که fromAcct د GetCallingScriptHash() بیرته ستنیدو ارزښت دی. د 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

نور معلومات په کې موندل کیدی شي غوثب. په راتلونکې مقاله کې به یې معرفي کړو اصلي APIد اونټولوژي سمارټ قراردادونو کې د شتمنیو لیږدولو څرنګوالي زده کولو لپاره.

مقاله د مدیرانو لخوا ژباړل شوې حشرات او شریکول په ځانګړې توګه د اونټولوژي روسیه لپاره.

ایا تاسو پرمخ وړونکی یاست؟ زموږ د تخنیکي ټولنې سره یوځای شئ توپیر. همدارنګه، یو نظر وګورئ د پراختیا مرکز اونټولوژي، تاسو کولی شئ هلته نور وسایل، اسناد او نور ډیر څه ومومئ.

د پراختیا کونکو لپاره دندې خلاص کړئ. دنده بشپړه کړئ او انعام ترلاسه کړئ.

درخواست وکړئ د زده کونکو لپاره د اونټولوژي وړتیا برنامې لپاره

انټولوژی

د اونټولوژي ویب پاڼه - GitHub - توپیر - روسي ټیلیګرام - ټویټر - reddit

سرچینه: www.habr.com

Add a comment