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

Hyperledger Fabric链码引入snarkjs报Unexpected token '.'语法错误求助

问题原因

报错中的globalThis?.Blob是ES2020引入的可选链操作符,而Hyperledger Fabric链码容器默认使用的Node.js版本低于14.0.0(该版本才开始支持可选链语法)。链码容器的Node环境与本地独立,所以本地更换Node版本无法解决问题。

解决方案

方案1:降级snarkjs至兼容低Node版本的版本

  • 在链码项目的package.json中,将snarkjs指定为较低版本,例如"snarkjs": "^0.6.10"(该版本依赖的@iden3/binfileutils未使用可选链语法)。
  • 重新执行npm install,之后重新打包、部署链码。

方案2:自定义链码镜像,使用高版本Node.js

  • 创建自定义链码基础镜像,基于Node.js 14+版本,示例Dockerfile:
FROM node:16-bullseye-slim
WORKDIR /usr/local/src
COPY . .
RUN npm install --production
CMD ["node", "chaincode.js"]
  • 部署链码时,通过Fabric链码定义指定使用该自定义镜像,或修改链码打包配置,采用高版本Node基础镜像。

验证步骤

部署完成后,进入链码容器执行node -v,确认Node版本在14.0.0以上,再检查链码是否正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:26:08