【IPFS相关】手把手教你部署自己的静态网站到IPFS

本文由IPFS原力区收集译制,版权所属原作者

这将是最快的教程。

 

您不需要了解任何关于IPFS的知识,也不需要了解任何分布式内容,甚至不需要了解静态站点生成器。

 

静态的火

准备好了吗?Ok,第一步是打开你的终端,输入以下内容:

mkdir -p dwebsite/publiccd dwebsiteecho '<h1>Hello, worlds!< / h1 > > >public/ index . htmlyarn global add @agentofuser/ipfs-deploy# or: npm install -g @agentofuser/ipfs-deployIpd

跟得上吗?好的还有什么什么都没有。

什么?是的。你在这儿完成它。

现在你坐下来,看着胜利的游行队伍走过

就是这样。您自己的l33t#dwebsite 在哈希链的Merkleverse了。查出来。与你的朋友分享。

 

Sweet,?

 

慢点,到底发生了什么?

好吧,这有点让人难以接受。让我们倒回去一点,看看它的慢镜头,与后台评论:

 

1. 东西在哪里?

说实话,我可以调用ipd ./public,显式传递要部署的目录(public)

但是,你不会看到作为常用的许多构建目的地之一ipfs-deploy为静态站点生成器部署“深思熟虑”的表情符号探测器,这些目的地通常没有文档记录

 

是的,我浏览了staticgen.com,安装了一些静态站点生成器,并构建了一些小型测试站点,这样我标题就可以宣称zero-config。这都是小事懂的。

 

这就是ipfs-deploy在我们懒得输入时所寻找的:

从这个博客的域名可以看出,我是Gatsby的粉丝,ipfs-deploy可以满足所有需要。我们会在它上安装一个interplanetary jetpack,并带上你自己的SSG,让它起飞

 

2. 上传

这就是我们在这里的目的,也就是说,把网站放到太空中(比喻地说,就目前而言)。几秒钟后,ipfs-deploy提供:

 

那一点点散漫分布哈希是整个dweb的关键。请求你的网站连底层,不关心它在哪里,只关心它是什么。

 

内容寻址,不受位置或路由的限制。

<grave pause>到分布式的未来。

 

等等,我好像听到你说分布式

 

哦,你这个敏锐的读者。

 

你是对的IPFS应该是一个点对点协议,那么我们为什么还要上传呢?到服务器! ?

 

难道我们不应该直接向网络声明我们有这个散列,然后等待其他对等点请求它时自己将它提供给它们吗?

 

是的,你能做到。然后你关掉你的笔记本电脑,关闭wifi

 

这就像torrents:您需要至少一个播放器来提供可访问的内容。如果您的网站有大量运行自己的IPFS节点的人访问它并将其重新提供给其他人,那么平均运行时间将相当高。

 

但是现在还没有那么多这样的访问者(希望Brave能帮我们解决这个问题),而且,这是一个全新的网站!

 

如果有一个像#asyncUX浏览器,并且访问者可以很容易地告诉他们排队下载,等待某个对等点可用,然后通知它什么时候准备好了(就像无缝的“稍后阅读”流程),那么情况就完全不同了。

 

但就目前的情况来看,如果在提出请求的那一刻没有人在线,事情就只是挂着,然后暂停。肯定不是 space-ready.

 

所以我们这边需要一个高运行时间的播种机。或者,用IPFS术语来说,是“pinner”。

 

使用Infura.io进行零配置固定

IPFS -deploy的一个重要设计目标是让您第一次愉快地体验到在IPFS上创建的东西。

 

一种方法是运行一个本地IPFS守护进程,并让您自己提供内容。

 

但正如我们在上面看到的,这可能有点噱头,因为它并不代表您可以与朋友共享的实际部署。一定要有一个稳定的pinner

 

不过,用正常运行时间来固定东西是要花钱的,所以大多数固定服务都要求你至少注册一个自由层,然后他们才会同意托管你的网站,这是可以理解的。

 

