Skip to main content
 首页 » IPFS

利用ipfs托管你的静态网站

2021年04月17日20

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

原始标题:选定的技术·如何在IPFS上托管个人网站。您正在查看的网站可以正常使用,而无需在服务器上运行后端。这样的网站称为静态网站。静态网站向浏览器提供所有内容和级别(JavaScript),并且所有交互(例如搜索或链接)都是通过随附的JS脚本执行的,但这与Internet的当前状态相去甚远。在早期,许多网站仅由静态HTML网站组成。如今,许多现代网站都依赖于运行中的集中式后端服务器。这不仅带来动态体验,而且导致链接失败,并且URL的使用寿命非常有限。许多人至少经历了一个或多个链路故障,并且随着Internet的当前老化,此问题仍在加剧。

IPFS引入了一种针对内容的地址方案,并且它不使用中央服务器的传输网络进行信息交换。如果使用IPFS应用程序,则当您知道其他节点所需的信息时,它们将自动充当其他节点。服务器。这样,无需大型中央服务器或内容分发网络即可实现功能更强大的分布式Internet。如果要使用IPFS托管网站,则它必须是静态的。使用Hugo构建静态输出,同时使用relativeURL和IPFS,Academic可以使用各种外部字体,并使用JavaScript资源来增强内容的显示,以便它可以托管和引用非基于IPFS的网站,而Academic也可以提供下载工具,您可以将所有外部信息资源保存在网站文件夹中。当前,下载器不支持所有信息资源。完成上述操作后,便有了一个基于本地字体和JavaScript的完整网站,可以终止Internet连接以下载文件。

如果使用IPFS对网站进行哈希处理,则将获得以下内容哈希值:/ ipfs / QmSPZuY3K1XieH7M9zh4qs9MEGFf4GZdBv3STaiJpBaC6o其他人可以直接使用其自己的IPFS客户端或使用相关的浏览器插件来检索此网站。

该博客中的文章已经与本地IPFS存储节点相关联。如果您希望其他人能够在此网站上搜索文件,则必须使IPFS节点保持运行状态或让其他人存储文件。 Filecoin提供分布式存储服务。它建立在IPFS之上,并奖励各种节点,以便可以存储IPFS文件。

在过去的两天内,我们解决了在向git存储库中添加新内容时自动缓存该网站的方法,Textile宣布了在IPFS之上运行的动态存储库,并展示了新的GitHub Actions,可以添加该内容。自动部署到免费存储库中,并且我们已在基于Gatsby的演示站点上扩展了其脚本,以供Hugo使用。

GitHub Action构建文件并将其推送到Textile桶。现在,在每个推送请求之后,当与IPFS一起使用时,GitHub Action将编译Hugo输出,将其推送并存储在Textile桶中,并且我们的网站内容将自动显示在相关的哈希值中。为了让用户知道该站点可以使用IPFS,可以使用DNSLinks。它是附加到DNS的TXT记录,可以提示相关的IPFS资源,并且IPFS浏览器插件可以检测到它,并在用户访问站点时自动使用IPFS检索相关内容。 Textile的相关脚本还包括DNS更新程序。它将IPFS哈希值发布到Cloudflare DNS服务。每次发行后,DNSLink都会更新。将来,我们可以自动更新ENS中存储的IPFS哈希值。

目前,IPFS尚处于起步阶段,大多数主流浏览器目前不支持大多数用户所必需的协议。还必须使用Web服务器和DNS以传统方式托管网站。当前,Cloudflares IPFS网关和DNS解决方案可用于通过普通HTTP自动提供。 IPFS内容。总体而言,IPFS及其生态系统正在稳步改善。这个过程仍然是一件复杂而艰巨的事情,仍然有很多工作要做。

最近,协议实验室的MARVIN AMMORI在法律实验室(伊利诺伊理工大学法学创新中心,帮助发明法律行业的未来)上发表了主题为“新的互联网:加密货币将如何促进去中心化网络”的演讲。 )。您可能会看到我们正在创建数百万PB的数据,这是一个巨大的数目。但是,仍然有大约一半的存储空间留在某人的地下室中或在数据服务器中处于空闲状态。如果您可以利用所有这些容量并将其放到Internet上,则可以减少每个人的存储成本,并可以在大型企业中做更多的事情。竞赛。 Filecoin是一种加密货币。您可以通过托管文件等来赚钱Filecoin。它为数据存储提供了巨大的市场。

