在图节点中部署平衡器子图时,如何解决trace_filter不存在的问题?

问题描述

我已经成功设置graph-node。之后,我试图在我的图节点中部署balancer-subgraph

子图部署过程:

  1. 克隆
git clone git@github.com:balancer-labs/balancer-subgraph.git
  1. 安装依赖项
yarn
  1. 生成图形代码
yarn codegen
  1. 创建本地节点
yarn create:local
  1. 本地部署
yarn deploy:local

部署后,在图形节点日志中出现如下错误

Aug 21 13:15:36.545 ERRO Subgraph instance Failed to run: RPC error: Error { code: MethodNotFound,message: "the method trace_filter does not exist/is not available",data: None },code: SubgraphSyncingFailure,id: QmTMsUH9rUVjpBTDRNuUcNHM3rT9ZZmxkDmTYmyKUpzEJn,subgraph_id: QmTMsUH9rUVjpBTDRNuUcNHM3rT9ZZmxkDmTYmyKUpzEJn,component: SubgraphInstanceManager
Aug 21 13:15:41.071 INFO Syncing 1 blocks from Ethereum.,code: BlockIngestionStatus,blocks_needed: 1,blocks_behind: 1,latest_block_head: 10703787,current_block_head: 10703786,network_name: mainnet,component: BlockIngestor

获取节点版本

Geth
Version: 1.9.9-stable
Git Commit: 017449971e1e9e220efcd97d3313a0e27f47003b
Git Commit Date: 20191206
Architecture: amd64
Protocol Versions: [64 63]
Go Version: go1.13.5
Operating System: linux
GOPATH=/home/ubuntu/work
GOROOT=/usr/local/go

我需要启用任何一种API才能成功部署Balancer子图吗?

解决方法

Geth节点到目前为止尚不支持trace_filter方法。对于某些子图(例如balancer-subgraph),当尝试将其部署到graph-node时,它将尝试调用此方法trace_filter。但是由于geth节点不支持API,graph-node为此遇到了错误

参考:Geth JSON-RPC不支持trace_filter API。 单击this链接,按geth节点查找受支持的API。

要完全支持图节点,需要使用奇偶校验节点。 This已通过奇偶校验支持API

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...