آنٽولوجي نيٽ ورڪ تي پٿون ۾ سمارٽ معاهدو ڪيئن لکجي. حصو 1: بلاڪچين ۽ بلاڪ API

آنٽولوجي نيٽ ورڪ تي پٿون ۾ سمارٽ معاهدو ڪيئن لکجي. حصو 1: بلاڪچين ۽ بلاڪ API

هي پهريون حصو آهي تعليمي مضمونن جي سيريز جو هڪ سيريز ٺاهڻ تي سمارٽ ڪانٽريڪٽ ٺاهڻ تي پٿون ۾ آنٽولوجي بلاڪچين نيٽ ورڪ تي سمارٽ ڪانٽريڪٽ ڊولپمينٽ ٽول استعمال ڪندي SmartX.

هن آرٽيڪل ۾، اسان پنهنجي واقفيت شروع ڪنداسين آنٽولوجي سمارٽ ڪانٽريڪٽ API سان. آنٽولوجي سمارٽ ڪانٽريڪٽ API کي 7 ماڊلز ۾ ورهايو ويو آهي:

  1. Blockchain & Block API,
  2. رن ٽائم API
  3. اسٽوريج API
  4. اصلي API
  5. اپ گريڊ API،
  6. Execution Engine API ۽
  7. جامد ۽ متحرڪ ڪال API.

Blockchain ۽ Block API آنٽولوجي سمارٽ ڪانٽريڪٽ سسٽم جو بنيادي حصو آهي. Blockchain API بنيادي بلاڪچين سوالن جي عملن کي سپورٽ ڪري ٿو، جهڙوڪ بلاڪ جي موجوده اونچائي حاصل ڪرڻ، جڏهن ته بلاڪ API بنيادي بلاڪ سوال جي عملن کي سپورٽ ڪري ٿو، جهڙوڪ ڏنل بلاڪ لاء ٽرانزيڪشن جو تعداد پڇڻ.

اچو ته شروع ڪريون!

شروع ڪرڻ لاء، هڪ نئون معاهدو ٺاهيو SmartX، ۽ پوءِ ھيٺ ڏنل هدايتن تي عمل ڪريو.

1. ڪيئن استعمال ڪجي Blockchain API

سمارٽ ڪانٽريڪٽ فنڪشن ريفرنس پٿون ريفرنسز جي هڪجهڙائي آهي. توھان ضرورتن مطابق لاڳاپيل افعال داخل ڪري سگھو ٿا. مثال طور، هيٺ ڏنل بيان GetHeight متعارف ڪرايو آهي، هڪ بلاڪ جي موجوده اونچائي حاصل ڪرڻ لاء هڪ فنڪشن، ۽ GetHeader، بلاڪ جي عنوان حاصل ڪرڻ لاء هڪ فنڪشن.

from ontology.interop.System.Blockchain import GetHeight, GetHeader

اونچائي حاصل ڪريو

GetHeight استعمال ڪيو ويندو آهي آخري بلاڪ ترتيب نمبر حاصل ڪرڻ لاءِ blockchain ۾، جيئن هيٺ ڏنل مثال ۾ ڏيکاريل آهي. آخري مثال ۾، سهولت لاءِ، اسان مين فنڪشن کي ڇڏي ڏينداسين، پر جيڪڏھن ضروري ھجي ته توھان ان کي شامل ڪري سگھو ٿا.

from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeight
def Main(operation):
    if operation == 'demo':
        return demo()
    return False

def demo():
    height=GetHeight()
    Notify(height) # print height
    return height #return height after running the function

GetHeader

GetHeader بلاڪ هيڊر حاصل ڪرڻ لاءِ استعمال ڪيو ويندو آهي؛ پيراميٽر بلاڪچين ۾ بلاڪ جو سيريل نمبر آهي. مثال:

from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeader
def demo():
    block_height=10
    header=GetHeader(block_height) 
    Notify(header)
return header

Get TransactionByHash

GetTransactionByHash هڪ ٽرانزيڪشن هيش استعمال ڪندي ٽرانزيڪشن کي ٻيهر حاصل ڪرڻ لاء استعمال ڪيو ويندو آهي. ٽرانزيڪشن هيش ڏانهن موڪليو ويو آهي Get TransactionByHash bytearray فارميٽ ۾ parameters جي طور تي. هن فنڪشن جي ڪنجي آهي ٽرانزيڪشن هيش کي هيڪس فارميٽ ۾ تبديل ڪرڻ لاءِ ٽرانزيڪشن هيش کي bytearray فارميٽ ۾. هي هڪ اهم قدم آهي. ٻي صورت ۾ توهان هڪ غلطي حاصل ڪندا ته اهو ظاهر ڪري ٿو ته ان بلاڪ هيش سان ڪو به بلاڪ ناهي. اچو ته ٽرانزيڪشن هيش کي هيڪس فارميٽ ۾ وٺون مثال طور ان کي بائيٽري فارميٽ ۾ تبديل ڪرڻ لاءِ. مثال هن طرح نظر اچي ٿو:

9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1

پهرين ٽرانزيڪشن هيش کي ريورس ڪريو:

c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279

ڊولپرز هن قدم کي استعمال ڪري سگھن ٿا هيڪس نمبر (ٿوري اينڊين) نمبر تبديل ڪرڻ وارو اوزار SmartX پاران مهيا ڪيل.

ان کان پوء نتيجن جي نتيجي کي bytearray فارميٽ ۾ تبديل ڪريو:

