چگونگی ساخت یک NFT در Opensea و نحوه رندرینگ آن در بازار سهام

شکل ۱. ان‌اف‌تی منتشر‌شده در freecodecamp به تاریخ ۱ آوریل ۲۰۲۱ لینک منبع How to Make an NFT and Render it on the OpenSea Marketplaceدر این مقاله یاد می‌گیریم که چگونهNFT قابل تنظیم نامحدود را با براونی، پایتون، و Chainlink بسازیم. و خواهیم دید که چگونه می‌توانیم ساخت خود را در بازار «Opensea NFT» ارائه و به فروش برسانیم. اگر به دنبال یک برنامه آموزشی هستید که از تافل، JavaScript و شخصیت‌های قرون‌وسطی جالب استفاده می‌کند، چگونگی ساخت، گسترش و فروش NFT خود را در اینجا بررسی کنید.مفهوم NFT چیست؟عبارت NFT (توکن‌های غیرقابل تامین) را می‌توان با یک کلمه خلاصه کرد: «منحصر به فرد». اینها قراردادهای هوشمندی هستند که در یک بلاکچین به کار گرفته شده‌اند که نشان‌دهنده چیزی منحصر به فرد هستند.عبارت ERC20 در مقابل ERC721توکن NFT یک استاندارد توکن بلاکچین شبیه به ERC20، مانند AAVE، SNX و LINK است (از لحاظ فنی یک ERC677). ERC20s توکن‌های «قابل اصلاح» هستند که به معنای «قابل تعویض» یا «قابل جایگزینی» هستند.برای مثال، صورتحساب دلاری شما بدون توجه به این که شما از چه صورتحساب دلاری استفاده می‌کنید، ارزشی معادل ۱ دلار خواهد داشت. شماره سریال بر روی صورتحساب دلار ممکن است متفاوت باشد، اما صورتحساب‌ها قابل‌تعویض هستند و مهم نیست که چه ارزشی دارند. از سوی دیگر NFT «غیرقابل اصلاح» است، و آن‌ها از استاندارد توکن خود، ERC721 پیروی می‌کنند. به عنوان مثال، مونا لیزا «غیرقابل اصلاح» است. حتی اگر کسی بتواند یک نسخه از آن را بسازد، همیشه فقط یک مونالیزا وجود خواهد داشت. اگر مونا لیزا بر روی بلاکچین ساخته شود، یک NFT خواهد بود.ممکن است به مطالعه مقاله ارز دیجیتالی Enjin Coin (ENJ) برای گیمرها علاقمند باشید.توکن NFT برای چیست؟توکن NFT برای سازندگان، هنرمندان، طراحان بازی و بیشتر با داشتن سابقه دائمی استقرار در زنجیره ارزش ایجاد می‌کند. شما همیشه می‌دانید که چه کسی NFT را خلق کرد، چه کسی صاحب NFT بود، از کجا آمده بود، و بیشتر، ارزش زیادی به آن‌ها نسبت به هنر سنتی می‌داد. در هنر سنتی، درک این که یک «اثر تقلبی» چیست، می‌تواند دشوار باشد، در‌حالی‌که در زنجیره تاریخ به راحتی قابل‌ردیابی است.و از آنجا که قراردادهای هوشمند وNFT ۱۰۰٪ قابل‌برنامه‌ریزی هستند، NFT نیز می‌تواند حق امتیاز داخلی و هر نوع کارکرد دیگری را به آن اضافه کند. اصلاح هنرمندان همیشه یک مسئله بوده است، زیرا اغلب اوقات کار یک هنرمند بدون هیچ‌گونه اسنادی گسترش می‌یابد.هنرمندان و مهندسان بیشتر و بیشتری به این ارزش افزوده عظیم روی می‌آورند، زیرا در نهایت این راهی عالی برای هنرمندان است که جبرانی برای کارشان شوند. و علاوه بر این، NFT یک راه جالب برای نشان دادن خلاقیت شما و تبدیل شدن به یک جمع‌کننده در دنیای دیجیتال است.ارزش NFTsتوکن‌های NFT راه طولانی را طی کرده‌اند، و همچنان شاهد فروش رکورد‌شکن NFT هستیم، مانند «هرروز: ۵۰۰۰ روز اول» که به قیمت ۶۹.۳ میلیون دلار فروخته می‌شود. بنابراین در اینجا ارزش زیادی وجود دارد، و همچنین یک روش سرگرم‌کننده، پویا و جذاب برای خلق هنر در دنیای دیجیتال و یادگیری در مورد ایجاد قراردادهای هوشمند است. خب حالا من هر چیزی که لازم باشد در مورد ساختن NFT ها بدانید را به شما یاد می‌دهم.چگونه NFT ایجاد کنیم؟آنچه را که قرار نیست پوشش دهیم!اکنون، ساده‌ترین راه برای ساختNFT رفتن به یک پلتفرم مانندOpensea، Rarible، یا Minable و دنبال کردن راهنمای گام‌به‌گام آن‌ها برای استقرار بر روی پلتفرم است. شما می‌توانید ۱۰۰٪ از این مسیر را طی کنید، با این حال شما می‌توانید به پلتفرم متصل شوید. شما نمی‌توانید به سفارشی‌سازی نامحدود دست یابید، و یا واقعا از مزایای NFT استفاده کنید. اما اگر شما یک مهندس نرم‌افزار مبتدی هستید، و یا خیلی تکنیکی نیستید، این مسیر شما است.اگر به دنبال این هستید که مهندس نرم‌افزار قوی‌تری شوید، کمی استحکام یاد بگیرید، و قدرت ایجاد چیزی با خلاقیت نامحدود را داشته باشید، به خواندن این مقاله ادامه دهید!اگر تازه‌کار هستید، نگران نباشید، ما هم به سراغ اصول اولیه آن خواهیم رفت.چگونه NFT را با سفارشی‌سازی نامحدود بسازیم؟می‌خواهم شما را با این NFT براونی میکس سریعا آشنا کنم. این یک مخزن در حال کار با بسیاری از کدهای صفحه نمایش است.پیش‌نیازهاما به چند چیز نصب شده‌برای شروع نیاز داریم:پایتونزبان Nodejs و npmو Metamaskاگر با Metamask آشنا نیستید، می‌توانید این برنامه آموزشی را دنبال کنید تا آن را تنظیم کنید.شبکه‌های Rinkeby Testnet ETH و LINKما همچنین بر روی شبکه آزمایشیRinkeby Ethereum کار خواهیم کرد، بنابراین قراردادهای خود را در یک بلاکچین واقعی به صورت رایگان گسترش خواهیم داد! شبکه‌های تست راه‌های خوبی برای آزمایش نحوه رفتار قراردادهای هوشمند ما در دنیای واقعی هستند. ما به Rinkeby ETH و Rinkeby LINK نیاز داریم، که می‌توانیم آن را به صورت رایگان از ارتباط با آخرین شیرهای مستندات Chainlink به دست آوریم.همچنین باید نشانه LINK را به متاماسک خود اضافه کنیم، که با دنبال کردن اسنادLINK می‌توانیم این کار را انجام دهیم. اگر هنوز گیج هستید، می‌توانید این ویدئو را دنبال کنید، فقط مطمئن شوید که به جای Ropsten از Rinkeby استفاده کنید.هنگام کار با یک قرارداد هوشمند پلتفرم مانند Ethereum، باید کمیETH پرداخت کنیم، و هنگام دریافت اطلاعات از خارج از زنجیره، باید کمی LINK پرداخت کنیم. به همین دلیل است که ما به LINK و ETH نیاز داریم.شکل ۲. اپن‌سیراه‌اندازی سریعgit clone https://github.com/PatrickAlphaC/nft-mixcd nft-mixچه عالی! حالا ما باید ganache-cli و eth-brownie را نصب کنیم.pip install eth-brownienpm install -g ganache-cliحال می‌توانیم متغیرهای محیطی خود را تنظیم کنیم. اگر با متغیرهای محیطی آشنا نیستید، می‌توانید آن‌ها را به محیط خود اضافه کنید.فایل env را تنظیم کرده و سپس اجرا کنید:source .envیک نمونه .env باید در رپو باشد که فقط با متغیرهای محیطی شبیه‌سازی شده‌است. آن‌ها را برای استفاده از آن‌ها توضیح ندهید!. . .شما به یک شناسه پروژه WEB3 INFURA و PRIVATE_KEY نیاز خواهید داشت. شناسه پروژه WEB3 _ INFURA را می‌توان برای یک حساب کاربری رایگان ثبت کرد. این به ما راهی برای ارسال معاملات به بلاکچین می‌دهد. ما همچنین به یک کلید خصوصی نیاز داریم که شما بتوانید آن را از Metamask خود به دست آورید. اکنون می‌توانیم قرارداد NFT خود را اجرا کنیم و اولین مجموعه خود را با دو فرمان زیر ایجاد کنیم. لطفا این کلید را با هیچ‌کس به اشتراک نگذارید اگر پول واقعی در آن می‌گذارید!export PRIVATE_KEY=YOUR_KEY_HEREexport WEB3_INFURA_PROJECT_ID=YOUR_PROJECT_ID_HEREاکنون می‌توانیم قرارداد NFT خود را اجرا کنیم و اولین مجموعه خود را با دو دستور زیر ایجاد کنیم.brownie run scripts/simple_collectible/deploy_simple.py --network rinkebybrownie run scripts/simple_collectible/create_collectible.py --network rinkebyاولین سند قرارداد NFT ما را برای بلاکچین Rinkeby توسعه می‌دهد و سند دوم اولین مجموعه ما را ایجاد می‌کند. شما تازه اولین قرارداد هوشمند خود را به کار بسته‌اید! اصلا کار زیادی نمی‌خواهد، اما نگران نباشید - من به شما نشان خواهم داد که چگونه آن را در بخش پیشرفته این برنامه آموزشی روی Opensea پیاده کنید.استاندارد Token ERC721اما اول، به استاندارد نشانهERC721 نگاه کنید. استاندارد توکن ERC721 بیایید نگاهی به قراردادی که ما در حال حاضر در فایل SimpleCollectible.sol قرار داده‌ایم، بیاندازیم.// SPDX-License-Identifier: MITpragma solidity 0.6.6;import "@openzeppelin/contracts/token/ERC721/ERC721.sol";contract SimpleCollectible is ERC721 {uint256 public tokenCounter;constructor () public ERC721 ("Dogie", "DOG"){tokenCounter = 0;}function createCollectible(string memory tokenURI) public returns (uint256) {uint256 newItemId = tokenCounter;_safeMint(msg.sender, newItemId);_setTokenURI(newItemId, tokenURI);tokenCounter = tokenCounter + 1;return newItemId;}}ما از بسته OpenZepplin برای نشانه ERC721 استفاده می‌کنیم. این بسته که ما وارد کردیم به ما اجازه می‌دهد تا از تمام توابع یک نشانه ERC721 معمولی استفاده کنیم. این امر تمام عملکردی که توکن‌های ما دارند را تعریف می‌کند، مانند انتقال که توکن‌ها را به کاربران جدید منتقل می‌کند، safeMint که توکن‌های جدید و غیره را ایجاد می‌کند.شما می‌توانید تمام کارکردهایی که به قرارداد ما داده شده‌اند را با بررسی قرارداد توکن اپن‌زپلین ERC721 پیدا کنید. قرارداد ما این وظایف را در این خط به ارث می‌برد:contract SimpleCollectible is ERC721 {این همان چیزی است که استحکام وراثت را انجام می‌دهد. زمانی که قراردادی را برقرار کردیم constructor به طور اتوماتیک فراخوانده می‌شود و چند پارامتر لازم است.constructor () public ERC721 ("Dogie", "DOG"){tokenCounter = 0;}همچنین از سازنده ERC721 استفاده میکنیم که باید یک نام و یک سمبل به آن بدهیم. در مورد ما، این «Dogie» و «DOG» است. این بدان معنی است که هر NFT که ما می‌سازیم از نوع Dogie / DOG خواهد بود. این شبیه این است که چگونه هر کارت پوکمان هنوز هم یک پوکمان است، یا هر بازیکن بیسبال در یک کارت تجاری هنوز هم یک بازیکن بیسبال است. هر بازیکن بیسبال منحصر به فرد است، اما آن‌ها هنوز هم همه بازیکنان بیسبال هستند. ما فقط از نوع DOG استفاده می‌کنیم.ما توکن‌کانتر در بالا داریم که تعدادNFT که از این نوع ایجاد کرده‌ایم را می‌شمارد. هر توکن جدید یک توکن نهاد بر اساس توکن کانتر فعلی می‌گیرد. ما در واقع می‌توانیم NFT را با عملکرد قابل ایجاد ایجاد کنیم. این همان چیزی است که ما create_collectible.py می‌نامیم.function createCollectible(string memory tokenURI) public returns (uint256) {uint256 newItemId = tokenCounter;_safeMint(msg.sender, newItemId);_setTokenURI(newItemId, tokenURI);tokenCounter = tokenCounter + 1;return newItemId;}تابع سیف مینت NFT جدید را ایجاد می‌کند و آن را به هر کسی که آن را به نام کالای قابل مبادله، یا به نام مزمور، با یک محصول جدید ItemId مشتق‌شده از توکنکانتر، اختصاص می‌دهد. این روشی است که ما می‌توانیم با چک کردن صاحب توکن نهاد، به دنبال این باشیم که چه کسی مالک چه چیزی است.متوجه خواهید شد که ما آن را _setTokenURI نیز می نامیم. بیایید در این مورد گفتگو کنیم.شاید مطالعه مقاله تعریف DNS بر روی HTTPS، پروتکل DNS بر روی TLSو توضیح ترافیک رمزگذاری DNS برای شما مفید باشد.ابرداده NFT و TokenURI چه هستند؟هنگامی که قراردادهای هوشمند ایجاد شدند و NFT ایجاد شد، مردم به سرعت متوجه شدند که استقرار بسیاری از داده‌ها در بلاکچین به طور کلی گران است. تصاویری به کوچکی یک کیلوبایت می‌تواند به راحتی بیش از ۱ میلیون دلار برای ذخیره هزینه داشته باشد.این به وضوح یک مساله برایNFT است، زیرا داشتن هنر خلاق به این معنی است که شما باید این اطلاعات را در جایی ذخیره کنید. آن‌ها همچنین خواستار یک روش سبک برای ذخیره ویژگی‌ها در مورد NFT بودند-و این جایی است که tokenURI و فراداده وارد بازی می‌شوند.توکن TokenURIتوکن tokenURI در NFT یک شناسه منحصر به فرد از ظاهر نشانه است. نشانی اینترنتی می‌تواند یک فراخوانی API بر رویHTTPS، یک هشIPFS یا هر چیز منحصر به فرد دیگری باشد. آن‌ها از یک استاندارد برای نشان دادن فراداده هایی که به این شکل هستند پیروی می‌کنند:{"name": "name","description": "description","image": "https://ipfs.io/ipfs/QmTgqnhFBMkfT9s8PHKcdXBn1f5bG3Q5hmBaR4U6hoTvb1?filename=Chainlink_Elf.png","attributes": [{"trait_type": "trait","value": 100}]}این‌ها نشان می‌دهند که NFT چه شکلی است و چه ویژگی‌هایی دارد. بخش تصویر به یک نشانی اینترنتی دیگر از آنچه که NFT به نظر می‌رسد، اشاره می‌کند. این امر برای پلتفرم‌هایNFT مانند Opensea، Rarible و minable ارائه NFT را در پلتفرم‌های خود آسان می‌سازد، زیرا همه آن‌ها به دنبال این متاداده هستند.ابرداده خارج از زنجیره در مقابل ابرداده درون زنجیرهحالا ممکن است به این فکر کنید که صبر کنید… اگر فراداده به صورت زنجیره‌ای نباشد، آیا این به این معنی است که NFT من ممکن است در برخی نقاط از بین برود؟ و شما درست می‌گویید. همچنین در این تفکر صحیح خواهید بود که فراداده ای خارج از زنجیره به این معنی است که شما نمی‌توانید از این فراداده برای تعامل قراردادهای هوشمند خود با یکدیگر استفاده کنید.به همین دلیل است که می‌خواهیم بر روی فراداده های زنجیره‌ای تمرکز کنیم تا بتوانیم NFT خود را برنامه‌ریزی کنیم تا با یکدیگر تعامل داشته باشیم. با این حال، ما هنوز هم به بخش تصویر فراداده خارج از زنجیره نیاز داریم، چون راه خوبی برای ذخیره تصاویر بزرگ بر روی زنجیره نداریم. اما نگران نباشید، ما می‌توانیم این کار را به صورت رایگان در یک شبکه غیر متمرکز با استفاده از IPFS انجام دهیم.اینجا مثالی از IPFS است که نشان می‌دهد Chainlink Elf ایجاد شده در آموزش Dungeons and Dragons را نشان می‌دهد.شکل ۳. The Chainlink Elf ما tokenURI را برای NFT ساده تنظیم نکردیم چون فقط می‌خواستیم یک مثال اساسی را نشان دهیم. حالا بیایید وارد NFT پیشرفته شویم، بنابراین می‌توانیم برخی از ویژگی‌های شگفت‌انگیزی که می‌توانیم با فراداده های روی زنجیره انجام دهیم را ببینیم، NFT را روی اوپانسی داشته باشیم، و Dogie خود را بالا ببریم!توکن NFT پویا و پیشرفتهتوکن NFT پویا، NFT است که می‌تواند در طول زمان تغییر کند، یا ویژگی‌های زنجیره‌داری داشته باشد که می‌توانیم از آن‌ها برای تعامل با یکدیگر استفاده کنیم. اینها NFT هستند که سفارشی‌سازی نامحدودی برای ما دارند تا کل بازی‌ها، دنیاها یا هنر تعاملی از نوعی را بسازیم. حال وارد قسمت پیشرفته شویم.راه‌اندازی سریع پیشرفتهدقت کنید که ETH و LINK را به اندازه کافی در متاماسک خود داشته باشید و سپس موارد زیر را اجرا کنید:brownie run scripts/advanced_collectible/deploy_advanced.py --network rinkebybrownie run scripts/advanced_collectible/create_collectible.py --network rinkebyمجموعه ما در اینجا یک نژاد داگ تصادفی است که از VRF Chainlink بازگردانده شده‌است. Chainlink VRF روشی برای به دست آوردن اعداد تصادفی قابل‌اثبات است، و بنابراین کمبود واقعی در NFT ما است. سپس می‌خواهیم فراداده آن را ایجاد کنیم.brownie run scripts/advanced_collectible/create_metadata.py --network rinkebyسپس می‌توانیم این داده‌ها را به صورت اختیاری به IPFS آپلود کنیم تا بتوانیمtokenURI داشته باشیم. من به شما نشان خواهم داد که چگونه بعدا این کار را انجام دهید. در حال حاضر ما می‌خواهیم از نمونهtokenURI استفاده کنیم:https://ipfs.io/ipfs/Qmd9MCGtdVz2miNumBHDbvj8bigSgTwnr4SbyH6DNnpWdt?filename=1-PUG.jsonاگر راهنمای IPFS را در مرورگر خود دانلود کنید، می‌توانید از آنURL برای دیدن بازگشت URI استفاده کنید. به این شکل خواهد بود:{"name": "PUG","description": "An adorable PUG pup!","image": "https://ipfs.io/ipfs/QmSsYRx3LpDAb1GZQm7zZ1AuHZjfbPkD6J7s9r41xu1mf8?filename=pug.png","attributes": [{"trait_type": "cuteness","value": 100}]}پس از آن ما می‌توانیم مجموعه set_tokenuri.py خود را اجرا کنیم:brownie run scripts/advanced_collectible/set_tokenuri.py --network rinkebyو ما یک خروجی مانند این خواهیم داشت:Running 'scripts/advanced_collectible/set_tokenuri.py::main'...Working on rinkebyTransaction sent: 0x8a83a446c306d6255952880c0ca35fa420248a84ba7484c3798d8bbad421f88eGas price: 1.0 gwei Gas limit: 44601 Nonce: 354AdvancedCollectible.setTokenURI confirmed - Block: 8331653 Gas used: 40547 (90.91%)Awesome! You can view your NFT at https://testnets.opensea.io/assets/0x679c5f9adC630663a6e63Fa27153B215fe021b34/0Please give up to 20 minutes, and hit the "refresh metadata" buttonو ما می‌توانیم به لینک داده‌شده ضربه بزنیم تا ببینیم در Opensea چه شکلی است! شما ممکن است مجبور شوید دکمه متاداده تازه‌ساز را فشار دهید و چند دقیقه منتظر بمانید.شکل ۴. Refresh Metadata نژاد تصادفیبیایید در مورد کاری که ما کردیم صحبت کنیم. این «AdvancedCollectible.sol» ماست :pragma solidity 0.6.6;import "@openzeppelin/contracts/token/ERC721/ERC721.sol";import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";contract AdvancedCollectible is ERC721, VRFConsumerBase {uint256 public tokenCounter;enum Breed{PUG, SHIBA_INU, BRENARD}// add other thingsmapping(bytes32 => address) public requestIdToSender;mapping(bytes32 => string) public requestIdToTokenURI;mapping(uint256 => Breed) public tokenIdToBreed;mapping(bytes32 => uint256) public requestIdToTokenId;event requestedCollectible(bytes32 indexed requestId);bytes32 internal keyHash;uint256 internal fee;uint256 public randomResult;constructor(address _VRFCoordinator, address _LinkToken, bytes32 _keyhash)publicVRFConsumerBase(_VRFCoordinator, _LinkToken)ERC721("Dogie", "DOG"){tokenCounter = 0;keyHash = _keyhash;fee = 0.1 * 10 ** 18;}function createCollectible(string memory tokenURI, uint256 userProvidedSeed)public returns (bytes32){bytes32 requestId = requestRandomness(keyHash, fee, userProvidedSeed);requestIdToSender[requestId] = msg.sender;requestIdToTokenURI[requestId] = tokenURI;emit requestedCollectible(requestId);}function fulfillRandomness(bytes32 requestId, uint256 randomNumber) internal override {address dogOwner = requestIdToSender[requestId];string memory tokenURI = requestIdToTokenURI[requestId];uint256 newItemId = tokenCounter;_safeMint(dogOwner, newItemId);_setTokenURI(newItemId, tokenURI);Breed breed = Breed(randomNumber % 3);tokenIdToBreed[newItemId] = breed;requestIdToTokenId[requestId] = newItemId;tokenCounter = tokenCounter + 1;}function setTokenURI(uint256 tokenId, string memory _tokenURI) public {require(_isApprovedOrOwner(_msgSender(), tokenId),"ERC721: transfer caller is not owner nor approved");_setTokenURI(tokenId, _tokenURI);}}ما از VRF Chainlink برای ایجاد یک نژاد تصادفی از فهرستی ازPUG، SHIBA _ INU، BREN استفاده می‌کنیم. زمانی که ما این بار Collectible را فراخوانی می‌کنیم، در واقع درخواستی را از گره VRF لینک Chainlink آغاز می‌کنیم، و با یک عدد تصادفی برای ایجاد NFT با یکی از این ۳ نژاد بر می‌گردیم.استفاده از تصادفی بودن واقعی درNFT یک راه عالی برای ایجاد کمیابی واقعی است، و استفاده از یک عدد تصادفی زنجیره‌ای به این معنی است که عدد شما به طور قابل‌اثبات تصادفی است، و نمی‌تواند تحت‌تاثیر ماینرها قرار گیرد. گره Chainlink با فراخوانی تابع تصادفی بودن پاسخ می‌دهد و مجموعه را بر اساس عدد تصادفی ایجاد می‌کند. سپس ما هنوز هم باید از _setTokenURI دعوت کنیم تا NFT خود را که به آن نیاز دارد ارائه دهد.ما در اینجا ویژگی‌های NFT خود را ارائه ندادیم، اما ویژگی‌ها راه خوبی برای نبرد و تعامل NFT ما هستند. شما می‌توانید یک مثال عالی از NFT را با ویژگی‌هایی در این Dungeons and Dragonsها ببینید.ممکن است به مطالعه مقاله بهترین نرم‌افزارهای ماینینگ سال ۲۰۲۱ علاقمند باشید.ابرداده از IPFSما از IPFS برای ذخیره دو فایل استفاده می‌کنیم:تصویر NFT (تصویر پاگ)پرونده tokenURI (پرونده Json که شامل پیوند تصویر نیز می‌شود)ما از IPFS استفاده می‌کنیم زیرا یک پلتفرم غیرمتمرکز آزاد است. ما می‌توانیم با دانلود IPFS و ضربه زدن به دکمه import، tokenURI ها شکل ۵. IPFS add a file و تصاویر خود را به IPFS اضافه کنیم.سپس، می‌توانیم URI را با ضربه زدن به ۳ نقطه در کنار فایلی که می‌خواهیم به اشتراک بگذاریم، ضربه زدن به share link و کپی کردن لینک داده‌شده به اشتراک بگذاریم. سپس می‌توانیم این لینک را به فایل مجموعه set_tokenuri.py خود اضافه کنیم تا نشانی اینترنتی را که می‌خواهیم استفاده کنیم تغییر دهیم.مقاومتبا این حال، اگر tokenURI تنها روی گره ما باشد، این بدان معنی است که وقتی گره ما پایین است، هیچ‌کس دیگری نمی‌تواند آن را ببیند. بنابراین ما می‌خواهیم دیگرانNFT ما را بپیچند. ما می‌توانیم از یک سرویس پین کردن مانند Pinata برای کمک به زنده نگه داشتن داده‌هایمان حتی زمانی که گرهIPFS ما پایین است، استفاده کنیم.من تصور می‌کنم که در آینده فراداده های بیشتر و بیشتری در IPFS و پلتفرم‌های ذخیره‌سازی غیر‌متمرکز ذخیره خواهند شد. سرورهای متمرکز می‌توانند پایین بروند و این بدان معناست که هنر مربوط به NFT برای همیشه از دست رفته‌است. دقت کنید که محل tokenURI از NFT که استفاده می‌کنید را بررسی کنید!من همچنین از این خط انتظار دارم که افراد بیشتری از پلتفرم های ذخیره‌سازی مانند Filtoin استفاده کنند، زیرا استفاده از یک سرویس میخکوبی نیز آنقدر که باید غیر‌متمرکز نیست.سخن پایانیحالا شما این مهارت‌ها را دارید کهNFT را زیبا، قابل تنظیم و تعاملی بسازید، و از آن‌ها بخواهید که در بازار ارائه دهند. NFT روش‌های جالب و قدرتمندی است که هنرمندان را قادر می‌سازد تا به درستی تمام کارهای سخت خود را جبران کنند. موفق باشید و به یاد داشته باشید که خوش بگذرانید!این متن با استفاده از ربات مترجم مقاله تکنولوژی ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.