gpt4 book ai didi

javascript - IPFS。 DAG 从网络浏览器获取内容

转载 作者:行者123 更新时间:2023-12-02 22:10:29 26 4
gpt4 key购买 nike

我通过 HTTP 客户端向 IPFS 发送请求:

var cleanScript = {
'type': 'script'
};
var formData = new FormData();
var jsonse = JSON.stringify(cleanScript);
var blob = new Blob([jsonse], {type: "application/json"});
formData.append('file', blob, 'file.json')

fetch('https://ipfs.infura.io:5001/api/v0/add', {
method: 'POST',
body: formData
})
.then(r => r.json())
.then(data => console.log(data))

我可以通过浏览器访问这些东西,例如:

https://ipfs.infura.io/ipfs/QmZp5tQwLkMxpYHHK4a1989xYCjfUG81Po7LoaUwmxpDqP https://gateway.ipfs.io/ipfs/QmZp5tQwLkMxpYHHK4a1989xYCjfUG81Po7LoaUwmxpDqP

链接的形成遵循以下原则:

  • 协议(protocol) - http/https
  • 域名 - ipfs.infura.io/gateway.ipfs.io/localhost:5555
  • 路径 - ipfs/ipns
  • 哈希 - 来自响应的哈希

{协议(protocol)}://{域}/{路径}/{哈希}

但是如果我使用 DAG:

var cleanScript = {
"a": 1,
"b": [1, 2, 3],
"c": {
"ca": [5, 6, 7],
"cb": "foo"
}
};
var formData = new FormData();
var jsonse = JSON.stringify(cleanScript);
var blob = new Blob([jsonse], {
type: "application/json"
});
formData.append('file', blob, 'somefile.json')

fetch('https://ipfs.infura.io:5001/api/v0/dag/put', {
method: 'POST',
body: formData
})
.then(r => r.json())
.then(data => console.log(data))

我不明白链接是如何形成的。

我可以通过浏览器访问内容吗?

最佳答案

go-ipfs v0.4.22 提供的 HTTP 网关仅支持返回文件和目录。这些是 unixfsv1 中的 DAG格式(用 dag-pb multicodec 标识)。您可以在 cid.ipfs.io 看到 dag-pb 是您的第一个 CID 的一部分。 .

您通过 /api/v0/dag/put 创建的自定义 DAG 默认情况下会添加为 dag-cbor,并且您无法通过 HTTP 网关读取它们,因为它们不再是文件或目录。

您应该能够通过 HTTP API 端点 /api/v0/get 读取它们。 。例如:

https://ipfs.io/api/v0/dag/get?arg=bafyreiah7uhzdxbuik6sexirej22iyi5nau3d4nnfhv6ux33ogtdpeznpm

关于javascript - IPFS。 DAG 从网络浏览器获取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59571904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com