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

திறன் ஒப்பந்த மொழிகள்

எத்திரியம் பற்றிய ஒரு சிறந்த அம்சம் என்னவென்றால், திறன் ஒப்பந்தங்களை ஒப்பீட்டளவில் டெவலப்பர்களுக்கு எளிதான மொழிகளைப் பயன்படுத்தி நிரலாக்கம் செய்யலாம். உங்களுக்கு Python அல்லது ஏதேனும் சுருள்-அடைப்புக்குறி மொழியில் (curly-bracket language) (புதிய தாவலில் திறக்கப்படும்) அனுபவம் இருந்தால், உங்களுக்குப் பரிச்சயமான தொடரியல் (syntax) கொண்ட ஒரு மொழியை நீங்கள் கண்டறியலாம்.

மிகவும் சுறுசுறுப்பாகப் பயன்படுத்தப்படும் மற்றும் பராமரிக்கப்படும் இரண்டு மொழிகள்:

  • Solidity
  • Vyper

Solidity மற்றும் Vyper ஆகிய இரண்டிலும் ஒப்பந்தங்களை உருவாக்குவதற்கும் சோதிப்பதற்கும் Remix IDE ஒரு விரிவான மேம்பாட்டுச் சூழலை வழங்குகிறது. குறியீட்டை எழுதத் தொடங்க உலாவியிலேயே இயங்கும் Remix IDE-ஐ முயன்று பார்க்கவும் (புதிய தாவலில் திறக்கப்படும்).

அதிக அனுபவமுள்ள டெவலப்பர்கள் எத்திரியம் மெய்நிகர் இயந்திரத்திற்கான (Ethereum Virtual Machine - EVM) இடைநிலை மொழியான Yul அல்லது Yul-இன் நீட்டிப்பான Yul+ ஆகியவற்றைப் பயன்படுத்த விரும்பலாம்.

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

முன்நிபந்தனைகள்

நிரலாக்க மொழிகள், குறிப்பாக JavaScript அல்லது Python பற்றிய முன் அறிவு, திறன் ஒப்பந்த மொழிகளில் உள்ள வேறுபாடுகளைப் புரிந்துகொள்ள உங்களுக்கு உதவும். மொழி ஒப்பீடுகளைப் பற்றி ஆழமாகப் பார்ப்பதற்கு முன், திறன் ஒப்பந்தங்களை ஒரு கருத்தியலாகப் புரிந்துகொள்ளுமாறு நாங்கள் பரிந்துரைக்கிறோம். திறன் ஒப்பந்தங்கள் அறிமுகம்.

Solidity

  • திறன் ஒப்பந்தங்களைச் செயல்படுத்துவதற்கான பொருள்-நோக்கு (Object-oriented), உயர்நிலை மொழி.
  • C++ ஆல் மிகவும் ஆழமாக ஈர்க்கப்பட்ட சுருள்-அடைப்புக்குறி மொழி.
  • நிலையான வகைப்படுத்தப்பட்டது (Statically typed - ஒரு மாறியின் வகை தொகுக்கும் நேரத்தில் அறியப்படும்).
  • ஆதரிப்பவை:
    • மரபுரிமை (Inheritance - நீங்கள் பிற ஒப்பந்தங்களை நீட்டிக்கலாம்).
    • நிரலகங்கள் (Libraries - பிற பொருள்-நோக்கு நிரலாக்க மொழிகளில் உள்ள நிலையான வகுப்பில் உள்ள நிலையான சார்புகளைப் போல, வெவ்வேறு ஒப்பந்தங்களிலிருந்து நீங்கள் அழைக்கக்கூடிய மறுபயன்பாட்டு குறியீட்டை உருவாக்கலாம்).
    • சிக்கலான பயனர் வரையறுத்த வகைகள்.

எடுத்துக்காட்டு ஒப்பந்தம்

Solidity ஒப்பந்தத் தொடரியல் எப்படி இருக்கும் என்பதைப் பற்றிய ஒரு புரிதலை இந்த எடுத்துக்காட்டு உங்களுக்கு வழங்கும். சார்புகள் மற்றும் மாறிகள் பற்றிய விரிவான விளக்கத்திற்கு, ஆவணங்களைப் பார்க்கவும் (புதிய தாவலில் திறக்கப்படும்).

Vyper

  • Python போன்ற நிரலாக்க மொழி
  • வலுவான வகைப்படுத்தல் (Strong typing)
  • சிறிய மற்றும் புரிந்துகொள்ளக்கூடிய தொகுப்பான் (compiler) குறியீடு
  • திறமையான பைட் குறியீடு உருவாக்கம்
  • ஒப்பந்தங்களை மிகவும் பாதுகாப்பானதாகவும் தணிக்கை செய்ய எளிதானதாகவும் மாற்றும் நோக்கத்துடன், Solidity-ஐ விடக் குறைவான அம்சங்களை வேண்டுமென்றே கொண்டுள்ளது. Vyper இவற்றை ஆதரிக்காது:
    • மாற்றிகள் (Modifiers)
    • மரபுரிமை (Inheritance)
    • இன்லைன் அசெம்பிளி (Inline assembly)
    • சார்பு மிகையேற்றம் (Function overloading)
    • செயலி மிகையேற்றம் (Operator overloading)
    • சுழல் அழைப்பு (Recursive calling)
    • முடிவிலி நீள சுழல்கள் (Infinite-length loops)
    • பைனரி நிலையான புள்ளிகள் (Binary fixed points)

