Moonbeam本地平行链部署成功提交交易报错InvalidTransaction::Call排查
问题根因说明
你遇到的InvalidTransaction::Call错误表示交易在提交到节点交易池的前置校验阶段,因调用本身的合法性校验失败被拒绝,结合你的部署场景,可能由以下原因导致:
排查方向
- 链ID不匹配
你修改了默认moonbeam-local链规格后,未同步修改MetaMask自定义网络配置的链ID,或签名交易时使用的链ID仍为moonbase/dev模式的默认值,导致签名校验不通过。可先核对你自定义的moonbeam.json中chainId字段值,与交易签名、钱包配置的链ID完全一致。 - 链规格版本参数错误
你修改链规格时误改了specVersion或transactionVersion字段值,和你使用的Moonbeam v0.11.2二进制版本要求的版本不匹配,导致交易版本校验失败。可导出--dev模式下的默认链规格,对比这两个字段值和你自定义的moonbeam.json是否一致。 - 收集节点会话密钥配置不全
Moonbeam收集节点仅配置nmbs密钥不足以支撑完整的交易校验逻辑,除了nimbus共识密钥外,还需配置对应aura会话密钥,你可通过RPC调用author_hasSessionKeys接口校验当前收集节点的会话密钥是否完整。 - EVM环境配置异常
你替换Alice、Bob为自定义地址时,误修改了链规格中EVM模块的前置配置,导致EVM执行环境初始化异常,所有EVM交易调用都会被判定为无效。可检查moonbeam.json中evm、ethereum相关字段的配置是否和默认moonbeam-local链规格一致,仅修改余额分配、预置地址相关字段即可。 - 中继链和平行链版本兼容性问题
你使用的Moonbeam v0.11.2对应兼容的Polkadot版本为0.9.11左右,和你自定义的Kusama 0.9.5版本存在兼容性差异,可能导致平行链交易池的跨共识校验逻辑异常,可尝试将自定义Kusama镜像版本升级到对应兼容的版本验证。
补充说明:你遇到的"Skipping because we are not eligible"日志属于正常现象,是收集节点轮流出块机制导致的,非本节点出块时段就会输出该日志,不影响链正常运行。
内容的提问来源于stack exchange,提问作者Степан Титаренко
相关产品推荐
相关产品推荐

