Ин қисми 3-юми як қатор мақолаҳои таълимӣ оид ба эҷоди шартномаҳои интеллектуалӣ дар Python дар шабакаи blockchain Ontology мебошад. Дар мақолаҳои қаблӣ мо бо он шинос шуда будем
Акнун, ки шумо тасаввуроте доред, ки чӣ гуна API-и мувофиқи нигаҳдории доимиро ҳангоми таҳияи шартномаи интеллектуалӣ бо истифода аз Python дар шабакаи Ontology даъват кунед, биёед ба омӯзиши тарзи истифода гузарем. API-и вақти корӣ (API иҷроиши шартнома). Runtime API дорои 8 API-и алоқаманд аст, ки интерфейсҳои умумиро барои иҷрои шартнома таъмин мекунанд ва ба таҳиягарон дар ҷустуҷӯ, табдил додан ва тасдиқи маълумот кӯмак мекунанд.
Дар зер тавсифи мухтасари маълумоти API 8 оварда шудааст:
Биёед дида бароем, ки чӣ тавр истифода бурдани маълумоти 8 API. Пеш аз ин, шумо метавонед дар асбоби таҳияи шартномаи интеллектуалии Ontology шартномаи нав созед
Чӣ тавр истифода бурдани API Runtime
Ду роҳи воридот вуҷуд дорад API Runtime: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Роҳи Ontology дорои API-ҳои нав иловашуда мебошад. Сатрҳои зер маълумоти 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
Функсияи GetTime тамғаи вақти ҷорӣро бармегардонад, ки вақти Unix-ро, ки дар он функсия даъват шуда буд, бармегардонад. Воҳиди ченак дуюм аст.
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
Сериализатсия ва ғайрисериясозӣ
Ин як ҷуфт функсияҳои сериализатсия ва ғайрисериализатсия мебошад. Функсияи Serialize объектро ба объекти байтӣ табдил медиҳад ва функсияи Deserialize -ро ба объекти аслӣ табдил медиҳад. Намунаи рамзи дар поён овардашуда параметрҳои воридшударо табдил медиҳад ва онҳоро дар нигаҳдории доимии шартнома нигоҳ медорад. Он инчунин маълумотро аз нигаҳдории доимии шартнома гирифта, онро ба объекти аслӣ табдил медиҳад.
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 суроғаи рамзгузоришудаи base58-ро ба суроғаи байтиаррей табдил медиҳад ва AddressToBase58 суроғаи байтиаррейро ба суроғаи рамзгузоришудаи base58 табдил медиҳад.
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 аст. Агар ҳа (яъне тафтиши имзо гузашт), функсия бармегардад.
- Санҷед, ки оё объекте, ки функсияи ҷорӣро даъват мекунад, шартнома аст. Агар он шартнома бошад ва вазифа аз шартнома иҷро шуда бошад, пас санҷиш гузаронида мешавад. Яъне, санҷед, ки оё fromAcct арзиши баргардонидани GetCallingScriptHash() аст. Функсияи GetCallingScriptHash() метавонад арзиши хэши шартномаи шартномаи интеллектуалии кунуниро бигирад.
GetCallingScriptHash():
More on
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 & Shares махсусан барои OntologyRussia.
Оё шумо таҳиягар ҳастед? Ба ҷомеаи техникии мо ҳамроҳ шавед
Ontology
Манбаъ: will.com