Skip to main content
 首页 » IPFS

如何基于ipfs建一个静态网站

2021年04月17日17

技术精选丨如何在IPFS上托管个人网站

您正在阅读的网站可以完全使用,而无需在服务器上运行后端。这样的网站称为静态网站。

静态网站向浏览器提供所有内容和逻辑(JavaScript)。

所有交互(例如搜索或单击内部链接)都是通过随附的JS脚本执行的。

尽管这听起来像是外行的期望,但它与Internet的当前状态相去甚远。

在早期,许多网站仅由静态HTML网站组成。如今,许多现代网站都依赖于运行中的集中式后端服务器。

这不仅带来动态体验,而且还导致链接失败,并且URL的使用寿命有限。

许多人至少经历过一次链接断开的现象,并且随着Internet的老化,这个问题还会增加。

内容可寻址存储最近在Internet上实现分布式存储的努力再次催生了诸如内容可寻址存储之类的技术。

内容寻址使用数学哈希函数将网站的内容压缩为称为哈希的短字符串。

哈希函数的优点在于它们很可能产生唯一的输出和唯一的地址。

这允许人们仅基于内容哈希使用和交换内容的用例。 IPFS(星际文件系统)就是这种应用程序的一个例子。

IPFS引入了针对内容的寻址方案,并且它不使用中央服务器的传输网络进行信息交换。

当使用IPFS应用程序的人员了解其他节点所需的信息时,他们将自动充当其他节点的服务器。

这样,无需大型中央服务器或内容分发网络即可实现功能更强大的分布式Internet。如果要使用IPFS托管网站,则它必须是静态的。

使网站静态化该网站由Hugo构建,并已产生静态输出。启用对IPFS寻址的relativeURL仅重要。

我们仍在使用雨果的学术主题。 Academic使用各种外部字体和JavaScript资源来增强内容表示。尽管完全有可能托管引用非IPFS资源的IPFS网站,但它并未完全分散。幸运的是,学术主题还提供了一个下载工具,可以将所有外部资产保存在网站文件夹中。

在撰写本文时,主下载器尚不支持所有资产,但是一个开放的请求增加了对大多数丢失内容的支持。缺少的另一件事是字体,这些字体最初来自我们手动下载的Google字体CDN。

现在,我们有了一个运行在本地字体和JavaScript资源1上的完整网站。

这样,您可以下载网站文件并终止Internet连接,您将获得相同的体验。

托管IPFS网站如果使用IPFS对网站进行哈希处理,则会得到以下内容哈希值:/ ipfs / QmSPZuY3K1XieH7M9zh4qs9MEGFf4GZdBv3STaiJpBaC6o现在,其他人可以直接使用自己的IPFS客户端或使用可用的浏览器插件之一来检索网站。

此博客文章的草稿已散列并固定到本地IPFS节点。为了使其他人能够检索该网站的文件,我们必须保持IPFS节点运行或要求其他人对其进行缓存(固定)。

有所谓的固定服务(例如Pinata)提供此服务。另一个项目是Filecoin,它基于IPFS构建。它使用区块链来奖励节点以保持IPFS文件固定,从而提供金钱激励。

在过去的几天中,我们一直在寻找将新内容添加到git存储库中时自动固定此网站的方法。就在昨天,Textile宣布了一个基于IPFS的动态存储桶。尽管不是博客文章的主要重点,但他们还引入了新的GitHub Actions,它将内容自动部署到其免费存储桶托管中。

我们已经在基于Gatsby的演示站点上扩展了其脚本,以供Hugo使用。

GitHub Action构建文件并将其推送到Textile桶现在,在每个推送请求之后,GitHub Action将编译Hugo输出并将其推送到也固定并与IPFS一起使用的Textile桶。每次更改并推送到存储库后,我们的网站内容将自动显示在内容哈希下。

域名解析为了让人们知道站点可以使用IPFS,可以使用DNSLinks。这些是附加到DNS域的TXT记录,它们指示可用的IPFS资源。

IPFS浏览器扩展可以检测到这些记录,并在访问此类站点时自动使用IPFS进行内容检索。

来自Textile的脚本还包括用于DNS记录的更新程序,该程序将IPFS哈希发布到Cloudflare DNS服务。每次手动发布后,此脚本将更新DNSLink。

为了拥有以太坊名称服务(ENS)的完全分散的解决方案,可以使用诸如ENS之类的技术来代替DNS系统。

当前,我们手动更新存储在ENS中的IPFS哈希,但是将来我们可以使其自动化。

与IPFS的向后兼容性仍处于起步阶段。大多数流行的浏览器不支持大多数Internet用户所需的协议。

在此之前,有必要使用Web服务器和DNS以传统方式托管网站。

Cloudflares IPFS网关和DNS解决方案可用于通过普通HTTP自动提供IPFS内容。

当前,此博客由Netlify托管,以支持未启用IPFS的访问者。

总的来说,这个过程仍然是一件复杂而艰巨的事情。尽管IPFS及其生态系统正在稳步改善,但仍有许多工作要做。