மேலும் தகவலுக்கு, Vyper-இன் அடிப்படைக் காரணங்களைப் படிக்கவும் (புதிய தாவலில் திறக்கப்படும்).

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

Vyper ஒப்பந்தத் தொடரியல் எப்படி இருக்கும் என்பதைப் பற்றிய ஒரு புரிதலை இந்த எடுத்துக்காட்டு உங்களுக்கு வழங்கும். சார்புகள் மற்றும் மாறிகள் பற்றிய விரிவான விளக்கத்திற்கு, ஆவணங்களைப் பார்க்கவும் (புதிய தாவலில் திறக்கப்படும்).

Yul மற்றும் Yul+

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

Yul

  • எத்திரியத்திற்கான இடைநிலை மொழி.
  • EVM மற்றும் எத்திரியம் சுவையிலான WebAssembly-ஆன Ewasm (புதிய தாவலில் திறக்கப்படும்) ஆகியவற்றை ஆதரிக்கிறது, மேலும் இது இரு தளங்களுக்கும் பயன்படுத்தக்கூடிய பொதுவான அடிப்படையாக வடிவமைக்கப்பட்டுள்ளது.
  • EVM மற்றும் Ewasm தளங்கள் இரண்டிற்கும் சமமாகப் பயனளிக்கக்கூடிய உயர்நிலை உகப்பாக்க (optimisation) நிலைகளுக்கான சிறந்த இலக்கு.

Yul+

  • Yul-இன் கீழ்நிலை, அதிகத் திறன் கொண்ட நீட்டிப்பு.
  • ஆரம்பத்தில் ஒரு ஆப்டிமிஸ்டிக் ரோல்அப் ஒப்பந்தத்திற்காக வடிவமைக்கப்பட்டது.
  • Yul+ ஐ Yul-க்கான ஒரு பரிசோதனை மேம்படுத்தல் முன்மொழிவாகக் கருதலாம், இது அதில் புதிய அம்சங்களைச் சேர்க்கிறது.

எடுத்துக்காட்டு ஒப்பந்தம்

பின்வரும் எளிய எடுத்துக்காட்டு ஒரு அடுக்குச் சார்பை (power function) செயல்படுத்துகிறது. இதை solc --strict-assembly --bin input.yul ஐப் பயன்படுத்தித் தொகுக்கலாம். இந்த எடுத்துக்காட்டு input.yul கோப்பில் சேமிக்கப்பட வேண்டும்.

நீங்கள் ஏற்கனவே திறன் ஒப்பந்தங்களில் நல்ல அனுபவம் பெற்றிருந்தால், Yul-இல் முழுமையான ERC-20 செயலாக்கத்தை இங்கே (புதிய தாவலில் திறக்கப்படும்) காணலாம்.

Fe

  • எத்திரியம் மெய்நிகர் இயந்திரத்திற்கான (EVM) நிலையான வகைப்படுத்தப்பட்ட மொழி.
  • Python மற்றும் Rust ஆகியவற்றால் ஈர்க்கப்பட்டது.
  • எத்திரியம் சுற்றுச்சூழல் அமைப்புக்குப் புதிய டெவலப்பர்களுக்கும் கூட -- கற்றுக்கொள்ள எளிதாக இருக்க வேண்டும் என்பதை நோக்கமாகக் கொண்டுள்ளது.
  • Fe மேம்பாடு இன்னும் ஆரம்பக் கட்டத்திலேயே உள்ளது, இந்த மொழி ஜனவரி 2021 இல் அதன் ஆல்பா வெளியீட்டைக் கொண்டிருந்தது.

எடுத்துக்காட்டு ஒப்பந்தம்

பின்வருவது Fe-இல் செயல்படுத்தப்பட்ட ஒரு எளிய ஒப்பந்தமாகும்.

எப்படித் தேர்ந்தெடுப்பது

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

நீங்கள் இதுவரை எந்த மொழியையும் முயற்சிக்கவில்லை என்றால், கருத்தில் கொள்ள வேண்டிய சில விஷயங்கள் இங்கே:

Solidity-இல் உள்ள சிறப்பம்சங்கள் என்ன?

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

Vyper-இல் உள்ள சிறப்பம்சங்கள் என்ன?

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

Yul மற்றும் Yul+-இல் உள்ள சிறப்பம்சங்கள் என்ன?

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

மொழி ஒப்பீடுகள்

அடிப்படைத் தொடரியல், ஒப்பந்த வாழ்க்கைச் சுழற்சி, இடைமுகங்கள், செயலிகள், தரவுக் கட்டமைப்புகள், சார்புகள், கட்டுப்பாட்டு ஓட்டம் மற்றும் பலவற்றின் ஒப்பீடுகளுக்கு, Auditless-இன் இந்தச் சுருக்குக் குறிப்பைப் (cheatsheet) (புதிய தாவலில் திறக்கப்படும்) பார்க்கவும்.

மேலும் படிக்க