开发指南:在Crust上部署去中心化网页/DApp

本文详细地阐述了整个过程,同时也介绍了使用Crust以更去中心化的方式来部署网站的方法。

Crust 提供了 Web3 生态系统的去中心化存储网络,支持包括 IPFS 在内的多种存储层协议,并对应用层提供接口。Crust 的技术栈还能够支持去中心化计算层。Crust 旨在构建一个重视数据隐私和所有权的分布式云生态系统。

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/#decentralization

  • IPFS Pinning

https://docs.ipfs.io/concepts/persistence/#pinning-in-context

  • DNS Link

https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns

Crust 参考资料

Crust 提供了 Web3 生态系统的去中心化存储网络。

  • Crust Network

https://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 代币指标 & 经济学

图片

点赞 0
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Crust分布式云
Crust分布式云
江湖只有他的大名,没有他的介绍。