v0.28.0
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 thesgd*.data_sources$table, rather thansubgraphs.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_FILEenvironment variable or theexpensive_queries_filenameoption in the TOML configuration. #3710 - The output you'll get from
graphman queryis less cluttered and overall nicer. The new options--outputand--traceare available for detailed query information. #3860 docker buildwill now--targetthe 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_VALUEenvironment 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_sizeoption 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.timestampis now available for subgraphs indexing EVM chains. #3738, #3902- The
deployment_eth_rpc_request_durationmetric now also observeseth_getTransactionReceiptrequests' duration. #3903 - New Prometheus metrics
query_parsing_timeandquery_validation_timefor 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 statsnow complains instead of failing silently when incorrectly settingaccount-likeoptimizations. #3918- Fixed inconsistent logic in the provider selection when the
limitTOML 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
bashprocess with thegraph-nodeprocess (with a PID of 1). #3803 - Refactor subgraph store tests by @evaporei in #3662
- The
ethereum_chain_head_numbermetric 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