您現在的位置是:首頁 > 娛樂

技術精選丨如何在IPFS上託管個人網站

由 恆訊雲 發表于 娛樂2022-02-13
簡介這樣就無需大型中央伺服器或內容分發網路,就可實現更強大和分散式的網際網路,如果你要使用IPFS託管網站,需要它是靜態的

pinata怎麼讀

您正在閱讀的網站可以完全使用,而無需在伺服器上執行後端。這樣的網站被稱為靜態網站。

靜態網站向瀏覽器提供所有內容和邏輯(JavaScript)。

所有互動(例如搜尋或單擊內部連結)都是透過包含的JS指令碼進行的。

雖然這聽起來像是一個外行人所期望的,但這與網際網路的當前狀態相去甚遠。

在早期,許多網站僅由靜態HTML網站組成。如今,許多現代網站都依賴於執行中的集中式後端伺服器。

這不僅可以帶來動態體驗,而且還會導致連結失效,URL的使用壽命有限。

許多人至少經歷過一次死連結的現象,並且隨著網際網路的老化,這個問題還會加劇。

技術精選丨如何在IPFS上託管個人網站

內容可定址儲存

最近對網際網路進行分散式儲存的努力,再次導致了諸如內容可定址儲存之類的技術。

網際網路上的普通URL https://lpfann。me/是任意選擇的單詞,與實際內容無關。

內容定址使用數學雜湊函式將網站的內容壓縮為稱為hash的短字串。

雜湊函式的妙處在於,它們很可能會產生唯一的輸出以及這樣的唯一地址。

這允許人們僅基於內容雜湊即可使用和交換內容的用例。IPFS(星際檔案系統)就是這種應用的一個例子 。

技術精選丨如何在IPFS上託管個人網站

IPFS引入了一種用於內容的定址方案,並且它不使用中央伺服器的傳輸網路進行資訊交換。

當使用IPFS應用程式的人瞭解其他節點需要的資訊時,它們會自動充當其他節點的伺服器。

這樣就無需大型中央伺服器或內容分發網路,就可實現更強大和分散式的網際網路,如果你要使用IPFS託管網站,需要它是靜態的。

將網站設為靜態

該網站是使用Hugo構建的 ,已經產生了靜態輸出。啟用relativeURL與IPFS定址一起使用僅是重要的 。

我們還在為雨果使用學術主題。Academic使用多種外部字型和JavaScript資源來增強內容表示。雖然完全有可能託管引用非IPFS資源的IPFS網站,但它並未完全分散。

幸運的是,Academic主題還提供了一個下載工具,可將所有外部資產儲存在網站資料夾中。

在撰寫本文時,主下載器尚不支援所有資產,但是一個開放的請求增加了對大多數缺失內容的支援。丟失的另一件事是字型,這些字型最初來自我們手動下載的Google字型CDN。

現在,我們有了一個執行在本地字型和JavaScript資產1上的完整網站。

這樣,您可以下載網站檔案並終止Internet連線,您將獲得相同的體驗。

託管IPFS網站

如果我們使用IPFS對網站進行雜湊處理,則會得到如下內容雜湊:

/ipfs/QmSPZuY3K1XieH7M9zh4qs9MEGFf4GZdBv3STaiJpBaC6o

現在,

其他人可以直接使用自己的IPFS客戶端或使用可用的瀏覽器外掛之一來檢索網站。

技術精選丨如何在IPFS上託管個人網站

此部落格文章的草稿經過雜湊並固定到本地IPFS節點

為了使其他人能夠檢索網站的檔案,我們必須保持IPFS節點執行或要求其他人對其進行快取(固定)。

有所謂的固定服務(例如 Pinata)提供此服務。另一個專案是 Filecoin,它建立在IPFS之上。它使用一種區塊鏈來獎勵節點以保持IPFS檔案固定,從而提供金錢激勵。

技術精選丨如何在IPFS上託管個人網站

在過去的幾天中,我們尋找了將新內容新增到git儲存庫時自動固定此網站的方法 。就在昨天, Textile宣佈了在IPFS之上工作的動態儲存桶。儘管不是部落格文章的主要重點,

但他們還介紹了新的GitHub Actions,它們將內容自動部署到其免費儲存桶託管中。

我們在基於Gatsby的演示站點上擴充套件了 他們的指令碼,以與Hugo一起使用。

技術精選丨如何在IPFS上託管個人網站

GitHub Action構建並將檔案推送到Textile bucket

現在,在每個推送請求之後,GitHub Action都會編譯Hugo輸出並將其推送到也固定並與IPFS一起使用的Textile桶。

每次更改並推送到儲存庫後,我們的網站內容都會自動顯示在內容雜湊下 。

域名解析

為了讓人們知道一個站點可以使用IPFS,可以使用 DNSLinks。這些是附加到DNS域的TXT記錄,它們提示可用的IPFS資源。

IPFS瀏覽器擴充套件可以檢測到這些記錄,並在訪問此類站點時自動使用IPFS進行內容檢索。

來自Textile的指令碼還包括用於DNS記錄的更新程式,該 更新程式將IPFS雜湊值釋出到Cloudflare DNS服務。每次手動發行後,此指令碼都會更新DNSLink。

技術精選丨如何在IPFS上託管個人網站

以太坊名稱服務(ENS)

要擁有一個完全分散的解決方案,可以使用ENS之類的技術來替代DNS系統。

我們的網站也可以在ENS域https://pfannschmidt。eth下訪問,也可以 透過過渡連結https://pfannschmidt。eth。link/訪問,該連結 使用該eth。link服務允許沒有ENS支援的瀏覽器訪問該網站。

目前,我們手動更新了儲存在ENS中的IPFS雜湊,但是將來我們可以使其自動化。

向後相容

IPFS仍處於初期階段。大多數流行的瀏覽器不支援大多數網路使用者所必需的協議。

在此之前,還需要使用Web伺服器和DNS以傳統方式託管網站。

可以使用 Cloudflares IPFS閘道器和DNS解決方案透過普通HTTP自動提供IPFS內容。

目前,此部落格由Netlify託管, 以支援未啟用IPFS的訪問者。

總的來說,

這個過程仍然是一件複雜而艱鉅的事情。IPFS及其生態系統在穩步改善的同時,仍有許多工作要做。

幸運的是,出現了諸如Terminal。co之類的新服務 ,它們提供了端到端的分散式託管解決方案。

推薦文章