不是Infura.io!

 

通过小心翼翼的限速、聪明的滥用预防、增长资本或鲁莽的放弃,他们让你在未经认证的情况下,就可以随意上传东西,而且他们会无限期地为你提供服务。(即使违背你的意愿,目前也没有明确的方法来解开这些东西。)

 

所以我们要感谢他们的慷慨:感谢Infura的所有人,请继续保持!

 

此外,如果您自己拥有一个固定服务,并且希望成为zero-config欢迎包的一部分,请考虑添加一个“更自由”的层,不需要注册。

 

新创建的静态网站占用的空间不大,流量很少,是进一步使用IPFS的一个很好的途径。

 

你做到了!

如果你走到这一步,恭喜你。嗨起来!

 

您不仅部署了自己的第一个IPFS网站,现在还可以夸耀自己真正理解IPFS的工作原理,只需挥挥手说:“哦,它很像git + bittorrent,您知道,这很简单!

 

如果你很认真地按照指示去做,结果却不合理,事情就发生在你的脸上,那是我的责任,不是你的。这是我的承诺:你的第一次快乐体验!

 

所以请告诉我出了什么问题,我会帮你解决的。

 

我们要消除这里的摩擦

 

如果你还没有足够的钱,留下一些额外的学分。

 

如果你对我们目前所取得的成绩感到满意,请将你的感受与他人分享,并广泛地为本指南投票。

 

奖金

免费冗余与Pinata.cloud

