本地运行Chainlink FluxMonitor时交易FROM地址错误问题咨询
问题原因排查与解决方案
你观测到调用latestRoundData的eth_call请求from为零地址属于正常行为,该方法是只读合约方法,调用不需要签名,也不需要绑定节点账户,和你收到的报错无关。报错实际来自节点后续尝试提交喂价数据的上链交易环节,可按以下优先级排查:
Oracle节点地址未加入FluxAggregator授权白名单
FluxAggregator默认只允许已授权的节点提交喂价数据,你需要使用FluxAggregator的管理员地址调用合约的updateAvailableOracles方法,将你的Chainlink节点对应的以太坊地址添加到允许列表中,同时移除不需要的旧节点地址。Chainlink节点签名配置异常
- 进入节点控制台的「Keys」-「Accounts」页面,确认已经导入了对应链的钱包私钥,且地址状态为正常可用
- 核对节点
.env配置中的ETH_CHAIN_ID参数与本地Ganache设置的链ID完全一致,链ID不匹配会导致节点无法生成合法的交易签名 - 确认该私钥对应的地址在Ganache中有足够的ETH余额支付交易Gas费用
- Job配置逻辑缺失
你当前Job配置的任务数组仅包含NoOp空操作,FluxMonitor initiator拉取到喂价数据后没有对应的上链提交逻辑,修复签名问题后需要补充完整任务链,参考配置如下:
"tasks": [ { "type": "median" }, { "type": "multiply", "params": { "times": 100000000 } }, { "type": "ethuint256" }, { "type": "ethtx", "params": { "address": "0x5379A65A620aEb405C5C5338bA1767AcB48d6750", "functionSelector": "updateAnswer(uint256)" } } ]
ethtx任务默认会使用节点已导入的私钥进行签名,不需要额外填写私钥参数。
- 节点功能开关未开启
检查节点.env配置中是否设置了FEATURE_FLUX_MONITOR=true,部分旧版本Chainlink节点需要手动开启FluxMonitor特性才能正常运行对应类型的Job。
内容的提问来源于stack exchange,提问作者Myamotooo
相关产品推荐
相关产品推荐

