முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
Change page

ஜேசன்-ஆர்பிசி API

ஒரு மென்பொருள் பயன்பாடு எத்திரியம் தொகுதிச்சங்கிலியுடன் தொடர்பு கொள்ள - தொகுதிச்சங்கிலி தரவைப் படிப்பதன் மூலமாகவோ அல்லது பிணையத்திற்குப் பரிவர்த்தனைகளை அனுப்புவதன் மூலமாகவோ - அது ஒரு எத்திரியம் கணுவுடன் இணைக்கப்பட வேண்டும்.

இந்த நோக்கத்திற்காக, ஒவ்வொரு எத்திரியம் கிளையண்டும் ஒரு ஜேசன்-ஆர்பிசி விவரக்குறிப்பைச் (opens in a new tab) செயல்படுத்துகிறது, எனவே குறிப்பிட்ட கணு அல்லது கிளையண்ட் செயலாக்கத்தைப் பொருட்படுத்தாமல் பயன்பாடுகள் நம்பியிருக்கக்கூடிய சீரான முறைகளின் தொகுப்பு உள்ளது.

ஜேசன்-ஆர்பிசி (opens in a new tab) என்பது ஒரு நிலையற்ற, குறைந்த எடையுள்ள தொலைநிலை செயல்முறை அழைப்பு (RPC) நெறிமுறையாகும். இது பல தரவுக் கட்டமைப்புகளையும் அவற்றின் செயலாக்கத்தைச் சுற்றியுள்ள விதிகளையும் வரையறுக்கிறது. ஒரே செயல்முறைக்குள், சாக்கெட்டுகள் வழியாக, HTTP வழியாக அல்லது பல்வேறு செய்தி அனுப்பும் சூழல்களில் கருத்துகளைப் பயன்படுத்தலாம் என்பதில் இது போக்குவரத்து சார்பற்றது. இது JSON (RFC 4627) ஐ தரவு வடிவமாகப் பயன்படுத்துகிறது.

கிளையண்ட் செயலாக்கங்கள்

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

வசதியான நிரலகங்கள்

நீங்கள் ஜேசன்-ஆர்பிசி API மூலம் எத்திரியம் கிளையண்டுகளுடன் நேரடியாகத் தொடர்புகொள்ளத் தேர்வு செய்தாலும், பரவலாக்கப்பட்ட செயலி (dapp) உருவாக்குநர்களுக்கு பெரும்பாலும் எளிதான விருப்பங்கள் உள்ளன. ஜேசன்-ஆர்பிசி API-இன் மேல் ரேப்பர்களை வழங்க பல JavaScript மற்றும் பின்தள API நிரலகங்கள் உள்ளன. இந்த நிரலகங்கள் மூலம், எத்திரியத்துடன் தொடர்புகொள்ளும் ஜேசன்-ஆர்பிசி கோரிக்கைகளை (பின்னணியில்) தொடங்க, உருவாக்குநர்கள் தாங்கள் விரும்பும் நிரலாக்க மொழியில் உள்ளுணர்வு சார்ந்த, ஒரு வரி முறைகளை எழுத முடியும்.

ஒருமித்த கிளையன்ட் APIகள்

இந்தப் பக்கம் முக்கியமாக எத்திரியம் செயலாக்கக் கிளையண்டுகளால் பயன்படுத்தப்படும் ஜேசன்-ஆர்பிசி API-ஐப் பற்றி விவாதிக்கிறது. இருப்பினும், ஒருமித்த கிளையன்ட்களும் ஒரு RPC API-ஐக் கொண்டுள்ளன, இது பயனர்கள் கணுவைப் பற்றிய தகவல்களை வினவவும், பீக்கான் தொகுதிகள், பீக்கான் நிலை மற்றும் பிற ஒருமித்த கருத்து தொடர்பான தகவல்களை நேரடியாக ஒரு கணுவிலிருந்து கோரவும் அனுமதிக்கிறது. இந்த API பீக்கான் API வலைப்பக்கத்தில் (opens in a new tab) ஆவணப்படுத்தப்பட்டுள்ளது.

ஒரு கணுவிற்குள் கிளையண்டுகளுக்கு இடையேயான தகவல்தொடர்புக்காக ஒரு உள் API-உம் பயன்படுத்தப்படுகிறது - அதாவது, இது ஒருமித்த கிளையன்ட் மற்றும் செயலாக்கக் கிளையண்ட் ஆகியவை தரவைப் பரிமாற்றம் செய்ய உதவுகிறது. இது 'Engine API' என்று அழைக்கப்படுகிறது மற்றும் இதன் விவரக்குறிப்புகள் GitHub (opens in a new tab)-இல் கிடைக்கின்றன.

செயலாக்கக் கிளையண்ட் விவரக்குறிப்பு

GitHub இல் முழுமையான ஜேசன்-ஆர்பிசி API விவரக்குறிப்பைப் படிக்கவும் (opens in a new tab). இந்த API செயலாக்க API வலைப்பக்கத்தில் (opens in a new tab) ஆவணப்படுத்தப்பட்டுள்ளது, மேலும் கிடைக்கக்கூடிய அனைத்து முறைகளையும் முயற்சித்து பார்க்க ஒரு இன்ஸ்பெக்டரையும் (Inspector) இது உள்ளடக்கியுள்ளது.

மரபுகள்

ஹெக்ஸ் மதிப்பு குறியாக்கம்

JSON வழியாக இரண்டு முக்கிய தரவு வகைகள் அனுப்பப்படுகின்றன: வடிவமைக்கப்படாத பைட் வரிசைகள் மற்றும் அளவுகள். இரண்டும் ஹெக்ஸ் குறியாக்கத்துடன் அனுப்பப்படுகின்றன, ஆனால் வடிவமைப்பிற்கான வெவ்வேறு தேவைகளுடன்.

அளவுகள்

அளவுகளை (முழு எண்கள், எண்கள்) குறியாக்கம் செய்யும் போது: ஹெக்ஸ் ஆக குறியாக்கம் செய்யவும், "0x" என்பதை முன்னொட்டாக சேர்க்கவும், இது மிகவும் சுருக்கமான பிரதிநிதித்துவமாகும் (சிறிய விதிவிலக்கு: பூஜ்ஜியம் "0x0" என குறிப்பிடப்பட வேண்டும்).

இதோ சில எடுத்துக்காட்டுகள்:

  • 0x41 (தசமத்தில் 65)
  • 0x400 (தசமத்தில் 1024)
  • தவறு: 0x (எப்போதும் குறைந்தது ஒரு இலக்கமாவது இருக்க வேண்டும் - பூஜ்ஜியம் "0x0" ஆகும்)
  • தவறு: 0x0400 (முன்னணி பூஜ்ஜியங்கள் அனுமதிக்கப்படாது)
  • தவறு: ff (0x முன்னொட்டாக இருக்க வேண்டும்)

வடிவமைக்கப்படாத தரவு

வடிவமைக்கப்படாத தரவை (பைட் வரிசைகள், கணக்கு முகவரிகள், ஹாஷ்கள், பைட் குறியீடு வரிசைகள்) குறியாக்கம் செய்யும் போது: ஹெக்ஸ் ஆக குறியாக்கம் செய்யவும், "0x" என்பதை முன்னொட்டாக சேர்க்கவும், ஒரு பைட்டுக்கு இரண்டு ஹெக்ஸ் இலக்கங்கள் இருக்க வேண்டும்.

இதோ சில எடுத்துக்காட்டுகள்:

  • 0x41 (அளவு 1, "A")
  • 0x004200 (அளவு 3, "0B0")
  • 0x (அளவு 0, "")
  • தவறு: 0xf0f0f (இரட்டைப்படை இலக்கங்களாக இருக்க வேண்டும்)
  • தவறு: 004200 (0x முன்னொட்டாக இருக்க வேண்டும்)

தொகுதி அளவுரு

பின்வரும் முறைகள் ஒரு தொகுதி அளவுருவைக் கொண்டுள்ளன:

எத்திரியத்தின் நிலையை வினவும் கோரிக்கைகள் செய்யப்படும்போது, வழங்கப்பட்ட தொகுதி அளவுரு தொகுதியின் உயரத்தைத் தீர்மானிக்கிறது.

தொகுதி அளவுருவிற்கு பின்வரும் விருப்பங்கள் சாத்தியமாகும்:

  • HEX String - ஒரு முழு எண் தொகுதி எண்
  • String "earliest" ஆரம்ப/தொடக்கத் தொகுதிக்கானது
  • String "latest" - சமீபத்திய முன்மொழியப்பட்ட தொகுதிக்கானது
  • String "safe" - சமீபத்திய பாதுகாப்பான தலைப்புத் தொகுதிக்கானது
  • String "finalized" - சமீபத்திய இறுதியாக்கப்பட்ட தொகுதிக்கானது
  • String "pending" - நிலுவையில் உள்ள நிலை/பரிவர்த்தனைகளுக்கானது

எடுத்துக்காட்டுகள்

கட்டளை வரி கருவியான curl (opens in a new tab)-ஐப் பயன்படுத்தி தனிப்பட்ட ஜேசன்-ஆர்பிசி API இறுதிப்புள்ளிகளை எவ்வாறு பயன்படுத்துவது என்பதற்கான எடுத்துக்காட்டுகளை இந்தப் பக்கத்தில் நாங்கள் வழங்குகிறோம். இந்தத் தனிப்பட்ட இறுதிப்புள்ளி எடுத்துக்காட்டுகள் கீழே உள்ள Curl எடுத்துக்காட்டுகள் பிரிவில் காணப்படுகின்றன. பக்கத்தின் கீழே, கெத் கணு, ஜேசன்-ஆர்பிசி API மற்றும் curl ஆகியவற்றைப் பயன்படுத்தி ஒரு திறன் ஒப்பந்தத்தைத் தொகுத்து நிலைநிறுத்துவதற்கான முழுமையான எடுத்துக்காட்டையும் நாங்கள் வழங்குகிறோம்.

Curl எடுத்துக்காட்டுகள்

ஒரு எத்திரியம் கணுவிற்கு curl (opens in a new tab) கோரிக்கைகளைச் செய்வதன் மூலம் ஜேசன்-ஆர்பிசி API-ஐப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள் கீழே வழங்கப்பட்டுள்ளன. ஒவ்வொரு எடுத்துக்காட்டிலும் குறிப்பிட்ட எண்ட்பாயிண்டின் விளக்கம், அதன் அளவுருக்கள், திரும்பப்பெறும் வகை மற்றும் அது எவ்வாறு பயன்படுத்தப்பட வேண்டும் என்பதற்கான ஒரு செயல்முறை எடுத்துக்காட்டு ஆகியவை அடங்கும்.

