தமிழ்

NFT-களுக்கான ERC-721 ஸ்மார்ட் ஒப்பந்தங்களின் நுணுக்கங்களை ஆராயுங்கள். அவற்றின் கட்டமைப்பு, செயல்படுத்தல், பாதுகாப்பு அம்சங்கள் மற்றும் நிஜ உலகப் பயன்பாடுகள் பற்றி அறியுங்கள்.

NFT ஸ்மார்ட் ஒப்பந்தங்கள்: ERC-721 செயல்படுத்தலில் ஒரு ஆழமான பார்வை

பதிலீடு செய்ய முடியாத டோக்கன்கள் (NFTs) டிஜிட்டல் சொத்து உலகில் புரட்சியை ஏற்படுத்தியுள்ளன, இது பிளாக்செயினில் தனித்துவமான பொருட்களைப் பிரதிநிதித்துவப்படுத்த உதவுகிறது. பெரும்பாலான NFT-களின் மையத்தில் ERC-721 தரநிலை உள்ளது, இது இந்த டோக்கன்கள் எவ்வாறு உருவாக்கப்படுகின்றன, நிர்வகிக்கப்படுகின்றன மற்றும் மாற்றப்படுகின்றன என்பதைக் கட்டுப்படுத்தும் விதிகளின் தொகுப்பாகும். இந்த விரிவான வழிகாட்டி ERC-721 ஸ்மார்ட் ஒப்பந்தங்களின் கட்டமைப்பு, செயல்படுத்தல் விவரங்கள், பாதுகாப்பு பரிசீலனைகள் மற்றும் நடைமுறைப் பயன்பாடுகளை உள்ளடக்கிய ஒரு ஆழமான ஆய்வை வழங்குகிறது.

ERC-721 என்றால் என்ன?

ERC-721 என்பது எத்தேரியம் பிளாக்செயினில் பதிலீடு செய்ய முடியாத டோக்கன்களைக் குறிக்கும் ஒரு தரநிலை ஆகும். ERC-20 டோக்கன்களைப் போலல்லாமல், அவை பதிலீடு செய்யக்கூடியவை (அதாவது ஒவ்வொரு டோக்கனும் மற்ற எல்லா டோக்கன்களுக்கும் ஒத்ததாக இருக்கும்), ERC-721 டோக்கன்கள் தனித்துவமானவை. ஒவ்வொரு டோக்கனுக்கும் ஒரு தனித்துவமான ஐடி உள்ளது, இது தனித்துவமான டிஜிட்டல் அல்லது பௌதீக சொத்துக்களின் உரிமையைக் குறிக்க ஏற்றதாக அமைகிறது.

ERC-721 டோக்கன்களின் முக்கிய பண்புகள்:

ERC-721 ஸ்மார்ட் ஒப்பந்தக் கட்டமைப்பு

ஒரு ERC-721 ஸ்மார்ட் ஒப்பந்தம் என்பது ERC-721 தரநிலையை செயல்படுத்தும் ஒரு சொலிடிட்டி நிரலாகும். இது பொதுவாக பின்வரும் கூறுகளை உள்ளடக்கியது:

முக்கிய செயல்பாடுகள்:

மெட்டாடேட்டா நீட்டிப்பு (விருப்பத்தேர்வு):

கணக்கீட்டு நீட்டிப்பு (விருப்பத்தேர்வு):

ஓப்பன்செப்பலின் மூலம் ஒரு ERC-721 ஸ்மார்ட் ஒப்பந்தத்தை செயல்படுத்துதல்

