You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行OrbitDB示例报IPFSAccessController.save废弃错误如何修复

问题根因

错误由AvionDB维护停滞,依赖的旧版OrbitDB生态组件与新版js-ipfs、multiformats库不兼容导致:

  • 旧版orbit-db-io仍调用已废弃的CID.toBaseEncodedString()方法,新版multiformats已移除该方法,仅支持CID.toString()
  • 版本不匹配导致IPFS权限控制器写入时生成undefined字段,触发IPLD的DAG-CBOR编码规则报错

解决方案

方案1:锁定兼容版本安装(最稳定)

AvionDB最后稳定兼容的依赖版本固定,按以下步骤操作即可:

  1. 删除项目中现有的node_modules文件夹和package-lock.json文件
  2. 修改package.json中的依赖版本为以下内容:
{
  "dependencies": {
    "ipfs": "^0.54.4",
    "orbit-db": "^0.26.1",
    "aviondb": "^0.2.2"
  }
}
  1. 执行npm install重新安装依赖,完成后即可正常运行示例代码

方案2:临时修复(无需更换版本)

如果必须使用更高版本的IPFS,可以直接修改依赖中的报错代码:

  1. 打开项目下的node_modules/aviondb/node_modules/orbit-db-access-controllers/node_modules/orbit-db-io/index.js文件
  2. 找到第62行调用cid.toBaseEncodedString()的代码,替换为cid.toString()
  3. 保存文件后重新运行代码即可

补充优化建议

原示例代码未添加异步错误捕获,建议修改入口调用逻辑,方便后续问题排查:

main().catch(err => console.error('程序运行错误:', err))

内容的提问来源于stack exchange,提问作者zidanow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:15:01