ipfs.add 和 ipfs.dag.put 之间有什么区别?

cwa*_*rny 4 ipfs js-ipfs

使用该js-ipfs库,我正在努力寻找有关以下命令之间差异的良好信息:

> await ipfs.add('hello world',{cidVersion:1})
{
  path: 'bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e',
  cid: CID(bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e),
  size: 11,
  mode: undefined,
  mtime: undefined
}
> await ipfs.dag.put('hello world')
CID(bafyreifg3qptriirganaf6ggmbdhclgzz7gncundvtsyrovyzqigm25jfe)
Run Code Online (Sandbox Code Playgroud)

我的期望:CID 是一样的。

将不胜感激任何指点。

lid*_*del 5

下面是基于ipfs addKubo RPCdag put的,但 JS-IPFS 基于它并且很可能做了类似的事情(唯一的区别可能是Kubo 默认情况下期望/需要 dag-json )dag put

\n
    \n
  • ipfs add用于添加文件和目录并将它们表示为UnixFS。它将较大的文件分成较小的块并将它们表示为dag-pb或原始字节(叶子)。
  • \n
  • ipfs dag put允许您操作除文件和目录之外的IPLD数据结构。在 Kubo 中,此命令将假定输入为dag-json并将其存储为二进制dag-cbor
  • \n
\n

您可以在示例中比较https://cid.ipfs.tech \xe2\x80\x93中生成的 CID :

\n
    \n
  • ipfs add创建原始块(因为“hello world”适合单个块,不需要 dag-pb)
  • \n
  • ipfs dag创建了 dag-cbor (因为这是默认的--store-codec
  • \n
\n