ஓப்பன்செப்பலின், ERC-721 டோக்கன்களின் மேம்பாட்டை எளிதாக்கும் பாதுகாப்பான மற்றும் தணிக்கை செய்யப்பட்ட ஸ்மார்ட் ஒப்பந்தங்களின் நூலகத்தை வழங்குகிறது. ஓப்பன்செப்பலின் ERC721 செயலாக்கத்தைப் பயன்படுத்துவது உங்கள் குறியீட்டில் பாதிப்புகளை அறிமுகப்படுத்தும் அபாயத்தைக் குறைக்கிறது. ஓப்பன்செப்பலினைப் பயன்படுத்தி ஒரு ERC-721 ஸ்மார்ட் ஒப்பந்தத்தை எவ்வாறு செயல்படுத்துவது என்பதற்கான ஒரு எடுத்துக்காட்டு இங்கே:

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

படிகள்:

  1. ஒரு Truffle அல்லது Hardhat திட்டத்தைத் தொடங்கவும்:
# Truffle
mkdir my-nft-project
cd my-nft-project
truffle init

# Hardhat
mkdir my-nft-project
cd my-nft-project
npx hardhat
  1. ஓப்பன்செப்பலின் ஒப்பந்தங்களை நிறுவவும்:
npm install @openzeppelin/contracts
  1. ஒரு ERC-721 ஸ்மார்ட் ஒப்பந்தத்தை உருவாக்கவும்: உங்கள் `contracts` கோப்பகத்தில் ஒரு புதிய சொலிடிட்டி கோப்பை (எ.கா., `MyNFT.sol`) உருவாக்கவும்.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract MyNFT is ERC721 {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    string private _baseURI;

    constructor(string memory name, string memory symbol, string memory baseURI) ERC721(name, symbol) {
        _baseURI = baseURI;
    }

    function mintNFT(address recipient) public returns (uint256) {
        _tokenIds.increment();

        uint256 newItemId = _tokenIds.current();
        _mint(recipient, newItemId);
        _setTokenURI(newItemId, string(abi.encodePacked(_baseURI, Strings.toString(newItemId), ".json")));

        return newItemId;
    }

    function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {
        require(_exists(tokenId), "ERC721Metadata: URI set of nonexistent token");
        _tokenURIs[tokenId] = _tokenURI;
    }

    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

        string memory _tokenURI = _tokenURIs[tokenId];
        return string(abi.encodePacked(_tokenURI));
    }

    mapping (uint256 => string) private _tokenURIs;

    function setBaseURI(string memory baseURI) public {
        _baseURI = baseURI;
    }



    // The following functions are overrides required by Solidity.

    function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal override(ERC721) {
        super._beforeTokenTransfer(from, to, tokenId);
    }
}

import "@openzeppelin/contracts/utils/Strings.sol";
  1. ஸ்மார்ட் ஒப்பந்தத்தை தொகுக்கவும்: உங்கள் ஸ்மார்ட் ஒப்பந்தத்தை தொகுக்க Truffle அல்லது Hardhat-ஐப் பயன்படுத்தவும்.
# Truffle
truffle compile

# Hardhat
npx hardhat compile
  1. ஒரு வரிசைப்படுத்தல் ஸ்கிரிப்டை உருவாக்கவும்: உங்கள் `migrations` அல்லது `scripts` கோப்பகத்தில் ஒரு புதிய ஜாவாஸ்கிரிப்ட் கோப்பை (எ.கா., `deploy.js`) உருவாக்கவும்.
// Truffle Migration Example
const MyNFT = artifacts.require("MyNFT");

module.exports = async function (deployer) {
  await deployer.deploy(MyNFT, "MyNFT", "MNFT", "ipfs://YOUR_IPFS_CID/");
};

// Hardhat Deployment Script Example
async function main() {
  const MyNFT = await ethers.getContractFactory("MyNFT");
  const myNFT = await MyNFT.deploy("MyNFT", "MNFT", "ipfs://YOUR_IPFS_CID/");

  await myNFT.deployed();

  console.log("MyNFT deployed to:", myNFT.address);
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
  });
  1. ஸ்மார்ட் ஒப்பந்தத்தை வரிசைப்படுத்தவும்: உங்கள் ஸ்மார்ட் ஒப்பந்தத்தை ஒரு உள்ளூர் பிளாக்செயினில் (எ.கா., Ganache) அல்லது ஒரு சோதனை நெட்வொர்க்கில் (எ.கா., Ropsten, Rinkeby) வரிசைப்படுத்தவும்.
