IPFS技术发展:go-ipfs 0.7.0发布

go-ipfs 0.7.0发布!

今年 8 月,我们宣布取消 SECIO 安全运输。在这个版本中,我们默认禁用了 SECIO,这将对网络上的旧节点产生影响。减轻此更改影响的最佳方法是尽快升级 IPFS 节点!升级不仅可以确保您使用最新的安全传输,还可以获得我们今年为内容路由所做的所有性能改进。

LJwcLohiTTmLJv67QpmcfuYMwjW9WVaq3XL71FlS.png

在这个版本中,你也将开始看到,随着在网络上启动更多的同行 ID 和 IPNS 键1而不是典型的Qm。这是由于默认情况下使用 ed25519 密钥而不是 RSA 密钥的开关,您可以在下面的突出显示中了解更多信息。

对于那些使用 IPFS 插件的人,下面将对构建过程进行重大更改。

Go-IPFS 0.7.0 亮点

SECIO 现在默认禁用

作为弃用和删除对 SECIO 安全传输支持的一部分,我们在默认情况下禁用了它。TLS 1.3 仍将是默认的安全传输,并回退到 Noise。您可以在博客文章https://blog.ipfs.io/2020-08-07-deprecating-secio/中了解有关弃用的更多信息。如果您运行的 Go IPFS 早于 0.5 或 JS IPFS 早于 0.47,这可能会开始影响您在公共网络上的性能,因此,我们强烈建议您立即进行升级!

Ed25519 键现在默认使用

以前 go-ipfs 为新节点生成 2048 位 RSA 密钥,但现在默认使用 ed25519 密钥。这不会影响任何现有的键,但是新创建的键默认为 ed25519。在 RSA 之上使用 ed25519 密钥的主要好处是 ed25519 密钥具有内联公钥。这意味着某人只需要你的 PeerId 来验证你已经签名的东西,比如你的对等记录或未来签名的提供者记录,这意味着我们不必担心存储大量的 RSA 公钥。

旋转密钥

除了切换默认密钥类型外,我们还添加了对旋转标识密钥的支持。如果您想更改 IPFS 节点的密钥类型,现在可以使用 Rotate 命令进行更改。注意:这会影响您的对等 ID,因此请确保您要执行此操作!您现有的身份密钥将在密钥库中备份,以便仍可为 IPNS 记录等引用。

$ ipfs key rotate -o my-old-key -t ed25519

密钥导出/导入

说到备份密钥,我们添加了一些命令,使您可以将密钥从 IPFS 密钥库导出和导入到本地.key 文件。当前不适用于self 配置文件中包含的 IPFS 身份密钥。

$ ipfs key gen mykey$ ipfs key export -o mykey.key mykey # ./<name>.key is the default path$ ipfs key import mykey mykey.key # on another node

默认情况下,IPNS路径现在将密钥名编码为 base36 CIDv1

以前go-ipfs将IPNS路径的关键名称编码为base58btc多散列(例如Qmabc…)。我们现在将它们编码为 peerID 规范(例如k51xyz…)中定义的 base36 编码的 cidv1,该规范也处理公钥的编码。很好,因为这意味着 IPNS 密钥默认情况下不区分大小写,并且它们将适合 DNS 标签(例如k51xyz...ipns.localhost),因此在默认情况下,子域网关重定向(例如从localhost:8080/ipns/{key}到{key}.ipns.localhost)对用户而言会更好。

许多命令将接受-ipn -base选项,允许更改命令输出使用特定的编码(例如,base58btc multihash,或CIDv1编码在任何支持的基):

$ ipfs key list -l --ipns-base b58mh12D3KooWCjhz69LskTZEC5vFWs8eDpHo7kYbGzrC5EjU75BHSmVK self$ ipfs key list -l --ipns-base base36k51qzi5uqu5dh9ihj4p2v5sl3hxvv27ryx2w0xrsv6jmmqi91t9xp8p9kaipc2 self

多地址现在接受被编码为 CIDv1 的 PeerID

为了最终改变默认的 PeerID 表示,多地址现在可以包含像/p2p/k51xyz这样的字符串…除了默认的/p2p/Qmabc…许多输出peerid的函数都有一个对应的--peerid-base选项:

$ ipfs id --format "<id>" --peerid-base b58mh12D3KooWCjhz69LskTZEC5vFWs8eDpHo7kYbGzrC5EjU75BHSmVK$ ipfs id --format "<id>" --peerid-base base36k51qzi5uqu5dh9ihj4p2v5sl3hxvv27ryx2w0xrsv6jmmqi91t9xp8p9kaipc2

dag stat命令

添加了对ipfs dag stat命令的初始支持。运行此命令将遍历给定根 CID 的 DAG 并报告统计信息。默认情况下,将在遍历 DAG 时显示进度。当前支持的统计信息包括 DAG 大小和数据块数量。

$ ipfs dag stat bafybeihpetclqvwb4qnmumvcn7nh4pxrtugrlpw4jgjpqicdxsv7opdm6e # the IPFS webuiSize: 30362191, NumBlocks: 346

插件构建变更

我们已经更改了 dist.ipfs 上官方二进制发行版使用的构建标志。

io(或/ipns/dist.ipfs.io)使用更简单和更可靠的-trimpath标志,而不是更复杂和脆弱的-asmflags=all=-trimpath="$(GOPATH)"-gcflags=all=-trimpath="$(GOPATH)"标志,但是go-ipfs中默认使用的构建标志保持不变。

go-ipfs-example 插件中的脚本已经更新以反映这一变化。对于人们一直在构建针对 dists .ipfs 的插件来说,这是一个突破性的变化。go-ipfs 和插件的 io 二进制文件应该相应地更新它们的构建过程。详情请参阅 go-ipfs-example-plugin/pull/9。

更新日志

有关此版本中包含的更新的完整列表,您可以在https://github.com/ipfs/go-ipfs/blob/v0.7.0/CHANGELOG.md#v070-2020-09-22上查看变更日志。

谢谢贡献!

非常感谢在这个版本中贡献补丁和改进的所有 53 人!没有你们的帮助和反馈,我们不可能做到这一点。

安装,升级并加入我们!

您可以通过安装 go-ipfs 或升级到 go-ipfs 0.7 来开始使用。

根据您的技能,兴趣和可用性,有很多方法可以参与 IPFS。请查看我们在GitHub 上的贡献页面以获取指导和后续步骤。

对于 IPFS 和整个网络来说,这是一个令人兴奋的时刻。加入我们!

End

非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。

FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用公众号:filcloud

声明:登载此文出于传递更多信息之目的,观点仅代表作者本人,绝不代表Hi区块链赞同其观点或证实其描述。

提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。