ඔන්ටොලොජි ජාලයේ පයිතන් හි ස්මාර්ට් කොන්ත්‍රාත්තුවක් ලියන්නේ කෙසේද. 3 කොටස: ධාවන කාල API

ඔන්ටොලොජි ජාලයේ පයිතන් හි ස්මාර්ට් කොන්ත්‍රාත්තුවක් ලියන්නේ කෙසේද. 3 කොටස: ධාවන කාල API

ඔන්ටොලොජි බ්ලොක්චේන් ජාලයේ පයිතන් හි ස්මාර්ට් කොන්ත්‍රාත්තු නිර්මාණය කිරීම පිළිබඳ අධ්‍යාපනික ලිපි මාලාවේ 3 වන කොටසයි මේ. කලින් ලිපි වලින් අපි දැන හඳුනා ගත්තා

  1. Blockchain සහ Block API
  2. ගබඩා API.

ඔන්ටොලොජි ජාලයේ පයිතන් භාවිතයෙන් ස්මාර්ට් කොන්ත්‍රාත්තුවක් සංවර්ධනය කිරීමේදී සුදුසු ස්ථායී ගබඩා API අමතන්නේ කෙසේදැයි දැන් ඔබට අදහසක් ඇති බැවින්, අපි භාවිතා කරන ආකාරය ඉගෙන ගැනීමට ඉදිරියට යමු ධාවන කාල API (කොන්ත්‍රාත් ක්‍රියාත්මක කිරීමේ API). කොන්ත්‍රාත්තු ක්‍රියාත්මක කිරීම සඳහා පොදු අතුරුමුහුණත් සපයන සහ දත්ත ලබා ගැනීමට, පරිවර්තනය කිරීමට සහ වලංගු කිරීමට සංවර්ධකයන්ට උපකාර වන සම්බන්ධිත API 8ක් Runtime API සතුව ඇත.

පහත දැක්වෙන්නේ 8 API දත්ත පිළිබඳ කෙටි විස්තරයකි:

ඔන්ටොලොජි ජාලයේ පයිතන් හි ස්මාර්ට් කොන්ත්‍රාත්තුවක් ලියන්නේ කෙසේද. 3 කොටස: ධාවන කාල API

8 API දත්ත භාවිතා කරන්නේ කෙසේදැයි අපි සමීපව බලමු. මෙයට පෙර, ඔබට ඔන්ටොලොජි ස්මාර්ට් කොන්ත්‍රාත් සංවර්ධන මෙවලම තුළ නව කොන්ත්‍රාත්තුවක් සෑදිය හැක SmartX සහ පහත උපදෙස් අනුගමනය කරන්න.

Runtime API භාවිතා කරන්නේ කෙසේද

ආනයනය කිරීමට ක්රම දෙකක් තිබේ Runtime API: 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 දැනුම් දෙන්න

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 සහ Deserialize

මෙය අනුක්‍රමික සහ deserialization ශ්‍රිත යුගලයකි. 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) ශ්‍රිතයට ක්‍රියාකාරීත්ව දෙකක් ඇත:

  • වත්මන් ශ්‍රිතයේ ඇමතුම්කරු Acct වෙතින් දැයි තහවුරු කරන්න. ඔව් නම් (එනම්, අත්සන සත්‍යාපනය සම්මත කර ඇත), ශ්‍රිතය නැවත පැමිණේ.
  • වත්මන් ශ්‍රිතය අමතන වස්තුව ගිවිසුමක් දැයි පරීක්ෂා කරන්න. එය කොන්ත්රාත්තුවක් නම් සහ කොන්ත්රාත්තුවෙන් කාර්යය ක්රියාත්මක වන්නේ නම්, සත්යාපනය සම්මත වේ. එනම්, GetCallingScriptHash() හි ප්‍රතිලාභ අගය fromAct දැයි තහවුරු කරන්න. 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ඔන්ටොලොජි ස්මාර්ට් කොන්ත්‍රාත්තු තුළ වත්කම් මාරු කරන්නේ කෙසේදැයි ඉගෙන ගැනීමට.

ලිපිය සංස්කාරකවරුන් විසින් පරිවර්තනය කරන ලදී Hashrate&Shares විශේෂයෙන්ම ඔන්ටොලොජි රුසියාව සඳහා.

ඔබ සංවර්ධකයෙක්ද? අපගේ තාක්ෂණික ප්‍රජාවට සම්බන්ධ වන්න විකාරයක්. එසේම, බලන්න සංවර්ධක මධ්යස්ථානය ඔන්ටොලොජි, ඔබට තවත් මෙවලම්, ලියකියවිලි සහ තවත් බොහෝ දේ එහි සොයාගත හැකිය.

සංවර්ධකයින් සඳහා විවෘත කාර්යයන්. කාර්යය සම්පූර්ණ කර ත්‍යාගයක් ලබා ගන්න.

අයදුම් කරන්න සිසුන් සඳහා ඔන්ටොලොජි කුසලතා වැඩසටහන සඳහා

ඕටොවිද්යාව

ඔන්ටොලොජි වෙබ් අඩවිය - GitHub - විකාරයක් - ටෙලිග්‍රාම් රුසියානු - ට්විටර් - Reddit

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න