ఒంటాలజీ నెట్‌వర్క్‌లో పైథాన్‌లో స్మార్ట్ ఒప్పందాన్ని ఎలా వ్రాయాలి. పార్ట్ 3: రన్‌టైమ్ API

ఒంటాలజీ నెట్‌వర్క్‌లో పైథాన్‌లో స్మార్ట్ ఒప్పందాన్ని ఎలా వ్రాయాలి. పార్ట్ 3: రన్‌టైమ్ API

ఒంటాలజీ బ్లాక్‌చెయిన్ నెట్‌వర్క్‌లో పైథాన్‌లో స్మార్ట్ కాంట్రాక్టులను రూపొందించడంపై విద్యా కథనాల శ్రేణిలో ఇది 3వ భాగం. మునుపటి వ్యాసాలలో మనకు పరిచయం ఏర్పడింది

  1. బ్లాక్‌చెయిన్ & బ్లాక్ API
  2. నిల్వ API.

ఒంటాలజీ నెట్‌వర్క్‌లో పైథాన్‌ని ఉపయోగించి స్మార్ట్ కాంట్రాక్ట్‌ను అభివృద్ధి చేస్తున్నప్పుడు తగిన పెర్సిస్టెంట్ స్టోరేజ్ APIని ఎలా కాల్ చేయాలనే ఆలోచన మీకు ఇప్పుడు ఉంది, ఎలా ఉపయోగించాలో నేర్చుకుందాం రన్‌టైమ్ API (కాంట్రాక్ట్ ఎగ్జిక్యూషన్ API). రన్‌టైమ్ API 8 సంబంధిత APIలను కలిగి ఉంది, ఇవి కాంట్రాక్ట్ అమలు కోసం సాధారణ ఇంటర్‌ఫేస్‌లను అందిస్తాయి మరియు డెవలపర్‌లు డేటాను తిరిగి పొందడం, మార్చడం మరియు ధృవీకరించడంలో సహాయపడతాయి.

క్రింద 8 API డేటా యొక్క సంక్షిప్త వివరణ ఉంది:

ఒంటాలజీ నెట్‌వర్క్‌లో పైథాన్‌లో స్మార్ట్ ఒప్పందాన్ని ఎలా వ్రాయాలి. పార్ట్ 3: రన్‌టైమ్ API

8 API డేటాను ఎలా ఉపయోగించాలో నిశితంగా పరిశీలిద్దాం. దీనికి ముందు, మీరు ఒంటాలజీ స్మార్ట్ కాంట్రాక్ట్ డెవలప్‌మెంట్ టూల్‌లో కొత్త ఒప్పందాన్ని సృష్టించవచ్చు SmartX మరియు క్రింది సూచనలను అనుసరించండి.

రన్‌టైమ్ APIని ఎలా ఉపయోగించాలి

దిగుమతి చేసుకోవడానికి రెండు మార్గాలు ఉన్నాయి రన్‌టైమ్ API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. ఒంటాలజీ మార్గం కొత్తగా జోడించిన 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")

మీరు దీన్ని లాగ్‌లలో చూడవచ్చు:

ఒంటాలజీ నెట్‌వర్క్‌లో పైథాన్‌లో స్మార్ట్ ఒప్పందాన్ని ఎలా వ్రాయాలి. పార్ట్ 3: రన్‌టైమ్ API

GetTime API

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

సీరియలైజ్ మరియు డీసీరియలైజ్ చేయండి

ఇది సీరియలైజేషన్ మరియు డీరియలైజేషన్ ఫంక్షన్‌ల జత. సీరియలైజ్ ఫంక్షన్ ఆబ్జెక్ట్‌ను బైటియర్‌రే ఆబ్జెక్ట్‌గా మారుస్తుంది మరియు డీసెరియలైజ్ ఫంక్షన్ బైటీర్రేని ఒరిజినల్ ఆబ్జెక్ట్‌గా మారుస్తుంది. దిగువ కోడ్ నమూనా ఇన్‌కమింగ్ పారామితులను మారుస్తుంది మరియు వాటిని కాంట్రాక్ట్ యొక్క నిరంతర నిల్వలో నిల్వ చేస్తుంది. ఇది ఒప్పందం యొక్క నిరంతర నిల్వ నుండి డేటాను కూడా తిరిగి పొందుతుంది మరియు దానిని అసలు వస్తువుగా మారుస్తుంది.

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) ఫంక్షన్ రెండు కార్యాచరణలను కలిగి ఉంది:

  • ప్రస్తుత ఫంక్షన్ యొక్క కాలర్ Acct నుండి వచ్చారో లేదో ధృవీకరించండి. అవును అయితే (అంటే, సంతకం ధృవీకరణ ఆమోదించబడింది), ఫంక్షన్ తిరిగి వస్తుంది.
  • ప్రస్తుత ఫంక్షన్‌కు కాల్ చేస్తున్న ఆబ్జెక్ట్ ఒప్పందమేనా అని తనిఖీ చేయండి. ఇది ఒప్పందం మరియు ఫంక్షన్ ఒప్పందం నుండి అమలు చేయబడితే, ధృవీకరణ ఆమోదించబడుతుంది. అంటే, 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ఒంటాలజీ స్మార్ట్ కాంట్రాక్టులలో ఆస్తులను ఎలా బదిలీ చేయాలో తెలుసుకోవడానికి.

వ్యాసాన్ని సంపాదకులు అనువదించారు హాష్రేట్&షేర్లు ముఖ్యంగా ఒంటాలజీ రష్యా కోసం.

మీరు డెవలపర్‌లా? మా సాంకేతిక సంఘంలో చేరండి అసమ్మతి. అలాగే, పరిశీలించండి డెవలపర్ సెంటర్ ఒంటాలజీ, మీరు అక్కడ మరిన్ని సాధనాలు, డాక్యుమెంటేషన్ మరియు మరిన్నింటిని కనుగొనవచ్చు.

డెవలపర్‌ల కోసం టాస్క్‌లను తెరవండి. పనిని పూర్తి చేయండి మరియు బహుమతిని పొందండి.

వర్తించు విద్యార్థుల కోసం ఒంటాలజీ టాలెంట్ ప్రోగ్రామ్ కోసం

అస్తిత్వం

ఒంటాలజీ వెబ్‌సైట్ - గ్యాలరీలు - అసమ్మతి - టెలిగ్రామ్ రష్యన్ - Twitter - Reddit

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి