புரோஹோஸ்டர் > Блог > நிர்வாகம் > ஆன்டாலஜி நெட்வொர்க்கில் பைத்தானில் ஸ்மார்ட் ஒப்பந்தத்தை எழுதுவது எப்படி. பகுதி 1: Blockchain & Block API
ஆன்டாலஜி நெட்வொர்க்கில் பைத்தானில் ஸ்மார்ட் ஒப்பந்தத்தை எழுதுவது எப்படி. பகுதி 1: Blockchain & Block API
ஸ்மார்ட் கான்ட்ராக்ட் டெவலப்மென்ட் டூலைப் பயன்படுத்தி ஒன்டாலஜி பிளாக்செயின் நெட்வொர்க்கில் பைதான் ஸ்மார்ட் ஒப்பந்தங்களை உருவாக்குவது குறித்த தொடர் பயிற்சிகளின் முதல் பகுதி இதுவாகும். SmartX.
இந்தக் கட்டுரையில், ஆன்டாலஜி ஸ்மார்ட் ஒப்பந்த API உடன் எங்கள் அறிமுகத்தைத் தொடங்குவோம். ஒன்டாலஜி ஸ்மார்ட் ஒப்பந்த API 7 தொகுதிகளாக பிரிக்கப்பட்டுள்ளது:
Blockchain & Block API,
இயக்க நேர API,
சேமிப்பு API,
சொந்த API,
மேம்படுத்து API,
எக்ஸிகியூஷன் எஞ்சின் API மற்றும்
நிலையான & டைனமிக் அழைப்பு API.
பிளாக்செயின் & பிளாக் ஏபிஐ என்பது ஆன்டாலஜி ஸ்மார்ட் ஒப்பந்த அமைப்பின் முக்கிய பகுதியாகும். Blockchain API ஆனது தற்போதைய பிளாக் உயரத்தைப் பெறுவது போன்ற அடிப்படை பிளாக்செயின் வினவல் செயல்பாடுகளை ஆதரிக்கிறது, அதே சமயம் Block API ஆனது கொடுக்கப்பட்ட தொகுதிக்கான பரிவர்த்தனைகளின் எண்ணிக்கையை வினவுவது போன்ற அடிப்படை பிளாக் வினவல் செயல்பாடுகளை ஆதரிக்கிறது.
தொடங்குவோம்!
முதலில், ஒரு புதிய ஒப்பந்தத்தை உருவாக்கவும் SmartXபின்னர் கீழே உள்ள வழிமுறைகளைப் பின்பற்றவும்.
1. Blockchain API ஐ எவ்வாறு பயன்படுத்துவது
ஸ்மார்ட் ஒப்பந்த செயல்பாடுகளுக்கான இணைப்புகள் பைதான் இணைப்புகளைப் போலவே இருக்கும். தேவையான செயல்பாடுகளை நீங்கள் உள்ளிடலாம். எடுத்துக்காட்டாக, பின்வரும் அறிக்கையானது தற்போதைய தொகுதி உயரத்தைப் பெற GetHeight செயல்பாட்டையும், தொகுதியின் தலைப்பைப் பெற GetHeader செயல்பாட்டையும் அறிமுகப்படுத்துகிறது.
from ontology.interop.System.Blockchain import GetHeight, GetHeader
GetHeight
கீழே உள்ள எடுத்துக்காட்டில் காட்டப்பட்டுள்ளபடி, பிளாக்செயினில் கடைசி தொகுதி வரிசை எண்ணைப் பெற GetHeight பயன்படுத்தப்படுகிறது. கடைசி எடுத்துக்காட்டில், நாங்கள் வசதிக்காக முக்கிய செயல்பாட்டைத் தவிர்ப்போம், ஆனால் தேவைப்பட்டால் நீங்கள் அதைச் சேர்க்கலாம்.
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
GetTransactionByHash
GetTransactionByHash பரிவர்த்தனை ஹாஷ் மூலம் பரிவர்த்தனையைப் பெறப் பயன்படுகிறது. பரிவர்த்தனை ஹாஷ் அனுப்பப்பட்டது GetTransactionByHash bytearray வடிவத்தில் அளவுருக்களாக. இந்தச் செயல்பாட்டின் திறவுகோல் ஹெக்ஸ் வடிவத்தில் பரிவர்த்தனை ஹாஷை பைட்டேர்ரே வடிவத்தில் பரிவர்த்தனை ஹாஷாக மாற்றுவதாகும். இது ஒரு முக்கியமான படியாகும். இல்லையெனில், அந்த பிளாக் ஹாஷுடன் எந்தத் தொகுதியும் இல்லை என்பதைக் குறிக்கும் பிழையைப் பெறுவீர்கள். ஹெக்ஸ் வடிவத்தில் பரிவர்த்தனை ஹாஷை பைட்டேர்ரே வடிவத்திற்கு மாற்றுவதற்கு உதாரணமாக எடுத்துக்கொள்வோம். ஒரு எடுத்துக்காட்டு இதுபோல் தெரிகிறது:
பரிவர்த்தனை ஹாஷ் மூலம் பரிவர்த்தனை உயரத்தைப் பெற GetTransactionHeight பயன்படுத்தப்படுகிறது. மேலே உள்ள எடுத்துக்காட்டில் இருந்து ஹாஷை எடுத்துக்கொள்வோம்:
ஒப்பந்தத்தின் ஹாஷ் மூலம் ஒப்பந்தத்தைப் பெற டெவலப்பர்கள் GetContract செயல்பாட்டைப் பயன்படுத்தலாம். ஒப்பந்த ஹாஷ் மாற்றும் செயல்முறை மேலே குறிப்பிட்டுள்ள பரிவர்த்தனை ஹாஷ் மாற்ற செயல்முறையைப் போன்றது.
ஒரு தொகுதியைப் பெற 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 இல் மூன்று செயல்பாடுகள் உள்ளன: பரிவர்த்தனைகளைப் பெறுங்கள், GetTransactioncountமற்றும் GetTransactionByIndex. அவற்றை ஒவ்வொன்றாக உடைப்போம்.
GetTransactioncount
கொடுக்கப்பட்ட தொகுதிக்கான பரிவர்த்தனைகளின் எண்ணிக்கையைப் பெற 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
ஒரு முழுமையான வழிகாட்டியை எங்களிடம் காணலாம் மகிழ்ச்சியா.
பின்னுரை
பிளாக்செயின் & பிளாக் ஏபிஐ என்பது ஸ்மார்ட் ஒப்பந்தங்களின் இன்றியமையாத பகுதியாகும், ஏனெனில் பிளாக்செயின் தரவைக் கோரவும் ஸ்மார்ட் ஒப்பந்தங்களில் தரவைத் தடுக்கவும் அவற்றைப் பயன்படுத்தலாம். பின்வரும் கட்டுரைகளில், மீதமுள்ள API களை எவ்வாறு பயன்படுத்துவது மற்றும் அவை ஆன்டாலஜி பிளாக்செயினுடன் எவ்வாறு தொடர்புகொள்வது என்பதைக் கண்டுபிடிப்போம்.
குறிப்பாக OntologyRussia க்காக Hashrate&Shares இன் ஆசிரியர்களால் கட்டுரை மொழிபெயர்க்கப்பட்டது. கலங்குவது
நீங்கள் ஒரு டெவலப்பரா? எங்கள் தொழில்நுட்ப சமூகத்தில் சேரவும் கூறின. மேலும், பாருங்கள் டெவலப்பர் மையம் எங்கள் இணையதளத்தில், டெவலப்பர் கருவிகள், ஆவணங்கள் மற்றும் பலவற்றை நீங்கள் காணலாம்.