“Crust 提供了 Web3 生態系統的去中心化存儲網絡,支持包括 IPFS 在內的多種存儲層協議,並對應用層提供接口。Crust 的技術棧還能夠支持去中心化計算層。Crust 旨在構建一個重視數據隱私和所有權的分佈式雲生態系統。”
1
2
Uniswap 在其自動化部署的代碼中集成了 Crust 網絡的存儲功能。Crust 已經爲 Uniswap 網頁 (app.uniswap.org) 提供了 100 多個 IPFS 文件副本。也就是說,當用戶訪問 Uniswap 時,頁面將從數以百計的 Crust 網絡的節點處獲得。
參見:
https://github.com/Uniswap/uniswap-interface/pull/1342
此外,PolkaApps 也已合併代碼,將其前端頁面部署在 Crust 網絡中,實現真正的去中心化網頁部署。
參見:
https://github.com/polkadot-js/apps/pull/4933
同時,Crust 技術社區貢獻了開源 CI flow,支持在 Crust 網絡中去中心化地部署網站和 DApp。
更多技術詳情可加入 Crust Discord 羣組:https://discord.gg/UtbAuQt
在 IPFS 上搭建網站 / DApp 擁有衆多好處,例如無服務器架構、對 DNS 劫持有潛在抵禦能力(在使用 IPNS / ENS 技術時)以及可以確保網站的可靠性。Uniswap 作爲目前最廣爲人知的去中心化交易所之一,已經與 IPFS 合作集成長達一年,同時他們也在自己的博客中介紹了 IPFS 的集成信息。
本文詳細地闡述了整個過程,同時也介紹了使用 Crust 以更去中心化的方式來部署網站的方法。
1.在 IPFS 上管理 Uniswap
**
**
步驟 1:構建 Uniswap 網站
Uniswap 構建網站,最新版本的 Uniswap 的所有內容都會包含在一個 Build Folder 中。
步驟 2:上傳網站至 IPFS
通過 Pinata (一種 IPFS 生態的存儲服務,又叫 Pin 服務),Uniswap 上傳 Build Folder 到 IPFS 網絡,上傳後,任何人都可以通過 IPFS 網絡檢索到這個 BuildFolder。
**
**
步驟 3:在 IPFS 上 Pin 住
Uniswap 前端與 IPFS Pin 服務集成。目前集成的 Pin 服務包含:pinata.cloud 和 Crust Network,確保了 Build Folder 擴散在整個網絡中。
步驟 4:更新 DNS 記錄
Uniswap 前端的 DNS 配置,使網站能通過可讀的 URL app.uniswap.org 進行訪問。DNS 記錄配置如下:
● app.uniswap.org 的 CNAME 記錄,配置爲 cloudflare-ipfs.com
●_dnslink.app.uniswap.org 的 TXT 記錄,配置爲 dnslink=/ipfs/QmRELxvJy8rNA5EoCpYQkWKzxi5y1zCMmcM4UveBaNGuLo
在撰寫本文時,Uniswap 前端的 Content ID 爲 QmRELxvJy8rNA5EoCpYQkWKzxi5y1zCMmcM4UveBaNGuLo, 一旦 Uniswap 前端更新,該 ID 可能發生變化。
持續集成及部署 CICD
Uniswap 將上述步驟集成到 GitHub Actions 中,建立了自動化的 CI/CD 管道。
2.去中心化的 Uniswap 前端部署
Uniswap 使用 Crust Network 作爲其 Pin 服務之一,將部署去中心化。每當 Uniswap 前端更新時,相應的部署工作流程將會被自動執行,同時觸發 Crust IPFS Pin Actions。
Crust IPFS Pin Action 會幫助調用者在 Crust Network 上生成存儲訂單(一個包含網站 BuildFolder 的 IPFS 文件 ID 的鏈上訂單)。完成此操作後,網站的 build folder 將會通過 Crust Network 的存儲節點進行存儲和分發。下訂單的過程和文件分發過程均是去中心化的。
生成存儲訂單後,可以在鏈上查看到包括文件狀態和副本數量等信息,並可以通過 Crust Apps 進行查看。
從上圖可以看出,Uniswap 頁面文件
(具有 CID QmbvfctPrBHtSBrvBY8ENRbkaFzeJt2rP7gu6cTdBKJNVe) Pin 在 Crust 網絡中的 122 個節點上。
3.一個通用的網站 /DApp 部署流程
Crust 提供了一個通用的 Github 工作流程,開發者可以使用它來去中心化的部署網站 /DApp,詳情可參考:
IPFS Crust 工作流程固定模板:
https://github.com/crustio/ipfs-crust-pinner/blob/main/.github/workflows/template.yml
結合此工作流程,整個部署過程如下所示(以網站部署爲例):
步驟 1: 創建網站
與 Uniswap 網頁的構建步驟相同,網頁文件也需被包括在一個 Build Folder 中。
步驟 2: 上傳網站至 IPFS
操作此步驟時,將觸發 Crust IPFS Upload Action。
將網頁的 Build Folder 上傳到一個公共 IPFS 網關 -crustwebsites.net 上。
步驟 3:在 IPFS 上 Pin 住網頁文件
這個步驟將觸發 Crust IPFS Upload Action。網站 Build Folder 將被 Crust Network 的存儲節點 Pin 住和分發。
步驟 4:更新 DNS 記錄
開發者最後需要參考此文檔進行 DNS 配置更新。此外,Crust 也提供了一個標準的 Github 工作流程來幫助自動更新 Cloudflare 的 DNS 記錄。
進一步去中心化
開發人員可以集成諸如以太坊域名解析服務(ENS)之類的工具,爲其網站 /DApp 提供更安全且去中心化的服務,並有效防止被 DNS 劫持。
本文的相關關鍵詞可在下文鏈接中查閱。
4. 參考資料
IPFS 參考資料
● What is IPFS
https://docs.ipfs.io/concepts/what-is-ipfs/
● IPFS Pinning
https://docs.ipfs.io/concepts/persistence/
● DNS Link
https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/
Crust 參考資料
Crust 提供了 Web3 生態系統的去中心化存儲網絡。
● Crust Network
● Crust JS
https://github.com/crustio/crust.js/tree/main/packages/crust-pin
● Crust IPFS Action
https://github.com/crustio/ipfs-crust-action
● Crust IPFS Upload Action
https://github.com/crustio/ipfs-upload-action
● IPFS Crust Pinner
https://github.com/crustio/ipfs-crust-pinner
● A Demo of Website Hosting
https://github.com/crustio/crust-demo/tree/main/website-hosting-demo
關於 Crust Network
Crust 提供了 Web3 生態系統的去中心化存儲網絡,支持包括 IPFS 在內的多種存儲層協議,並對應用層提供接口。Crust 的技術棧還能夠支持去中心化計算層。Crust 旨在構建一個重視數據隱私和所有權的分佈式雲生態系統。
力求與 Crust 主網功能相同的 Crust Maxwell 預覽網於 2 月 4 日正式上線,集成 Crust 所有核心功能,包括代幣質押、去中心化存儲市場 DSM 及文件檢索機制等。
Crust Network 先後加入 Substrate Builders Program、Web3.0 Bootcamp,以及獲得 Web3 基金會 Grant 。
Crust 相關:
Crust Network 技術白皮書 v1.9.8
Crust Network 經濟白皮書 v.1.1
Crust Network 代幣指標 & 經濟學
Twitter:@CrustNetwork
Medium:https://medium.com/@crustnetwork
GitHub:https://github.com/crustio
Telegram:https://t.me/CrustNetwork