
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
js-ipfs是IPFS(星际文件系统)协议的JavaScript实现,允许在Node.js环境和浏览器中创建和运行IPFS节点。该项目目前处于Alpha阶段,正在积极开发中,API可能会发生变化。
jsipfs命令行工具,与Go-IPFS接口兼容bash# 本地安装 npm install ipfs # 全局安装(用于CLI) npm install ipfs --global
注意:js-ipfs依赖于需要
node-gyp编译的原生模块,可能需要安装额外的构建工具。
作为命令行工具
bash# 查看帮助 jsipfs --help # 启动IPFS守护进程 jsipfs daemon
默认配置与Go-IPFS不同,避免冲突:
~/.jsipfs(可通过IPFS_PATH环境变量修改)作为Node.js模块
javascriptconst IPFS = require('ipfs') const node = new IPFS() node.on('ready', () => { console.log('IPFS节点已准备就绪') // 使用IPFS API node.add({ path: 'test.txt', content: Buffer.from('Hello IPFS!') }, (err, result) => { if (err) { return console.error(err) } console.log('添加文件成功:', result[0].hash) // 停止节点 node.stop(() => console.log('IPFS节点已停止')) }) })
在浏览器中使用
通过CDN引入:
html<!-- 加载压缩版本 --> <script src="https://unpkg.com/ipfs/dist/index.min.js"></script> <script> const node = new window.Ipfs() node.on('ready', () => { console.log('浏览器IPFS节点已准备就绪') }) </script>
bash# 拉取镜像 docker pull ipfs/js-ipfs # 运行容器 docker run -d --name js-ipfs -p 4002:4002 -p 5002:5002 ipfs/js-ipfs
yamlversion: '3' services: ipfs: image: ipfs/js-ipfs ports: - "4002:4002" # Swarm端口 - "5002:5002" # API端口 volumes: - ./ipfs-data:/root/.jsipfs restart: unless-stopped
IPFS节点构造函数接受以下配置选项:
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
repo | string或Repo实例 | Node.js: ~/.jsipfs, 浏览器: ipfs | 数据存储路径或自定义Repo实例 |
init | boolean或object | true | 是否初始化仓库,可提供初始化选项 |
start | boolean | true | 是否自动启动节点 |
pass | string | null | 用于加密密钥的密码 |
silent | boolean | false | 是否禁止所有日志输出 |
javascript{ relay: { enabled: true, // 启用中继拨号器和监听器 hop: { enabled: false, // 是否作为中继节点 active: false // 是否主动中继 } }, preload: { enabled: true, // 启用内容预加载 addresses: [ // 预加载节点地址 '/dns4/node0.preload.ipfs.io/tcp/443/https', '/dns4/node1.preload.ipfs.io/tcp/443/https' ] } }
javascript{ EXPERIMENTAL: { pubsub: false, // 启用libp2p pub-sub ipnsPubsub: false, // 启用IPNS pub-sub sharding: false // 启用目录分片 } }
IPFS节点提供以下核心功能API:
ipfs.add(data, [options], [callback]): 添加文件到IPFSipfs.cat(ipfsPath, [options], [callback]): 获取IPFS中的文件内容ipfs.get(ipfsPath, [options], [callback]): 下载IPFS中的文件或目录ipfs.ls(ipfsPath, [callback]): 列出IPFS路径下的内容ipfs.files.cp([from, to], [callback]): 复制文件ipfs.files.mkdir(path, [options], [callback]): 创建目录ipfs.files.write(path, content, [options], [callback]): 写入文件ipfs.files.read(path, [options], [callback]): 读取文件内容ipfs.files.rm(path, [options], [callback]): 删除文件ipfs.dag.put(dagNode, [options], [callback]): 存储DAG节点ipfs.dag.get(cid, [path], [options], [callback]): 获取DAG节点ipfs.dag.tree(cid, [path], [options], [callback]): 列出DAG节点的路径ipfs.bootstrap.add(addr, [callback]): 添加引导节点ipfs.bootstrap.list([callback]): 列出引导节点ipfs.swarm.connect(addr, [callback]): 连接到指定节点ipfs.swarm.peers([options], [callback]): 列出连接的对等节点IPFS节点是Node.js EventEmitter,可监听以下事件:
error: 发生错误时触发init: 仓库初始化完成后触发ready: 节点准备就绪可使用时触发start: 节点启动后触发stop: 节点停止后触发javascriptnode.on('ready', () => { console.log('节点已准备就绪') }) node.on('error', (err) => { console.error('节点错误:', err) })
当前项目处于Alpha阶段:
本项目采用https://github.com/ipfs/js-ipfs/blob/master/LICENSE%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务