v0.26.0
0.26.0
Features
- Gas metering #2414
- Adds support for Solidity Custom Errors #2577
- Debug fork tool #2995 #3292
- Automatically remove unused deployments #3023
- Fix fulltextsearch space handling #3048
- Allow placing new deployments onto one of several shards #3049
- Make NEAR subgraphs update their sync status #3108
- GraphQL validations #3164
- Add special treatment for immutable entities #3201
- Tendermint integration #3212
- Skip block updates when triggers are empty #3223 #3268
- Use new GraphiQL version #3252
- GraphQL prefetching #3256
- Allow using Bytes as well as String/ID for the id of entities #3271
- GraphQL route for dumping entity changes in subgraph and block #3275
- Firehose filters #3323
- NEAR filters #3372
Robustness
- Improve our
CacheWeightestimates #2935 - Refactor GraphQL execution #3005
- Setup databases in parallel #3019
- Block ingestor now fetches receipts in parallel #3030
- Prevent subscriptions from back-pressuring the notification queue #3053
- Avoid parsing X triggers if the filter is empty #3083
- Pipeline
BlockStream#3085 - More robust
proofOfIndexingGraphQL route #3348
graphman
- Add
runcommand, for running a subgraph up to a block #3079 - Add
analyzecommand, for analyzing a PostgreSQL table, which can improve performance #3170 - Add
index createcommand, for adding an index to certain attributes #3175 - Add
index listcommand, for listing indexes #3198 - Add
index dropcommand, for dropping indexes #3198
Dependency Updates
These are the main ones:
- Updated protobuf to latest version for NEAR #2947
- Update
web3crate #2916 #3120 #3338 - Update
graphql-parsertov0.4.0#3020 - Bump
itertoolsfrom0.10.1to0.10.3#3037 - Bump
clapfrom2.33.3to2.34.0#3039 - Bump
serde_yamlfrom0.8.21to0.8.23#3065 - Bump
tokiofrom1.14.0to1.15.0#3092 - Bump
indexmapfrom1.7.0to1.8.0#3143 - Update
ethabito its latest version #3144 - Bump
structoptfrom0.3.25to0.3.26#3180 - Bump
anyhowfrom1.0.45to1.0.53#3182 - Bump
quotefrom1.0.9to1.0.16#3112 #3183 #3384 - Bump
tokiofrom1.15.0to1.16.1#3208 - Bump
semverfrom1.0.4to1.0.5#3229 - Bump
async-streamfrom0.3.2to0.3.3#3361 - Update
jsonrpc-server#3313
Misc
- More context when logging RPC calls #3128
- Increase default reorg threshold to 250 for Ethereum #3308
- Improve traces error logs #3353
- Add warning and continue on parse input failures for Ethereum #3326
Upgrade Notes
When upgrading to this version, we recommend taking a brief look into these changes:
- Gas metering #2414
- Now there's a gas limit for subgraph mappings, if the limit is reached the subgraph will fail with a non-deterministic error, you can make them recover via the environment variable
GRAPH_MAX_GAS_PER_HANDLER
- Now there's a gas limit for subgraph mappings, if the limit is reached the subgraph will fail with a non-deterministic error, you can make them recover via the environment variable
- Improve our
CacheWeightestimates #2935- This is relevant because a couple of releases back we've added a limit for the memory size of a query result. That limit is based of the
CacheWeight.
- This is relevant because a couple of releases back we've added a limit for the memory size of a query result. That limit is based of the
These are some of the features that will probably be helpful for indexers 😊
- Allow placing new deployments onto one of several shards #3049
- GraphQL route for dumping entity changes in subgraph and block #3275
- Unused deployments are automatically removed now #3023
- The interval can be set via
GRAPH_REMOVE_UNUSED_INTERVAL
- The interval can be set via
- Setup databases in parallel #3019
- Block ingestor now fetches receipts in parallel #3030
GRAPH_ETHEREUM_FETCH_TXN_RECEIPTS_IN_BATCHEScan be set totruefor the old fetching behavior
- More robust
proofOfIndexingGraphQL route #3348- A token can be set via
GRAPH_POI_ACCESS_TOKENto limit access to the POI route
- A token can be set via
- The new
graphmancommands 🙂