curl கோரிக்கைகள் உள்ளடக்க வகை தொடர்பான பிழைச் செய்தியை வழங்கக்கூடும். இதற்குக் காரணம், --data விருப்பம் உள்ளடக்க வகையை application/x-www-form-urlencoded என அமைப்பதே ஆகும். உங்கள் கணு இது குறித்து முறையிட்டால், அழைப்பின் தொடக்கத்தில் -H "Content-Type: application/json" என்பதை வைப்பதன் மூலம் தலைப்பை கைமுறையாக அமைக்கவும். எடுத்துக்காட்டுகளில் URL/IP மற்றும் போர்ட் கலவையும் சேர்க்கப்படவில்லை, இது curl-க்கு வழங்கப்படும் கடைசி ஆர்குமென்ட்டாக இருக்க வேண்டும் (எ.கா., 127.0.0.1:8545). இந்த கூடுதல் தரவுகளை உள்ளடக்கிய ஒரு முழுமையான curl கோரிக்கை பின்வரும் வடிவத்தைப் பெறுகிறது:

curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' 127.0.0.1:8545

காசிப், நிலை, வரலாறு

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

காசிப் முறைகள்

இந்த முறைகள் சங்கிலியின் முனையைக் கண்காணிக்கின்றன. இப்படித்தான் பரிவர்த்தனைகள் பிணையத்தில் பரவுகின்றன, தொகுதிகளில் சேர்க்கப்படுகின்றன, மேலும் புதிய தொகுதிகளைப் பற்றி கிளையண்டுகள் அறிந்துகொள்கின்றன.

நிலை முறைகள்

சேமிக்கப்பட்ட அனைத்து தரவுகளின் தற்போதைய நிலையைப் புகாரளிக்கும் முறைகள். "நிலை" என்பது பகிரப்பட்ட ஒரு பெரிய ரேம் (RAM) போன்றது, இதில் கணக்கு நிலுவைகள், ஒப்பந்தத் தரவு மற்றும் எரிவாயு மதிப்பீடுகள் ஆகியவை அடங்கும்.

வரலாற்று முறைகள்

தொடக்கம் (genesis) வரையிலான ஒவ்வொரு தொகுதியின் வரலாற்றுப் பதிவுகளையும் பெறுகிறது. இது ஒரு பெரிய சேர்க்க-மட்டுமேயான (append-only) கோப்பைப் போன்றது, மேலும் இதில் அனைத்து தொகுதித் தலைப்புகள், தொகுதி உடல்கள், அங்கிள் தொகுதிகள் (uncle blocks) மற்றும் பரிவர்த்தனை ரசீதுகள் ஆகியவை அடங்கும்.

ஜேசன்-ஆர்பிசி API சோதனைக் களம்

API முறைகளைக் கண்டறியவும் முயற்சிக்கவும் நீங்கள் சோதனைக் களக் கருவியைப் (opens in a new tab) பயன்படுத்தலாம். பல்வேறு கணு வழங்குநர்களால் எந்தெந்த முறைகள் மற்றும் பிணையங்கள் ஆதரிக்கப்படுகின்றன என்பதையும் இது உங்களுக்குக் காட்டுகிறது.

ஜேசன்-ஆர்பிசி API முறைகள்

web3_clientVersion

தற்போதைய கிளையண்ட் பதிப்பை வழங்குகிறது.

அளவுருக்கள்

ஏதுமில்லை

வழங்குபவை

String - தற்போதைய கிளையண்ட் பதிப்பு

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}'
// முடிவு
{
  "id":67,
  "jsonrpc":"2.0",
  "result": "Geth/v1.12.1-stable/linux-amd64/go1.19.1"
}

web3_sha3

கொடுக்கப்பட்ட தரவின் கெக்காக்-256-ஐ (தரப்படுத்தப்பட்ட SHA3-256 அல்ல) திருப்பித் தருகிறது.

அளவுருக்கள்

  1. DATA - SHA3 ஹாஷாக மாற்ற வேண்டிய தரவு
params: ["0x68656c6c6f20776f726c64"]

திரும்பும் மதிப்பு

DATA - கொடுக்கப்பட்ட சரத்தின் SHA3 முடிவு.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c6f20776f726c64"],"id":64}'
// முடிவு
{
  "id":64,
  "jsonrpc": "2.0",
  "result": "0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad"
}

net_version

தற்போதைய பிணைய ஐடியைத் திருப்பித் தருகிறது.

அளவுருக்கள்

ஏதுமில்லை

திரும்பப் பெறுபவை

String - தற்போதைய பிணைய ஐடி.

தற்போதைய பிணைய ஐடிகளின் முழுப் பட்டியல் chainlist.org (opens in a new tab) இல் கிடைக்கிறது. அவற்றில் சில பொதுவானவை:

  • 1: எத்தேரியம் முதன்மை வலைப்பின்னல்
  • 11155111: Sepolia சோதனை வலையமைப்பு
  • 560048 : Hoodi சோதனை வலையமைப்பு

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"net_version","params":[],"id":67}'
// முடிவு
{
  "id":67,
  "jsonrpc": "2.0",
  "result": "3"
}

net_listening

கிளையன்ட் பிணைய இணைப்புகளுக்காகத் தீவிரமாகக் காத்திருந்தால் true என்பதைத் திருப்பித் தருகிறது.

அளவுருக்கள்

ஏதுமில்லை

திரும்பும் மதிப்புகள்

Boolean - காத்திருக்கும்போது true, இல்லையெனில் false.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"net_listening","params":[],"id":67}'
// முடிவு
{
  "id":67,
  "jsonrpc":"2.0",
  "result":true
}

net_peerCount

தற்போது கிளையண்டுடன் இணைக்கப்பட்டுள்ள சக முனைகளின் (peers) எண்ணிக்கையைத் திருப்பி அனுப்புகிறது.

அளவுருக்கள்

ஏதுமில்லை

திருப்பி அனுப்பப்படும் மதிப்புகள்

QUANTITY - இணைக்கப்பட்ட சக முனைகளின் எண்ணிக்கையைக் குறிக்கும் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}'
// முடிவு
{
  "id":74,
  "jsonrpc": "2.0",
  "result": "0x2" // 2
}

eth_protocolVersion

தற்போதைய எத்திரியம் நெறிமுறை பதிப்பை வழங்குகிறது. இந்த முறை Geth-ல் கிடைக்காது (opens in a new tab) என்பதை நினைவில் கொள்ளவும்.

அளவுருக்கள்

ஏதுமில்லை

வழங்குபவை

String - தற்போதைய எத்திரியம் நெறிமுறை பதிப்பு

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_protocolVersion","params":[],"id":67}'
// முடிவு
{
  "id":67,
  "jsonrpc": "2.0",
  "result": "54"
}

eth_syncing

ஒத்திசைவு நிலை குறித்த தரவுகளைக் கொண்ட ஒரு பொருளை அல்லது false ஐ வழங்குகிறது.

ப்ளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

ஏதுமில்லை

வழங்குபவை

துல்லியமான வழங்கும் தரவு கிளையண்ட் செயலாக்கங்களுக்கு இடையே மாறுபடும். கணு ஒத்திசைக்கப்படாத போது அனைத்து கிளையண்டுகளும் False ஐ வழங்குகின்றன, மேலும் அனைத்து கிளையண்டுகளும் பின்வரும் புலங்களை வழங்குகின்றன.

Object|Boolean, ஒத்திசைவு நிலை தரவுகளைக் கொண்ட ஒரு பொருள் அல்லது ஒத்திசைக்கப்படாத போது FALSE:

  • startingBlock: QUANTITY - இறக்குமதி தொடங்கிய தொகுதி (ஒத்திசைவு அதன் தலையை அடைந்த பின்னரே மீட்டமைக்கப்படும்)
  • currentBlock: QUANTITY - தற்போதைய தொகுதி, eth_blockNumber ஐப் போலவே
  • highestBlock: QUANTITY - மதிப்பிடப்பட்ட மிக உயர்ந்த தொகுதி

இருப்பினும், தனிப்பட்ட கிளையண்டுகள் கூடுதல் தரவையும் வழங்கக்கூடும். எடுத்துக்காட்டாக Geth (கெத்) பின்வருவனவற்றை வழங்குகிறது:

அதேசமயம் Besu (பெசு) வழங்குவது:

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

எடுத்துக்காட்டு

eth_coinbase

கிளையண்ட் காயின்பேஸ் முகவரியைத் திருப்பித் தருகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

குறிப்பு: இந்த முறை v1.14.0 முதல் கைவிடப்பட்டது, மேலும் இது இனி ஆதரிக்கப்படாது. இந்த முறையைப் பயன்படுத்த முயற்சித்தால் "Method not supported" என்ற பிழை ஏற்படும்.

அளவுருக்கள்

ஏதுமில்லை

திருப்பித் தருபவை

DATA, 20 பைட்டுகள் - தற்போதைய காயின்பேஸ் முகவரி.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":64}'
// முடிவு
{
  "id":64,
  "jsonrpc": "2.0",
  "result": "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
}

eth_chainId

மறுஇயக்க-பாதுகாக்கப்பட்ட பரிவர்த்தனைகளில் கையொப்பமிடுவதற்குப் பயன்படுத்தப்படும் சங்கிலி ID-ஐ வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

ஏதுமில்லை

திரும்பும் மதிப்பு

chainId, தற்போதைய சங்கிலி id-இன் முழு எண்ணைக் குறிக்கும் சரமாக உள்ள ஹெக்ஸாடெசிமல் மதிப்பு.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":67}'
// முடிவு
{
  "id":67,
  "jsonrpc": "2.0",
  "result": "0x1"
}

eth_mining

கிளையன்ட் தீவிரமாக புதிய தொகுதிகளைச் சுரங்கப்பணி செய்து கொண்டிருந்தால் true என்பதை வழங்கும். இது பணிச் சான்று (PoW) பிணையங்களுக்கு மட்டுமே true என்பதை வழங்கும், மேலும் ஒருங்கிணைப்பு நிகழ்வுக்குப் பிறகு சில கிளையன்ட்களில் இது கிடைக்காமல் போகலாம்.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

ஏதுமில்லை

வழங்கும் மதிப்புகள்

Boolean - கிளையன்ட் சுரங்கப்பணி செய்து கொண்டிருந்தால் true என்பதை வழங்கும், இல்லையெனில் false என்பதை வழங்கும்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_mining","params":[],"id":71}'
//
{
  "id":71,
  "jsonrpc": "2.0",
  "result": true
}

eth_hashrate

கணு சுரங்கப்பணி செய்யும் வினாடிக்கு ஹாஷ்களின் எண்ணிக்கையை வழங்குகிறது. இது பணிச் சான்று (PoW) பிணையங்களுக்கு மட்டுமே true என்பதை வழங்க முடியும், மேலும் ஒருங்கிணைப்பு நிகழ்ந்ததிலிருந்து சில கிளையண்ட்களில் கிடைக்காமல் போகலாம்.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

