我无法导入 IPFS,因为一些 Webpack 错误。我真的不知道如何修复它们,但在搜索了一些信息后,我认为这与 Webpack 5 有关。我执行了以下步骤:
npx create-react-app test-app
cd test-app
npm install ipfs
Run Code Online (Sandbox Code Playgroud)
然后我在 App.js 中导入 IPFS:
import Ipfs from 'ipfs';
Run Code Online (Sandbox Code Playgroud)
当我执行时,npm start我收到以下错误:
Module build failed: UnhandledSchemeError: Reading from "node:fs" is not handled by plugins (Unhandled scheme).
Webpack supports "data:" and "file:" URIs by default.
You may need an additional plugin to handle "node:" URIs.
Module build failed: UnhandledSchemeError: Reading from "node:https" is not handled by plugins (Unhandled scheme).
Webpack supports "data:" and "file:" URIs by …Run Code Online (Sandbox Code Playgroud) 我在研究中能找到的唯一答案是从 PC 上的目录上传多个文件。这不是我想要做的。我正在尝试在 ipfs 中创建一个目录,然后仅使用纯 JavaScript 的 js-ipfs 将新文件添加到该目录中,通常一次一个文件。
我从概念上理解 ipfs 中的目录只是另一个文件。但我不明白如何创建该目录(文件)并将其他文件添加到其中以供以后检索,尤其是使用 js-ipfs 和纯 javascript 代码。
我隐式地不使用 node.js,因此也不使用 react、angular 或 vue。
这适用于 ipfs 上没有目录的单个文件:
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/ipfs/dist/index.min.js"></script>
</head>
<script>
document.addEventListener('DOMContentLoaded', async () => {
const nodeId = 'ipfs-' + Math.random()
const node = await Ipfs.create({ repo: nodeId })
console.log("Your node: " + nodeId)
window.node = node
const status = node.isOnline() ? 'online' : 'offline'
console.log(`Node status: ${status}`)
async function addFile () {
for await (const { cid …Run Code Online (Sandbox Code Playgroud) 使用该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 是一样的。
将不胜感激任何指点。
我正在开发一个使用 js-ipfs 的浏览器应用程序。在我发布 ipfs 地址(例如 /ipfs/Qm...)后,我成功获取返回的名称(即 /ipns/Qm..)。但问题是我无法在其他任何地方(本地节点的网关、公共网关等)解决它,但在同一个浏览器应用程序中,这是非常有问题的......
如何解决这个问题?我相信这与浏览器不支持 DHT 有关,但不知道如何解决它......
我正在使用此代码在浏览器中使用 IPFS。我想知道如何访问 webRTC 对等方的 IP 地址?甚至知道对等点实际上是 webRTC 还是 http 对等点?
<script src="https://cdn.jsdelivr.net/npm/ipfs/dist/index.min.js"></script>
<script>
(async () => {
window.node = await Ipfs.create({
config: {
Addresses: {
Swarm: []
},
Bootstrap: []
}
})
window.node.libp2p.on('peer:discovery', (peer) => console.log('peer:discovery', peer))
window.node.libp2p.on('peer:connect', peerInfo => console.log('peer:connect', peerInfo))
window.node.libp2p.on('peer:disconnect', peerInfo => console.log('peer:disconnect', peerInfo))
window.node.libp2p.peerStore.on('peer', (peerId) => console.log('peer', peerId))
window.node.libp2p.peerStore.on('change:multiaddrs', ({ peerId, multiaddrs}) => console.log('change:multiaddrs', {peerId, multiaddrs}))
window.node.libp2p.peerStore.on('change:protocols', ({ peerId, protocols}) => console.log('change:protocols', {peerId, protocols}))
window.node.libp2p.on('error', (err) => console.log('error', err))
window.node.libp2p.connectionManager.on('peer:connect', (connection) => console.log('peer:connect', connection))
window.node.libp2p.connectionManager.on('peer:disconnect', (connection) …Run Code Online (Sandbox Code Playgroud)