Solana NFTs വെറും JPEG-കൾ മാത്രമല്ല
NFT-കൾ വെറും ഡിജിറ്റൽ ചിത്രങ്ങൾ മാത്രമാണെന്നാണ് ഞാൻ കരുതിയിരുന്നത്.
Solana-യിൽ അവ നിർമ്മിച്ചു തുടങ്ങിയിട്ട് ഒരാഴ്ച കഴിഞ്ഞപ്പോൾ എന്റെ കാഴ്ചപ്പാട് മാറി. devnet-ൽ NFT-കൾ നിർമ്മിക്കാനും, അവയോട് metadata ചേർക്കാനും, കളക്ഷനുകൾ ക്രമീകരിക്കാനും ഞാൻ സമയം ചെലവഴിച്ചു.
ഞാൻ പഠിച്ച കാര്യങ്ങൾ ഇതാ.
Solana-യിൽ NFT-കൾ ഒരു പ്രത്യേക അസറ്റ് ടൈപ്പ് (asset type) അല്ല.
സാധാരണ ടോക്കണുകളെപ്പോലെ തന്നെ അവയും SPL token മോഡൽ ആണ് ഉപയോഗിക്കുന്നത്. അവ ഇപ്പോഴും ഇവ ഉപയോഗിക്കുന്നു:
- ഒരു mint account
- ഒരു token account
- ഒരു owner wallet
വ്യത്യാസം കോൺഫിഗറേഷനിൽ (configuration) മാത്രമാണ്. ഒരു ടോക്കണിനെ NFT ആക്കി മാറ്റാൻ നിങ്ങൾ ഈ നിയമങ്ങൾ നിശ്ചയിക്കണം:
- സപ്ലൈ (Supply) 1
- 0 decimals
- mint ചെയ്തതിന് ശേഷം mint authority ഡിസേബിൾ ചെയ്യുക
Mint authority ഡിസേബിൾ ചെയ്യുന്നത് സപ്ലൈ എന്നെന്നേക്കുമായി ലോക്ക് ചെയ്യുന്നു. ഒരു പുതിയ അസറ്റ് വിഭാഗം പോലെ തോന്നുന്നതൊക്കെ യഥാർത്ഥത്തിൽ വ്യത്യസ്ത നിയമങ്ങളുള്ള ഒരേ ആർക്കിടെക്ചർ (architecture) മാത്രമാണ്.
Metadata ആണ് NFT-ക്ക് അർത്ഥം നൽകുന്നത്. ഒരു പേര്, ഒരു ചിഹ്നം (symbol), ഒരു URI എന്നിവ ചേർക്കാൻ ഞാൻ Metadata Extension ഉപയോഗിച്ചു.
NFT ചിത്രങ്ങൾ സംഭരിച്ചുവെക്കുന്നില്ല. വലിയ ഫയലുകൾ on-chain-ൽ സൂക്ഷിക്കുന്നത് വളരെ ചിലവേറിയതാണ്. പകരം, NFT ഒരു URI ആണ് സംഭരിക്കുന്നത്. ഈ URI off-chain-ലുള്ള ഒരു JSON ഫയലിലേക്കാണ് വിരൽ ചൂണ്ടുന്നത്. ഒരു വാലറ്റ് നിങ്ങളുടെ NFT കാണിക്കുമ്പോൾ, അത് on-chain metadata വായിക്കുകയും URI പിന്തുടരുകയും ചിത്രം കണ്ടെത്തുകയും ചെയ്യുന്നു.
കളക്ഷനുകളെക്കുറിച്ചും (collections) ഞാൻ പഠിച്ചു. Group, Member extensions ഉപയോഗിച്ച്, ഒന്നിലധികം NFT-കളെ ഒരു കളക്ഷൻ NFT-യുമായി ഞാൻ ബന്ധിപ്പിച്ചു.
ഒരു ഡാറ്റാബേസിലെ parent-child ബന്ധം പോലെ ഇതിനെ കരുതുക.
- കളക്ഷൻ എന്നത് parent ആണ്.
- NFT-കൾ എന്നത് members ആണ്.
ഈ ബന്ധം on-chain-ൽ നിലനിൽക്കുന്നു. ഇതൊരു ആപ്പ് ഫീച്ചർ മാത്രമല്ല. അക്കൗണ്ട് ഡാറ്റ പരിശോധിച്ചുകൊണ്ട് ഒരു NFT ഒരു കളക്ഷനിൽ ഉൾപ്പെടുന്നുണ്ടോ എന്ന് ആർക്കും പരിശോധിക്കാൻ കഴിയും.
NFT-കൾ അപ്ഡേറ്റ് ചെയ്യുന്നതും ഞാൻ പരീക്ഷിച്ചു നോക്കി. ഞാൻ പേരുകൾ മാറ്റുകയും URIs അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്തു. മാറ്റങ്ങൾ ഉടൻ തന്നെ on-chain-ൽ സംഭവിച്ചു. എന്നിരുന്നാലും, വാലറ്റിലെ ചിത്രം ഉടൻ തന്നെ മാറണമെന്നില്ല. വാലറ്റുകൾ metadata cache ചെയ്യുന്നതുകൊണ്ടാണ് ഇങ്ങനെ സംഭവിക്കുന്നത്. On-chain ഡാറ്റ ശരിയാണ്, പക്ഷേ വിഷ്വൽ ലെയർ (visual layer) പുതുങ്ങാൻ സമയമെടുക്കും.
പ്രധാന പാഠം: ഒരു കാര്യം എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് മുൻകൂട്ടി അനുമാനിക്കരുത്. അക്കൗണ്ട് പരിശോധിക്കുകയും ഡാറ്റ ഉറപ്പുവരുത്തുകയും ചെയ്യുക.
Solana-യിലെ മറ്റെല്ലാ അസറ്റുകളെയും പോലെ തന്നെ NFT-കളും നിർമ്മിച്ചിരിക്കുന്നത് mints, accounts, program rules എന്നീ അടിസ്ഥാനങ്ങളിൽ നിന്നാണ്. ചിത്രം ഉപയോക്താവിനുള്ളതാണ്. ഘടനയാണ് (structure) അസറ്റിനെ നിർവചിക്കുന്നത്.
Source: https://dev.to/devduchess/understanding-solana-nfts-as-a-web2-developer-more-than-just-jpegs-5ekm