<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          在IPFS上存儲(chǔ)NFT

          共 4177字,需瀏覽 9分鐘

           ·

          2021-04-09 17:11

          永久性和不變性是不可替代標(biāo)記(NFT)核心價(jià)值主張的一部分。不幸的是,由于基本的設(shè)計(jì)缺陷,今天許多面向消費(fèi)者的nft都不能提供這兩種特性。

          人們經(jīng)常聽(tīng)到NFT“永遠(yuǎn)存在于區(qū)塊鏈上”的說(shuō)法,但由于在區(qū)塊鏈上存儲(chǔ)數(shù)據(jù)的成本和空間限制,通常只存儲(chǔ)所有權(quán)記錄,元數(shù)據(jù)鏈接到NFT的實(shí)際內(nèi)容。

          通常,這些鏈接都是脆弱的,使用HTTP協(xié)議將用戶指向特定的位置,而不是特定的資產(chǎn)。這意味著鏈接指向的內(nèi)容可能會(huì)在將來(lái)的任何時(shí)候更改或脫機(jī),從而使原始資產(chǎn)永遠(yuǎn)丟失(所有權(quán)記錄也一文不值)。

          星際文件系統(tǒng)(IPFS)可以幫助解決這些問(wèn)題,而利用IPFS的nft有有許多優(yōu)勢(shì)。然而,遵守既定慣例對(duì)于確保網(wǎng)絡(luò)上存儲(chǔ)的數(shù)據(jù)的永久性和可訪問(wèn)性至關(guān)重要。

          隨著不可替代代幣(NFT)的流行,現(xiàn)在是重新審視在IPF上鏈接和存儲(chǔ)NFT數(shù)據(jù)的最佳實(shí)踐的好時(shí)機(jī)。

          在本文中,我們將特別討論最近關(guān)注的兩個(gè)領(lǐng)域:內(nèi)容尋址和內(nèi)容完整性。你可以在我們的新文章“使用IPFS存儲(chǔ)NFT數(shù)據(jù)的最佳實(shí)踐”的IPFS文檔站點(diǎn)上找到更多詳細(xì)信息。

          內(nèi)容尋址

          IPFS內(nèi)容標(biāo)識(shí)符(CID)是一種非常健壯和靈活的方式,可以唯一地標(biāo)識(shí)任何內(nèi)容,無(wú)論內(nèi)容存儲(chǔ)在何處或如何存儲(chǔ)。為了最大限度地利用這些優(yōu)勢(shì),開(kāi)發(fā)人員應(yīng)遵循以下建議和慣例來(lái)鏈接到IPFS數(shù)據(jù)。

          鏈接概述

          這篇文章并不是要對(duì)CID進(jìn)行全面的解釋(為此,請(qǐng)參閱其他精彩的資源)。但是,讀者應(yīng)注意以下區(qū)別:

          CID
          CID是一段內(nèi)容的自描述唯一標(biāo)識(shí)符。

           

          例如:bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
          CID應(yīng)該在應(yīng)用程序代碼內(nèi)部以及在其他上下文中使用,無(wú)論你使用的是IPFS還是其他系統(tǒng),都應(yīng)使用CID。

          我們建議每當(dāng)將CID存儲(chǔ)在磁盤上時(shí),尤其是在元數(shù)據(jù)和區(qū)塊鏈記錄中將它們轉(zhuǎn)換為IPFS URI后,這些ID在創(chuàng)建后就不能更改。包括ipfs://URI方案將重要的上下文添加到CID中,該CID可以清楚地向用戶和自動(dòng)工具顯示如何查找內(nèi)容。

          IPFS URI
          統(tǒng)一資源標(biāo)識(shí)符或URI用于指定給定上下文中的特定內(nèi)容。上下文由URI方案確定(作為前綴附加到URI,后跟://)。IPFS的URI方案就是IPFS。URI可以選擇性地包含附加到末尾的路徑。
          例子:
          • ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

          • ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

          IPFS URI是指向文件或目錄的IPFS鏈接的規(guī)范表示。從智能合約鏈接到IPFS數(shù)據(jù)時(shí),請(qǐng)使用IPFS URI明確指示應(yīng)使用IPFS檢索數(shù)據(jù)。

          當(dāng)鏈接到IPFS上存儲(chǔ)的圖像和其他媒體資產(chǎn)時(shí),也應(yīng)在NFT的結(jié)構(gòu)化元數(shù)據(jù)內(nèi)使用IPFS URI。

          HTTP網(wǎng)關(guān)URL
          HTTP網(wǎng)關(guān)為無(wú)法本機(jī)解析IPFS URI的傳統(tǒng)瀏覽器提供互操作性。這樣的鏈接應(yīng)該只在應(yīng)用程序的表示層中使用,不應(yīng)該存儲(chǔ)在區(qū)塊鏈上或NFT元數(shù)據(jù)內(nèi)部。
          例:https://dweb.link/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

          請(qǐng)注意,HTTP網(wǎng)關(guān)重新集中了內(nèi)容的分發(fā),同時(shí)呈現(xiàn)中間人矢量和單點(diǎn)故障—如果網(wǎng)關(guān)操作員脫機(jī)或無(wú)法訪問(wèn),鏈接將中斷。但是,具有內(nèi)置IPFS支持的瀏覽器(可以通過(guò)IPFS Companion瀏覽器擴(kuò)展,也可以通過(guò)本機(jī)支持,如Brave提供的)不受這些問(wèn)題的影響,因?yàn)樗鼈兛梢宰詣?dòng)從這些鏈接中提取CID,并根據(jù)用戶首選項(xiàng)從IPFS加載數(shù)據(jù)。

          在各種情況下尋址

          開(kāi)發(fā)人員應(yīng)根據(jù)上下文設(shè)置不同的鏈接格式。

          鏈上
          NFT智能合約應(yīng)將IPFS URI返回到與每個(gè)令牌關(guān)聯(lián)的資產(chǎn)和元數(shù)據(jù)。
          例:ipfs://bafybeibnsoufr2renqzsh347nrx54wcubt5lgkeivez63xvivplfwhtpym/metadata.json

          我們建議在生成每個(gè)代幣并在鏈上存儲(chǔ)完整的URI之前生成IPFS URI。這是符合需要URI的智能合約接口的最簡(jiǎn)單方法,ipfs://URI方案使得任何分布式應(yīng)用程序都可以很容易地看到使用ipfs的數(shù)據(jù)可用。

          元數(shù)據(jù)
          在代幣元數(shù)據(jù)中,應(yīng)該使用IPFS URI作為以明文形式鏈接到IPFS資源的最明確,最可靠的方法。

          這是引用NFT媒體資產(chǎn)的IPFS URI的示例:
           ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

          開(kāi)發(fā)人員可能希望包含指向公共HTTP網(wǎng)關(guān)的鏈接,以實(shí)現(xiàn)傳統(tǒng)的互操作性。

          最好避免使用其他鏈接到內(nèi)容的替代方法(例如,非網(wǎng)關(guān)HTTP URL)。由于來(lái)自特定位置的通過(guò)HTTP提供的內(nèi)容可能會(huì)發(fā)生更改,因此除了臨時(shí)內(nèi)容鏡像之外,這種鏈接不能作為任何東西來(lái)依賴。

          在區(qū)塊鏈上,數(shù)據(jù)是永久和不變的存儲(chǔ),因此通過(guò)HTTP引用內(nèi)容是脆弱和有風(fēng)險(xiǎn)的。

          相反,IPFS URI是永遠(yuǎn)有效的,因此,可以安全地將其視為數(shù)據(jù)的規(guī)范鏈接。通過(guò)使用IPFS URI作為鏈接的“真實(shí)來(lái)源”,應(yīng)用程序只需生成新的網(wǎng)關(guān)鏈接,就可以輕松地支持多個(gè)存儲(chǔ)解決方案或隨著時(shí)間的推移切換到不同的網(wǎng)關(guān)。這比將特定網(wǎng)關(guān)“硬編碼”到永久區(qū)塊鏈記錄更靈活。

          應(yīng)用
          在面向用戶的應(yīng)用程序中,開(kāi)發(fā)人員應(yīng)通過(guò)以下兩種方式鏈接到IPFS內(nèi)容:
          1.IPFS URI
          2.HTTP網(wǎng)關(guān)URL

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

          以下是針對(duì)dweb.link上的公共網(wǎng)關(guān)的HTTP網(wǎng)關(guān)URL的示例:
          https://dweb.link/ipfs/bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

          可以使用CID作為子域而不是URL路徑來(lái)編寫相同的鏈接:
          https://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta.ipfs.dweb.link/nft.mp4

          這兩個(gè)示例都對(duì)應(yīng)于以下規(guī)范的IPFS URI:
          ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

          完整
          NFT的一個(gè)主要問(wèn)題是資產(chǎn)的完整性-這包括資產(chǎn)本身以及與資產(chǎn)相關(guān)的任何數(shù)據(jù)。IPFS通過(guò)使用CID驗(yàn)證自創(chuàng)建鏈接以來(lái)沒(méi)有任何更改來(lái)保護(hù)NFT數(shù)據(jù)的完整性。

          開(kāi)發(fā)人員應(yīng)遵循以下建議,以從IPFS的內(nèi)置數(shù)據(jù)驗(yàn)證中獲得最大收益。

          將元數(shù)據(jù)鏈接到其資產(chǎn)

          代幣的元數(shù)據(jù)應(yīng)被視為NFT值不可或缺的一部分。因此,為了保留資產(chǎn)的價(jià)值,應(yīng)將元數(shù)據(jù)與資產(chǎn)一起存儲(chǔ)在IPFS上,以確保兩者都可訪問(wèn)。

          實(shí)現(xiàn)此目的的首選方法如下:
          1.創(chuàng)建兩個(gè)新目錄(一個(gè)用于資產(chǎn),一個(gè)用于元數(shù)據(jù))。
          2.將資產(chǎn)添加到其目錄。
          3.將資產(chǎn)目錄添加到IPFS,并注意其CID。
          4.在自己的目錄中創(chuàng)建元數(shù)據(jù),使用(3)中的CID引用資產(chǎn)以創(chuàng)建IPFS URI。URI應(yīng)包含目錄的CID和資產(chǎn)的文件名。
          5.將元數(shù)據(jù)的目錄添加到IPFS,注意其CID。
          6.使用(5)中的CID為元數(shù)據(jù)創(chuàng)建IPFS URI,并將URI存儲(chǔ)在鏈上以形成所有權(quán)記錄

          此過(guò)程都保留了開(kāi)發(fā)人員在其鏈接中包含文件名的能力(對(duì)用戶交互很有用),同時(shí)確保可以相互獨(dú)立地引用元數(shù)據(jù)和資產(chǎn)。
          • 元數(shù)據(jù)將在以下位置訪問(wèn): ipfs://{metadata-directoryCID}/metadata-filename

          • 可以在以下位置訪問(wèn)該資產(chǎn):ipfs://{asset-directoryCID}/assetfilename

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

          可以使用IPFS URI提取圖像
          ipfs://bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpeg。

          為了進(jìn)行演示,你的應(yīng)用程序可以創(chuàng)建一個(gè)網(wǎng)關(guān)URL,以允許用戶使用HTTP來(lái)獲取圖像,例如:
          https://dweb.link/ipfs/bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpeg

          一旦創(chuàng)建了元數(shù)據(jù),它就作為一個(gè)JSON文件存儲(chǔ)在IPFS上,結(jié)果CID被用來(lái)創(chuàng)建一個(gè)URI,比如:
          ipfs://bafybeibnsoufr2renqzsh347nrx54wcubt5lgkeivez63xvivplfwhtpym/metadata.json,可以將其存儲(chǔ)在智能合約中。

          要查看該過(guò)程的實(shí)際示例,請(qǐng)查看IPFS文檔站點(diǎn)上的如何使用IPFS鑄造NFT,其中使用javascript詳細(xì)顯示了整個(gè)過(guò)程。

          高可用性

          使用分布式網(wǎng)絡(luò)(如IPFS)服務(wù)內(nèi)容的主要原因之一是防止鏈路腐爛。這是通過(guò)允許網(wǎng)絡(luò)中的其他節(jié)點(diǎn)通過(guò)同居鏡像數(shù)據(jù)來(lái)實(shí)現(xiàn)的。

          然而,希望確保內(nèi)容可用性的開(kāi)發(fā)人員不應(yīng)依賴其他節(jié)點(diǎn)的利他。為了確保鏈接內(nèi)容仍然可用,開(kāi)發(fā)人員應(yīng)該自己托管它,方法是將內(nèi)容的CID固定在他們管理的IPFS節(jié)點(diǎn)上,將內(nèi)容保存并分發(fā)到希望幫助的任何其他節(jié)點(diǎn)上。

          如果他們?cè)敢猓_(kāi)發(fā)人員也可以通過(guò)固定服務(wù)來(lái)委派這個(gè)責(zé)任。

          感謝閱讀!

          本文由老司機(jī)翻譯,原文地址為

          https://blog.ipfs.io/2021-04-05-storing-nfts-on-ipfs/


          在右下角留下你的贊吧


          瀏覽 64
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  手机av在线 | 欧美成人一级片 | a亚洲a| 黄色在线观看视频 | 404notfound网红视频在线观看 |