里程碑1的完成!Nix使用IPFS进行内容分发

星际导航
Obsidian Systems正在向Nix中添加对IPFS的支持。这增加了产品的灵活性,并使Nix用户更容易复制和分发他们的工作:通过使用IPFS进行内容寻址、对等地缓存和分发源代码。

里程碑1的完成!Nix使用IPFS进行内容分发
什么是Nix?

Nix通常用作软件包管理器,但其核心是一个通用的构建工具,如Make、Ninja或Bazel。
Nix专注于沙箱(沙盒英语:sandbox,又译为沙箱,计算机专业术语,在计算机安全领域中是一种安全机制,为运行中的程序提供的隔离环境。)生成步骤和缓存生成工件。有了这些特性,计划和构建都不能有隐藏的依赖关系,因此可以复制构建并可靠地共享构建。

这使得Nix成为一个理想的构建工具,可以用于像IPFS这样的对等系统。实际上,使用Nix的首要项目是Nixpkgs,它是一个软件包集合(带有相关的Linux发行版),是GitHub上贡献最大、贡献最广的项目之一。

为什么要用Nix?

Obsidian Systems是一家端到端的软件产品咨询公司,服务对象从最近获得资助的初创企业到大型机构。自2014年成立以来,已将Nix作为生产部署和开发人员工作流程的一个组成部分。
对于他们来说,Nix是一个不可或缺的工具,因为Obsidian Systems经常需要在项目之间切换,而Nix使得每个项目开发环境的设置和共享变得微不足道。这也使得最终用户安装在自己机器上的软件(如区块链钱包)更容易打包。

为什么使用IPFS

虽然Nix构建计划是可复制的,但仍然存在的一个限制是初始数据源代码的可用性。Nix计划“固定产出衍生”。这些是未装箱的构建步骤,可以通过网络访问下载各种源代码。它们生成的数据必须与预先固定的哈希匹配,因此不能利用沙盒的不足导致不确定的输出。
不过最大的问题是如果URL变得不可访问或下载的数据不确定(例如,由于某些元数据),此构建步骤将失败。

IPFS提供了正确的解决方案,它不依赖于某些源代码最初上载的位置,而是通过内容寻址来识别源代码。

使用范围

Obsidian Systems将在两个不同的阶段使用IPFS。
里程碑1:使用IPFS分发

Nix能够将IPFS作为源代码/构建构件的“替代者”或提供者,与当今存在的其他类型的替代者一起使用。

作为这项工作的一部分,Obsidian Systems在Nix中使用了git,这样Nix就可以以IPFS能够理解的方式对git repo进行内容寻址,这有助于IPFS、Nix、上游协作者以及其他对归档和分发源代码感兴趣的各方,找到引用这些构件的通用方法。虽然git哈希方案有其局限性,但Obsidian Systems认为它是git数据多方协作的最佳方法。

在构建产品和部署中使用IPFS,Obsidian Systems添加了对IPFS和Nix的git树哈希的元数据格式的支持,以在单独安装的文件系统树之间,传输具有运行时依赖关系的数据。

里程碑2:使用IPFS构建

Nix实际上并不包含常规构建步骤(与上面描述的“固定输出”构建步骤相反)生成的数据的内容。取而代之的是,它是根据制定计划来解决这些问题的。

比如当有人编辑评论时,计划改变了,结果却没有改变。除了造成下游额外的重建,这也混淆了原始数据和来源之间的分离。对于点对点系统,谁提供数据并不重要,但谁声明数据所代表的内容绝对重要。

有了这个核心改进,Obsidian Systems可以在IPLD中对构建计划进行新的改进版本,并直接从每个构建步骤生成新支持的IPFS兼容格式,而不需要从旧的输入寻址数据进行手动转换。这最后一步将两个里程碑的所有内容结合在一起。

项目进展

Obsidian Systems很高兴宣布里程碑1的完成!
这为里程碑2目标奠定了基础。Obsidian Systems希望这一步可以帮助每个人更好地过渡到使用IPFS。

下一步是什么?

Obsidian Systems已经开始实施里程碑2,包括改进生成内容寻址数据的构建步骤。到那时,Nix和IPFS将完全地融合在一起!
本文来源: 星际大陆 原文作者:星际大陆

温馨提示:本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与星际导航官方立场无关。
版权声明:星际导航 发表于 2020-09-12 9:07:06。
转载请注明:里程碑1的完成!Nix使用IPFS进行内容分发 | IPFS导航 | IPFShub
广告也精彩

暂无评论

暂无评论...