# Truffle
truffle migrate

# Hardhat
npx hardhat run scripts/deploy.js --network localhost

`ipfs://YOUR_IPFS_CID/` என்பதை உங்கள் உண்மையான IPFS CID (உள்ளடக்க அடையாளங்காட்டி) மூலம் மாற்றுவதை நினைவில் கொள்ளுங்கள். இந்த அடிப்படை URI உங்கள் NFT மெட்டாடேட்டா JSON கோப்புகள் சேமிக்கப்படும் இடத்திற்குச் சுட்டிக்காட்டுகிறது.

IPFS-ல் NFT மெட்டாடேட்டாவை சேமித்தல்

பிளாக்செயினில் தரவைச் சேமிப்பதற்கான செலவைக் குறைக்க NFT மெட்டாடேட்டா பொதுவாக ஆஃப்-செயினில் சேமிக்கப்படுகிறது. IPFS (இன்டர்பிளானட்டரி ஃபைல் சிஸ்டம்) என்பது NFT மெட்டாடேட்டாவை சேமிப்பதற்காகப் பொதுவாகப் பயன்படுத்தப்படும் ஒரு பரவலாக்கப்பட்ட சேமிப்பக நெட்வொர்க் ஆகும். ஒவ்வொரு NFT-க்கும் ஒரு `tokenURI` உள்ளது, இது IPFS-ல் உள்ள ஒரு JSON கோப்பிற்குச் சுட்டிக்காட்டுகிறது, அதில் NFT பற்றிய பெயர், விளக்கம், பட URL மற்றும் பிற பண்புக்கூறுகள் போன்ற மெட்டாடேட்டாக்கள் உள்ளன.

எடுத்துக்காட்டு NFT மெட்டாடேட்டா (JSON):

{
  "name": "My Awesome NFT",
  "description": "This is a unique NFT.",
  "image": "ipfs://YOUR_IPFS_CID/image.png",
  "attributes": [
    {
      "trait_type": "Background",
      "value": "Blue"
    },
    {
      "trait_type": "Character",
      "value": "Robot"
    }
  ]
}

`ipfs://YOUR_IPFS_CID/image.png` என்பதை உங்கள் படத்தின் உண்மையான IPFS CID உடன் மாற்றவும்.

IPFS-க்கு மெட்டாடேட்டாவைப் பதிவேற்றுவதற்கான படிகள்:

  1. ஒரு IPFS கிளையண்டைத் தேர்வு செய்யவும்: IPFS டெஸ்க்டாப், பினாட்டா அல்லது NFT.ஸ்டோரேஜ் போன்ற ஒரு IPFS கிளையண்டைத் தேர்ந்தெடுக்கவும்.
  2. உங்கள் மெட்டாடேட்டாவைப் பதிவேற்றவும்: உங்கள் NFT மெட்டாடேட்டா JSON கோப்புகள் மற்றும் படங்களை நீங்கள் தேர்ந்தெடுத்த கிளையண்டைப் பயன்படுத்தி IPFS-க்கு பதிவேற்றவும்.
  3. IPFS CID-ஐப் பெறவும்: உங்கள் மெட்டாடேட்டாவைப் பதிவேற்றிய பிறகு, நீங்கள் ஒரு IPFS CID-ஐப் பெறுவீர்கள். இது IPFS-ல் உங்கள் தரவிற்கான ஒரு தனித்துவமான அடையாளங்காட்டி ஆகும்.
  4. ஸ்மார்ட் ஒப்பந்தத்தைப் புதுப்பிக்கவும்: உங்கள் ஸ்மார்ட் ஒப்பந்தத்தில் உள்ள `tokenURI` செயல்பாட்டை உங்கள் IPFS CID-க்குச் சுட்டிக்காட்டும்படி புதுப்பிக்கவும்.