而且,最近,在社区中已经讨论了Filecoin主网的扩展,但这并不影响全球顶级交易所Gemini公开宣布它将支持Filecoin托管。将来,将启动Filecoin主网,并且可以在Gemini中执行FIL。保管和交易。在2019年,双子座在“ 2019年市场选择奖”中荣获“最佳加密货币交易所”奖。双子座是世界上第一个完成严格的SOC 2 1类和2类检查的加密货币交易所和受托人,它在2016年成功获得了纽约金融服务管理局NYSDF颁发的世界上第一个数字货币交换许可证。它也是第一个引入该交易所的交易所。期货合约。 Gemini使用市场上最安全,合规且用户友好的托管解决方案来存储和管理用户的数字资产,并提供具有行业领先安全性的机构级加密存储。

新旧交替,你敢相信?下一个应用程序可能没有后端......

科技行业的一位大人物肖小欣说。

对于我(以及许多其他人!)来说,它最初是指Microsoft FrontPage,在我面前带着尴尬的笑容,我以怀旧而羞愧的心情告诉了您所有这些信息。

我的网站是一堆静态HTML页面。这些页面包含许多JavaScript和出色的GIF。在20世纪初的互联网时代,它们受到了高度重视。它们由静态主机提供服务,这些主机基本上等同于意大利。地理城市。

在接下来的几年中,我逐渐做出了更好的选择,例如2002年发布的Macromedia Dreamweaver MX(现在为Adobe);它的最大优势是生成更符合标准的代码。

十年后的2009年,我仍在建立一个网站,但那时的动态才是关键。所有页面都是使用PHP在服务器端生成的。不只是PHP:开发人员还使用.NET,Java,Python,Ruby等来构建全栈网络应用程序。

这些技术并不完全是新技术:ASP大约在1996年出现,而PHP在1994年首次亮相!但是,正是在这个时候,在20世纪前十年的下半叶提出了一个简化网站开发的新框架。 ,更多的小型团队和开发人员可以使用这些技术。

例如,Django和Ruby onRails于2005年问世。此外,在那几年,人们开始注意到便宜的动态网站托管选项(像Bluehost这样的共享托管于2003年开发),因此开发人员不必自己管理服务器。

当时,云计算仍然是一个相对较新的事物。简而言之,它基本上是基础架构即服务。

但是这次,情况有所不同:由于更新了HTML,JavaScript,CSS标准和API,Web浏览器的功能已远远超过20年前。

现在,无需外部插件即可在网络浏览器中开发并运行极其复杂的应用程序,例如电子表格和3D游戏。 (很多GIF也会再次使用,但是这次有一点讽刺意味!)JAMstack和Isolated Front End HTML5最初于2008年发布。此后,浏览器供应商一直在实施新的Web标准并将其添加到网站中。 API。

变化体现在更多的“基本”事物上。例如,

但是,最大的进步是针对Web应用程序的新设计范例的推广。这个新的范例称为JAMstack,其中包括JavaScript,可重用的API和预渲染的标记。

这个想法是受移动应用程序启发的。即使Web应用程序的前端层和后端层是完全隔离的,人们也只能通过依靠一组已同意的接口来与HTTPS进行通信。

JAMstack应用程序体系结构的概念概述JAMstack的JavaScript部分所扮演的角色应该是不言而喻的:整个应用程序都在客户端(即Web浏览器)中运行,并且受JavaScript支持(您也可以泛化此定义,就像解释浏览器中执行JavaScript代码的同一VM,WebAssembly也是如此)。

“ A”绝对是最有趣的部分,它表示API:API使JAMstack应用程序具有交互性,并为最终用户带来非凡的体验。您的静态应用程序可以通过HTTPS调用的API与其他服务进行交互。

最简单的示例是RESTful API,它们易于构建和使用。最近,GraphQL变得越来越流行,它对于可以用图形表示的数据特别有用(这不是在Facebook上发明的巧合)。

例如,在某些情况下,那些需要交换大量结构化数据的应用程序也可以选择协议缓冲区和gRPC,尽管它们目前需要与Web浏览器一起使用的代理。

