手把手教你在IPFS上部署個人網站

買賣虛擬貨幣

我想學習有關 IPFS 和 Web 3.0 的知識,所以我開始研究它,並嘗試將我的站點上傳到那裡。以下是我一路走來學到的一些概念,以及我最終如何將我的網站託管在 tbking.eth 上。我將簡要介紹一下 IPFS,以及為什麼在那裡託管靜態內容是有意義的。如果您已經熟悉 IPFS,您可以跳過前面部分。

什麼是 IPFS

星際檔案系統是共享內容的分散網路。它具有非常簡單但有趣的設計理念:

建立一個在行星間工作的網路,這也是一個更好的跨地球通訊網路。

IPFS 是一個分散的網路,在該網路中,透過 BitTorrent 等多種方式連線對等方並共享檔案。基本原理是,與傳統的 Web 不同,IPFS 中的檔案是根據檔案的位置提供服務的,而傳統的 Web 是根據檔案的位置提供服務的。考慮一下此比較:

Google 的隱私權政策被標識為託管在地址為:

https://policies.google.com/privacy的 Google 伺服器上的檔案。政策內容無關緊要。這稱為 location-addressing。

另一方面,IPFS 透過檔案的內容(使用檔案的雜湊)來標識檔案。假設您要閱讀“XKCD #327 - Exploits of a Mom”。

其IPFS地址為:

https://ipfs.io/ipfs/QmZVjV5jFV7Jo4Hfj6WPyRnHCxf8kbadkqtQBco2gef64x/

該地址不依賴於伺服器的位置,而是雜湊。這稱為 content-addressing。關心 XKCD 的人都可以託管它。這使得斷開的連結不太可能,這也是IPFS的目標之一。

IPFS 文件很好地解釋了這些概念。我將它們推薦給任何想深入研究的人。

在 IPFS 上託管

在 IPFS 上部署靜態內容(例如個人網站)很容易。我在下面列出的步驟可用於任何檔案,例如純 HTML 檔案,由靜態網站生成器(如 Jekyll,Hugo,Hexo 和 Gatsby)生成的網站,甚至是媒體檔案。因此,讓我們開始吧。

新增檔案

IPFS 桌面

如果已安裝並正在執行 IPFS Desktop,則可以使用常規檔案選擇器新增檔案。只需匯入包含您靜態網站內容的目錄即可。

右鍵單擊新新增的內容,然後選擇 Copy CID。開啟以在網上檢視我們的檔案:https://ipfs.io/ipfs/

IPFS CLI

IPFS CLI 允許使用 add 子命令新增檔案和目錄。

最後一行列印的雜湊是整個目錄的 CID,因此也是我們網站的 CID。我們可以看到託管在

https://ipfs.io/ipfs/QmeUG2oZvyx4NzfpP9rruKbmV5UNDmTQ8MoxuhTJGVZVTW/上的示例網站。

提示:在您的網站中使用相對連結非常重要,因為IPFS閘道器的URL類似於/ipfs//file.ext。

PIN

在最後一節中,我們新增的檔案到我們的 IPFS 節點網路找到。這就是 IPFS 閘道器能夠解析它並將其顯示在瀏覽器中的原因。但是,一旦關閉 IPFS 守護程式,該站點很可能將無法訪問。即使在 IPFS 上請求了某些內容之後,接收節點也成為該內容的主機,但是在 12 小時後將對這些內容進行垃圾收集。如何在沒有伺服器的分散式網站中全天候服務您的網站?

在 IPFS 上 Pin 一些內容的節點將永遠託管它(直到取消固定它)。有諸如 Pinata 之類的 Pin 服務,可將檔案 Pin 在其IPFS節點上。這樣,網站將始終可用。

在 Pinata 中,如果內容已經上傳到 IPFS,則可以上傳檔案或僅提供其雜湊值。這是我 Pin 我們上面上傳的示例網站的方式。

提示:最好使用多種 Pin 服務固定您的站點,以實現冗餘。

自動化部署

您可能已經注意到,使用 IPFS 非常容易。我要說的是,這比處理我們使用的傳統網路要容易。但是,每次您要更改檔案時都必須重複此過程,這不是很理想。有像 Fleek 這樣的工具,可以幫助自動完成上面列出的所有步驟。

Fleek 就像 Travis 或 CircleCi 一樣用於 IPFS 部署。您可以將其 Github 帳戶與其關聯,並使用 Github 掛鉤,Fleek 將在每次推送至 Github 儲存庫時觸發部署。他們還 Pin 部署的所有內容。

因此,我使用 Hexo 生成了此部落格,並且能夠在 Fleek 儀表板本身中新增一個構建步驟,因此無需生成 HTML 並將其推送到我的儲存庫。這是我使用的構建命令:

是的,我需要自己安裝子模組。預設情況下,他們還沒有這樣做。檢查一下,這非常容易。

連結到域

因此,現在我們可以啟動並執行我們的網站,但是IPFS上的內容不像傳統網路上那樣容易查詢。我的網站可以在https://tarunbatra.com上找到。

但是在IPFS上,可以透過https://ipfs.io/ipfs/QmTPTa1ddoSkuakaW56SaL9dicbC71BbwfjRbVjasshCXs/訪問當前版本。您看到問題了。這不是人類可讀的。每次更新後,CID都會更改。有兩種解決方案:

DNSLink

使用 DNSLink,您可以將一個普通域指向 IPFS 內容。它可以很容易地設定在 Fleek 上。我已經將 IPFS .tarunbatra.com 指向了使用 Fleek 的 IPFS 版本,您將能夠開啟這個站點。

IPNS(星際命名服務)也存在,它類似於 DNSLink,但現在要慢得多。

以太坊名稱服務

ENS 是一個以太坊區塊鏈上的命名服務,它使用智慧合約購買域名併為其設定解析器記錄。由於涉及以太坊,因此您需要使用 MetaMask 來使用它。

我購買了該域,tbking.eth 並將其指向該站點的 IPFS 內容。每當我更改網站內容時,仍需要對其進行更新。我不確定是否有任何自動化的方法。但是,截至目前,Fleek 正在致力於 ENS 域整合。

IPFS 非常適合作為的儲存層 Web 3.0。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;