ERC-721 ஸ்மார்ட் ஒப்பந்தங்களுக்கான பாதுகாப்பு பரிசீலனைகள்

ERC-721 ஸ்மார்ட் ஒப்பந்தங்களை உருவாக்கும்போது பாதுகாப்பு மிக முக்கியமானது. இங்கே சில முக்கியமான பாதுகாப்பு பரிசீலனைகள் உள்ளன:

ERC-721 NFT-களின் நிஜ உலகப் பயன்பாடுகள்

ERC-721 NFT-கள் பரந்த அளவிலான பயன்பாடுகளில் பயன்படுத்தப்படுகின்றன, அவற்றுள்:

சர்வதேச எடுத்துக்காட்டுகள்:

மேம்பட்ட ERC-721 கருத்துக்கள்

ERC-721A

ERC-721A என்பது ERC-721 தரநிலையின் எரிவாயு-திறமையான செயலாக்கமாகும், இது ஒரே பரிவர்த்தனையில் பல NFT-களை உருவாக்குவதை மேம்படுத்துகிறது. இது பல டோக்கன்களுக்கு இடையில் சேமிப்பகச் செலவுகளைப் பகிர்வதன் மூலம் எரிவாயுச் செலவுகளைக் குறைக்கிறது. அதிக எண்ணிக்கையிலான NFT-களை உருவாக்கும் திட்டங்களுக்கு இது பயனுள்ளதாக இருக்கும்.

சோம்பேறி உருவாக்கம் (Lazy Minting)

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

சோல்பவுண்ட் டோக்கன்கள் (Soulbound Tokens)

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

ERC-721 மற்றும் NFT-களின் எதிர்காலம்

ERC-721 தரநிலை தொடர்ந்து மேம்பட்டு வருகிறது, அதன் செயல்திறன், பாதுகாப்பு மற்றும் செயல்பாட்டை மேம்படுத்துவதில் தற்போதைய ஆராய்ச்சி மற்றும் மேம்பாடு கவனம் செலுத்துகிறது. எதிர்கால மேம்பாடுகள் பின்வருவனவற்றை உள்ளடக்கியிருக்கலாம்:

முடிவுரை

ERC-721 ஸ்மார்ட் ஒப்பந்தங்கள் பிளாக்செயினில் தனித்துவமான டிஜிட்டல் மற்றும் பௌதீக சொத்துக்களின் உரிமையைப் பிரதிநிதித்துவப்படுத்துவதற்கான ஒரு சக்திவாய்ந்த கருவியாகும். ERC-721-ன் கட்டமைப்பு, செயல்படுத்தல் விவரங்கள், பாதுகாப்பு பரிசீலனைகள் மற்றும் நடைமுறைப் பயன்பாடுகளைப் புரிந்துகொள்வதன் மூலம், டெவலப்பர்கள் புதுமையான மற்றும் தாக்கத்தை ஏற்படுத்தும் NFT திட்டங்களை உருவாக்க முடியும். NFT சுற்றுச்சூழல் அமைப்பு தொடர்ந்து வளர்ந்து மேம்பட்டு வரும் நிலையில், டிஜிட்டல் உரிமையின் எதிர்காலத்தை வடிவமைப்பதில் ERC-721 தரநிலை ஒரு முக்கிய பங்கு வகிக்கும்.

இந்த வழிகாட்டி ERC-721 ஸ்மார்ட் ஒப்பந்தங்களைப் புரிந்துகொள்வதற்கும் செயல்படுத்துவதற்கும் ஒரு திடமான அடித்தளத்தை வழங்குகிறது. உங்கள் சொந்த NFT திட்டங்களை உருவாக்கும்போதும் வரிசைப்படுத்தும்போதும் எப்போதும் பாதுகாப்பிற்கு முன்னுரிமை அளித்து சிறந்த நடைமுறைகளைப் பின்பற்றுவதை நினைவில் கொள்ளுங்கள். வாழ்த்துக்கள்!