Solana NFTs ليست مجرد صور JPEG
كنت أعتقد أن الـ NFTs ليست سوى صور رقمية.
بعد أسبوع من بنائها على Solana، تغيرت نظرتي. لقد قضيت وقتاً في إنشاء NFTs، وإرفاق البيانات الوصفية (metadata)، وتنظيم المجموعات على devnet.
إليكم ما تعلمته.
الـ NFTs ليست نوعاً منفصلاً من الأصول على Solana.
فهي تستخدم نفس نموذج SPL token المستخدم في الرموز العادية. ولا تزال تستخدم:
- حساب سك (mint account)
- حساب رمز (token account)
- محفظة مالك (owner wallet)
الفرق الوحيد يكمن في الإعدادات. لجعل الرمز NFT، عليك ضبط هذه القواعد:
- عرض (Supply) قدره 1
- 0 من الخانات العشرية (decimals)
- تعطيل سلطة السك (mint authority) بعد عملية السك
إن تعطيل سلطة السك يغلق العرض للأبد. ما يبدو وكأنه فئة أصول جديدة هو مجرد نفس البنية التحتية ولكن بقواعد مختلفة.
البيانات الوصفية (Metadata) هي ما يجعل الـ NFT ذا قيمة. لقد استخدمت Metadata Extension لإضافة اسم، ورمز (symbol)، وURI.
الـ NFT لا يخزن الصورة. فتخزين الملفات الكبيرة على الشبكة (on-chain) مكلف للغاية. بدلاً من ذلك، يخزن الـ NFT رابط URI. يشير هذا الـ URI إلى ملف JSON خارج الشبكة (off-chain). عندما تعرض المحفظة الـ NFT الخاص بك، فإنها تقرأ البيانات الوصفية الموجودة على الشبكة، وتتبع الـ URI، وتجد الصورة.
تعلمت أيضاً عن المجموعات (collections). باستخدام Group و Member extensions، قمت بربط عدة NFTs بـ NFT واحد يمثل المجموعة.
فكر في هذا الأمر كعلاقة "أب-ابن" (parent-child) في قاعدة البيانات.
- المجموعة هي "الأب".
- الـ NFTs هي "الأعضاء".
هذه العلاقة موجودة على الشبكة (on-chain). إنها ليست مجرد ميزة في تطبيق ما. يمكن لأي شخص التحقق مما إذا كان الـ NFT ينتمي إلى مجموعة من خلال فحص بيانات الحساب.
اختبرت أيضاً تحديث الـ NFTs. قمت بتغيير الأسماء وتحديث الـ URIs. حدثت التغييرات على الشبكة فوراً. ومع ذلك، قد لا تتغير الصورة في المحفظة على الفور. يحدث هذا لأن المحافظ تقوم بتخزين البيانات الوصفية مؤقتاً (cache). البيانات الموجودة على الشبكة صحيحة، لكن الطبقة المرئية تستغرق وقتاً للتحديث.
الدرس الكبير: لا تفترض كيف يعمل الشيء. افحص الحساب وتحقق من البيانات.
تُبنى الـ NFTs من نفس الأسس التي تُبنى عليها أي أصول أخرى على Solana: عمليات السك (mints)، والحسابات (accounts)، وقواعد البرامج (program rules). الصورة هي للمستخدم، أما البنية فهي ما يحدد الأصل.
المصدر: https://dev.to/devduchess/understanding-solana-nfts-as-a-web2-developer-more-than-just-jpegs-5ekm