升级不仅可以确保您使用最新的安全传输,还可以获得我们今年为内容路由所做的所有性能改进。
在这个版本中,你也将开始看到,随着在网络上启动更多的同行ID和IPNS键1而不是典型的Qm。这是由于默认情况下使用ed25519密钥而不是RSA密钥的开关,您可以在下面的突出显示中了解更多信息。
对于那些使用IPFS插件的人,下面将对构建过程进行重大更改。
Go-IPFS0.7.0亮点
SECIO现在默认禁用 我们在默认情况下禁用了它。TLS1.3仍将是默认的安全传输,并回退到Noise。您可以在博客文章https://blog.ipfs.io/2020-08-07-deprecating-secio/中了解有关弃用的更多信息。如果您运行的GoIPFS早于0.5或JSIPFS早于0.47,这可能会开始影响您在公共网络上的性能,因此,我们强烈建议您立即进行升级!
Ed25519键现在默认使用 以前go-ipfs为新节点生成2048位RSA密钥,但现在默认使用ed25519密钥。这不会影响任何现有的键,但是新创建的键默认为ed25519。在RSA之上使用ed25519密钥的主要好处是ed25519密钥具有内联公钥。这意味着某人只需要你的PeerId来验证你已经签名的东西,比如你的对等记录或未来签名的提供者记录,这意味着我们不必担心存储大量的RSA公钥。
旋转密钥 除了切换默认密钥类型外,我们还添加了对旋转标识密钥的支持。如果您想更改IPFS节点的密钥类型,现在可以使用Rotate命令进行更改。注意:这会影响您的对等ID,因此请确保您要执行此操作!您现有的身份密钥将在密钥库中备份,以便仍可为IPNS记录等引用。
密钥导出/导入 说到备份密钥,我们添加了一些命令,使您可以将密钥从IPFS密钥库导出和导入到本地.key文件。当前不适用于self?配置文件中包含的IPFS身份密钥。
默认情况下,IPNS路径现在将密钥名编码为base36CIDv1 以前go-ipfs将IPNS路径的关键名称编码为base58btc多散列(例如Qmabc…)。我们现在将它们编码为peerID规范(例如k51xyz…)中定义的base36编码的cidv1,该规范也处理公钥的编码。很好,因为这意味着IPNS密钥默认情况下不区分大小写,并且它们将适合DNS标签(例如k51xyz...ipns.localhost),因此在默认情况下,子域网关重定向(例如从localhost:8080/ipns/{key}到{key}.ipns.localhost)对用户而言会更好。
许多命令将接受-ipn-base选项,允许更改命令输出使用特定的编码(例如,base58btcmultihash,或CIDv1编码在任何支持的基):
多地址现在接受被编码为CIDv1的PeerID 为了最终改变默认的PeerID表示,多地址现在可以包含像/p2p/k51xyz这样的字符串…除了默认的/p2p/Qmabc…许多输出peerid的函数都有一个对应的--peerid-base选项:
dagstat命令 添加了对ipfsdagstat命令的初始支持。运行此命令将遍历给定根CID的DAG并报告统计信息。默认情况下,将在遍历DAG时显示进度。当前支持的统计信息包括DAG大小和数据块数量。
插件构建变更 我们已经更改了dist.ipfs上官方二进制发行版使用的构建标志。
io(或/ipns/dist.ipfs.io)使用更简单和更可靠的-trimpath标志,而不是更复杂和脆弱的-asmflags=all=-trimpath="$(GOPATH)"-gcflags=all=-trimpath="$(GOPATH)"标志,但是go-ipfs中默认使用的构建标志保持不变。
go-ipfs-example插件中的脚本已经更新以反映这一变化。对于人们一直