IPFS案例研究:FLEK

2020-09-09 13:04:12

使用IPFS节点以及IPFS上的加密和数据库工具,我们可以构建数据隐私和自主性达到最高标准的应用程序和网站。

Fleek是一项易于使用的服务,用于托管网站、存储和交付文件,以及为分散的Web(DWEB)开发应用程序。作为下一代互联网,DWEB在数据自主性、灾难和审查弹性、性能和速度方面取得了巨大进步,但对于那些还不熟悉它的人来说,使用或构建分散的网络可能会很耗时或困难。FLEK的使命是加快DWEB的采用,使从专业开发人员到日常互联网用户的每个人都可以更轻松地以分散的模式创建应用程序和存储文件,并将它们定位为平台、服务和开发工具的先锋,为所有级别的编码体验的用户提供低代码/无代码的平台、服务和开发工具。

Fleek的产品和服务组合建立在Fleek IPFS、Textile和Filecoin堆栈之上,并通过Fleek Edge基础设施进行部署,该基础设施将IPFS的分布式对等数据共享协议与边缘计算相结合,以创建异常快速和可靠的分布式网络。在Fleek Edge上,数据和信息被处理并存储在地理上靠近用户请求的边缘位置,从而缩短了实时数据应用程序的延迟,并提高了点对点交互的性能和速度。

Fleek的服务产品-托管、存储和新的Space Daemon开发工具套件-都利用Fleek Edge,可以单独使用,也可以根据需要一起使用,将IPFS分散存储架构的强大功能提供给每个人,从寻找文件存储的日常互联网用户到需要低摩擦工具在IPFS上构建的更有经验的开发人员。有了Fleek,任何人都可以使用IPFS加入分散的网络。对于Fleek团队来说,正是IPFS使DWEB成为可能,而Fleek希望让IPFS对每个人都更容易、更快、更流畅。

Fleek以Terminal.co的身份起家,只有一个简单的使命:构建工具,让每个人都可以更轻松地使用DWEB,从而推动从今天的集中式网络到未来的分散式网络的更快、更无缝的过渡。为此,该团队最初推出的重点是用户友好的工具,用于构建分散的应用程序(Dapp),与以太区块链上的智能合同进行交互。

但Fleek很快意识到,从Dapps开始是本末倒置。为Dapp和SMART合约构建不仅是一个专门的市场,而且这些产品本身就像它们所依赖的存储体系结构一样分散。为了真正引导网络向去中心化的未来过渡,团队需要一种更广泛的方法。就在那时,Fleek求助于IPFS,认为这项技术将帮助他们将自己的愿景变成现实。

我们看到,推进去中心化网络的最快、最简单、最直接的方式是为普通网络用户配备他们访问和构建IPF所需的工具。IPFS提供了我们认为对DWEB未来最重要的数据完整性、保密性和安全性。有了正确的工具,我们知道我们可以提供全面的托管体验和无缝的工作流程-使IPFS像今天的标准网站一样易于使用。

Fleek团队决定追求新的公司方向,产品路线图旨在提高基于IPFS的托管、存储和数据库管理的可访问性。这一决定刺激了一个全新平台的开发-Fleek Stack of IPFS,Textile,以及(在大型机发布后)Filecoin-在2020年初首次亮相。

FLEK当前提供了三个构建在Fleek Stack上的产品,每个产品都旨在增强和简化围绕常见DWEB用例的工作流程:

灵活托管:用于在IPF上托管站点和应用的工具,包括业界熟悉的通过GitHub的持续集成和部署工具。

FLEK Storage:一项通过IPFS导入、存储、固定和获取文件的服务,除了API和CLI界面外,它还包括一个友好的UI。

Space Daemon:用于构建点对点加密应用程序的开发工具集,该工具集将IPF、TextileThread和Bucket以及Filecoin打包到单个JavaScript界面中。