幸运的是,出现了诸如Terminal.co之类的新服务,它们提供了端到端的分布式托管解决方案。

报告/反馈

你好,世界|用IPFS创造个人伊甸园

本文将介绍如何使用终端和IPFS创建您的第一个静态网站。

首先创建一个index.html文件,并使用Terminal.co进行部署。

创建一个index.html文件并添加一些内容。

添加,提交,推送。

选择一个存储库。

在此的示例Build命令没有公共目录。

部署网站需要30秒。

完成后,检查您的网站。

您可以使用提供的域名来查看网站。

https:// <您的自定义域> .tmnl.co或使用CID进行验证。

这将是基于IPFS构建网页的最方便的方法。

-End-2019精选:BTC暴跌对Filecoin有什么影响?

Filecoin的第二阶段公开测试开始了,并警惕“投资者的困境” Juan:是什么让我们与众不同-Filecoin的证明系统是整个网络独有的| Filecoin的“ 1475”在公开测试舞台上正式推出了GPU解决方案,您的采矿机对您有帮助吗?

深度|不用担心HTTP的功能强大,它无法阻止IPFS滋润无声IPFS应用程序|全球第一视频平台Netflix与IPFS合作温馨提醒:回复IPFSNEW公共帐户上的关键字1.回复“ Filecoin”获得Filecoin项目的中英文白皮书2.回复“ IPFS”即可获得IPFS项目的中文,英文白皮书:Terminal.co(全文编辑)编辑:Star Princess Horizo​​n报告/反馈

(IPFS/Filecoin)Basquiat,支持IPFS的图像大小调整工具

Basquiat,一种支持IPFS的图像调整大小工具。现代网站设计必须针对各种设备进行优化。为了在不牺牲显示质量的情况下最小化页面加载速度,请根据设备的特性调整图像尺寸。在集中式Web中,这是通过非常快速的图像处理库(例如libvips)在服务器端实现的,该库是流行的imgproxy 1服务的基础。

我们如何将这个功能变成IPFS的世界?在本文中,我将为您简要概述basquiat 6,这是一个新项目,提出了元数据规范和简单实现,作为对此新问题的可能解决方案。

初始IPFS将所有数据存储为有向无环图(DAG),它实际上是一棵树,其中给定节点可能具有多个父级。该树结构用于将文件划分为更小和更易于管理的块。通过其内容标识符(CID)指向节点,该标识符是从其内容的哈希派生的字符串。这意味着任何CID都引用静态对象。然后,每个节点都是类似于JSON的字典,它可能包含存储原始数据的数据的属性以及包含其余数据的其他节点的CID。

IPLD详细定义了这种类似于JSON的数据结构,这是一个不断发展的规范。首先,类似JSON的意思是json,然后是protobuf,最后是cbor。但是,由于IPLD规范,当我们在此数据结构层之上构建自己的规范时,我们可以抽象出实现上的差异。

从一开始,IPFS就使用了一个称为UnixFS的实际文件系统。通过将命名链接添加到节点内的其他资源来实现目录。例如,cat.jpg目录中的文件cid0除了其自己的CID之外,还可以访问cid0 / cat.jpgURI。

Basquiat basquiat是在Rust中实现并基于go-ipfs和libvips库构建的CLI工具。作为输入,它采用映像的路径和描述目标映像大小的配置文件。然后,basquiat输出一个CID,该CID指向原始图像,但包含指向所生成版本的命名链接。$ basquiat -q〜/ Pictures / yaks.jpg -c basquiat.cfgQmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4FQmfPYe4JzhcG41bXNnatGUfCDZMLJ74KdQtZiquiSexample直接打开此CID将产生原始图像。您可以探索通过将thumbnails.html 3附加到CID生成的不同版本。

例如,一个给定的配置将产生一个601x400的版本,这个版本可以通过以下三种方式访问​​:QmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4F / 601x400.jpgQmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4F / 601x_.jpgQmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4F / _x400.jpg _通配符的应用并不意味着原始图像的大小或要求特定尺寸的长宽比。实际上,basquiat不仅是一种CLI工具,而且还提出了一种灵活且可扩展的链接命名方案,以确保不同实现之间的最终兼容性。 Basquiat的配置解析器也是此规范的实现。

要快速开始使用basquiat,请参阅自述文件。 1项目的未来发展。有几种不同的前进方式:现在,巴斯奎特获得一个枚举每个所需版本的静态配置文件。为了使其更有用,重要的一步将是简化根据目标设备特性和相对图像显示尺寸生成配置文件的过程。

元数据规范可以扩展到不同的操作,例如剪切。巴斯基插件系统的实现将使这种可扩展性体现在实现中。

与Fission CLI集成。

使用pica 1库和js-ipfs 1的浏览器就绪的实现。

报告/反馈

上一篇: 剑指ipfs

下一篇: 最权威的ipfs

微信
登录
用户名
密码
注册
用户名
密码
确认密码
昵称
邮箱
QQ
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