$ docker pull graphprotocol/graph-node:v0.34.0-rc.0
What's New
- Substreams as Source of Triggers for Subgraphs - This update significantly enhances subgraph functionality by enabling substreams to act as a source of triggers for running subgraph mappings. Developers can now directly run subgraph mappings on the data output from substreams, facilitating a more integrated and efficient workflow.(#4887) (#4916)
indexerHints
in Manifest for Automated Pruning - This update introduces the ability for subgraph authors to specifyindexerHints
with a fieldprune
in their manifest, indicating the desired extent of historical block data retention. This feature enables graph-node to automatically prune subgraphs when the stored history exceeds the specified limit, significantly improving query performance. This automated process eliminates the need for manual action by indexers for each subgraph. Indexers can also override user-set historyBlocks with the environment variableGRAPH_HISTORY_BLOCKS_OVERRIDE
(#5032 (#5117)- Initial Starknet Support - Introducing initial Starknet support for graph-node, expanding indexing capabilities to the Starknet ecosystem. The current integration is in its early stages, with notable areas for development including the implementation of trigger filters and data source template support. Future updates will also bring substream support. (#4895)
endBlock
Feature in Data Sources - This update adds theendBlock
field for dataSources in subgraph manifest. By setting anendBlock
, subgraph authors can define the exact block at which a data source will cease processing, ensuring no further triggers are processed beyond this point. (#4787- Autogenerated
Int8
IDs in graph-node - Introduced support for usingInt8
as the ID type for entities, with the added capability to auto-generate these IDs, enhancing flexibility and functionality in entity management. (#5029) - GraphiQL V2 Update - Updated GraphiQL query interface of graph-node to version 2. (#4677)
- Sharding Guide for Graph-Node - A new guide has been added to graph-node documentation, explaining how to scale graph-node installations using sharding with multiple Postgres instances. Sharding Guide
- Per-chain polling interval configuration for RPC Block Ingestors (#5066)
- Metrics Enhancements(#5055) (#4937)
- graph-node now avoids creating GIN indexes on array attributes to enhance database write performance, addressing the issue of expensive updates and underutilization in queries. (#4933)
- The
subgraphFeatures
endpoint in graph-node has been updated to load features from subgraphs prior to their deployment. (#4864) - Improved log filtering performance in blockstream. (#5015)
- Enhanced GraphQL error reporting by including
__schema
and__type
fields in the results during indexing errors (#4968)
Bug fixes
- Addressed a bug in the deduplication logic for Cosmos events, ensuring all distinct events are properly indexed and handled, especially when similar but not identical events occur within the same block. (#5112)
- Fixed compatibility issues with ElasticSearch 8.X, ensuring proper log functionality. (#5013)
- Resolved an issue when rewinding data sources across multiple blocks. In rare cases, when a subgraph had been rewound by multiple blocks, data sources 'from the future' could have been left behind. This release adds a database migration that fixes that. With very unlucky timing this migration might miss some subgraphs, which will later lead to an error
assertion failed: self.hosts.last().and_then(|h| h.creation_block_number()) <= data_source.creation_block()
. Should that happen, the migration script should be rerun against the affected shard. (#5083) - Increased the base backoff time for RPC, enhancing stability and reliability under load. (#4984)
- Resolved an issue related to spawning offchain data sources from existing offchain data source mappings. (#5051)(#5092)
- Resolved an issue where eth-call results for reverted calls were being cached in call cache. (#4879)
- Fixed a bug in graphman's index creation to ensure entire String and Bytes columns are indexed rather than just their prefixes, resulting in optimized query performance and accuracy. (#4995)
- Adjusted
SubstreamsBlockIngestor
to initiate at the chain's head block instead of starting at block zero when no cursor exists. (#4951) - Fixed a bug that caused incorrect progress reporting when copying subgraphs, ensuring accurate status updates. (#5075)
Graphman
- Graphman Deploy Command - A new
graphman deploy
command has been introduced, simplifying the process of deploying subgraphs to graph-node. (#4930)