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

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

> Crust 提供了 Web3 生态系统的去中心化存储网络,支持包括 IPFS 在内的多种存储层协议,并对应用层提供接口。Crust 的技术栈还能够支持去中心化计算层。Crust 旨在构建一个重视数据隐私和所有权的分布式云生态系统。 ![](https://img.learnblockchain.cn/pics/640-20210425074741583.png!/scale/50) ![](https://img.learnblockchain.cn/pics/640-20210425074758860.png!/scale/50) **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进行查看。 ![](https://img.learnblockchain.cn/pics/640-20210425074943872.png) 从上图可以看出,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](http://mp.weixin.qq.com/s?__biz=MzI0NzQ4OTM3OA==&mid=2247489448&idx=1&sn=5068c3e480db4187d4dd33e6c2202f15&chksm=e9ae61a5ded9e8b3b82a49bdf708afc7963bc5ad3dd7b931af613ed6afe561923e03b7464555&scene=21#wechat_redirect)* *[Crust Network 经济白皮书 v.1.1](http://mp.weixin.qq.com/s?__biz=MzI0NzQ4OTM3OA==&mid=2247491543&idx=1&sn=e7c64697f865c538bda9371c3a8ddd33&chksm=e9ae69daded9e0ccbb12a3e4b6adbe9178e9214af22374127072d05dc30e8346fd519b234f67&scene=21#wechat_redirect)* *[Crust Network 代币指标 & 经济学](http://mp.weixin.qq.com/s?__biz=MzI0NzQ4OTM3OA==&mid=2247489448&idx=3&sn=c6aa02d91d34e1c7478de1a4f18800cb&chksm=e9ae61a5ded9e8b3ed89a91ab7680905e3110b5230678d330bfc81345e32be7e7f38edf6eccd&scene=21#wechat_redirect)* ![图片](https://img.learnblockchain.cn/pics/640-20210425075023178.png!/scale/50)

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

区块链技术网。

  • 发表于 2021-04-24 23:47
  • 阅读 ( 722 )
  • 学分 ( 1 )
  • 分类:分布式存储

评论