دا د اونټولوژي بلاکچین شبکه کې په پایتون کې د سمارټ قراردادونو رامینځته کولو په اړه د تعلیمي مقالو لړۍ کې دریمه برخه ده. په تیرو مقالو کې موږ ورسره اشنا شو
اوس چې تاسو د دې په اړه نظر لرئ چې څنګه مناسب دوامداره ذخیره API ته زنګ ووهئ کله چې د اونټولوژي شبکه کې د Python په کارولو سره سمارټ قرارداد رامینځته کړئ ، راځئ چې د کارولو څرنګوالي زده کولو ته لاړ شو. د چلولو وخت API (د تړون اجرا کولو API). د Runtime API 8 اړوند APIs لري چې د قرارداد اجرا کولو لپاره عام انٹرفیسونه چمتو کوي او پراختیا کونکو سره مرسته کوي چې ډاټا بیرته ترلاسه کړي، بدل کړي، او اعتبار وکړي.
لاندې د 8 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")
تاسو کولی شئ دا په لاګونو کې وګورئ:
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
نور معلومات په کې موندل کیدی شي
مقاله د مدیرانو لخوا ژباړل شوې
حشرات او شریکول په ځانګړې توګه د اونټولوژي روسیه لپاره.
ایا تاسو پرمخ وړونکی یاست؟ زموږ د تخنیکي ټولنې سره یوځای شئ
انټولوژی
سرچینه: www.habr.com