ஏதுமில்லை

வழங்குபவை

QUANTITY - வினாடிக்கு ஹாஷ்களின் எண்ணிக்கை.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":71}'
// முடிவு
{
  "id":71,
  "jsonrpc": "2.0",
  "result": "0x38a"
}

eth_gasPrice

Wei-யில் ஒரு எரிவாயுவிற்கான தற்போதைய விலையின் மதிப்பீட்டை வழங்குகிறது. எடுத்துக்காட்டாக, பெசு கிளையன்ட் கடந்த 100 தொகுதிகளை ஆய்வு செய்து, இயல்பாகவே இடைநிலை எரிவாயு அலகு விலையை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

ஏதுமில்லை

வழங்குபவை

QUANTITY - Wei-யில் தற்போதைய எரிவாயு விலையின் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}'
// முடிவு
{
  "id":73,
  "jsonrpc": "2.0",
  "result": "0x1dfd14000" // 8049999872 Wei
}

eth_accounts

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

பிளேகிரவுண்டில் இறுதிப்புள்ளியை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

ஏதுமில்லை

வழங்குபவை

Array of DATA, 20 பைட்டுகள் - கிளையண்டிற்குச் சொந்தமான முகவரிகள்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": ["0x407d73d8a49eeb85d32cf465507dd71d507100c1"]
}

eth_blockNumber

மிகச் சமீபத்திய தொகுதியின் எண்ணை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

ஏதுமில்லை

திரும்பும் மதிப்புகள்

QUANTITY - கிளையண்ட் இருக்கும் தற்போதைய தொகுதி எண்ணின் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":83}'
// முடிவு
{
  "id":83,
  "jsonrpc": "2.0",
  "result": "0x4b7" // 1207
}

eth_getBalance

குறிப்பிட்ட முகவரியில் உள்ள கணக்கின் இருப்பை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 20 பைட்டுகள் - இருப்பைச் சரிபார்க்க வேண்டிய முகவரி.
  2. QUANTITY|TAG - முழு எண் தொகுதி எண், அல்லது சரம் "latest", "earliest", "pending", "safe", அல்லது "finalized", தொகுதி அளவுருவைப் பார்க்கவும்
params: ["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"]

திரும்பப் பெறுபவை

QUANTITY - Wei-இல் உள்ள தற்போதைய இருப்பின் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x0234c8a3397aab58" // 158972490234375000
}

eth_getStorageAt

கொடுக்கப்பட்ட முகவரியில் உள்ள ஒரு சேமிப்பக இடத்திலிருந்து மதிப்பை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 20 பைட்டுகள் - சேமிப்பகத்தின் முகவரி.
  2. QUANTITY - சேமிப்பகத்தில் உள்ள இடத்தின் முழு எண்.
  3. QUANTITY|TAG - முழு எண் தொகுதி எண், அல்லது "latest", "earliest", "pending", "safe", "finalized" ஆகிய சரங்கள், தொகுதி அளவுருவைப் பார்க்கவும்

திரும்பும் மதிப்புகள்

DATA - இந்த சேமிப்பக இடத்தில் உள்ள மதிப்பு.

எடுத்துக்காட்டு சரியான இடத்தைக் கணக்கிடுவது மீட்டெடுக்க வேண்டிய சேமிப்பகத்தைப் பொறுத்தது. 0x391694e7e0b0cce554cb130d723a9d27458f9298 என்ற முகவரியால் 0x295a70b2de5e3953354a6a8344e616ed314d7251 இல் நிலைநிறுத்தப்பட்ட பின்வரும் ஒப்பந்தத்தைக் கவனியுங்கள்.

contract Storage {
    uint pos0;
    mapping(address => uint) pos1;
    constructor() {
        pos0 = 1234;
        pos1[msg.sender] = 5678;
    }
}

pos0 இன் மதிப்பை மீட்டெடுப்பது நேரடியானது:

curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x0", "latest"], "id": 1}' localhost:8545
{"jsonrpc":"2.0","id":1,"result":"0x00000000000000000000000000000000000000000000000000000000000004d2"}

வரைபடத்தின் (map) ஒரு கூறினை மீட்டெடுப்பது கடினமானது. வரைபடத்தில் உள்ள ஒரு கூறின் இடம் இதைக் கொண்டு கணக்கிடப்படுகிறது:

keccak(LeftPad32(key, 0), LeftPad32(map position, 0))

இதன் பொருள் pos1["0x391694e7e0b0cce554cb130d723a9d27458f9298"] இல் உள்ள சேமிப்பகத்தை மீட்டெடுக்க, நாம் இதைக் கொண்டு இடத்தைக் கணக்கிட வேண்டும்:

keccak(
  decodeHex(
    "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" +
      "0000000000000000000000000000000000000000000000000000000000000001"
  )
)

Web3 நிரலகத்துடன் வரும் geth கன்சோலை இந்தக் கணக்கீட்டைச் செய்யப் பயன்படுத்தலாம்:

> var key = "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001"
undefined
> web3.sha3(key, {"encoding": "hex"})
"0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9"

இப்போது சேமிப்பகத்தைப் பெற:

curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9", "latest"], "id": 1}' localhost:8545
{"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000162e"}

eth_getTransactionCount

ஒரு முகவரியிலிருந்து அனுப்பப்பட்ட பரிவர்த்தனைகளின் எண்ணிக்கையைத் திருப்பித் தருகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 20 பைட்டுகள் - முகவரி.
  2. QUANTITY|TAG - முழு எண் தொகுதி எண், அல்லது "latest", "earliest", "pending", "safe" அல்லது "finalized" என்ற சரம், தொகுதி அளவுருவைப் பார்க்கவும்
params: [
  "0x407d73d8a49eeb85d32cf465507dd71d507100c1",
  "latest", // சமீபத்திய தொகுதியில் நிலை
]

திருப்பித் தருபவை

QUANTITY - இந்த முகவரியிலிருந்து அனுப்பப்பட்ட பரிவர்த்தனைகளின் எண்ணிக்கையைக் குறிக்கும் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1","latest"],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x1" // 1
}

eth_getBlockTransactionCountByHash

கொடுக்கப்பட்ட தொகுதி ஹாஷுடன் பொருந்தும் தொகுதியிலிருந்து, ஒரு தொகுதியில் உள்ள பரிவர்த்தனைகளின் எண்ணிக்கையைத் திருப்பித் தருகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 32 பைட்டுகள் - ஒரு தொகுதியின் ஹாஷ்
params: ["0xd03ededb7415d22ae8bac30f96b2d1de83119632693b963642318d87d1bece5b"]

திருப்பித் தருபவை

QUANTITY - இந்தத் தொகுதியில் உள்ள பரிவர்த்தனைகளின் எண்ணிக்கையைக் குறிக்கும் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByHash","params":["0xd03ededb7415d22ae8bac30f96b2d1de83119632693b963642318d87d1bece5b"],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x8b" // 139
}

eth_getBlockTransactionCountByNumber

கொடுக்கப்பட்ட தொகுதி எண்ணுடன் பொருந்தக்கூடிய ஒரு தொகுதியில் உள்ள பரிவர்த்தனைகளின் எண்ணிக்கையை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. QUANTITY|TAG - ஒரு தொகுதி எண்ணின் முழு எண், அல்லது தொகுதி அளவுருவில் உள்ளதைப் போல "earliest", "latest", "pending", "safe" அல்லது "finalized" என்ற சரம்.
params: [
  "0x13738ca", // 20396234
]

வழங்குபவை

QUANTITY - இந்தத் தொகுதியில் உள்ள பரிவர்த்தனைகளின் எண்ணிக்கையைக் குறிக்கும் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByNumber","params":["0x13738ca"],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x8b" // 139
}

eth_getUncleCountByBlockHash

கொடுக்கப்பட்ட தொகுதி ஹாஷுடன் பொருந்தும் தொகுதியிலிருந்து, ஒரு தொகுதியில் உள்ள அங்கிள்களின் (uncles) எண்ணிக்கையைத் திருப்பித் தருகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 32 பைட்டுகள் - ஒரு தொகுதியின் ஹாஷ்
params: ["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2"]

திருப்பித் தருபவை

QUANTITY - இந்தத் தொகுதியில் உள்ள அங்கிள்களின் எண்ணிக்கையைக் குறிக்கும் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockHash","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2"],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x1" // 1
}

eth_getUncleCountByBlockNumber

கொடுக்கப்பட்ட தொகுதி எண்ணுடன் பொருந்தக்கூடிய ஒரு தொகுதியிலிருந்து அங்கிள்களின் எண்ணிக்கையை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. QUANTITY|TAG - ஒரு தொகுதி எண்ணின் முழு எண், அல்லது "latest", "earliest", "pending", "safe" அல்லது "finalized" ஆகிய சரங்கள், தொகுதி அளவுருவைப் பார்க்கவும்
params: [
  "0xe8", // 232
]

வழங்குபவை

QUANTITY - இந்தத் தொகுதியில் உள்ள அங்கிள்களின் எண்ணிக்கையைக் குறிக்கும் முழு எண்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockNumber","params":["0xe8"],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x0" // 0
}

eth_getCode

ஒரு குறிப்பிட்ட முகவரியில் உள்ள குறியீட்டை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 20 பைட்டுகள் - முகவரி
  2. QUANTITY|TAG - முழு எண் தொகுதி எண், அல்லது "latest", "earliest", "pending", "safe" அல்லது "finalized" என்ற சரம், தொகுதி அளவுருவை பார்க்கவும்
params: [
  "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
  "0x5daf3b", // 6139707
]

திரும்பும் மதிப்பு

DATA - குறிப்பிட்ட முகவரியிலிருந்து பெறப்பட்ட குறியீடு.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", "0x5daf3b"],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029"
}

eth_sign

sign முறையானது sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message))) ஐப் பயன்படுத்தி எத்திரியத்திற்கென பிரத்யேகமான ஒரு கையொப்பத்தைக் கணக்கிடுகிறது.

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

குறிப்பு: கையொப்பமிடப் பயன்படுத்தப்படும் முகவரியானது திறக்கப்பட்டிருக்க வேண்டும்.

அளவுருக்கள்

  1. DATA, 20 பைட்டுகள் - முகவரி
  2. DATA, N பைட்டுகள் - கையொப்பமிட வேண்டிய செய்தி

திரும்பும் மதிப்பு

DATA: கையொப்பம்

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sign","params":["0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "0xdeadbeaf"],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
}

eth_signTransaction

eth_sendRawTransaction ஐப் பயன்படுத்தி பின்னர் பிணையத்தில் சமர்ப்பிக்கக்கூடிய ஒரு பரிவர்த்தனையில் கையொப்பமிடுகிறது.

