1

我正在尝试在本地运行分散模型。我设法部署:

  • 链接合约
  • 聚合代理
  • 通量聚合器
  • 消费者合同
  • Oracle 节点(链下)
  • 外部适配器(coingecko + coinapi)

我主要是在为创建使用 FluxMonitor 启动器的作业的最后一部分而苦苦挣扎。

我创建了以下工作,其中“0x5379A65A620aEb405C5C5338bA1767AcB48d6750”是 FluxAggregator 合约的地址

{
"initiators": [
    {
        "type": "fluxmonitor",
        "params": {
            "address": "0x5379A65A620aEb405C5C5338bA1767AcB48d6750",
            "requestData": {
                "data": {
                    "from": "ETH",
                    "to": "USD"
                }
            },
            "feeds": [
                {
                    "bridge": "coinapi_cl_ea"
                },
                {
                    "bridge": "coingecko_cl_ea"
                }
            ],
            "threshold": 1,
            "absoluteThreshold": 1,
            "precision": 8,
            "pollTimer": {
                "period": "15m0s"
            },
            "idleTimer": {
                "duration": "1h0m0s"
            }
        }
    }
],
"tasks": [
    {
        "type": "NoOp"
    }
]

}

不幸的是,它不起作用,它使我的本地 ganache 失败并出现此错误“错误:随机数生成功能失败,或者私钥无效”

我已将 Ganache 置于调试模式,以便将请求记录到区块链。注意到以下调用

    eth_call
{
  "jsonrpc": "2.0",
  "id": 28,
  "method": "eth_call",
  "params": [
    {
      "data": "0xfeaf968c",
      "from": "0x0000000000000000000000000000000000000000",
      "to": "0x5379a65a620aeb405c5c5338ba1767acb48d6750"
    },
    "latest"
  ]
}

函数的签名是正确的

"latestRoundData()": "feaf968c"

然而,奇怪的是发件人地址是“0x0”。知道为什么我的 Oracle 节点不使用它的密钥来签署交易吗?

多谢

4

1 回答 1

1

来自 Ganache 的问题。事实上,我写了一个松露脚本:

  • 调用“latestRoundData()”,使用有效地址填充“FROM”
  • 调用“latestRoundData()”,用 0x0 地址填充“FROM”

然后我运行脚本 2 次:

  1. 连接到 Ganache-cli --> 第一次调用成功,第二次调用失败
  2. 连接到 Kovan 测试网 --> 两个调用都成功

我刚刚为 ganache-cli 团队打开了一个问题:https ://github.com/trufflesuite/ganache-cli/issues/840

于 2021-07-14T19:32:37.283 回答