{0xc1,0x89,0x0c,0x4d,0x73,0x06,0x26,0xdf,0xaa,0x94,0x49,0x41,0x9d,0x66,0x25,0x05,0xea,0xb3,0xbd,0xa2,0xe1,0xf0,0x1f,0x89,0x46,0x3c,0xc1,0xa4,0xa3,0x0a,0x27,0x9f}

اهو استعمال ڪري سگهجي ٿو String Byte Array Conversion Tool SmartX پاران مهيا ڪيل. آخرڪار، نتيجي ۾ آيل بائيٽري کي هن طرح هڪ تار ۾ تبديل ڪريو:

xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f

هيٺ ڏنل GetTransactionByHash فنڪشن جو هڪ مثال آهي، جيڪو ٽرانزيڪشن هيش ذريعي ٽرانزيڪشن وٺندو آهي:

from ontology.interop.System.Blockchain import GetTransactionByHash
def demo():
    # tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"    
    tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
    tx=GetTransactionByHash(tx_hash)
    return tx

Get TransactionHeight

GetTransactionHeight ٽرانزيڪشن هيش استعمال ڪندي ٽرانزيڪشن جي اوچائي حاصل ڪرڻ لاء استعمال ڪيو ويندو آهي. اچو ته مٿي ڏنل مثال مان هيش وٺون:

from ontology.interop.System.Blockchain import  GetTransactionHeight
def demo():
    #   tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"    
    tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
    height=GetTransactionHeight(tx_hash)
    return height

حاصل ڪريو معاهدو

ڊولپر استعمال ڪري سگھن ٿا GetContract فنڪشن هڪ معاهدو حاصل ڪرڻ لاءِ ڪانٽريڪٽ هيش ذريعي. ڪانٽريڪٽ هيش جي تبادلي جو عمل ساڳيو آهي جيئن مٿي ذڪر ڪيل ٽرانزيڪشن هيش تبادلي وارو عمل.

from ontology.interop.System.Blockchain import GetContract
def demo():
    # contract_hash="d81a75a5ff9b95effa91239ff0bb3232219698fa"    
    contract_hash=bytearray(b"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8")
    contract=GetContract(contract_hash)
    return contract

GetBlock

GetBlock هڪ بلاڪ حاصل ڪرڻ لاء استعمال ڪيو ويندو آهي. هڪ مخصوص بلاڪ حاصل ڪرڻ جا ٻه طريقا آهن.

1. بلاڪ جي اوچائي طرفان بلاڪ حاصل ڪريو:

from ontology.interop.System.Blockchain import GetBlock
def demo():
    block=GetBlock(1408)
    return block

2. بلاڪ هيش ذريعي بلاڪ حاصل ڪريو:

from ontology.interop.System.Blockchain import GetBlock
def demo():    
    block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
    block=GetBlock(block_hash)

2. ڪيئن استعمال ڪجي Block API

بلاڪ API ۾ ٽي موجود فنڪشن موجود آهن: ٽرانزيڪشن حاصل ڪريو, TransactionCount حاصل ڪريو۽ GetTransactionByIndex. اسان انهن کي هڪ هڪ ڪري ترتيب ڏينداسين.

TransactionCount حاصل ڪريو

GetTransactionCount استعمال ڪيو ويندو آهي ڏنل بلاڪ لاء ٽرانزيڪشن جو تعداد حاصل ڪرڻ لاء.

from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
    block=GetBlock(1408)
    count=GetTransactionCount(block)
    return count

ٽرانزيڪشن حاصل ڪريو

ڊولپر استعمال ڪري سگھن ٿا GetTransactions فنڪشن کي ڏنل بلاڪ ۾ سڀني ٽرانزيڪشن کي ٻيهر حاصل ڪرڻ لاء.

from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactions 
def demo():
    block=GetBlock(1408)
    txs=GetTransactions(block)
    return txs

GetTransactionByIndex

GetTransactionByIndex ڏنل بلاڪ ۾ مخصوص ٽرانزيڪشن کي ٻيهر حاصل ڪرڻ لاء استعمال ڪيو ويندو آهي.

from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionByIndex
def demo():
    block=GetBlock(1408)
    tx=GetTransactionByIndex(block,0) # index starts from 0.
    return tx

مڪمل ھدايت اسان تي ڳولهي سگھجي ٿو GitHub.

پوء

Blockchain & Block API سمارٽ معاهدن جو هڪ لازمي حصو آهي ڇو ته توهان ان کي استعمال ڪري سگهو ٿا بلاڪ چين ڊيٽا جي پڇا ڳاڇا ڪرڻ ۽ بلاڪ ڊيٽا کي سمارٽ ڪانٽريڪٽ ۾. مستقبل جي مضمونن ۾، اسان بحث ڪنداسين ته ڪيئن استعمال ڪجي باقي APIs ۽ سمجھندا ته اهي ڪيئن آنٽولوجي بلاڪچين سان لهه وچڙ ۾.

مضمون حشرت ۽ شيئرز جي ايڊيٽرن پاران ترجمو ڪيو ويو خاص طور تي آنٽولوجي روس لاءِ. روئڻ

ڇا توهان ڊولپر آهيو؟ اسان جي ٽيڪنيڪل ڪميونٽي ۾ شامل ٿيو رعايت. پڻ، هڪ نظر وٺو ڊولپر سينٽر اسان جي ويب سائيٽ تي، جتي توهان ڳولي سگهو ٿا ڊولپر جا اوزار، دستاويز، ۽ وڌيڪ.

آنٽالوجي

جو ذريعو: www.habr.com

تبصرو شامل ڪريو