அளவுருக்கள்

  1. Object - பரிவர்த்தனைப் பொருள்
  • type:
  • from: DATA, 20 பைட்டுகள் - பரிவர்த்தனை அனுப்பப்படும் முகவரி.
  • to: DATA, 20 பைட்டுகள் - (புதிய ஒப்பந்தத்தை உருவாக்கும்போது விருப்பத்திற்குரியது) பரிவர்த்தனை செலுத்தப்படும் முகவரி.
  • gas: QUANTITY - (விருப்பத்திற்குரியது, இயல்புநிலை: 90000) பரிவர்த்தனை செயலாக்கத்திற்காக வழங்கப்படும் எரிவாயுவின் முழு எண். இது பயன்படுத்தப்படாத எரிவாயுவை திருப்பித் தரும்.
  • gasPrice: QUANTITY - (விருப்பத்திற்குரியது, இயல்புநிலை: தீர்மானிக்கப்பட உள்ளது) செலுத்தப்பட்ட ஒவ்வொரு எரிவாயுவிற்கும் பயன்படுத்தப்படும் gasPrice-இன் முழு எண், Wei-இல்.
  • value: QUANTITY - (விருப்பத்திற்குரியது) இந்தப் பரிவர்த்தனையுடன் அனுப்பப்பட்ட மதிப்பின் முழு எண், Wei-இல்.
  • data: DATA - ஒரு ஒப்பந்தத்தின் தொகுக்கப்பட்ட குறியீடு அல்லது அழைக்கப்பட்ட முறை கையொப்பம் மற்றும் குறியாக்கம் செய்யப்பட்ட அளவுருக்களின் ஹாஷ்.
  • nonce: QUANTITY - (விருப்பத்திற்குரியது) ஒரு நான்ஸின் முழு எண். அதே நான்ஸைப் பயன்படுத்தும் உங்களின் நிலுவையில் உள்ள பரிவர்த்தனைகளை மேலெழுத இது அனுமதிக்கிறது.

திரும்பும் மதிப்புகள்

DATA, குறிப்பிடப்பட்ட கணக்கால் கையொப்பமிடப்பட்ட RLP-குறியாக்கம் செய்யப்பட்ட பரிவர்த்தனைப் பொருள்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"id": 1,"jsonrpc": "2.0","method": "eth_signTransaction","params": [{"data":"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675","from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155","gas": "0x76c0","gasPrice": "0x9184e72a000","to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567","value": "0x9184e72a"}]}'
// முடிவு
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
}

eth_sendTransaction

தரவுப் புலத்தில் குறியீடு இருந்தால், புதிய செய்தி அழைப்புப் பரிவர்த்தனை அல்லது ஒப்பந்த உருவாக்கத்தை உருவாக்குகிறது, மேலும் from இல் குறிப்பிடப்பட்டுள்ள கணக்கைப் பயன்படுத்தி அதில் கையொப்பமிடுகிறது.

அளவுருக்கள்

  1. Object - பரிவர்த்தனைப் பொருள்
  • from: DATA, 20 பைட்டுகள் - பரிவர்த்தனை அனுப்பப்படும் முகவரி.
  • to: DATA, 20 பைட்டுகள் - (புதிய ஒப்பந்தத்தை உருவாக்கும்போது விருப்பத்திற்குரியது) பரிவர்த்தனை செலுத்தப்படும் முகவரி.
  • gas: QUANTITY - (விருப்பத்திற்குரியது, இயல்புநிலை: 90000) பரிவர்த்தனை செயலாக்கத்திற்காக வழங்கப்படும் எரிவாயுவின் முழு எண். இது பயன்படுத்தப்படாத எரிவாயுவைத் திருப்பித் தரும்.
  • gasPrice: QUANTITY - (விருப்பத்திற்குரியது, இயல்புநிலை: தீர்மானிக்கப்பட உள்ளது) செலுத்தப்பட்ட ஒவ்வொரு எரிவாயுவிற்கும் பயன்படுத்தப்படும் gasPrice இன் முழு எண்.
  • value: QUANTITY - (விருப்பத்திற்குரியது) இந்தப் பரிவர்த்தனையுடன் அனுப்பப்பட்ட மதிப்பின் முழு எண்.
  • input: DATA - ஒரு ஒப்பந்தத்தின் தொகுக்கப்பட்ட குறியீடு அல்லது அழைக்கப்பட்ட முறை கையொப்பம் மற்றும் குறியாக்கம் செய்யப்பட்ட அளவுருக்களின் ஹாஷ்.
  • nonce: QUANTITY - (விருப்பத்திற்குரியது) ஒரு நான்ஸின் முழு எண். அதே நான்ஸைப் பயன்படுத்தும் உங்களின் நிலுவையில் உள்ள பரிவர்த்தனைகளை மேலெழுத இது அனுமதிக்கிறது.

திரும்பும் மதிப்புகள்

DATA, 32 பைட்டுகள் - பரிவர்த்தனை ஹாஷ், அல்லது பரிவர்த்தனை இன்னும் கிடைக்கவில்லை என்றால் பூஜ்ஜிய ஹாஷ்.

நீங்கள் ஒரு ஒப்பந்தத்தை உருவாக்கியபோது, ஒரு தொகுதியில் பரிவர்த்தனை முன்மொழியப்பட்ட பிறகு, ஒப்பந்த முகவரியைப் பெற eth_getTransactionReceipt ஐப் பயன்படுத்தவும்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{see above}],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_sendRawTransaction

கையொப்பமிடப்பட்ட பரிவர்த்தனைகளுக்கான புதிய செய்தி அழைப்புப் பரிவர்த்தனையை அல்லது ஒப்பந்த உருவாக்கத்தை உருவாக்குகிறது.

அளவுருக்கள்

  1. DATA, கையொப்பமிடப்பட்ட பரிவர்த்தனைத் தரவு.
params: [
  "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675",
]

திரும்பும் மதிப்புகள்

DATA, 32 பைட்டுகள் - பரிவர்த்தனை ஹாஷ், அல்லது பரிவர்த்தனை இன்னும் கிடைக்கவில்லை என்றால் பூஜ்ஜிய ஹாஷ்.

நீங்கள் ஒரு ஒப்பந்தத்தை உருவாக்கியபோது, பரிவர்த்தனை ஒரு தொகுதியில் முன்மொழியப்பட்ட பிறகு, ஒப்பந்த முகவரியைப் பெற eth_getTransactionReceipt ஐப் பயன்படுத்தவும்.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":[{see above}],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_call

தொகுதிச்சங்கிலியில் ஒரு பரிவர்த்தனையை உருவாக்காமல் உடனடியாக ஒரு புதிய செய்தி அழைப்பை இயக்குகிறது. பெரும்பாலும் படிக்க-மட்டுமேயான திறன் ஒப்பந்தச் செயல்பாடுகளை இயக்கப் பயன்படுகிறது, எடுத்துக்காட்டாக ERC-20 ஒப்பந்தத்திற்கான balanceOf.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. Object - பரிவர்த்தனை அழைப்புப் பொருள்
  • from: DATA, 20 பைட்டுகள் - (விருப்பத்திற்குரியது) பரிவர்த்தனை அனுப்பப்படும் முகவரி.
  • to: DATA, 20 பைட்டுகள் - பரிவர்த்தனை செலுத்தப்படும் முகவரி.
  • gas: QUANTITY - (விருப்பத்திற்குரியது) பரிவர்த்தனை செயலாக்கத்திற்காக வழங்கப்பட்ட எரிவாயுவின் முழு எண். eth_call பூஜ்ஜிய எரிவாயுவைப் பயன்படுத்துகிறது, ஆனால் சில செயலாக்கங்களுக்கு இந்த அளவுரு தேவைப்படலாம்.
  • gasPrice: QUANTITY - (விருப்பத்திற்குரியது) செலுத்தப்பட்ட ஒவ்வொரு எரிவாயுவிற்கும் பயன்படுத்தப்படும் gasPrice-இன் முழு எண்
  • value: QUANTITY - (விருப்பத்திற்குரியது) இந்தப் பரிவர்த்தனையுடன் அனுப்பப்பட்ட மதிப்பின் முழு எண்
  • input: DATA - (விருப்பத்திற்குரியது) முறை கையொப்பம் மற்றும் குறியாக்கம் செய்யப்பட்ட அளவுருக்களின் ஹாஷ். விவரங்களுக்கு Solidity ஆவணத்தில் உள்ள எத்திரியம் ஒப்பந்த ABI (opens in a new tab)-ஐப் பார்க்கவும்.
  1. QUANTITY|TAG - முழு எண் தொகுதி எண், அல்லது "latest", "earliest", "pending", "safe" அல்லது "finalized" ஆகிய சரங்கள், தொகுதி அளவுருவைப் பார்க்கவும்

திரும்பும் மதிப்புகள்

DATA - செயல்படுத்தப்பட்ட ஒப்பந்தத்தின் திரும்பும் மதிப்பு.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{see above}],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x"
}

eth_estimateGas

பரிவர்த்தனையை முடிக்க எவ்வளவு எரிவாயு தேவைப்படும் என்பதற்கான மதிப்பீட்டை உருவாக்கி வழங்குகிறது. இந்தப் பரிவர்த்தனை தொகுதிச்சங்கிலியில் சேர்க்கப்படாது. EVM இயக்கவியல் மற்றும் கணுவின் செயல்திறன் உள்ளிட்ட பல்வேறு காரணங்களால், பரிவர்த்தனைக்கு உண்மையில் பயன்படுத்தப்படும் எரிவாயுவின் அளவை விட இந்த மதிப்பீடு கணிசமாக அதிகமாக இருக்கலாம் என்பதை நினைவில் கொள்ளவும்.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

அனைத்து பண்புகளும் விருப்பத்திற்குரியவை என்பதைத் தவிர, eth_call அளவுருக்களைப் பார்க்கவும். எரிவாயு வரம்பு எதுவும் குறிப்பிடப்படாவிட்டால், நிலுவையில் உள்ள தொகுதியிலிருந்து தொகுதி எரிவாயு வரம்பை Geth மேல் வரம்பாகப் பயன்படுத்துகிறது. இதன் விளைவாக, எரிவாயுவின் அளவு நிலுவையில் உள்ள தொகுதி எரிவாயு வரம்பை விட அதிகமாக இருக்கும்போது, அழைப்பு/பரிவர்த்தனையைச் செயல்படுத்த வழங்கப்படும் மதிப்பீடு போதுமானதாக இருக்காது.

திரும்பும் மதிப்புகள்

QUANTITY - பயன்படுத்தப்பட்ட எரிவாயுவின் அளவு.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{see above}],"id":1}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x5208" // 21000
}

eth_getBlockByHash

ஹாஷ் மூலம் ஒரு தொகுதி பற்றிய தகவலை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 32 பைட்டுகள் - ஒரு தொகுதியின் ஹாஷ்.
  2. Boolean - true எனில் இது முழு பரிவர்த்தனைப் பொருள்களை வழங்கும், false எனில் பரிவர்த்தனைகளின் ஹாஷ்களை மட்டுமே வழங்கும்.