最后,实时应用程序可以利用WebSocket。您可以自由选择任何所需的API格式,只要它满足您的需求即可。

当涉及到API时,一个非常重要的细节是任何人都可以拥有它们。您的应用程序可能正在与您(或后端团队)构建和维护的API进行交互。或者,您可能正在使用第三方API,例如SaaS应用程序提供的API。这些内容将在以后突出显示。

最后,JAMstack中的“ M”代表预渲染的标记。 Web应用程序是静态HTML文件,这些文件在“构建时”由各种打包工具(例如webpack,Parcel或Rollup)预先渲染。

Markdown文件中的内容也可以呈现,就像Hugo,Gatsby和Jekyll等静态网站生成器一样。在部署应用程序之前,所有预处理都在开发人员的计算机或持续集成(CI)服务器上完成。

一旦用JAMstack编写的应用程序被“编译”,它将变成一堆HTML,JavaScript和CSS文件,并附加所有资源(图像,附件等)。服务器将不会随时对其进行处理。这给JAMstack应用程序带来了很大的好处。

首先,JAMstack应用程序非常易于部署,扩展和操作,并且其性能非常出色。您可以从云对象存储服务(例如Azure Blob存储或AWS S3)交付静态文件。这些服务非常便宜(每月每GB只需几美分),并且非常可靠。

使用对象存储服务时,无需管理或修补服务器或框架,因此可以减少开销并提高安全性。

然后,将CDN(内容交付网络)放置在对象存储的前面时,您的网站将由世界各地的多个终端节点直接提供服务和缓存。在全球范围内,您网站的访问者将以最小的延迟受到影响。另外,可扩展性将达到极好的水平。

如果需要,您也可以像我一样通过星际文件系统(IPFS)提供文件。

其次,JAMstack的开发人员经验(DX)易于进行。首先,前端开发人员和后端开发人员可以专注于编写自己的代码,只要他们在接口和API上达成协议,他们就可以基本独立运行。

具有复杂模板引擎(还记得PHP?)的单片应用程序的时代已经一去不复返了。这导致了两个团队之间的冲突,并引起了所有人的头痛。

前端应用程序在编译后只是一堆静态文件,因此它们也易于自动部署:在更高级别上,您可以将新捆绑包复制到存储区域,然后更新CDN以指向新资源。

前端应用程序的编译速度通常非常快,因此无需担心容器化技术,容器编排和Kubernetes。

考虑到工具的标准化以及预制模板,通常很容易建立持续集成和持续交付(CI / CD)管道。

最后,前端开发人员可以自由进行试验,在某些情况下,他们甚至可以将开发前端指向生产后端。

为什么感觉应用程序运行很快?本文将从以下三个方面进行回答。

首先,应用程序本身异步加载数据,因此用户在加载数据时可以看到界面并可以与之交互。下面的图片是新版本的Twitter应用程序加载的动画图片:这个新的应用程序立即加载并异步请求数据。应用程序本身几乎立即加载,然后逐渐开始异步请求数据并填充整个接口。

第二个原因是能够大量缓存应用程序。对于许多JAMstack应用程序,JavaScript和CSS文件不会经常更改,因此客户端在下载应用程序后可以缓存很长时间。

这样可以节省请求应用程序代码的时间,并且客户端仅需要提取数据。另外,如果通过CDN提供Web应用程序,则它将允许用户从靠近他们的终端节点检索您的代码,从而大大减少了延迟。

该应用程序的代码可能是几个KB。即使这样,也可以减少从CDN下载文件的时间延迟,并且可以在本地缓存文件,这实际上意味着应用程序运行速度更快。

关于缓存,您还可以使用更多技术(例如Service Workers)来缓存应用程序代码和数据,进一步加快页面加载速度,甚至提供脱机体验。

最后,API服务器不需要花费时间来生成和提供完整的HTML页面,它只需要处理原始数据(通常是JSON有效负载,在传输过程中由GZIP压缩),剩下的工作就是建立页面给客户完成。

当资源移交给对象存储服务时,后端服务器将不会收到对静态资源的所有请求,因此它将有更多资源来处理实际的业务逻辑和API。

