github graphprotocol/graph-node v0.30.0

latest releases: fraction2, canary-ef0cf72, v0.35.1...
18 months ago
$ docker pull graphprotocol/graph-node:v0.30.0

Database locale change

New graph-node installations now mandate PostgreSQL to use C locale and UTF-8 encoding. The official docker-compose.yml template has been updated accordingly. Pre-existing graph-node installations are not concerned with this change, but local development scripts and CI pipelines may have to adjust database initialization parameters. This can be done with initdb -E UTF8 --locale=C. #4163, #4151, #4201, #4340

What's new

  • AND/OR filters. AND/OR logical operators in where filters have been one of graph-node's most awaited features. They do exactly what you would expect them to do, and are very powerful. #579, #4080, #4171
  • IPFS file data sources. IPFS file data sources allow subgraph developers to query offchain information from IPFS directly in mappings. This feature is the culmination of much community and development efforts (GIP here). A future iteration of this feature will also include a so-called "Availability Chain", allowing IPFS file data sources to contribute to Proofs of Indexing. At the moment, entity updates that originate from these data sources' handlers do not contribute to PoIs. #4147, #4162, and many others!
  • Sorting by child entities (a.k.a. nested sorting). You can now orderBy properties of child entities. #4058, #3737, #3096
  • Added support for a Firehose-based block ingestor. Indexers that use the new Firehose-based block ingestor cannot automatically switch back to RPC. In order to downgrade, indexers must manually delete all blocks accumulated by Firehose in the database. For this reason, we suggest caution when switching over from RPC to Firehose. #4059, #4204, #4216
  • Fields of type Bytes can now use less than and greater than filters. #4285
  • "userinfo" is now allowed in IPFS URLs (e.g. https://foo:bar@example.com:5001/). #4252
  • The default for GRAPH_IPFS_TIMEOUT is now 60 seconds instead of 30. #4324
  • Forking options can now be set via env. vars. (GRAPH_START_BLOCK, GRAPH_FORK_BASE, GRAPH_DEBUG_FORK). #4308
  • Allow retrieving GraphQL query tracing over HTTP if the env. var. GRAPH_GRAPHQL_TRACE_TOKEN is set and the header X-GraphTraceQuery is included. The query traces' JSON is the same as returned by graphman query. #4243
  • Lots of visual and filtering improvements to #4232
  • More aggressive in-memory caching of blocks close the chain head, potentially alleviating database load. #4215
  • New counter Prometheus metric query_validation_error_counter, labelled by deployment ID and error code. #4230
    graph_elasticsearch_logs_sent
  • Turned "Flushing logs to Elasticsearch" log into a Prometheus metric (graph_elasticsearch_logs_sent) to reduce log noise. #4333
  • New materialized view info.chain_sizes, which works the same way as the already existing info.subgraph_sizes and info.table_sizes. #4318
  • New graphman stats subcommands set-target and target to manage statistics targets for specific deployments (i.e. how much data PostgreSQL samples when analyzing a table). #4092

Fixes

  • graph-node now has PID=1 when running inside the official Docker image. #4217
  • More robust ipfs.cat logic during grafted subgraphs' manifest lookup. #4284
  • Fixed a bug that caused some large multi-entity inserts to fail because of faulty chunk size calculation. #4250
  • Subgraph pruning now automatically cancels ongoing autovacuum, to avoid getting stuck. #4167
  • ens.getNameByHash now fails nondeterministically if ENS rainbow tables are not available locally. #4219
  • Some kinds of subgraph failures were previously wrongly treated as unattestable (value parsing, enum and scalar coercion), i.e. nondeterministic. These subgraph failure modes are now flagged as fully-deterministic. #4278

Full Changelog: v0.29.0...e5dd53d

Don't miss a new graph-node release

NewReleases is sending notifications on new releases.