如何在IPFS上存儲NFT?——技術貼

                          IPFS資訊快車 發布在 新聞/2021-04-08/閱讀:

                          NFT在2021年迎來了其爆發式的發展,從基礎設施、到去中心化域名、再到交易市場、逐步涉及到虛擬市場、游戲場所、DeFi+NFT、收藏品等方面,可以說現階段NFT 生態已經初具規模。

                          永久性和不變性是不可替代通證(NFT)核心價值主張的一部分。為創作者在版權保護方面提供了得天獨厚的優勢,為數字收藏品領域創造了非常大的想象空間。但是由于設計上的根本缺陷,目前針對消費者的許多NFT都不能提供這兩種特性。我們經常聽到這樣的說法:NFT“永遠存在區塊鏈上”,但通常情況下,由于在區塊鏈上存儲數據的成本和空間限制,實際上只存儲所有權記錄,以及鏈接到NFT實際內容的元數據。但是這些鏈接是脆弱的,使用HTTP協議將用戶指向特定的位置,而不是特定的資產。這意味著由鏈接指向的內容可能會在未來的任何時候更改或離線,從而使原始資產永遠丟失(所有權記錄也變得毫無價值)。

                          星際文件系統(IPFS)可以幫助解決這些問題,并且利用IPFS的NFTs可以獲得一些優勢。當然遵守已建立的約定對于確保存儲在網絡上的數據的持久性和可訪問性至關重要。隨著非可替代令牌(NFT)的流行,現在是時候回顧在IPFS上鏈接和存儲NFT數據的最佳實踐了。在這篇文章中,我們將特別討論兩個最近關注的領域:內容尋址和內容完整性。

                          內容尋址

                          IPFS內容標識符(CID)是一種極其穩定和靈活的方式,可以唯一地標識任何內容,而不管其存儲在何處或如何存儲。為了最大程度地利用這些優勢,開發人員應遵循以下建議和慣例來鏈接到IPFS數據。

                          以下資料需要掌握:

                          1.1 CID

                          CID是一段內容的自描述唯一標識符。例子: bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

                          CID應該在應用程序代碼內部以及在其他上下文中使用,無論您使用的是IPFS還是其他系統,都應使用CID。我們建議每當將CID存儲在磁盤上時,尤其是在元數據和區塊鏈記錄中將其轉換為IPFS URI之后,這些ID在創建后就不能更改。包括ipfs://URI方案將重要上下文添加到CID中,該CID清楚地向用戶和自動工具顯示如何查找內容。

                          1.2 IPFS URI

                          IPFS URI統一資源標識符(Uniform Resource identifier,或URI)用于指定給定上下文中的特定內容。上下文由URI方案決定(作為前綴追加到URI,后跟://)。IPFS的URI方案就是IPFS。URI可以有選擇地包含一個追加到末尾的路徑

                          例如:

                          ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

                          ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

                          IPFS URI是指向文件或目錄的IPFS鏈接的規范標識。從智能合約鏈接到IPFS數據時,請使用IPFS URI明確指示應使用IPFS檢索數據。當鏈接到存儲在IPFS上的圖像和其他媒體資產時,也應在NFT的結構化元數據中使用IPFS URI。

                          1.3 HTTP網關URL

                          HTTP網關為無法本地解析IPFS URI的舊版瀏覽器提供了互操作性。此類鏈接僅應在應用程序的表示層中使用,而不應存儲在區塊鏈或NFT元數據內部。

                          例如:

                          https://dweb.link/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

                          請注意,HTTP網關將內容分發重新集中化,同時顯示中間人矢量和單點故障-如果網關操作員離線或不可達,則鏈接將斷開。但是,對IPFS內置支持的瀏覽器(通過IPFS Companion瀏覽器擴展或通過Brave提供的本機支持)可以避免這些問題,因為它們可以自動從此類鏈接中提取CID并加載IPFS根據用戶首選項提供數據。

                          如何操作

                          開發人員應根據上下文設置不同的鏈接格式。

                          2.1 鏈上

                          NFT智能合約應將IPFS URI返回到與每個令牌關聯的資產和元數據。

                          例如:

                          ipfs://bafybeibnsoufr2renqzsh347nrx54wcubt5lgkeivez63xvivplfwhtpym/metadata.json

                          我們建議在鑄造每個令牌并在鏈上存儲完整URI之前生成IPFS URI。這是符合期望使用URI的智能合約接口的最簡單方法,并且ipfs:// URI方案使任何分布式應用程序都可以輕松地使用IPFS看到數據可用。

                          2.2 元數據

                          元數據中,應該使用IPFS URI作為以明文形式鏈接到IPFS資源的最明確,最可靠的方法。這是引用NFT媒體資產的IPFS URI的例子: ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

                          開發人員可能希望包含指向公共HTTP網關的鏈接,以實現傳統的互操作性。

                          理想情況下,應避免其他鏈接到內容的替代方法(例如,非網關HTTP URL)。由于從特定位置通過HTTP提供的內容可能會發生更改,因此,除了臨時內容鏡像以外,不能依賴此類鏈接。因此,在永久且不可變地存儲數據的區塊鏈上,通過HTTP引用內容非常脆弱且具有風險。

                          相反,IPFS URI永遠有效,因此可以安全地視為其數據的規范鏈接。通過將IPFS URI用作鏈接的“事實來源”,應用程序可以輕松地支持多種存儲解決方案,或者隨著時間的推移輕松切換到不同的網關,只需生成新的網關鏈接即可。這比將特定網關“硬編碼”到永久性區塊鏈記錄中更為靈活。

                          2.3 應用

                          在面向用戶的應用程序中,開發人員應通過以下兩種方式鏈接到IPFS內容:IPFS URI與HTTP網關URL。

                          直到更多的瀏覽器支持IPFS URI方案的本機解析為止。請注意,可以根據需要從原始CID或IPFS URI輕松生成兩種鏈接。

                          以下是針對dweb.link上的公共網關的HTTP網關URL的示例:

                          https://dweb.link/ipfs/bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

                          可以使用CID作為子域而不是URL路徑來編寫相同的鏈接:

                          https://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta.ipfs.dweb.link/nft.mp4

                          這兩個例子都對應于以下規范的IPFS URI: ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

                          作用

                          NFT的一個主要問題是資產的完整性——這包括資產本身以及與資產相關的任何數據。IPFS通過使用CID驗證自創建鏈接以來沒有任何更改來保護NFT數據的完整性。開發人員應遵循以下建議,以從IPFS的內置數據驗證中獲得最大收益。

                          3.1 將元數據鏈接到其資產

                          元數據應被視為NFT值不可或缺的一部分。因此,為了保留資產的價值,應將元數據與資產一起存儲在IPFS上,以確保兩者都可訪問。

                          實現此目的的方法如下:(1)創建兩個新目錄(一個用于資產,一個用于元數據);(2)將資產添加到其目錄;(3)將資產目錄添加到IPFS,并注意其CID;(4)在自己的目錄中創建元數據,使用(3)中的CID引用資產以創建IPFS URI。URI應包含目錄的CID和資產的文件名;(5)將元數據的目錄添加到IPFS,注意其CID;(6)使用(5)中的CID為元數據創建IPFS URI,并在鏈上存儲URI以形成所有權記錄。

                          此過程都保留了開發人員在其鏈接中包含文件名的能力(對用戶交互很有用),同時確保可以相互獨立地引用元數據和資產。

                          元數據將在以下位置訪問: ipfs://{metadata-directory-CID}/metadata-filename

                          可以在以下位置訪問該資產: ipfs://{asset-directory-CID}/asset-filename

                          這是一些JSON元數據的示例,其中包含鏈接到圖像文件的IPFS URI:

                          {

                          "name": "No time to explain!",

                          "description": "I said there was no time to explain, and I stand by that.",

                          "image": "ipfs://bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpeg"

                          }

                          可以使用IPFS URI提取圖像:

                          ipfs://bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpeg。為了進行演示,您的應用程序可以創建網關URL,以允許用戶使用HTTP來獲取圖像,例如,https://dweb.link/ipfs/bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpeg

                          一旦創建了元數據,就將其作為JSON文件存儲在IPFS上,并使用生成的CID創建類似URI的URI ipfs://bafybeibnsoufr2renqzsh347nrx54wcubt5lgkeivez63xvivplfwhtpym/metadata.json,可以將其存儲在智能合約中。

                          可用性

                          使用像IPFS這樣的去中心化網絡來提供內容的主要原因是防止鏈接失效。這就需要通過其他網絡中的節點通過托管鏡像數據來實現的。為了確保鏈接的內容仍然可用,開發人員應將內容的CID固定在他們管理的IPFS節點上,并與希望提供幫助的其他人一起保存和分發內容,從而自己托管該內容。當然也可以通過固定服務來進行托管內容。

                          TAG:IPFSNFT
                          發文時比特幣價格:¥380562 行情來自 火幣網
                          比特幣家園
                          比特幣家園APP掃碼下載
                          官方APP
                          CopyRight ? 比特幣家園 www.junduhotel.com.cn 蘇ICP備18045312號-1
                          日本三级香港三级人妇 - 视频 - 在线播放 - 影视资讯 - 三级a