您可能不需要自己的API映射源:上面提到的Unsplash表示JAMstack中的“ A”代表API,并且您可以使用任何人构建和操作的任何API。

您可以使用外部身份提供者来认证用户。如果要构建企业应用程序,则该目录可能已经位于Azure AD或G Suite目录中(或与其同步)。

对于消费者应用程序,请考虑与Apple,Facebook和GitHub等社交平台合作。还有诸如Auth0和Okta之类的公司,它们可以提供功能强大且可扩展的解决方案,包括帐户管理(注册表单,密码重置...)以及与各种外部供应商的集成。

好消息是,许多其他API至少可以支持来自上述某些供应商的身份验证令牌,因此您可以立即进行集成。另外,在任何情况下,最好使用外部身份提供程序而不是您自己的身份验证代码,因为这种方法是最安全的。

然后,您可以集成大量的SaaS服务,这将使您的应用程序可以访问大量数据并具有更多功能,而无需您费力。

API可用于天气,交通,显示股票价格,地图,监控航班,甚至订购比萨饼。

如果您需要内容管理系统来轻松愉快地修改网站内容,那么“无头内容管理系统”可以为您提供多种选择。例如,Strapi和Ghost。甚至无处不在的WordPress也可以在无头模式下使用。

将企业应用程序与Office套件(例如Microsoft Office 365和G Suite)集成后,您可以发送和接收电子邮件,管理日历和联系人,创建文档和电子表格以及访问公司目录。

这些服务还在OneDrive和Google Drive中附带了云存储,因此您可以轻松地使用它们来存储和检索数据。

开发人员还可以依靠外部服务来接受信用卡付款(例如Stripe),在文件格式之间转换,生成图像的缩略图(例如CloudConvert),处理视频以及发送消息(可通过Slack,Teams,Twilio等获得)。 )......

API的功能是无止境的。用户可以直接从前端应用程序(例如Firestore)访问某些数据库服务。最后,您还可以将某些“低代码/无代码”服务用于必须在服务器环境中执行的进程,因为它们需要连接到客户端无法直接访问的服务(数据库,某些企业应用程序等)。 )。

一种解决方案是Azure Logic Apps,它最初是为开发人员和企业设计的IFTTT。您可以使其通过REST调用运行。

使用外部服务提供的API的好处不容错过。其他人有责任确保他们可用并根据需要进行扩展。

您无需修补任何应用程序或框架,更不用说基础架构了,所有这些都将移交给团队进行维护,从而确保其安全性。

关于隐私和合规性,有一些有趣的好处。

当然,如果没有其他选择,您也可以构建自己的API。

使用无服务器平台(例如AWS Lambda和AzureFunctions),您不需要管理和扩展自己的服务器,但是您仍然要承担一些责任。

负责任的内容包括为应用程序打补丁,以确保其在受支持的运行时上运行(例如:当您使用Node.js达到使用寿命时,您需要更新版本),可以考虑如何在地理上复制这些部署,以及根据需要进行负载平衡。

建立自己的API通常还需要管理数据存储,需要对其进行复制,备份和扩展。

下一步是什么? JEMstack依靠自己的API和/或第三方API来使用JAMstack来构建Web应用程序,这是当今Web开发过程中最先进的设计模式之一。

数十年来,人们一直在将应用程序完全移至服务器,将大部分工作尽可能地移离客户端,然后将更多的任务放在浏览器上。

无论是您自己还是其他人,只有一个地方仍需要服务器,那就是API。因此从逻辑上讲,下一个问题是:“我们如何彻底摆脱服务器?”答案是:最终可能通过使用区块链来实现,特别是以太坊。

我建议将其称为“ JEMstack”,它是JavaScript,以太坊和预渲染标记的首字母缩写。

该堆栈将是“ Web 3.0”或分布式Web的一部分。 “ JEMstack”分布式应用程序(或dapps)将接受IPFS提供的服务,其数据将作为分布式分类帐存储在区块链中。

其中的一些好处包括将数据的控制权返回给用户,并且无论如何,开发人员都不必担心基础结构。

以上远未实现。您可以使用区块链(尤其是以太坊)来构建dapp。实际上,已经有很多这样的应用程序:App.co有一个不错的选择列表。但是,要使这种技术成为主流,仍然需要解决许多问题。

