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_FILE
environment variable or theexpensive_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 observeseth_getTransactionReceipt
requests' duration. #3903 - New Prometheus metrics
query_parsing_time
andquery_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 settingaccount-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 thegraph-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