这些产品中的每一个都旨在以尽可能简化的方式促进IPF的使用和集成。例如,Space Daemon使用户可以轻松地利用IPFS进行加密数据库存储和无服务器应用程序开发。FLEK的托管和存储产品通过自动更新对内容标识符(CID)、DNS记录中的TXT值等的引用,自动处理IPFS特定的详细信息。

在创建用于使用、构建和部署到IPFS的简化工作流程时,Fleek使开发人员能够将该协议的主要优势(如点对点功能、无服务器交互和不受集中托管影响的自治性)集成到他们的站点、产品和应用程序中。更重要的是,Fleek Edge网络提供了显著的性能和效率提升,从DWEB新手到IPFS老手,任何人都可以从中受益。

简而言之,Fleek的产品组合提供了广泛的功能,并在传统Web和DWEB之间架起了一座桥梁,促进了终端用户和开发人员空间中许多有价值的使用案例。谢尔说,更广泛的网络社区采用IPFS的最大障碍之一是不熟悉托管IPFS或在IPFS上构建所涉及的手工工作。Fleek自己负责这项工作,这确保了任何想要在IPFS上托管网站的人都能轻松、快速地获得这些好处。但是,即使是经验丰富的开发人员也可以从部署在Fleek Edge上的Fleek产品的易用性和更快的速度中受益。

Fleek之所以选择IPFS,是因为它分散了互联网的两个核心方面:文件存储和数据传输。结合IPFS内容寻址的固有优势和IPFS作为Filecoin基础技术的地位,这带来了许多其他地方无法获得的优势:

点对点世界中的数据完整性:FLEK将IPF与Textils等加密工具结合使用,使它们能够提供两全其美的模式,让用户获得客户端加密的好处(通过用户拥有的密钥),并能够在不接触任何第三方服务器的情况下直接共享数据。因为默认情况下传输是加密的,所以外部观察者不能在传输过程中查看它,IPFS的内容寻址也确保用户在提出请求时收到的数据被加密验证为他们所请求的数据。

审查和灾难应对:IPFS内容寻址允许同一内容寻址资源的多个副本在全球多个位置作为等效项目存在。这可以提供一定程度的抗物理灾难或审查的潜力,这在传统网络上是不存在的。

对未来存储和检索市场的集成访问:由于IPFS和Filecoin是如此紧密地集成在一起,因此构建在IPFS之上将有助于为Fleek用户提供无缝访问Filecoin市场以满足其存储需求的能力。

此外,IPFS充满活力和活跃的开发者社区意味着该协议正在不断发展,以更好地满足其用户和建造者的需求。

FLEK为希望在分散的网络上托管、共享或构建内容的任何人创建了一个简单、流线型的工作流程。FLEK提供了自己的公共IPFS网关,这意味着开发者不需要建立自己的IPFS网关来服务他们的用户。该网关允许即使是不了解IPF的传统网络浏览器和应用程序也可以访问通过IPFS提供的内容。

FLEK还自动化了在IPF上构建和部署的过程。使用Fleek进行站点和应用程序部署的开发人员不需要做任何事情,只需将Fleek与GitHub回购链接起来,Fleek就会通过IPF自动构建和部署他们的代码。

那么,这看起来是什么样子的呢?由于IPFS使用内容寻址,IPFS上的每个内容都需要其自己的唯一内容标识符(CID)。此CID会随着与其关联的内容的每次更改而更新。对于开发人员来说,跟上这些更新可能是一件麻烦事,因为它通常涉及手动更新CID指针或实现其他下游更改以匹配新的CID。

FLEK自己处理所有的体力工作。对于网站,Fleek自动获取IPFS为网站内容生成的CID,并使用添加到Fleek为网站创建的DNS设置的TXT记录将其指向Fleek子域URL。每当任何人访问Fleek URL时,最新关联的CID都会通过Fleek的HTTP IPFS网关传递给用户-这意味着以HTTP请求(如传统Web浏览器)开始的请求始终保持HTTP。而且,只要站点内容发生变化,Fleek就会自动检测新的散列,并相应地重新关联TXT记录。