实际上,构建基于以太坊的应用程序的开发人员经验(DX)确实很棒。

应用程序可以通过简单无缝地调用智能合约轻松访问和更改存储在区块链上的数据。这种类型的智能合约由一些代码组成,这些代码是为以太坊区块链编译的(从技术上讲,它是以太坊虚拟机),然后在其上运行。

智能合约可以存储数据并对其进行计算。它通常用一种称为Solidity的语言编写,该语言类似于C语言。

但是,当我写这篇文章时,我发现最终用户体验(UX)仍有很大的改进空间。这是dapp广泛使用的最大障碍,并且这种障碍可能会持续更长的时间。

首先,大多数用户将需要安装浏览器扩展以与以太坊进行交互,例如Firefox和Chrome的Metamask和Safari的Tokenary。只有不太流行的浏览器(例如Brave和Opera)提供对以太坊钱包的内置支持。

移动是另一个雷区,用户需要下载特定的应用程序(例如Coinbase Wallet或Opera Mobile)才能与区块链进行交互。

然后,用户必须处理以太坊钱包。尽管从以太坊读取数据是免费且易于操作的(并且不需要用户交互),但是在区块链上写任何东西都需要用户手动批准,并且至少必须支付“汽油费”。

用户需要支付少量的以太坊令牌来执行更改区块链状态的代码,这与智能合约功能本身是否应付款无关(例如:它将资金(以太币)转移给其他人)都是必要的。

用户体验不尽如人意,因为它要求用户显式单击弹出窗口,然后等待几秒钟至几分钟,以便以太坊区块链可以确认交易。

当然,用户需要首先购买以太坊代币,这并不像看起来那样简单,尤其是在世界上某些国家或地区。

最后,如果用户放错了钱包的私钥或恢复了密码,或者不够谨慎,将留下安全隐患。

确认弹出窗口是Metamask UX的常见部分。当前有一个大型小组致力于改善区块链应用程序的用户体验,使其更易于添加身份,建立更透明的流程以及使交易更快甚至即时。

每种技术仍处于不稳定状态,现在有各种竞争的区块链技术。这与平台和框架的情况非常相似。

我衷心希望在接下来的几个月和几年中,我们将看到更多的集成和标准化,最终写在“ JEMstack”上的dapp可能会成为新的规范。

FIL为什么必须富养?

许多不熟悉fil采矿的朋友会遇到一个常见的问题,为什么FIL矿工不能像比特币那样,以太坊是在公司或自建的计算机房中开采的,所以必须将其放置在专业的IDC计算机房中?诀窍是什么? ?

首先,我们必须了解开采FIL的过程。像BTC一样,ETH属于能源开采K。这些机器建在偏远的水力发电厂和火力发电厂附近。寻找一种可以抵御风吹雨打的稳定植物。要求非常低,但是不能模仿FIL,因为FIL属于存储和挖掘K,并且硬盘存储用于确定块奖励! “期望的共识+复制证明+时间和空间证明”是FIL共识和存储算法的核心概念,以确保数据NAT的安全性和稳定性,存在一种抵押货币的方式来押K和惩罚。每年365天,一天24小时不间断工作,如果出现网络中断,NAT内部和外部网络渗透,公共网络IP和带宽无法满足挖掘K,有人恶意破坏等要求的情况,从而导致数据丢失和计算能力的损失,矿工们会受到保证金的惩罚,更不用说辛勤的工作了,“罚款”的损失也非常大。

做出一个简单易懂的类比:FIL挖掘K与Didi Taxi非常相似。通常,在滴滴下订单后,许多司机会来接订单。司机接订单的次数越多,他们赚的钱就越多。 FIL挖掘K同样如此。如果用户在Fil网络上发起存储请求,将会有很多矿工来抓订单。如果用户使用FIL货币付款,则矿工将获得FIL货币的奖励。更多的FIL硬币将是。在这里,滴滴司机可以被视为FIL矿工,乘客可以被视为IPFS分布式存储的用户,滴滴系统可以与FIL网络进行比较。再说一次,如果驾驶员强迫我们下车取消订单,驾驶员肯定会受到惩罚,对吧? FIL也是如此。

