ஆன்டாலஜி நெட்வொர்க்கில் பைத்தானில் ஸ்மார்ட் ஒப்பந்தத்தை எழுதுவது எப்படி. பகுதி 3: இயக்க நேர API

ஆன்டாலஜி நெட்வொர்க்கில் பைத்தானில் ஸ்மார்ட் ஒப்பந்தத்தை எழுதுவது எப்படி. பகுதி 3: இயக்க நேர API

ஆன்டாலஜி பிளாக்செயின் நெட்வொர்க்கில் பைத்தானில் ஸ்மார்ட் ஒப்பந்தங்களை உருவாக்குவது குறித்த கல்விக் கட்டுரைகளின் தொடரின் 3வது பகுதி இது. முந்தைய கட்டுரைகளில் நாம் பழகினோம்

  1. Blockchain & Block API
  2. சேமிப்பக API.

ஆன்டாலஜி நெட்வொர்க்கில் பைத்தானைப் பயன்படுத்தி ஸ்மார்ட் ஒப்பந்தத்தை உருவாக்கும் போது, ​​பொருத்தமான நிலையான சேமிப்பக API ஐ எவ்வாறு அழைப்பது என்பது பற்றிய யோசனை உங்களுக்கு இப்போது உள்ளது, எப்படி பயன்படுத்துவது என்பதைக் கற்றுக்கொள்வோம். இயக்க நேர API (ஒப்பந்த நிறைவேற்ற ஏபிஐ). Runtime 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

ஏபிஐக்கு தெரிவிக்கவும்

Notify செயல்பாடு நெட்வொர்க் முழுவதும் நிகழ்வை ஒளிபரப்புகிறது. கீழே உள்ள எடுத்துக்காட்டில், Notify செயல்பாடு ஹெக்ஸ் சரத்தை "ஹலோ வேர்ட்" திருப்பி நெட்வொர்க் முழுவதும் ஒளிபரப்பும்.

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

சீரியல் மற்றும் சீரியலைஸ்

இது ஒரு ஜோடி சீரியலைசேஷன் மற்றும் டீரியலைசேஷன் செயல்பாடுகள். Serialize செயல்பாடு ஒரு பொருளை bytearray பொருளாக மாற்றுகிறது, Deserialize செயல்பாடு ஒரு bytearrayயை அசல் பொருளாக மாற்றுகிறது. கீழே உள்ள குறியீடு மாதிரி உள்வரும் அளவுருக்களை மாற்றி ஒப்பந்தத்தின் நிலையான சேமிப்பகத்தில் சேமிக்கிறது. இது ஒப்பந்தத்தின் நிலையான சேமிப்பகத்திலிருந்து தரவை மீட்டெடுக்கிறது மற்றும் அதை அசல் பொருளாக மாற்றுகிறது.

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 குறியிடப்பட்ட முகவரியை bytearray முகவரியாக மாற்றுகிறது, மேலும் AddressToBase58 bytearray முகவரியை 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) செயல்பாடு இரண்டு செயல்பாடுகளைக் கொண்டுள்ளது:

  • தற்போதைய செயல்பாட்டின் அழைப்பாளர் ஆக்சிட்டிலிருந்து வந்தவரா என்பதைச் சரிபார்க்கவும். ஆம் எனில் (அதாவது, கையொப்ப சரிபார்ப்பு நிறைவேற்றப்பட்டது), செயல்பாடு திரும்பும்.
  • தற்போதைய செயல்பாட்டை அழைக்கும் பொருள் ஒரு ஒப்பந்தமா என்பதைச் சரிபார்க்கவும். இது ஒரு ஒப்பந்தம் மற்றும் செயல்பாடு ஒப்பந்தத்தில் இருந்து செயல்படுத்தப்பட்டால், சரிபார்ப்பு நிறைவேற்றப்படுகிறது. அதாவது, 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ஒன்டாலஜி ஸ்மார்ட் ஒப்பந்தங்களில் சொத்துக்களை எவ்வாறு மாற்றுவது என்பதை அறிய.

கட்டுரை ஆசிரியர்களால் மொழிபெயர்க்கப்பட்டது ஹாஷ்ரேட்&பங்குகள் குறிப்பாக ஒன்டாலஜி ரஷ்யாவிற்கு.

நீங்கள் ஒரு டெவலப்பரா? எங்கள் தொழில்நுட்ப சமூகத்தில் சேரவும் கூறின. மேலும், பாருங்கள் டெவலப்பர் மையம் ஆன்டாலஜி, நீங்கள் மேலும் கருவிகள், ஆவணங்கள் மற்றும் பலவற்றை அங்கு காணலாம்.

டெவலப்பர்களுக்கான பணிகளைத் திறக்கவும். பணியை முடித்து வெகுமதியைப் பெறுங்கள்.

விண்ணப்பிக்கவும் மாணவர்களுக்கான ஒன்டாலஜி திறமை திட்டத்திற்காக

ஆண்டாலஜி

ஆன்டாலஜி இணையதளம் - மகிழ்ச்சியா - கூறின - ரஷ்ய தந்தி - ட்விட்டர் - ரெட்டிட்டில்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்