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
CacheWeight
estimates #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
proofOfIndexing
GraphQL route #3348
graphman
- Add
run
command, for running a subgraph up to a block #3079 - Add
analyze
command, for analyzing a PostgreSQL table, which can improve performance #3170 - Add
index create
command, for adding an index to certain attributes #3175 - Add
index list
command, for listing indexes #3198 - Add
index drop
command, for dropping indexes #3198
Dependency Updates
These are the main ones:
- Updated protobuf to latest version for NEAR #2947
- Update
web3
crate #2916 #3120 #3338 - Update
graphql-parser
tov0.4.0
#3020 - Bump
itertools
from0.10.1
to0.10.3
#3037 - Bump
clap
from2.33.3
to2.34.0
#3039 - Bump
serde_yaml
from0.8.21
to0.8.23
#3065 - Bump
tokio
from1.14.0
to1.15.0
#3092 - Bump
indexmap
from1.7.0
to1.8.0
#3143 - Update
ethabi
to its latest version #3144 - Bump
structopt
from0.3.25
to0.3.26
#3180 - Bump
anyhow
from1.0.45
to1.0.53
#3182 - Bump
quote
from1.0.9
to1.0.16
#3112 #3183 #3384 - Bump
tokio
from1.15.0
to1.16.1
#3208 - Bump
semver
from1.0.4
to1.0.5
#3229 - Bump
async-stream
from0.3.2
to0.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
CacheWeight
estimates #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_BATCHES
can be set totrue
for the old fetching behavior
- More robust
proofOfIndexing
GraphQL route #3348- A token can be set via
GRAPH_POI_ACCESS_TOKEN
to limit access to the POI route
- A token can be set via
- The new
graphman
commands 🙂