params: [
  "0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae",
  false,
]

வழங்குபவை

Object - ஒரு தொகுதிப் பொருள், அல்லது தொகுதி எதுவும் காணப்படாதபோது null:

  • number: QUANTITY - தொகுதி எண். இது நிலுவையில் உள்ள தொகுதியாக இருக்கும்போது null.
  • hash: DATA, 32 பைட்டுகள் - தொகுதியின் ஹாஷ். இது நிலுவையில் உள்ள தொகுதியாக இருக்கும்போது null.
  • parentHash: DATA, 32 பைட்டுகள் - பெற்றோர் தொகுதியின் ஹாஷ்.
  • nonce: DATA, 8 பைட்டுகள் - உருவாக்கப்பட்ட பணிச் சான்று (PoW) இன் ஹாஷ். இது நிலுவையில் உள்ள தொகுதியாக இருக்கும்போது null, உரிமைச் சான்று (PoS) தொகுதிகளுக்கு (ஒருங்கிணைப்பு முதல்) 0x0
  • sha3Uncles: DATA, 32 பைட்டுகள் - தொகுதியில் உள்ள uncles தரவின் SHA3.
  • logsBloom: DATA, 256 பைட்டுகள் - தொகுதியின் பதிவுகளுக்கான ப்ளூம் ஃபில்டர். இது நிலுவையில் உள்ள தொகுதியாக இருக்கும்போது null.
  • transactionsRoot: DATA, 32 பைட்டுகள் - தொகுதியின் பரிவர்த்தனை ட்ரையின் ரூட்.
  • stateRoot: DATA, 32 பைட்டுகள் - தொகுதியின் இறுதி நிலை ட்ரையின் ரூட்.
  • receiptsRoot: DATA, 32 பைட்டுகள் - தொகுதியின் ரசீதுகள் ட்ரையின் ரூட்.
  • miner: DATA, 20 பைட்டுகள் - தொகுதி வெகுமதிகள் வழங்கப்பட்ட பயனாளியின் முகவரி.
  • difficulty: QUANTITY - இந்தத் தொகுதிக்கான கடினத்தன்மையின் முழு எண்.
  • totalDifficulty: QUANTITY - இந்தத் தொகுதி வரை சங்கிலியின் மொத்த கடினத்தன்மையின் முழு எண்.
  • extraData: DATA - இந்தத் தொகுதியின் "கூடுதல் தரவு" (extra data) புலம்.
  • size: QUANTITY - இந்தத் தொகுதியின் அளவை பைட்டுகளில் குறிக்கும் முழு எண்.
  • gasLimit: QUANTITY - இந்தத் தொகுதியில் அனுமதிக்கப்பட்ட அதிகபட்ச எரிவாயு.
  • gasUsed: QUANTITY - இந்தத் தொகுதியில் உள்ள அனைத்து பரிவர்த்தனைகளாலும் பயன்படுத்தப்பட்ட மொத்த எரிவாயு.
  • timestamp: QUANTITY - தொகுதி தொகுக்கப்பட்டதற்கான unix நேர முத்திரை.
  • transactions: Array - கடைசியாக வழங்கப்பட்ட அளவுருவைப் பொறுத்து, பரிவர்த்தனைப் பொருள்களின் வரிசை, அல்லது 32 பைட்டுகள் பரிவர்த்தனை ஹாஷ்கள்.
  • uncles: Array - uncle ஹாஷ்களின் வரிசை.

எடுத்துக்காட்டு

eth_getBlockByNumber

தொகுதி எண்ணின் அடிப்படையில் ஒரு தொகுதியைப் பற்றிய தகவலை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. QUANTITY|TAG - ஒரு தொகுதி எண்ணின் முழு எண், அல்லது தொகுதி அளவுருவில் உள்ளதைப் போல "earliest", "latest", "pending", "safe" அல்லது "finalized" என்ற சரம்.
  2. Boolean - true எனில் இது முழுமையான பரிவர்த்தனைப் பொருள்களை வழங்கும், false எனில் பரிவர்த்தனைகளின் ஹாஷ்களை மட்டுமே வழங்கும்.
params: [
  "0x1b4", // 436
  true,
]

வழங்குபவை eth_getBlockByHash என்பதைப் பார்க்கவும்

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x1b4", true],"id":1}'

முடிவுக்கு eth_getBlockByHash என்பதைப் பார்க்கவும்

eth_getTransactionByHash

பரிவர்த்தனை ஹாஷ் மூலம் கோரப்பட்ட பரிவர்த்தனை பற்றிய தகவலை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 32 பைட்டுகள் - ஒரு பரிவர்த்தனையின் ஹாஷ்
params: ["0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"]

வழங்குபவை

Object - ஒரு பரிவர்த்தனை ஆப்ஜெக்ட், அல்லது பரிவர்த்தனை எதுவும் காணப்படாவிட்டால் null:

  • blockHash: DATA, 32 பைட்டுகள் - இந்தப் பரிவர்த்தனை இருந்த தொகுதியின் ஹாஷ். இது நிலுவையில் இருக்கும்போது null.
  • blockNumber: QUANTITY - இந்தப் பரிவர்த்தனை இருந்த தொகுதி எண். இது நிலுவையில் இருக்கும்போது null.
  • from: DATA, 20 பைட்டுகள் - அனுப்புநரின் முகவரி.
  • gas: QUANTITY - அனுப்புநரால் வழங்கப்பட்ட எரிவாயு.
  • gasPrice: QUANTITY - அனுப்புநரால் Wei-இல் வழங்கப்பட்ட எரிவாயு விலை.
  • hash: DATA, 32 பைட்டுகள் - பரிவர்த்தனையின் ஹாஷ்.
  • input: DATA - பரிவர்த்தனையுடன் அனுப்பப்பட்ட தரவு.
  • nonce: QUANTITY - இதற்கு முன்பு அனுப்புநரால் செய்யப்பட்ட பரிவர்த்தனைகளின் எண்ணிக்கை.
  • to: DATA, 20 பைட்டுகள் - பெறுநரின் முகவரி. இது ஒரு ஒப்பந்த உருவாக்கப் பரிவர்த்தனையாக இருக்கும்போது null.
  • transactionIndex: QUANTITY - தொகுதியில் உள்ள பரிவர்த்தனைகளின் குறியீட்டு நிலையின் முழு எண். இது நிலுவையில் இருக்கும்போது null.
  • value: QUANTITY - Wei-இல் மாற்றப்பட்ட மதிப்பு.
  • v: QUANTITY - ECDSA மீட்பு ஐடி
  • r: QUANTITY - ECDSA கையொப்பம் r
  • s: QUANTITY - ECDSA கையொப்பம் s

எடுத்துக்காட்டு

eth_getTransactionByBlockHashAndIndex

தொகுதி ஹாஷ் மற்றும் பரிவர்த்தனைக் குறியீட்டு நிலையின் அடிப்படையில் ஒரு பரிவர்த்தனை பற்றிய தகவலை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 32 பைட்டுகள் - ஒரு தொகுதியின் ஹாஷ்.
  2. QUANTITY - பரிவர்த்தனைக் குறியீட்டு நிலையின் முழு எண்.
params: [
  "0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2",
  "0x0", // 0
]

திரும்பும் மதிப்புகள் eth_getTransactionByHash ஐப் பார்க்கவும்

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockHashAndIndex","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", "0x0"],"id":1}'

முடிவுக்கு eth_getTransactionByHash ஐப் பார்க்கவும்

eth_getTransactionByBlockNumberAndIndex

தொகுதி எண் மற்றும் பரிவர்த்தனைக் குறியீட்டு நிலையின் அடிப்படையில் ஒரு பரிவர்த்தனை பற்றிய தகவலை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. QUANTITY|TAG - ஒரு தொகுதி எண், அல்லது தொகுதி அளவுருவில் உள்ளதைப் போல "earliest", "latest", "pending", "safe" அல்லது "finalized" என்ற சரம்.
  2. QUANTITY - பரிவர்த்தனைக் குறியீட்டு நிலை.
params: [
  "0x9c47cf", // 10241999
  "0x24", // 36
]

வழங்குபவை eth_getTransactionByHash ஐப் பார்க்கவும்

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockNumberAndIndex","params":["0x9c47cf", "0x24"],"id":1}'

முடிவுக்கு eth_getTransactionByHash ஐப் பார்க்கவும்

eth_getTransactionReceipt

பரிவர்த்தனை ஹாஷ் மூலம் ஒரு பரிவர்த்தனையின் ரசீதை வழங்குகிறது.

குறிப்பு நிலுவையில் உள்ள பரிவர்த்தனைகளுக்கு ரசீது கிடைக்காது.

அளவுருக்கள்

  1. DATA, 32 பைட்டுகள் - ஒரு பரிவர்த்தனையின் ஹாஷ்
params: ["0x85d995eba9763907fdf35cd2034144dd9d53ce32cbec21349d4b12823c6860c5"]

திரும்பப் பெறுபவை Object - ஒரு பரிவர்த்தனை ரசீது பொருள், அல்லது ரசீது எதுவும் காணப்படாதபோது null:

  • transactionHash : DATA, 32 பைட்டுகள் - பரிவர்த்தனையின் ஹாஷ்.
  • transactionIndex: QUANTITY - தொகுதியில் பரிவர்த்தனையின் குறியீட்டு நிலையின் முழு எண்.
  • blockHash: DATA, 32 பைட்டுகள் - இந்தப் பரிவர்த்தனை இருந்த தொகுதியின் ஹாஷ்.
  • blockNumber: QUANTITY - இந்தப் பரிவர்த்தனை இருந்த தொகுதி எண்.
  • from: DATA, 20 பைட்டுகள் - அனுப்புநரின் முகவரி.
  • to: DATA, 20 பைட்டுகள் - பெறுநரின் முகவரி. இது ஒரு ஒப்பந்த உருவாக்கப் பரிவர்த்தனையாக இருக்கும்போது null ஆக இருக்கும்.
  • cumulativeGasUsed : QUANTITY - இந்த பரிவர்த்தனை தொகுதியில் செயல்படுத்தப்பட்டபோது பயன்படுத்தப்பட்ட மொத்த எரிவாயு அளவு.
  • effectiveGasPrice : QUANTITY - ஒரு யூனிட் எரிவாயுவிற்கு செலுத்தப்பட்ட அடிப்படை கட்டணம் மற்றும் முன்னுரிமைக் கட்டணத்தின் கூடுதல்.
  • gasUsed : QUANTITY - இந்தக் குறிப்பிட்ட பரிவர்த்தனையால் மட்டுமே பயன்படுத்தப்பட்ட எரிவாயு அளவு.
  • contractAddress : DATA, 20 பைட்டுகள் - பரிவர்த்தனை ஒரு ஒப்பந்த உருவாக்கமாக இருந்தால், உருவாக்கப்பட்ட ஒப்பந்த முகவரி, இல்லையெனில் null.
  • logs: Array - இந்தப் பரிவர்த்தனை உருவாக்கிய பதிவுப் பொருள்களின் வரிசை.
  • logsBloom: DATA, 256 பைட்டுகள் - தொடர்புடைய பதிவுகளை விரைவாக மீட்டெடுக்க லைட் கிளையண்டுகளுக்கான ப்ளூம் ஃபில்டர்.
  • type: QUANTITY - பரிவர்த்தனை வகையின் முழு எண், பழைய பரிவர்த்தனைகளுக்கு 0x0, அணுகல் பட்டியல் வகைகளுக்கு 0x1, மாறும் கட்டணங்களுக்கு 0x2.

