This release adds support for ad-hoc transaction filters using the Spring Expression Language (SpEL). SpEL filters can be used for both including or excluding transactions from being persisted to the database. Previous filtering capability allowed mirror node operators to include or exclude certain entity IDs or transaction types, but if they needed something more custom they were out of luck. SpEL itself is pretty powerful and allows access to any bean or class on the classpath, so to reduce the attack surface we limit it to only allow filtering on the TransactionBody and the TransactionRecord contained within the record file. See the docs for additional details and examples. Below is an example that only includes transactions with certain memos:
hedera.mirror.importer.parser.include[0].expression=transactionBody.memo.contains("hedera")
Monitoring saw improvements this release with newly added metrics for the size of table and indexes on disk to help track the growing size of the database. Likewise, new cache metrics were implemented to monitor the cache hit rate and size. Dashboards were updated to visualize these new metrics.
HIP-584 EVM archive node saw support for block.prevrandao
implemented. Also, support for pending
, safe
, and finalized
block types were added with all three being equivalent to latest
since Hedera's blocks are always final. Work has started on historical support for /api/v1/contracts/call
so that specific blocks in the past can be queried. This release saw the lower level queries for token balance implemented.
HIP-794 Sunset account balance saw a couple of remaining items completed. The balance timestamp that was added in v0.89.0 was put to use to provide more accurate timestamps for the accounts and balances REST API. Finally, the reconciliation job was disabled since it doesn't make sense to reconcile from balance data that mirror node generates itself.
Enhancements
- HIP-584 Historical: Support token balance #7044
- Add table disk size metrics & graphs #7017
- Use ContractCallTestScenarioBuilder in web3 k6 test cases #7015
- Disable reconciliation job by default #7013
- Disable shard replication by default #7003
- Improve the efficiency of loading contract initcode #7000
- Add support for dynamic expression-based transaction filters #6979
- Enhance ContractController to handle all remaining block types (pending, safe, finalized) #6975
- Update accounts and balances to use entity.balance_timestamp #6974
Bug Fixes
- HIP-584: Copy HederaPrngSeedOperation from services #7047
- HIP-584: Estimated gas under expected range #7041
- Ignore staking fields before staking was enabled #7019
Documentation
- Document citus backup and restore #7004
Dependency Upgrades
- Bump Node.js from 18.17.1 to 18.18.2 #7081
- Bump
@babel
/traverse from 7.22.20 to 7.23.2 in /hedera-mirror-rest/check-state-proof #7080 - Bump
@babel
/traverse from 7.22.20 to 7.23.2 in /hedera-mirror-rest/monitoring/monitor_apis #7079 - Bump
@babel
/traverse from 7.22.20 to 7.23.2 in /hedera-mirror-rest #7078 - Bump software.amazon.awssdk:bom from 2.20.162 to 2.21.0 #7073
- Bump com.google.guava:guava from 32.1.2-jre to 32.1.3-jre #7072
- Bump io.hypersistence:hypersistence-utils-hibernate-62 from 3.5.3 to 3.6.0 #7071
- Bump io.projectreactor:reactor-core-micrometer from 1.0.10 to 1.0.11 #7070
- Bump testcontainersSpringBootVersion from 3.0.4 to 3.0.5 #7069
- Bump vertxVersion from 4.4.5 to 4.4.6 #7068
- Bump
@aws-sdk
/client-s3 from 3.427.0 to 3.428.0 in /hedera-mirror-rest #7067 - Bump jest-extended from 4.0.1 to 4.0.2 in /hedera-mirror-rest #7066
- Bump mathjs from 11.11.1 to 11.11.2 in /hedera-mirror-rest #7064
- Bump mathjs from 11.11.1 to 11.11.2 in /hedera-mirror-rest/monitoring/monitor_apis #7063
- Bump securego/gosec from 2.17.0 to 2.18.1 #7062
- Bump gorm.io/gorm from 1.25.4 to 1.25.5 in /hedera-mirror-rosetta #7061
- Bump gorm.io/driver/postgres from 1.5.2 to 1.5.3 in /hedera-mirror-rosetta #7060
- Bump github.com/ethereum/go-ethereum from 1.13.2 to 1.13.3 in /hedera-mirror-rosetta #7059
- Bump netty from 4.1.97.Final to 4.1.100.Final #7058
- Bump Go from 1.21.1 to 1.21.3 #7057
- Bump eclipse-temurin from 17.0.8 to 17.0.8.1 #7056
- Bump golang.org/x/net from 0.15.0 to 0.17.0 in /hedera-mirror-rosetta #7046
- Bump github.com/hashgraph/hedera-sdk-go/v2 from 2.29.0 to 2.30.0 in /hedera-mirror-rosetta #7033
- Bump github.com/spf13/viper from 1.16.0 to 1.17.0 in /hedera-mirror-rosetta #7032
- Bump github.com/go-playground/validator/v10 from 10.15.4 to 10.15.5 in /hedera-mirror-rosetta #7031
- Bump
@aws-sdk
/client-s3 from 3.421.0 to 3.427.0 in /hedera-mirror-rest #7030 - Bump sinon from 16.0.0 to 16.1.0 in /hedera-mirror-rest #7029
- Bump stefanzweifel/git-auto-commit-action from 4 to 5 #7028
- Bump io.freefair.gradle:lombok-plugin from 8.3 to 8.4 #7027
- Bump org.sonarsource.scanner.gradle:sonarqube-gradle-plugin from 4.4.0.3356 to 4.4.1.3373 #7026
- Bump org.testcontainers:junit-jupiter from 1.19.0 to 1.19.1 #7025
- Bump testcontainersSpringBootVersion from 3.0.3 to 3.0.4 #7024
- Bump org.gradle:test-retry-gradle-plugin from 1.5.5 to 1.5.6 #7023
- Bump protobufVersion from 3.24.3 to 3.24.4 #7022
- Bump software.amazon.awssdk:bom from 2.20.157 to 2.20.162 #7021
- Bump com.github.node-gradle:gradle-node-plugin from 7.0.0 to 7.0.1 #7020
- Bump Gradle from 8.3 to 8.4 #7011
- Bump github.com/consensys/gnark-crypto from 0.11.2 to 0.12.0 in /hedera-mirror-rosetta #7002
- Bump com.hedera.hashgraph:sdk from 2.28.0 to 2.29.0 #6951
Contributors
We'd like to thank all the contributors who worked on this release!