Graph Node indexes data from blockchains such as Ethereum and serves it over GraphQL
indexerStatuses
. (#5190)
ethereum.getBalance(address)
. (#5202)
graph-node
logs can now be configured with the GRAPH_ELASTIC_SEARCH_INDEX
environment variable which defaults to subgraph
. (#5210)
Thank you to all the contributors! @incrypto32
, @mangas
, @lutter
, @leoyvens
, @zorancv
, @YaroShkvorets
, @seem-less
Full Changelog: https://github.com/graphprotocol/graph-node/compare/v0.34.1...v0.35.0
$ docker pull graphprotocol/graph-node:v0.34.1
This a patch release that addresses a few issues
/metrics
endpoint of graph-node. (#5161). Indexers are advised to skip v0.34.0
and use v0.34.1
$ docker pull graphprotocol/graph-node:v0.34.0
indexerHints
in Manifest for Automated Pruning - This update introduces the ability for subgraph authors to specify indexerHints
with a field prune
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 variable GRAPH_HISTORY_BLOCKS_OVERRIDE
(#5032 (#5117)
endBlock
Feature in Data Sources - This update adds the endBlock
field for dataSources in subgraph manifest. By setting an endBlock
, 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
Int8
IDs in graph-node - Introduced support for using Int8
as the ID type for entities, with the added capability to auto-generate these IDs, enhancing flexibility and functionality in entity management. (#5029)
subgraphFeatures
endpoint in graph-node has been updated to load features from subgraphs prior to their deployment. (#4864)
__schema
and __type
fields in the results during indexing errors (#4968)
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)
SubstreamsBlockIngestor
to initiate at the chain's head block instead of starting at block zero when no cursor exists. (#4951)
graphman deploy
command has been introduced, simplifying the process of deploying subgraphs to graph-node. (#4930)
Complete changelog: https://github.com/graphprotocol/graph-node/compare/v0.33.0...v0.34.0
$ docker pull graphprotocol/graph-node:v0.34.0-rc.0
indexerHints
in Manifest for Automated Pruning - This update introduces the ability for subgraph authors to specify indexerHints
with a field prune
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 variable GRAPH_HISTORY_BLOCKS_OVERRIDE
(#5032 (#5117)
endBlock
Feature in Data Sources - This update adds the endBlock
field for dataSources in subgraph manifest. By setting an endBlock
, 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
Int8
IDs in graph-node - Introduced support for using Int8
as the ID type for entities, with the added capability to auto-generate these IDs, enhancing flexibility and functionality in entity management. (#5029)
subgraphFeatures
endpoint in graph-node has been updated to load features from subgraphs prior to their deployment. (#4864)
__schema
and __type
fields in the results during indexing errors (#4968)
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)
SubstreamsBlockIngestor
to initiate at the chain's head block instead of starting at block zero when no cursor exists. (#4951)
graphman deploy
command has been introduced, simplifying the process of deploying subgraphs to graph-node. (#4930)
polling
for ethereum
data sources which enables subgraph developers to run a block handler at defined block intervals. This is useful for use cases such as taking periodic snapshots of the contract state.(#4725)
once
for ethereum
data sources which enables subgraph developers to create a handler which will be called only once before all other handlers run. This configuration allows the subgraph to use the handler as an initialization handler, performing specific tasks at the start of indexing. (#4725)
DataSourceContext
in Manifest - DataSourceContext can now be defined in the subgraph manifest. It's a free-form map accessible from the mapping. This feature is useful for templating chain-specific data in subgraphs that use the same codebase across multiple chains.(#4848)
graph-node
version in index node API - The Index Node API now features a new query, Version, which can be used to query the current graph-node version and commit. (#4852)
paused
' field to Index Node API, a boolean indicating the subgraph’s pause status. (#4779)
subgraph_features
table now tracks details about handlers used in a subgraph (#4820)
trace_id
Added to Substreams Logger (#4868)
graphman rewind
. This has been fixed to ensure correct behavior.(#4810)
graphman database remap
.(#4845)
ChildFilterNestingNotSupportedError
, improving error reporting for users.(#4828)
--after $recent_block
flag for creating partial indexes focused on recent blocks. This enhances query performance similar to the effects of pruning. Queries using these partial indexes must include a specific clause for optimal performance.(#4830)
Full Changelog: https://github.com/graphprotocol/graph-node/compare/incrypto32/v0.32.0...v0.33.0
$ docker pull graphprotocol/graph-node:v0.33.0-rc.0
polling
for ethereum
data sources which enables subgraph developers to run a block handler at defined block intervals. This is useful for use cases such as taking periodic snapshots of the contract state.(#4725)
once
for ethereum
data sources which enables subgraph developers to create a handle which will be called only once before all other handlers run. This configuration allows the subgraph to use the handler as an initialization handler, performing specific tasks at the start of indexing. (#4725)
DataSourceContext
in Manifest - DataSourceContext can now be defined in the subgraph manifest. It's a free-form map accessible from the mapping. This feature is useful for templating chain-specific data in subgraphs that use the same codebase across multiple chains.(#4848)
graph-node
version in index node API - The Index Node API now features a new query, Version, which can be used to query the current graph-node version and commit. (#4852)
paused
' field to Index Node API, a boolean indicating the subgraph’s pause status. (#4779)
subgraph_features
table now tracks details about handlers used in a subgraph (#4820)
trace_id
Added to Substreams Logger (#4868)
graphman rewind
. This has been fixed to ensure correct behavior.(#4810)
ChildFilterNestingNotSupportedError
, improving error reporting for users.(#4828)
--after $recent_block
flag for creating partial indexes focused on recent blocks. This enhances query performance similar to the effects of pruning. Queries using these partial indexes must include a specific clause for optimal performance.(#4830)
Full Changelog: https://github.com/graphprotocol/graph-node/compare/v0.32.0...b1502a426227145d890df87483c3890d66ecf2db
$ docker pull graphprotocol/graph-node:v0.32.0
graft-base
validation errors. (#4695)history_blocks
is now available in the index-node API. (#4662)subgraph features
table in primary
to easily track information like apiVersion
, specVersion
, features
, and data source kinds used by subgraphs. (#4679)subgraphFeatures
endpoint now includes data from subgraph_features
table.ens_name_by_hash
is now undeprecated: This reintroduces support for fetching ENS names by their hash, dependent on the availability of the underlying Rainbow Table (#4751).eth-call
logs now include block hash and block number: This enables easier debugging of eth-call issues. (#4718)Int8
. This new scalar type allows subgraph developers to represent 8-bit signed integers. (#4511)PublicProofsOfIndexing
returning the error Null value resolved for non-null field proofOfIndexing
when fetching POIs for blocks that are not in the cache (#4768)Broken
(#4754)nonFatalErrors
field not populating in the index node API. (#4615)graph-node
panicking on the first startup when both Firehose and RPC providers are configured together. (#4680)net version for chain mainnet has changed from 0 to 1
when switching from Firehose to an RPC provider. (#4692)get_many
and get_derived
([#4801]https://github.com/graphprotocol/graph-node/pull/4801)graphman
commands pause
and resume
: Instead of reassigning to a non-existent node these commands can now be used for pausing and resuming subgraphs. (#4642)graphman
command restart
to restart a subgraph. (#4742)Full Changelog: https://github.com/graphprotocol/graph-node/compare/v0.31.0...2891a76ef30194123c60578c2dc4395d243d05d3
v0.32.0-rc.0
is the first release candidate of the upcoming v0.32.0
. This release candidate is intended for testnet use only.
$ docker pull graphprotocol/graph-node:v0.32.0-rc.0
graft-base
validation errors. (#4695)history_blocks
is now available in the index-node API. (#4662)subgraph features
table in primary
to easily track information like apiVersion
, specVersion
, features
, and data source kinds used by subgraphs. (#4679)subgraphFeatures
endpoint now includes data from subgraph_features
table.ens_name_by_hash
is now undeprecated: This reintroduces support for fetching ENS names by their hash, dependent on the availability of the underlying Rainbow Table (#4751).eth-call
logs now include block hash and block number: This enables easier debugging of eth-call issues. (#4718)Int8
. This new scalar type allows subgraph developers to represent 8-bit signed integers. (#4511)PublicProofsOfIndexing
returning the error Null value resolved for non-null field proofOfIndexing
when fetching POIs for blocks that are not in the cache (#4768)Broken
(#4754)nonFatalErrors
field not populating in the index node API. (#4615)graph-node
panicking on the first startup when both Firehose and RPC providers are configured together. (#4680)net version for chain mainnet has changed from 0 to 1
when switching from Firehose to an RPC provider. (#4692)graphman
commands pause
and resume
: Instead of reassigning to a non-existent node these commands can now be used for pausing and resuming subgraphs. (#4642)graphman
command restart
to restart a subgraph. (#4742)Full Changelog: https://github.com/graphprotocol/graph-node/compare/v0.31.0...c350e4f35c49bcf8a8b521851f790234ba2c0295
$ docker pull graphprotocol/graph-node:v0.31.0
where
filtering, further narrowing down search results. #4442
graph-cli
to v0.51.0. #4434, graph-cli
release notes
store.get_in_block
, which is a much faster variant of store.get
limited to entities created or updated in the current block. #4540
subgraph_deploy
JSON-RPC method now accepts a history_blocks
parameter, which indexers can use to set default amounts of history to keep. #4564
GRAPH_EXPERIMENTAL_SUBGRAPH_SETTINGS
to define matching rules on subgraph names for reducing amounts of history stored. #4633
info
schema (table_sizes
, subgraph_sizes
, and chain_sizes
) that provide information about the size of various database objects are now automatically refreshed every 6 hours. #4461
GRAPH_ETHEREUM_IS_FIREHOSE_PREFERRED
, REVERSIBLE_ORDER_BY_OFF
, and GRAPH_STORE_CONNECTION_TRY_ALWAYS
env. variables. #4375, #4436
GRAPH_ETH_CALL_NO_GAS
which is a comma-separated list of chains' net_version
for which to disable eth_call
gas limits. The default value (421613
) disables gas limits for Arbitrum Goerli. #4609
GRAPH_STORE_WRITE_BATCH_SIZE=0
. #4606, #4632
graph-node
keeps around is much more efficient, meaning more cache entries fit in the same amount of memory resulting in a performance increase under a wide range of workloads. #4485, #4624
..._minmax_multi_ops
instead of _minmax_ops
if available (PostgreSQL 14+), often resulting in more selective indexes. #4629
sf.substreams.rpc.v2.Stream/Blocks
. #4556
startBlock
selection logic in substreams. #4463
subgraph writer poisoned by previous error
message following certain database errors. #4533
store error: no connection to the server
message when database connection e.g. gets killed. #4435
subgraph_reassign
JSON-RPC method doesn't fail anymore when multiple deployment copies are found: only the active copy is reassigned, the others are ignored. #4395
on_sync
handlers on copied deployments to fail with the message Subgraph instance failed to run: deployment not found [...]
. #4396
earliest_block
in the destination deployment. #4502
Subgraph instance failed to run: Failed to call 'asc_type_id' with [...] wasm backtrace [...]
; this error is now nondeterministic and recoverable. #4475
json.fromBytes
and all BigInt
operations now require more gas, protecting against malicious subgraphs. #4594, #4595
graphman rewind
now requires block-number
and block-hash
to be passed as flags instead of arguments. #4400
--start-block
in graphman rewind
to rewind a subgraph to the startBlock
set in manifest, or to the genesis block if no startBlock
is set. #4400
graphman prune
has changed: running just graphman prune
will mark the subgraph for ongoing pruning in addition to performing an initial pruning. To avoid ongoing pruning, use graphman prune --once
(docs). #4429
GRAPH_STORE_HISTORY_COPY_THRESHOLD
–which serves as a configuration setting for graphman prune
– has been renamed to GRAPH_STORE_HISTORY_REBUILD_THRESHOLD
. #4505
graphman info --all
. #4347
graphman chain call-cache remove
now requires --remove-entire-cache
as an explicit flag, protecting against accidental destructive command invocations. #4397
graphman copy create
accepts two new flags, --activate
and --replace
, which make moving of subgraphs across shards much easier. #4374
graphman
is now set via GRAPHMAN_LOG
or command line instead of GRAPH_LOG
. #4462
graphman reassign
now emits a warning when it suspects a typo in node IDs. #4377
deployment_sync_secs
now stops updating once the subgraph has synced. #4489
endpoint_request
metric to track error rates of different providers. #4490, #4504, #4430
chain_head_cache_num_blocks
, chain_head_cache_oldest_block
, chain_head_cache_latest_block
, chain_head_cache_hits
, and chain_head_cache_misses
to monitor the effectiveness of graph-node
's in-memory chain head caches. #4440
store error: Failed to remove entities
is now more detailed and contains more useful information. #4367
eth_call
logs now include the provider string. #4548
FirehoseBlockStream
and FirehoseBlockIngestor
now log adapter names. #4411
oneshot cancelled
. #4625
deployment_count
metric has been split into deployment_running_count
and deployment_count
. #4401, #4398
Full Changelog: https://github.com/graphprotocol/graph-node/compare/v0.30.0...aa6677a38
v0.31.0-rc.1
is the second release candidate of the upcoming v0.31.0
.
$ docker pull graphprotocol/graph-node:v0.31.0-rc.1
Edit 2023-06-08: v0.31.0-rc.1
has been promoted to v0.31.0
.