- Store writes are now carried out in parallel to the rest of the subgraph process, improving indexing performance for subgraphs with significant store interaction. Metrics & monitoring was updated for this new pipelined process;
- This adds support for apiVersion 0.0.7, which makes receipts accessible in Ethereum event handlers. Documentation link;
- This introduces some improvements to the subgraph GraphQL API, which now supports filtering on the basis of, and filtering for entities which changed from a certain block;
- Support was added for Arweave indexing. Tendermint was renamed to Cosmos in Graph Node. These integrations are still in "beta";
- Callhandler block filtering for contract calls now works as intended (this was a longstanding bug);
- Gas costing for mappings is still set at a very high default, as we continue to benchmark and refine this metric;
- A new
graphman fix block
command was added to easily refresh a block in the block cache, or clear the cache for a given network; - IPFS file fetching now uses
files/stat
, asobject
was deprecated; - Subgraphs indexing via a Firehose can now take advantage of Firehose-side filtering;
- NEAR subgraphs can now match accounts for receipt filtering via prefixes or suffixes.
Upgrade notes
- In the case of you having custom SQL, there's a new SQL migration;
- On the pipelining of the store writes, there's now a new environment variable
GRAPH_STORE_WRITE_QUEUE
(default value is5
), that if set to0
, the old synchronous behaviour will come in instead. The value stands for the amount of write/revert parallel operations #3177; - There's now support for TLS connections in the PostgreSQL
notification_listener
#3503; - GraphQL HTTP and WebSocket ports can now be set via environment variables #2832;
- The genesis block can be set via the
GRAPH_ETHEREUM_GENESIS_BLOCK_NUMBER
env var #3650; - There's a new experimental feature to limit the number of subgraphs for a specific web3 provider. Link for documentation;
- Two new GraphQL validation environment variables were included:
ENABLE_GRAPHQL_VALIDATIONS
andSILENT_GRAPHQL_VALIDATIONS
, which are documented here; - A bug fix for
graphman index
was landed, which fixed the behavior where if one deployment was used by multiple names would result in the command not working #3416; - Another fix landed for
graphman
, the bug would allow theunassign
/reassign
commands to make two or more nodes index the same subgraph by mistake #3478; - Error messages of eth RPC providers should be clearer during
graph-node
start up #3422; - Env var
GRAPH_STORE_CONNECTION_MIN_IDLE
will no longer panic, instead it will log a warning if it exceeds thepool_size
#3489; - Failed GraphQL queries now have proper timing information in the service metrics #3508;
- Non-primary shards now can be disabled through setting the
pool_size
to0
#3513; - Queries with large results now have a
query_id
#3514; - It's now possible to disable the LFU Cache by setting
GRAPH_QUERY_LFU_CACHE_SHARDS
to0
#3522; GRAPH_ACCOUNT_TABLES
env var is not supported anymore #3525;- New documentation landed on the metadata tables;
GRAPH_GRAPHQL_MAX_OPERATIONS_PER_CONNECTION
for GraphQL subscriptions now has a default of1000
#3735