NFTهای سولانا فقط JPEG نیستند
قبلاً فکر میکردم NFTها فقط تصاویر دیجیتالی هستند.
بعد از یک هفته ساختن آنها روی Solana، دیدگاهم تغییر کرد. من زمانم را صرف ساخت NFTها، پیوست کردن متادیتا و سازماندهی مجموعهها روی devnet کردم.
آنچه یاد گرفتم اینجاست.
NFTها یک نوع دارایی مجزا در Solana نیستند.
آنها از همان مدل SPL token مانند توکنهای معمولی استفاده میکنند. آنها همچنان از موارد زیر استفاده میکنند:
- یک حساب mint
- یک حساب token
- یک کیف پول مالک (owner wallet)
تنها تفاوت در پیکربندی (configuration) است. برای تبدیل یک توکن به NFT، این قوانین را تنظیم میکنید:
- عرضه (Supply) برابر با ۱
- ۰ رقم اعشار (decimals)
- غیرفعال کردن مجوز ضرب (mint authority) پس از ضرب کردن (minting)
غیرفعال کردن مجوز ضرب، عرضه را برای همیشه قفل میکند. آنچه شبیه به یک دسته دارایی جدید به نظر میرسد، در واقع همان معماری با قوانین متفاوت است.
متادیتا به NFT معنا میبخشد. من از Metadata Extension برای افزودن نام، نماد (symbol) و یک URI استفاده کردم.
NFT تصویر را ذخیره نمیکند. ذخیره فایلهای بزرگ روی زنجیره (on-chain) بسیار گران است. در عوض، NFT یک URI را ذخیره میکند. این URI به یک فایل JSON خارج از زنجیره (off-chain) اشاره دارد. وقتی یک کیف پول NFT شما را نشان میدهد، متادیتای روی زنجیره را میخواند، URI را دنبال میکند و تصویر را پیدا میکند.
من همچنین درباره مجموعهها (collections) یاد گرفتم. با استفاده از افزونههای Group و Member، چندین NFT را به یک NFT مجموعه (collection NFT) متصل کردم.
این را مانند یک رابطه والد-فرزندی در یک پایگاه داده در نظر بگیرید.
- مجموعه، والد است.
- NFTها، اعضا هستند.
این رابطه روی زنجیره (on-chain) قرار دارد. این فقط یک ویژگی اپلیکیشن نیست. هر کسی میتواند با بررسی دادههای حساب (account data)، تأیید کند که آیا یک NFT متعلق به یک مجموعه است یا خیر.
من همچنین بهروزرسانی NFTها را آزمایش کردم. نامها را تغییر دادم و URIها را بهروز کردم. تغییرات بلافاصله روی زنجیره اعمال شدند. با این حال، ممکن است تصویر در یک کیف پول بلافاصله تغییر نکند. این اتفاق به این دلیل میافتد که کیف پولها متادیتا را کش (cache) میکنند. دادههای روی زنجیره درست هستند، اما لایه بصری برای بهروزرسانی زمان میبرد.
درس بزرگ: فرض نکنید چیزی چگونه کار میکند. حساب را بررسی کنید و دادهها را تأیید کنید.
NFTها از همان پایههای هر دارایی دیگری در Solana ساخته شدهاند: mintها، حسابها و قوانین برنامه. تصویر برای کاربر است. ساختار است که دارایی را تعریف میکند.
منبع: https://dev.to/devduchess/understanding-solana-nfts-as-a-web2-developer-more-than-just-jpegs-5ekm