இது இரண்டில் ஒன்றையும் வழங்குகிறது:

  • root : DATA பரிவர்த்தனைக்குப் பிந்தைய நிலை ரூட்டின் 32 பைட்டுகள் (பைசான்டியத்திற்கு முந்தையது)
  • status: QUANTITY 1(வெற்றி) அல்லது0` (தோல்வி)

எடுத்துக்காட்டு

eth_getUncleByBlockHashAndIndex

ஒரு தொகுதியின் ஹாஷ் மற்றும் அங்கிள் குறியீட்டு நிலையைப் பயன்படுத்தி, அந்தத் தொகுதியின் அங்கிள் பற்றிய தகவலை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. DATA, 32 பைட்டுகள் - ஒரு தொகுதியின் ஹாஷ்.
  2. QUANTITY - அங்கிளின் குறியீட்டு நிலை.
params: [
  "0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2",
  "0x0", // 0
]

வழங்குபவை eth_getBlockByHash ஐப் பார்க்கவும்

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockHashAndIndex","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", "0x0"],"id":1}'

முடிவுக்கு eth_getBlockByHash ஐப் பார்க்கவும்

குறிப்பு: ஒரு அங்கிளில் தனிப்பட்ட பரிவர்த்தனைகள் இருக்காது.

eth_getUncleByBlockNumberAndIndex

எண் மற்றும் அங்கிள் குறியீட்டு நிலையின் அடிப்படையில் ஒரு தொகுதியின் அங்கிள் பற்றிய தகவல்களை வழங்குகிறது.

பிளேகிரவுண்டில் எண்ட்பாயிண்ட்டை முயற்சிக்கவும் (opens in a new tab)

அளவுருக்கள்

  1. QUANTITY|TAG - ஒரு தொகுதி எண், அல்லது தொகுதி அளவுருவில் உள்ளதைப் போல "earliest", "latest", "pending", "safe", "finalized" ஆகிய சரங்கள்.
  2. QUANTITY - அங்கிளின் குறியீட்டு நிலை.
params: [
  "0x29c", // 668
  "0x0", // 0
]

வழங்குபவை eth_getBlockByHash ஐப் பார்க்கவும்

குறிப்பு: ஒரு அங்கிளில் தனிப்பட்ட பரிவர்த்தனைகள் இருக்காது.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockNumberAndIndex","params":["0x29c", "0x0"],"id":1}'

முடிவுக்கு eth_getBlockByHash ஐப் பார்க்கவும்

eth_newFilter

நிலை மாறும் போது (பதிவுகள்) அறிவிக்க, வடிகட்டி விருப்பங்களின் அடிப்படையில் ஒரு வடிகட்டிப் பொருளை உருவாக்குகிறது. நிலை மாறியுள்ளதா என்பதைச் சரிபார்க்க, eth_getFilterChanges ஐ அழைக்கவும்.

தலைப்பு வடிகட்டிகளைக் குறிப்பிடுவது பற்றிய ஒரு குறிப்பு: தலைப்புகள் வரிசையைச் சார்ந்தவை. [A, B] தலைப்புகளைக் கொண்ட பதிவுடன் கூடிய ஒரு பரிவர்த்தனை பின்வரும் தலைப்பு வடிகட்டிகளால் பொருத்தப்படும்:

  • [] "எதுவும்"
  • [A] "முதல் இடத்தில் A (மற்றும் அதன் பிறகு எதுவும்)"
  • [null, B] "முதல் இடத்தில் எதுவும் மற்றும் இரண்டாவது இடத்தில் B (மற்றும் அதன் பிறகு எதுவும்)"
  • [A, B] "முதல் இடத்தில் A மற்றும் இரண்டாவது இடத்தில் B (மற்றும் அதன் பிறகு எதுவும்)"
  • [[A, B], [A, B]] "முதல் இடத்தில் (A அல்லது B) மற்றும் இரண்டாவது இடத்தில் (A அல்லது B) (மற்றும் அதன் பிறகு எதுவும்)"
  • அளவுருக்கள்
  1. Object - வடிகட்டி விருப்பங்கள்:
  • fromBlock: QUANTITY|TAG - (விருப்பத்திற்குரியது, இயல்புநிலை: "latest") முழு எண் தொகுதி எண், அல்லது கடைசியாக முன்மொழியப்பட்ட தொகுதிக்கு "latest", சமீபத்திய பாதுகாப்பான தொகுதிக்கு "safe", சமீபத்திய இறுதியாக்கப்பட்ட தொகுதிக்கு "finalized", அல்லது இன்னும் ஒரு தொகுதியில் இல்லாத பரிவர்த்தனைகளுக்கு "pending", "earliest".
  • toBlock: QUANTITY|TAG - (விருப்பத்திற்குரியது, இயல்புநிலை: "latest") முழு எண் தொகுதி எண், அல்லது கடைசியாக முன்மொழியப்பட்ட தொகுதிக்கு "latest", சமீபத்திய பாதுகாப்பான தொகுதிக்கு "safe", சமீபத்திய இறுதியாக்கப்பட்ட தொகுதிக்கு "finalized", அல்லது இன்னும் ஒரு தொகுதியில் இல்லாத பரிவர்த்தனைகளுக்கு "pending", "earliest".
  • address: DATA|Array, 20 பைட்டுகள் - (விருப்பத்திற்குரியது) ஒப்பந்த முகவரி அல்லது பதிவுகள் உருவாக வேண்டிய முகவரிகளின் பட்டியல்.
  • topics: Array of DATA, - (விருப்பத்திற்குரியது) 32 பைட்டுகள் DATA தலைப்புகளின் வரிசை. தலைப்புகள் வரிசையைச் சார்ந்தவை. ஒவ்வொரு தலைப்பும் "அல்லது" விருப்பங்களைக் கொண்ட தரவுகளின் (DATA) வரிசையாகவும் இருக்கலாம்.

திருப்புபவை QUANTITY - ஒரு வடிகட்டி ஐடி.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"topics":["0x12341234"]}],"id":73}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x1" // 1
}

eth_newBlockFilter

புதிய தொகுதி வரும்போது அறிவிப்பதற்காக, கணுவில் ஒரு வடிப்பானை உருவாக்குகிறது. நிலை மாறியுள்ளதா என்பதைச் சரிபார்க்க, eth_getFilterChanges ஐ அழைக்கவும்.

அளவுருக்கள் ஏதுமில்லை

திரும்பும் மதிப்பு QUANTITY - ஒரு வடிப்பான் ஐடி.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":73}'
// முடிவு
{
  "id":1,
  "jsonrpc":  "2.0",
  "result": "0x1" // 1
}

eth_newPendingTransactionFilter

புதிய நிலுவையில் உள்ள பரிவர்த்தனைகள் வரும்போது அறிவிக்க, கணுவில் ஒரு வடிப்பானை உருவாக்குகிறது. நிலை மாறியுள்ளதா என்பதைச் சரிபார்க்க, eth_getFilterChanges ஐ அழைக்கவும்.

அளவுருக்கள் ஏதுமில்லை

திரும்பப் பெறும் மதிப்புகள் QUANTITY - ஒரு வடிப்பான் ஐடி.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter","params":[],"id":73}'
// முடிவு
{
  "id":1,
  "jsonrpc":  "2.0",
  "result": "0x1" // 1
}

eth_uninstallFilter

கொடுக்கப்பட்ட ஐடியைக் கொண்ட வடிகட்டியை நிறுவல் நீக்குகிறது. கண்காணிப்பு இனி தேவைப்படாதபோது இது எப்போதும் அழைக்கப்பட வேண்டும். மேலும், ஒரு குறிப்பிட்ட காலத்திற்கு eth_getFilterChanges மூலம் கோரப்படாதபோது வடிகட்டிகள் நேரமுடிவடையும்.

அளவுருக்கள்

  1. QUANTITY - வடிகட்டி ஐடி.
params: [
  "0xb", // 11
]

திரும்பும் மதிப்புகள் Boolean - வடிகட்டி வெற்றிகரமாக நிறுவல் நீக்கப்பட்டால் true, இல்லையெனில் false.

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":["0xb"],"id":73}'
// முடிவு
{
  "id":1,
  "jsonrpc": "2.0",
  "result": true
}

eth_getFilterChanges

ஒரு வடிப்பானுக்கான வாக்கெடுப்பு முறை, இது கடந்த வாக்கெடுப்பிலிருந்து நிகழ்ந்த பதிவுகளின் வரிசையை வழங்கும்.

அளவுருக்கள்

  1. QUANTITY - வடிப்பான் ஐடி.
params: [
  "0x16", // 22
]

திரும்பும் மதிப்புகள் Array - பதிவுப் பொருள்களின் வரிசை, அல்லது கடந்த வாக்கெடுப்பிலிருந்து எதுவும் மாறவில்லை என்றால் வெற்று வரிசை.

  • eth_newBlockFilter மூலம் உருவாக்கப்பட்ட வடிப்பான்களுக்கு, திரும்பும் மதிப்புகள் தொகுதி ஹாஷ்களாகும் (DATA, 32 பைட்டுகள்), எ.கா., ["0x3454645634534..."].

  • eth_newPendingTransactionFilter மூலம் உருவாக்கப்பட்ட வடிப்பான்களுக்கு, திரும்பும் மதிப்புகள் பரிவர்த்தனை ஹாஷ்களாகும் (DATA, 32 பைட்டுகள்), எ.கா., ["0x6345343454645..."].

  • eth_newFilter மூலம் உருவாக்கப்பட்ட வடிப்பான்களுக்கு, பதிவுகள் பின்வரும் அளவுருக்களைக் கொண்ட பொருள்களாகும்:

    • removed: TAG - சங்கிலி மறுசீரமைப்பு காரணமாக பதிவு அகற்றப்பட்டால் true ஆக இருக்கும். இது சரியான பதிவாக இருந்தால் false ஆக இருக்கும்.
    • logIndex: QUANTITY - தொகுதியில் உள்ள பதிவு குறியீட்டு நிலையின் முழு எண். இது நிலுவையில் உள்ள பதிவாக இருக்கும்போது null ஆக இருக்கும்.
    • transactionIndex: QUANTITY - பதிவு உருவாக்கப்பட்ட பரிவர்த்தனைகளின் குறியீட்டு நிலையின் முழு எண். இது நிலுவையில் உள்ள பதிவாக இருக்கும்போது null ஆக இருக்கும்.
    • transactionHash: DATA, 32 பைட்டுகள் - இந்தப் பதிவு உருவாக்கப்பட்ட பரிவர்த்தனைகளின் ஹாஷ். இது நிலுவையில் உள்ள பதிவாக இருக்கும்போது null ஆக இருக்கும்.
    • blockHash: DATA, 32 பைட்டுகள் - இந்தப் பதிவு இருந்த தொகுதியின் ஹாஷ். இது நிலுவையில் இருக்கும்போது null ஆக இருக்கும். இது நிலுவையில் உள்ள பதிவாக இருக்கும்போது null ஆக இருக்கும்.
    • blockNumber: QUANTITY - இந்தப் பதிவு இருந்த தொகுதி எண். இது நிலுவையில் இருக்கும்போது null ஆக இருக்கும். இது நிலுவையில் உள்ள பதிவாக இருக்கும்போது null ஆக இருக்கும்.
    • address: DATA, 20 பைட்டுகள் - இந்தப் பதிவு உருவான முகவரி.
    • data: DATA - மாறுபடும் நீளமுள்ள குறியிடப்படாத பதிவுத் தரவு. (Solidity-இல்: பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட 32 பைட்டுகள் குறியிடப்படாத பதிவு வாதங்கள்.)
    • topics: Array of DATA - குறியிடப்பட்ட பதிவு வாதங்களின் 0 முதல் 4 வரையிலான 32 பைட்டுகள் DATA வரிசை. (Solidity-இல்: நீங்கள் நிகழ்வை anonymous குறிப்பானுடன் அறிவித்தாலொழிய, முதல் தலைப்பு நிகழ்வின் கையொப்பத்தின் ஹாஷ் ஆகும் (எ.கா., Deposit(address,bytes32,uint256)).)
  • எடுத்துக்காட்டு

eth_getFilterLogs

கொடுக்கப்பட்ட ஐடியைக் கொண்ட வடிகட்டியுடன் பொருந்தும் அனைத்துப் பதிவுகளின் வரிசையைத் திருப்பித் தருகிறது.

அளவுருக்கள்

  1. QUANTITY - வடிகட்டி ஐடி.
params: [
  "0x16", // 22
]

திருப்பித் தருபவை eth_getFilterChanges ஐப் பார்க்கவும்

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0x16"],"id":74}'

முடிவுக்கு eth_getFilterChanges ஐப் பார்க்கவும்

eth_getLogs

கொடுக்கப்பட்ட வடிகட்டி பொருளுடன் பொருந்தக்கூடிய அனைத்து பதிவுகளின் வரிசையை வழங்குகிறது.

அளவுருக்கள்

  1. Object - வடிகட்டி விருப்பங்கள்:
  • fromBlock: QUANTITY|TAG - (விருப்பத்திற்குரியது, இயல்புநிலை: "latest") முழு எண்ணான தொகுதி எண், அல்லது கடைசியாக முன்மொழியப்பட்ட தொகுதிக்கு "latest", சமீபத்திய பாதுகாப்பான தொகுதிக்கு "safe", சமீபத்திய இறுதியாக்கப்பட்ட தொகுதிக்கு "finalized", அல்லது இன்னும் ஒரு தொகுதியில் இல்லாத பரிவர்த்தனைகளுக்கு "pending", "earliest".
  • toBlock: QUANTITY|TAG - (விருப்பத்திற்குரியது, இயல்புநிலை: "latest") முழு எண்ணான தொகுதி எண், அல்லது கடைசியாக முன்மொழியப்பட்ட தொகுதிக்கு "latest", சமீபத்திய பாதுகாப்பான தொகுதிக்கு "safe", சமீபத்திய இறுதியாக்கப்பட்ட தொகுதிக்கு "finalized", அல்லது இன்னும் ஒரு தொகுதியில் இல்லாத பரிவர்த்தனைகளுக்கு "pending", "earliest".
  • address: DATA|Array, 20 பைட்டுகள் - (விருப்பத்திற்குரியது) பதிவுகள் உருவாக வேண்டிய ஒப்பந்த முகவரி அல்லது முகவரிகளின் பட்டியல்.
  • topics: Array of DATA, - (விருப்பத்திற்குரியது) 32 பைட்டுகள் DATA தலைப்புகளின் வரிசை. தலைப்புகள் வரிசையைச் சார்ந்தவை. ஒவ்வொரு தலைப்பும் "அல்லது" (or) விருப்பங்களைக் கொண்ட DATA-வின் வரிசையாகவும் இருக்கலாம்.
  • blockHash: DATA, 32 பைட்டுகள் - (விருப்பத்திற்குரியது, எதிர்காலம்) EIP-234 சேர்க்கப்படுவதால், blockHash என்பது ஒரு புதிய வடிகட்டி விருப்பமாக இருக்கும், இது வழங்கப்படும் பதிவுகளை 32-பைட் ஹாஷ் blockHash கொண்ட ஒற்றைத் தொகுதிக்கு மட்டுமே கட்டுப்படுத்துகிறது. blockHash ஐப் பயன்படுத்துவது fromBlock = toBlock = blockHash ஹாஷ் கொண்ட தொகுதி எண் என்பதற்குச் சமம். வடிகட்டி அளவுகோல்களில் blockHash இருந்தால், fromBlock மற்றும் toBlock ஆகிய இரண்டும் அனுமதிக்கப்படாது.
params: [
  {
    topics: [
      "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b",
    ],
  },
]

திரும்பும் மதிப்புகள் eth_getFilterChanges ஐப் பார்க்கவும்

எடுத்துக்காட்டு

// கோரிக்கை
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"topics":["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]}],"id":74}'

முடிவுக்கு eth_getFilterChanges ஐப் பார்க்கவும்

பயன்பாட்டு உதாரணம்

ஜேசன்-ஆர்பிசி-ஐப் பயன்படுத்தி ஒரு ஒப்பந்தத்தை நிலைநிறுத்துதல்

இந்தப் பகுதி RPC இடைமுகத்தை மட்டுமே பயன்படுத்தி ஒரு ஒப்பந்தத்தை எவ்வாறு நிலைநிறுத்துவது என்பதற்கான விளக்கத்தை உள்ளடக்கியுள்ளது. இந்தச் சிக்கலை மறைத்து ஒப்பந்தங்களை நிலைநிறுத்துவதற்கு மாற்று வழிகள் உள்ளன—உதாரணமாக, RPC இடைமுகத்தின் மேல் உருவாக்கப்பட்ட web3.js (opens in a new tab) மற்றும் web3.py (opens in a new tab) போன்ற நிரலகங்களைப் பயன்படுத்துதல். இந்தச் சுருக்கங்கள் பொதுவாகப் புரிந்துகொள்ள எளிதானவை மற்றும் குறைவான பிழைகளை ஏற்படுத்துபவை, ஆனால் உள்ளே தொழில்நுட்ப ரீதியாக என்ன நடக்கிறது என்பதைப் புரிந்துகொள்வது இன்னும் உதவியாக இருக்கும்.

பின்வருவது Multiply7 எனப்படும் ஒரு நேரடியான திறன் ஒப்பந்தமாகும், இது ஜேசன்-ஆர்பிசி இடைமுகத்தைப் பயன்படுத்தி ஒரு எத்திரியம் கணுவில் நிலைநிறுத்தப்படும். வாசகர் ஏற்கனவே ஒரு கெத் (Geth) கணுவை இயக்குகிறார் என்று இந்தப் பயிற்சி கருதுகிறது. கணுக்கள் மற்றும் கிளையன்ட்கள் பற்றிய கூடுதல் தகவல்கள் இங்கே கிடைக்கின்றன. கெத் அல்லாத கிளையன்ட்களுக்கு HTTP ஜேசன்-ஆர்பிசி-ஐ எவ்வாறு தொடங்குவது என்பதைப் பார்க்க, தனிப்பட்ட கிளையன்ட் ஆவணங்களைப் பார்க்கவும். பெரும்பாலான கிளையன்ட்கள் இயல்பாகவே localhost:8545 இல் சேவை செய்கின்றன.

contract Multiply7 {
    event Print(uint);
    function multiply(uint input) returns (uint) {
        Print(input * 7);
        return input * 7;
    }
}

முதலில் செய்ய வேண்டியது HTTP RPC இடைமுகம் இயக்கப்பட்டிருப்பதை உறுதிசெய்வதாகும். அதாவது தொடக்கத்தின்போது கெத்-க்கு --http கொடியை (flag) வழங்குகிறோம். இந்த எடுத்துக்காட்டில், ஒரு தனிப்பட்ட மேம்பாட்டுச் சங்கிலியில் கெத் கணுவைப் பயன்படுத்துகிறோம். இந்த அணுகுமுறையைப் பயன்படுத்துவதன் மூலம் உண்மையான பிணையத்தில் நமக்கு ஈதர் தேவையில்லை.

geth --http --dev console 2>>geth.log

இது http://localhost:8545 இல் HTTP RPC இடைமுகத்தைத் தொடங்கும்.

curl (opens in a new tab) ஐப் பயன்படுத்தி காயின்பேஸ் முகவரியை (கணக்குகளின் வரிசையிலிருந்து முதல் முகவரியைப் பெறுவதன் மூலம்) மற்றும் இருப்பைப் பெறுவதன் மூலம் இடைமுகம் இயங்குகிறதா என்பதை நாம் சரிபார்க்கலாம். இந்த எடுத்துக்காட்டுகளில் உள்ள தரவு உங்கள் உள்ளூர் கணுவில் மாறுபடும் என்பதை நினைவில் கொள்ளவும். இந்தக் கட்டளைகளை நீங்கள் முயற்சிக்க விரும்பினால், இரண்டாவது curl கோரிக்கையில் உள்ள கோரிக்கை அளவுருக்களை (request params) முதலாவதிலிருந்து பெறப்பட்ட முடிவைக் கொண்டு மாற்றவும்.

curl --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[], "id":1}' -H "Content-Type: application/json" localhost:8545
{"id":1,"jsonrpc":"2.0","result":["0x9b1d35635cc34752ca54713bb99d38614f63c955"]}

curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0x9b1d35635cc34752ca54713bb99d38614f63c955", "latest"], "id":2}' -H "Content-Type: application/json" localhost:8545
{"id":2,"jsonrpc":"2.0","result":"0x1639e49bba16280000"}

எண்கள் ஹெக்ஸ் (hex) குறியாக்கம் செய்யப்பட்டிருப்பதால், இருப்பு Wei-இல் ஒரு ஹெக்ஸ் சரமாக (hex string) வழங்கப்படுகிறது. நாம் இருப்பை ஈதரில் ஒரு எண்ணாகப் பெற விரும்பினால், கெத் கன்சோலில் இருந்து web3 ஐப் பயன்படுத்தலாம்.

web3.fromWei("0x1639e49bba16280000", "ether")
// "410"

இப்போது நமது தனிப்பட்ட மேம்பாட்டுச் சங்கிலியில் சிறிது ஈதர் இருப்பதால், நாம் ஒப்பந்தத்தை நிலைநிறுத்தலாம். EVM-க்கு அனுப்பக்கூடிய பைட் குறியீடாக Multiply7 ஒப்பந்தத்தைத் தொகுப்பதே முதல் படியாகும். Solidity தொகுப்பானான (compiler) solc-ஐ நிறுவ, Solidity ஆவணங்களைப் (opens in a new tab) பின்பற்றவும். (எங்கள் எடுத்துக்காட்டிற்குப் பயன்படுத்தப்பட்ட தொகுப்பானின் பதிப்போடு (opens in a new tab) பொருந்துவதற்கு, நீங்கள் பழைய solc வெளியீட்டைப் பயன்படுத்த விரும்பலாம்.)

EVM-க்கு அனுப்பக்கூடிய பைட் குறியீடாக Multiply7 ஒப்பந்தத்தைத் தொகுப்பதே அடுத்த படியாகும்.

echo 'pragma solidity ^0.4.16; contract Multiply7 { event Print(uint); function multiply(uint input) public returns (uint) { Print(input * 7); return input * 7; } }' | solc --bin

======= <stdin>:Multiply7 =======
Binary:
6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029

இப்போது நம்மிடம் தொகுக்கப்பட்ட குறியீடு இருப்பதால், அதை நிலைநிறுத்துவதற்கு எவ்வளவு எரிவாயு செலவாகும் என்பதை நாம் தீர்மானிக்க வேண்டும். RPC இடைமுகத்தில் eth_estimateGas என்ற முறை உள்ளது, அது நமக்கு ஒரு மதிப்பீட்டை வழங்கும்.

curl --data '{"jsonrpc":"2.0","method": "eth_estimateGas", "params": [{"from": "0x9b1d35635cc34752ca54713bb99d38614f63c955", "data": "0x6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029"}], "id": 5}' -H "Content-Type: application/json" localhost:8545
{"jsonrpc":"2.0","id":5,"result":"0x1c31e"}

இறுதியாக ஒப்பந்தத்தை நிலைநிறுத்தவும்.

curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from": "0x9b1d35635cc34752ca54713bb99d38614f63c955", "gas": "0x1c31e", "data": "0x6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029"}], "id": 6}' -H "Content-Type: application/json" localhost:8545
{"id":6,"jsonrpc":"2.0","result":"0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf"}

பரிவர்த்தனை கணுவால் ஏற்றுக்கொள்ளப்பட்டு, ஒரு பரிவர்த்தனை ஹாஷ் வழங்கப்படுகிறது. இந்தப் பரிவர்த்தனையைக் கண்காணிக்க இந்த ஹாஷைப் பயன்படுத்தலாம். நமது ஒப்பந்தம் எங்கு நிலைநிறுத்தப்பட்டுள்ளது என்பதற்கான முகவரியைத் தீர்மானிப்பதே அடுத்த படியாகும். செயல்படுத்தப்பட்ட ஒவ்வொரு பரிவர்த்தனையும் ஒரு ரசீதை உருவாக்கும். இந்த ரசீதில் பரிவர்த்தனை எந்தத் தொகுதியில் சேர்க்கப்பட்டுள்ளது மற்றும் EVM-ஆல் எவ்வளவு எரிவாயு பயன்படுத்தப்பட்டது போன்ற பரிவர்த்தனை பற்றிய பல்வேறு தகவல்கள் உள்ளன. ஒரு பரிவர்த்தனை ஒரு ஒப்பந்தத்தை உருவாக்கினால், அதில் ஒப்பந்த முகவரியும் இருக்கும். eth_getTransactionReceipt RPC முறையைப் பயன்படுத்தி நாம் ரசீதைப் பெறலாம்.

curl --data '{"jsonrpc":"2.0","method": "eth_getTransactionReceipt", "params": ["0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf"], "id": 7}' -H "Content-Type: application/json" localhost:8545
{"jsonrpc":"2.0","id":7,"result":{"blockHash":"0x77b1a4f6872b9066312de3744f60020cbd8102af68b1f6512a05b7619d527a4f","blockNumber":"0x1","contractAddress":"0x4d03d617d700cf81935d7f797f4e2ae719648262","cumulativeGasUsed":"0x1c31e","from":"0x9b1d35635cc34752ca54713bb99d38614f63c955","gasUsed":"0x1c31e","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf","transactionIndex":"0x0"}}

நமது ஒப்பந்தம் 0x4d03d617d700cf81935d7f797f4e2ae719648262 இல் உருவாக்கப்பட்டது. ரசீதுக்குப் பதிலாக ஒரு null முடிவு வந்தால், பரிவர்த்தனை இன்னும் ஒரு தொகுதியில் சேர்க்கப்படவில்லை என்று அர்த்தம். சிறிது நேரம் காத்திருந்து, உங்கள் ஒருமித்த கிளையன்ட் இயங்குகிறதா என்று சரிபார்த்து, மீண்டும் முயற்சிக்கவும்.

திறன் ஒப்பந்தங்களுடன் தொடர்புகொள்ளுதல்

இந்த எடுத்துக்காட்டில், ஒப்பந்தத்தின் multiply முறைக்கு eth_sendTransaction ஐப் பயன்படுத்தி ஒரு பரிவர்த்தனையை அனுப்புவோம்.

eth_sendTransaction க்கு பல வாதங்கள் (arguments) தேவைப்படுகின்றன, குறிப்பாக from, to மற்றும் data. From என்பது நமது கணக்கின் பொது முகவரியாகும், மேலும் to என்பது ஒப்பந்த முகவரியாகும். data வாதத்தில் எந்த முறையை அழைக்க வேண்டும் மற்றும் எந்த வாதங்களுடன் அழைக்க வேண்டும் என்பதை வரையறுக்கும் பேலோடு (payload) உள்ளது. இங்குதான் ABI (பயன்பாட்டு பைனரி இடைமுகம்) (opens in a new tab) செயல்பாட்டுக்கு வருகிறது. ABI என்பது EVM-க்கான தரவை எவ்வாறு வரையறுப்பது மற்றும் குறியாக்குவது என்பதை வரையறுக்கும் ஒரு JSON கோப்பாகும்.

பேலோடின் பைட்டுகள் ஒப்பந்தத்தில் எந்த முறை அழைக்கப்படுகிறது என்பதை வரையறுக்கின்றன. இது செயல்பாட்டின் பெயர் மற்றும் அதன் வாத வகைகளின் மீதான கெக்காக் ஹாஷிலிருந்து பெறப்பட்ட முதல் 4 பைட்டுகள் ஆகும், இது ஹெக்ஸ் குறியாக்கம் செய்யப்பட்டுள்ளது. பெருக்கல் (multiply) செயல்பாடு ஒரு uint-ஐ ஏற்றுக்கொள்கிறது, இது uint256-க்கான மாற்றுப் பெயராகும். இது நமக்கு இதைக் கொடுக்கிறது:

web3.sha3("multiply(uint256)").substring(0, 10)
// "0xc6888fa1"

வாதங்களைக் குறியாக்குவதே அடுத்த படியாகும். ஒரே ஒரு uint256 மட்டுமே உள்ளது, அதாவது மதிப்பு 6. uint256 வகைகளை எவ்வாறு குறியாக்குவது என்பதைக் குறிப்பிடும் ஒரு பகுதி ABI-இல் உள்ளது.

int<M>: enc(X) என்பது X-இன் பிக்-எண்டியன் டூஸ் காம்ப்ளிமென்ட் (big-endian two’s complement) குறியாக்கமாகும், இது எதிர்மறை X-க்கு உயர்-வரிசை (இடது) பக்கத்தில் 0xff உடனும், நேர்மறை X-க்கு பூஜ்ஜிய பைட்டுகளுடனும் நிரப்பப்படுகிறது, இதனால் நீளம் 32 பைட்டுகளின் மடங்காக இருக்கும்.

இது 0000000000000000000000000000000000000000000000000000000000000006 எனக் குறியாக்கம் செய்யப்படுகிறது.

செயல்பாட்டுத் தேர்வி (function selector) மற்றும் குறியாக்கம் செய்யப்பட்ட வாதத்தை இணைத்தால் நமது தரவு 0xc6888fa10000000000000000000000000000000000000000000000000000000000000006 ஆக இருக்கும்.

இதை இப்போது கணுவுக்கு அனுப்பலாம்:

curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from": "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", "to": "0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d", "data": "0xc6888fa10000000000000000000000000000000000000000000000000000000000000006"}], "id": 8}' -H "Content-Type: application/json" localhost:8545
{"id":8,"jsonrpc":"2.0","result":"0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74"}

ஒரு பரிவர்த்தனை அனுப்பப்பட்டதால், ஒரு பரிவர்த்தனை ஹாஷ் வழங்கப்பட்டது. ரசீதைப் பெறுவது இதைக் கொடுக்கிறது:

ரசீதில் ஒரு பதிவு உள்ளது. இந்தப் பதிவு பரிவர்த்தனை செயலாக்கத்தின்போது EVM-ஆல் உருவாக்கப்பட்டு ரசீதில் சேர்க்கப்பட்டது. multiply செயல்பாடு, உள்ளீட்டை 7 ஆல் பெருக்கி Print நிகழ்வு எழுப்பப்பட்டதைக் காட்டுகிறது. Print நிகழ்விற்கான வாதம் ஒரு uint256 ஆக இருந்ததால், ABI விதிகளின்படி நாம் அதை குறிவிலக்கம் (decode) செய்யலாம், இது நமக்கு எதிர்பார்க்கப்படும் தசம எண் 42-ஐக் கொடுக்கும். தரவைத் தவிர, எந்த நிகழ்வு பதிவை உருவாக்கியது என்பதைத் தீர்மானிக்க தலைப்புகளைப் (topics) பயன்படுத்தலாம் என்பது குறிப்பிடத்தக்கது:

web3.sha3("Print(uint256)")
// "24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da"

இது ஜேசன்-ஆர்பிசி-இன் நேரடிப் பயன்பாட்டை விளக்கும், மிகவும் பொதுவான சில பணிகளுக்கான ஒரு சுருக்கமான அறிமுகம் மட்டுமே.