为什么不能将IPFS / FIL服务器挖掘放置在自建的地雷中,而必须将其托管在IDC机会中?在家中或公司中都无法进行开采吗?

首先,让我们首先了解一下IDC机房是什么。 IDC是基于Internet网络的Internet数据中心。它提供操作和维护设施,并提供相关服务,用于集中收集,存储,处理和传输数据。IDC提供的主要服务包括域名注册和查询托管(座位,机架,计算机房出租),资源出租(例如虚拟托管服务,数据存储服务),系统维护(系统配置,数据备份,故障排除服务),管理服务(例如带宽管理,流量分析,负载平衡,入侵检测,系统漏洞诊断)以及其他支持和操作服务。

Internet数据中心(Internet Data Center)被称为IDC。也就是说,电信部门利用现有的Internet通信线路和带宽资源来建立标准化的电信专业级机房环境,为企业和政府提供服务器托管,租用及相关增值服务等全方位服务。也就是说,拥有服务器的公司将服务器置于数据中心,这通常称为服务器租赁和托管以及其他相关业务。

因此,由专业IDC机房在连续网络中托管,连续供电,恒温恒湿也是确保我们的机器能够连续稳定地挖掘K,并为我们带来最大的利益。如果您对Filecoin的未来发展前景感到乐观,那么Filecoin的未来升值空间肯定会很小。即使价格在短期内波动,总体趋势仍然看涨。采矿是最有可能以低于公开发行价或成本价的价格获得Filecoin代币的方法,而采矿是一种长期投资方法,它可以通过使用Filecoin来抓住Filecoin长期增长的红利。电信IDC服务器托管的解决方案对于企业,企业或政府部门,不再需要建立自己的专用计算机室,铺设昂贵的通信线路,也不需要雇用高薪网络工程师来解决他们使用Internet的许多专业需求。

IDC托管的主要应用范围是网站发布,虚拟托管和电子商务。例如,网站发布,该单元通过托管主机将电信部门的静态IP地址分配给Internet之后,便可以发布自己的Internet网站并通过Internet广泛推广自己的产品或服务;虚拟主机是通过托管主机托管自身的单元。租用大量硬盘空间,为其他客户提供虚拟托管服务,并使自己成为ICP服务提供商;电子商务是指通过托管主机建立自己的电子商务系统,并通过该商业平台提供供应商,批发商和批发商的单位。分销商和最终用户提供全面的服务。

IDC代表Internet数据中心。随着互联网的不断发展,它发展迅速,并已成为新世纪中国互联网产业不可或缺的一部分。

目前,IDC(Internet数据中心)没有权威的定义,但其含义比传统数据中心更深。此类网站提供大规模,高质量,安全可靠的专业服务器托管,空间出租,网络批发带宽,ASP,EC等服务。数据中心已经出现在大型机时代。当时,它们被用来通过托管,外包或集中式方法为企业提供大型机的管理和维护,以实现专业管理并降低运营成本。

IDC具有两个非常重要的区别功能:其在网络中的位置和总网络带宽容量。就像骨干网和接入网一样,它构成了基本网络资源的一部分,它提供了高端数据传输。 (数据传递)服务提供高速访问服务。

为什么Filecoin存储服务器必须进入IDC机房?在家庭和企业中都不可能进行开采吗?家庭中存在断开连接和电源故障的风险,NAT内部和外部网络渗透问题,公共网络IP问题以及家庭带宽不能满足挖掘要求,因此必须将其安置在IDC机房中。

IPFS / FIL存储必须确保不间断的网络和不间断的电源来帮助企业存储数据,并且只有IDC机房才能满足此条件,因此服务器只能托管在IDC机房中。

专业的IDC机房以连续的网络,连续的功率,恒定的温度和湿度托管,还可以确保我们的机器可以连续,稳定地进行挖掘,并在最大程度上为我们带来收益。如果您对Filecoin的未来发展前景感到乐观,那么Filecoin的未来升值空间肯定会很小。即使价格在短期内波动,总体趋势仍然看涨。采矿是最有可能以低于公开发行价或成本价的价格获得Filecoin硬币的方式,而采矿是一种长期投资方法,可以抓住Filecoin长期增长的红利。

报告/反馈

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