【问题标题】:State too large to be viewed状态太大,无法查看
【发布时间】:2021-09-09 07:03:28
【问题描述】:

我正在尝试调试以下交易的气体使用情况:https://explorer.near.org/transactions/HLCCBGUQLE1jUPJ7cSeaH9VPt4AAGhBLehB2F6zrx58H,通过从存档节点请求状态并打算在沙箱上对其进行修补,但是,RPC 返回以下错误:

{
  code: -32000,
  message: "Server error",
  data: "State of contract jerry.zest.near is too large to be viewed",
}

我找不到对状态进行分页的选项。有什么建议吗?

【问题讨论】:

    标签: nearprotocol


    【解决方案1】:

    我不相信现有的 RPC 节点可以做到这一点。

    此外,据我所知,状态请求的限制是不可配置的。所以解决办法是给nearcore打补丁:

    @@ -318,7 +318,7 @@ fn default_view_client_throttle_period() -> Duration {
     }
     
     fn default_trie_viewer_state_size_limit() -> Option<u64> {
    -    Some(50_000)
    +    Some(50_000_000)
     }
    

    并运行使用此类补丁编译的您自己的 RPC 节点。

    【讨论】:

    • 不需要改代码重新编译,只需要改config.json里面的值(这个问题看我的其他回答)
    【解决方案2】:

    使用太多键查询状态速度很慢且资源繁重。配置公共 RPC 以防止过多的资源消耗。

    目前,唯一的选择是使用 config.json 中的限制运行您自己的节点:https://github.com/near/nearcore/pull/4199(或联系可以为您运行节点的提供商)

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      相关资源
      最近更新 更多