Skip to content

v0.28.0

Compare
Choose a tag to compare
@neysofu neysofu released this 26 Sep 11:30
· 1319 commits to master since this release

This is the v0.28.0 release.

Upgrade notes

  • New DB table for dynamic data sources.
    For new subgraph deployments, dynamic data sources will be recorded under the sgd*.data_sources$ table, rather than subgraphs.dynamic_ethereum_contract_data_source. As a consequence new deployments will not work correctly on earlier graph node versions, so downgrading to an earlier graph node version is not supported.
    See issue #3405 for other details.

What's new

  • The filepath which "too expensive qeueries" are sourced from is now configurable. You can use either the GRAPH_NODE_EXPENSIVE_QUERIES_FILE environment variable or the expensive_queries_filename option in the TOML configuration. #3710
  • The output you'll get from graphman query is less cluttered and overall nicer. The new options --output and --trace are available for detailed query information. #3860
  • docker build will now --target the production build stage by default. When you want to get the debug build, you now need --target graph-node-debug. #3814
  • Node IDs can now contain any character. The Docker start script still replaces hyphens with underscores for backwards compatibility reasons, but this behavior can be changed with the GRAPH_NODE_ID_USE_LITERAL_VALUE environment variable. With this new option, you can now seamlessly use the K8s-provided host names as node IDs, provided you reassign your deployments accordingly. #3688
  • You can now use the conn_pool_size option in TOML configuration files to configure the connection pool size for Firehose providers. #3833
  • Index nodes now have an endpoint to perform block number to canonical hash conversion, which will unblock further work towards multichain support. #3942
  • _meta.block.timestamp is now available for subgraphs indexing EVM chains. #3738, #3902
  • The deployment_eth_rpc_request_duration metric now also observes eth_getTransactionReceipt requests' duration. #3903
  • New Prometheus metrics query_parsing_time and query_validation_time for monitoring query processing performance. #3760
  • New command graphman config provider, which shows what providers are available for new deployments on a given network and node. #3816
    E.g. $ graphman --node-id index_node_0 --config graph-node.toml config provider mainnet
  • Experimental support for GraphQL API versioning has landed. #3185
  • Progress towards experimental support for off-chain data sources. #3791
  • Experimental integration for substreams. #3777, #3784, #3897, #3765, and others

Bug fixes

  • graphman stats now complains instead of failing silently when incorrectly setting account-like optimizations. #3918
  • Fixed inconsistent logic in the provider selection when the limit TOML configuration option was set. #3816
  • Fixed issues that would arise from dynamic data sources' names clashing against template names. #3851
  • Dynamic data sources triggers are now processed by insertion order. #3851, #3854
  • When starting, the Docker image now replaces the bash process with the graph-node process (with a PID of 1). #3803
  • Refactor subgraph store tests by @evaporei in #3662
  • The ethereum_chain_head_number metric doesn't get out of sync anymore on chains that use Firehose. #3771, #3732
  • Fixed a crash caused by bad block data from the provider. #3944
  • Fixed some minor Firehose connectivity issues via TCP keepalive, connection and request timeouts, and connection window size tweaks. #3822, #3855, #3877, #3810, #3818
  • Copying private data sources' tables across shards now works as expected. #3836

Performance improvements

  • Firehose GRPC stream requests are now compressed with gzip, if the server supports it. #3893
  • Memory efficiency improvements within the entity cache. #3594
  • Identical queries now benefit from GraphQL validation caching, and responses are served faster. #3759

Other

  • Avoid leaking some sensitive information in logs. #3812