如果想要學(xué)習IPFS和Web 3.0,那么,我們需要先開(kāi)始探索它們,并嘗試將我們的網(wǎng)站上傳到那里。今天,就來(lái)開(kāi)始我們的學(xué)習之旅吧。
什么是IPFS?
IPFS到底是什么呢?為什么當我們提到Web 3.0,我們就不可避免地提到IPFS呢?
IPFS(星際文件系統)是一個(gè)能夠共享內容的分布式網(wǎng)絡(luò ),他的設計并不復雜,但卻非常有趣。而我們之所以稱(chēng)IPFS為星際文件系統,因為IPFS的目標是建立一個(gè)能夠在行星間工作的網(wǎng)絡(luò )、一個(gè)能夠更好的跨地球的通信網(wǎng)絡(luò )。
IPFS是一個(gè)分散的網(wǎng)絡(luò ),在該網(wǎng)絡(luò )中,通過(guò)BitTorrent等多種方式連接對等方并共享文件?;驹砼c傳統的Web并不同,IPFS中的文件是根據文件的內容提供服務(wù)的,而傳統的Web是根據文件的位置提供服務(wù)的。
例如,谷歌將隱私權政策文件托管在地址為:
“http://wap.friendlycc.com.cn/host/ Google服務(wù)器上,在該地址中,政策內容無(wú)關(guān)緊要,因此這是根據域名尋址的,我們將這稱(chēng)為location-addressing(域名尋址)。
但是,IPFS是使用文件的哈希值通過(guò)文件的內容來(lái)標識文件的。假設您要閱讀:“XKCD#327—ExploitsofaMom”。那么,其IPFS地址為http://wap.friendlycc.com.cn/host/
如何在IPFS網(wǎng)絡(luò )上托管?
當我們打開(kāi)一個(gè)瀏覽器,很明顯,網(wǎng)址都是以HTTP開(kāi)頭的,也就是說(shuō),我們現在的網(wǎng)站是托管在HTTP超文本傳輸協(xié)議之上的。
那么,我們該怎么樣把我們的網(wǎng)站部署在IPFS之上,或者是如何在IPFS之上部署靜態(tài)內容(例如個(gè)人網(wǎng)站)呢?
接下來(lái),我會(huì )列出可用于任何文件,例如純HTML文件,由靜態(tài)網(wǎng)站生成器(如Jekyll,Hugo,Hexo和Gatsby)生成的網(wǎng)站,甚至是媒體文件的部署方法,因此,讓我們開(kāi)始吧。
如果您已安裝并正在運行IPFS Desktop,則可以使用常規文件選擇器添加文件。只需導入包含您靜態(tài)網(wǎng)站內容的目錄即可。
IPFS CLI允許使用add子命令添加文件和目錄。
最后一行打印的哈希是整個(gè)目錄的CID,因此也是我們網(wǎng)站的CID。我們可以看到托管在
“http://wap.friendlycc.com.cn/host/
提示:在您的網(wǎng)站中使用相對鏈接非常重要,因為IPFS網(wǎng)關(guān)的URL類(lèi)似于<gateway>/ipfs/<cid>/file.ext。
在最后一節中,我們添加的文件可以在我們的 IPFS節點(diǎn)網(wǎng)絡(luò )中找到,這就是IPFS網(wǎng)關(guān)能夠解析它并將其顯示在瀏覽器中的原因。
但是,一旦關(guān)閉IPFS daemon,該站點(diǎn)很可能將無(wú)法訪(fǎng)問(wèn)。即使在IPFS上請求了某些內容之后,接收節點(diǎn)也成為該內容的主機,但是在12小時(shí)后將對這些內容進(jìn)行收集。那么,我們如何在沒(méi)有服務(wù)器的分散式網(wǎng)站中全天候備份您的網(wǎng)站?
Welcome,Pinning
在IPFS上固定一些內容的節點(diǎn)將永遠托管它(直到取消pinning它)。諸如Pinata之類(lèi)的固定服務(wù),可將文件固定在其IPFS節點(diǎn)上。如此一來(lái),網(wǎng)站將始終可用。
在Pinata中,如果內容已經(jīng)上傳到IPFS,則可以上傳文件或僅提供其哈希值。這是我固定我們上面上傳的示例網(wǎng)站的方式。
提示:最好使用多種固定服務(wù)固定您的站點(diǎn),以實(shí)現冗余。
自動(dòng)化部署
您可能已經(jīng)注意到,使用IPFS非常容易,至少比處理我們使用的傳統網(wǎng)絡(luò )要容易。但是,每次您要更改文件時(shí)都必須重復此過(guò)程,這并不是很方便。因此,我們可以借助Fleek這樣的工具,可以幫助自動(dòng)完成上面列出的所有步驟。
Fleek就像Travis或CircleCi一樣用于IPFS部署。您可以將其Github帳戶(hù)與其關(guān)聯(lián),并使用Github掛鉤,Fleek將在每次推送至Github存儲庫時(shí)觸發(fā)部署。他們還固定部署的所有內容。
此外,我使用Hexo生成了此博客,并且能夠在Fleek本身中添加一個(gè)構建步驟,因此無(wú)需生成HTML并將其推送到我的存儲庫。這是我使用的構建命令:
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站