简而言之,Fleek上的开发人员可以使用熟悉的工具和工作流,而不必担心通常使用IPF时可能需要的手动工作-同时仍然可以利用分散的Web提供的好处。

Fleek所有产品的核心是开箱即用的go-ipfs和ipfs-http-client。Go-IPF上的节点出现在整个Fleek生态系统中,包括:

在整个平台范围内,每当服务需要与IPFS节点交互时,Fleek都会使用ipfs-http-client,例如:

当用户部署站点时,Fleek的站点构建器组件使用客户端导入到IPFS。

当用户将文件添加到Fleek Storage时,客户端用于通过HTTP进行导入,并确保文件存储桶的可变散列一直更新到根散列。

此外,Fleek依赖纺织品、陶瓷和其他公司的构建块来帮助创建其服务产品。按产品细分如下:

FLEK主机将构建的站点直接部署到GO-IPFS节点上,还可以在至少一个额外的节点上进行复制。

此外,该服务还使用传统的HTTP CDN对这些节点进行扩充,以提高二次拉取的性能。谢尔说:如今的网站习惯于在第一次加载后获取站点的时间为20ms,所以我们希望至少提供这一点。

对于每个新的Git提交和由此产生的Fleek托管自动部署,CDN';的缓存至少会被清除。

无论何时清除CDN的缓存,都会以最初获取内容的相同方式从IPFS重新获取内容(所有请求都发送到Fleek的网关),例如,通过DNSLink或通过以太名称服务(ENS)域从添加到用户DNS的IPFS散列的TXT记录中重新获取内容。

FLEK Storage将Go-IPFS节点与Minio S3类API结合使用;类似S3的API可与任何AWS工具和熟悉的文件存储桶结构完全兼容。

灵活构建的处理程序创建根存储桶哈希,以及Fleek存储文件所在的文件夹哈希。

对文件或文件夹的任何更改都会一直更新到根存储桶哈希。

Space Daemon Developer工具集代码将Go-IPFS IPFS节点与Textile提供的产品(特别是其Thread多方数据库体系结构)和密钥管理工具结合在一个易于安装的Go守护进程中。

用于增强功能的第三方集成包括(但不限于)用于加密备份的Filecoin(通过Textile Powergate)、用于身份管理的陶瓷以及用于命名和域功能的握手。

Space Daemon JavaScript库充当Go守护程序的GRPC方法的抽象层,为开发人员提供了一个方便的JavaScript接口,他们可以在应用程序中本地安装该接口。

虽然Fleek本身不是Fleek的产品,但Fleek广泛使用它自己的HTTP网关(ipfs.fleek.co),这些网关是从他们的Go-IPFS节点基础设施创建的。

当需要基于网关的交付时-例如,用于验证和Fleek产品GUI中的其他链接-指向托管或存储内容的CID的链接使用此网关,但也可以使用任何其他IPFS网关获取。

FLEK已经通过用于基于IPFS的托管、文件存储和开发的易于使用的工具,帮助架起了传统Web和DWEB之间的桥梁。但是,随着IPFS的不断发展,Fleek打算与之一同发展;例如,虽然Fleek托管目前使用传统的CDN来扩展IPFS存储,但该团队期待着IPFS的出现--只要生态系统中存在优化获取时间的解决方案。

Fleek的未来与IPFS的未来息息相关。FLEK产品已经在IPFS上提供尖端性能。IPFS发展路线图上的每一步都将给我们更多的工具来进一步提高这一性能。

Fleek还期待着IPFS浏览器内连接的实施,以便为运行或使用Fleek部署的应用程序的任何人带来完全的IPFS超能力-而不仅仅是运行自己的本地IPFS节点的最终用户。

最后,Fleek目前正在致力于将Filecoin网络上的Filecoin支付选项和存储整合到Space Daemon中,为想要使用Filecoin解决其存储需求的Space Daemon开发人员打开了一个充满可能性的世界。

注:此案例研究中的指标和其他详细信息是截至2020年9月的最新数据。在此期间,细节可能会发生变化。