拥有一个稳定的pinner是很酷的,但是和普通的web主机没什么不同。(这是在“分配”的意义上。而“内容寻址性”的意义上,它是不分昼夜的

 

了解IPFS分布式特性的一种方法是添加第二个pinnerIPFS -deploy使更加容易。

 

我们要把它们都部署到Infura.ioPinata.cloud。这样,访客就可以同时从两个站点下载,或者在另一个失败时从其中一个站点下载。

 

它允许您删除pins并添加元数据,稍后您可以使用这些元数据来过滤和管理您的部署。

 

有一个1GB自由层,对于开发博客、登录页面、文档和#YangGang fanpage来说已经足够了。它确实需要注册,但它非常简单,不需要信用卡或个人信息。

 

注册并获得你的API密钥后,进入你的网站目录,将你的密钥复制到.env文件中,如下所示:

你不想公开这些信息不过当你这样做你主机的存储库公开,所以确保.env文件添加到你的.gitignore:

echo .env >> .gitignore

最后一个配置要部署到Pinata,需要将路由器上的端口4002转发到机器上。

 

为什么?因为部署到Pinata是这样工作的:

1.我们首先启动一个临时本地IPFS节点

2.把网站固定在本地

3.并将散列发送到Pinata

4.然后Pinata作为对等点连接到我们的本地节点

5.请求我们发送的散列

6.然后下载并自己托管它

 

因为4步,我们需要能够监听外部连接。

我知道,手动转发端口是一件痛苦的事,但在本季度支持NAT遍历将到js-ipfs,所以这是少了一个环,我们需要很快跳转

 

相比之下,Infura公开了IPFS节点的HTTP API,因此我们可以直接作为HTTP客户机上传到它,而无需运行本地节点或侦听连接。

 

Pinata的自定义API在灵活性零可配置性范围内找到了一个不同的点。

 

值得庆幸的是,我们可以用ipfs-deploy

 

现在Pinata已经准备好了,让我们回到文中,下面是运行部署后这两个固定服务的代码:

ipd -p infura -p pinata

 

你得到的是:

 

到目前为止没有什么新东西。现在轮到Pinata(以新的表情符号为特色!)

 

这就是:相同的哈希,不同的位置。

 

通过替换ipfs.infura.io”,您可以在任何网关上看到相同的内容”:

gateway.pinata.cloud

ipfs.io

cloudflare-ipfs.com

或者这里列出的任何一个:https://ipfs.github.io/publicgateway-checker

 

我以前说过,但我觉得这句话很酷,值得重复:

寻址,不受位置或路由的限制。

 

或者根据数据的内容调用数据,而不是根据数据的位置调用数据。

这就是加密哈希

 

告诉朋友

好了,我们做完了,对吧?感觉很好。现在去打电话告诉你的朋友吧

嘿杰西,你猜怎么着?

——什么?

我在dweb上建立了我的网站!!

耶,朋友,真酷!我打赌那一定很难。

不,这是npm,你懂的

是的,让我看看网站,在哪里?

——哦,这是在i-p-f-s-dot-i-o-slash-i-p-f-s-slash……呃……

——?

你有笔吗?大写的Q,小写的m,大写的Q,大写的T…呃…我给你发个网址怎么样?

好吧,当然,但如果我只是一个随便在广告牌上看到你网址的人呢?那你就不能给我发短信了,是吗?

嗯,不能

你知道吗,如果你有什么值得记住的东西我可以在浏览器里输入,打电话给我怎么样?

?,严厉。

 

好吧,这段栩栩如生的对话很快就结束了。

事实证明,内容寻址本身并不能很好地与有限的人类内存缓冲区相协调。

此外,朋友可能很难相处。

然后呢?

 

一个漂亮的URL

 

IPFS网站的可读命名显然是一个需要平滑处理的人性化领域。

但是,如果(这是一个很大的假设)您目前仍在使用免费Cloudflare IPFS网关的限制之内,那么IPFS -deploy将以一种非常简洁的方式将其打包在一起。

 

下面是我部署interplanetarygatsby.com的真实视频:

ipd -p infura -p pinata -d cloudflare

这是我上传完后看到的:

每次看到它毫不费力的样子,我都会微笑

不过,要达到这个目标,你需要采取一些一次性的步骤:

1.购买一个域名

2.注册Cloudflare帐户

3.将您的域名DNS区域移动到Cloudflare

4.将您的域连接到他们的IPFS网关

5.获取API密钥

 

从实际执行这些配置步骤到等待DNS信息传播,整个过程可能需要几个小时。

这就是为什么我把这部分放在这个额外的章节,而基本指令零配置。随着时间的推移,我们会消除越来越多的摩擦,让第一次快乐的经历变得更加快乐

 

因此,在完成步骤1-5之后,您需要做的最后一件事是将您的域和Cloudflare API凭据添加到您的网站的.env文件中:

# dwebsite / .env
IPFS_DEPLOY_SITE_DOMAIN = example.com
IPFS_DEPLOY_CLOUDFLARE__API_KEY = paste-your-cloudflare-api-key-here
IPFS_DEPLOY_CLOUDFLARE__API_EMAIL = the-email-you-used-to-sign-up

现在开始吧,继续使用ipd -d cloudflare,并告诉大家所有关于它的广告!

IPFS原力区

Slogan:让存储更安全、更高效、更开放、更经济 价值观:价值 共建 共享 荣耀 总部位于上海,聚集基于分布式网络&存储的众多技术大咖和爱好者,深耕基于IPFS的商业生态建设和社区发展。 每周二举办“分布式存储网络”主题沙龙,聚集了众多技术大咖和IPFS爱好者,通过持续输出全面、精细、优质的IPFS咨询和技术支持,将生态中的爱好者转化为IPFS支持者和参与者,共建IPFS生态的健康发展。

原创文章,作者:IPFSforce,如若转载,请注明出处:http://ipfser.org/2019/05/24/%e3%80%90ipfs%e7%9b%b8%e5%85%b3%e3%80%91%e6%89%8b%e6%8a%8a%e6%89%8b%e6%95%99%e4%bd%a0%e9%83%a8%e7%bd%b2%e8%87%aa%e5%b7%b1%e7%9a%84%e9%9d%99%e6%80%81%e7%bd%91%e7%ab%99%e5%88%b0ipfs/

发表评论

登录后才能评论

联系我们

在线咨询:点击这里给我发消息

邮件:ipfsforce@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code