HIP-786 adds support for enriched staking metadata exports to the record stream for use by downstream systems. The mirror node now ingests the new max_stake_rewarded
, max_total_reward
, reserved_staking_rewards
, reward_balance_threshold
, and unreserved_staking_reward_balance
fields and persists them to the database. The REST API has been updated to expose this data via /api/v1/network/stake
.
HIP-794 Sunsetting Balance File saw further refinements in this release. The mirror node now captures the consensus timestamp at which the balance was updated for both accounts and token relationship. This information will be used in the future to provide more accurate balance timestamps in the API and to deduplicate the balance information. Entity balance tracking and migration was enabled in the Rosetta API. Finally, we now track the balance of all entity types and not just accounts and contracts.
HIP-584 Mirror EVM Archive node continues to improve with the addition of support for the PRNG system contract. Missing Besu internal precompiles for the Istanbul release are now properly registered. A lot of new tests were added in the form of integration, acceptance, and performance tests.
There were a number of technical debt items addressed in this release. The importer component saw noticeable improvements in CPU and memory usage at 10,000 transactions per second. It now uses about 50% less memory and 33% less CPU. The Log4j2 logging framework was replaced with Logback to provide a path to compiling to native code and to simplify configuration. The EntityId
saw its final improvement with the addition of a cache to reduce allocating temporary immutable objects. Tests were standardized to use the simpler and logging framework agnostic OutputCaptureExtension
. Finally, we researched approaches to parallel transaction insertion and saw a path forward for additional ingest scalability.
Enhancements
- Revert "Add a transaction hash pivot timestamp (0.89)" #6923
- Add a transaction hash pivot timestamp (0.89) #6909
- Enable entity balance tracking and migration in rosetta #6885
- Enable entity balance tracking and migration in rosetta #6884
- Expose new HIP-786 staking properties #6863
- HIP-786: Persist new staking properties #6858
- Add balance timestamp to entity and token account #6852
- Replace log4j2 with logback #6838
- Replace Log4j2 with Logback #6837
- Add a cache to EntityId #6834
- Switch tests to use OutputCaptureExtension #6832
- Track balance of all entities #6822
- HIP-584: K6 performance test for estimate precompiles #6814
- HIP-786: Expose new staking properties #6792
- HIP-786: Persist new staking properties #6791
- HIP-786: Enriched staking metadata exports #6790
- HIP-584: Refactor integration tests #6785
- HIP-584: Add acceptance tests for ExchangeRatePrecompiledContract #6784
- HIP-584: Add acceptance tests for PrngSystemPrecompiledContract #6782
- Add a balance timestamp to entity and token account #6683
- HIP-584: Provide implementation for PrngSystemPrecompiledContract #6668
- HIP-584: Support ExchangeRate and Prng precompiles for eth_estimateGas and refactor integration tests in web3 #6657
- HIP-584: Add K6 tests for modification precompiles #6619
- HIP-584: Refactor integration tests #6607
- HIP-584: Provide implementation for PrngSystemPrecompiledContract #6605
- Refactor EntityId #6122
- Research parallel domain ingestion across multiple connections #2677
Bug Fixes
- Make
MirrorEntityAccess.isUsable
not consider expiry (0.89) #6943 - Fix loading of native libraries in web3 chart (0.89) #6934
- Regression on
contract/results/<transactionHash>
address to field as 0x (0.89) #6922 - Fix custom fee schedule not updated properly (0.89) #6915
TokenAccessorImpl
to returns long zero for getApproved operation #6897- Fix
TokenAccessorImpl
to return canonical address #6896 - Workaround testnet acceptance test failures #6894
- Acceptance tests fail against testnet #6893
- Improve importer memory usage #6867
- HIP-584: Register missing besu internal precompiles #6862
- HIP-584: Register missing besu internal precompiles #6861
- Find entity from evm address recovered from EC public key alias #6859
- Add a migration to fix token allowance amount for transferFrom precompile #6851
- Set daemonsets to a higher priority class #6836
- Can’t scale up a node pool because of a failing scheduling predicate #6835
- Unable to find entity for alias #6833
- Fix MessageDeliveryException in importer #6829
- Import halts ingestion with a MessageDeliveryException #6828
- Nullable
to
address for reverted transactions on/contracts/results/<txHash>
route #6827 - Nullable
to
address for reverted transactions on/contracts/results/<txHash>
route #6826 - EsimateGas request returns 400 when from parameter is missing. #6824
- HIP-584: Change InvalidTransactionException type in Store #6788
- Frame does not revert when store calls missingEntityException #6787
- HIP-584: Transfer on estimate gas results in error 400 #6778
- Transfer on estimate gas results in error 400 #6777
- K6 endpoints show regression #6772
- Fix token allowance amount for transferFrom precompile #6741
- Importer shows high memory consumption at the beginning of 10K TPS perf test #6729
Documentation
- Update web3 module README with contracts/call API support (0.89) #6910
Dependency Upgrades
- Revert "Bump quick-lru from 6.1.2 to 7.0.0" #6898
- HIP-786: Finalize protobuf artifact to persist new staking properties #6889
- Bump jest from 29.6.4 to 29.7.0 in /hedera-mirror-rest/monitoring/monitor_apis #6883
- Bump jest from 29.6.4 to 29.7.0 in /hedera-mirror-rest/check-state-proof #6882
- Bump software.amazon.awssdk:bom from 2.20.144 to 2.20.149 #6878
- Bump io.projectreactor:reactor-core-micrometer from 1.0.9 to 1.0.10 #6877
- Bump org.gradle:test-retry-gradle-plugin from 1.5.4 to 1.5.5 #6876
- Bump com.graphql-java-generator:graphql-java-client-runtime from 2.2 to 2.3 #6875
- Bump sinon from 15.2.0 to 16.0.0 in /hedera-mirror-rest #6874
- Bump eslint-plugin-jest from 27.2.3 to 27.4.0 in /hedera-mirror-rest #6873
- Bump jest from 29.6.4 to 29.7.0 in /hedera-mirror-rest #6872
- Bump quick-lru from 6.1.2 to 7.0.0 in /hedera-mirror-rest #6871
- Bump
@aws-sdk
/client-s3 from 3.409.0 to 3.414.0 in /hedera-mirror-rest #6870 - Bump github.com/go-playground/validator/v10 from 10.15.3 to 10.15.4 in /hedera-mirror-rosetta #6869
- Bump github.com/ethereum/go-ethereum from 1.12.2 to 1.13.1 in /hedera-mirror-rosetta #6868
- Bump
@aws-sdk
/client-s3 from 3.405.0 to 3.409.0 in /hedera-mirror-rest #6850 - Bump mathjs from 11.10.1 to 11.11.0 in /hedera-mirror-rest #6849
- Bump uk.org.webcompere:system-stubs-jupiter from 2.0.2 to 2.1.1 #6848
- Bump io.cucumber:cucumber-bom from 7.13.0 to 7.14.0 #6847
- Bump io.grpc:grpc-bom from 1.57.2 to 1.58.0 #6846
- Bump com.esaulpaugh:headlong from 9.4.0 to 10.0.0 #6845
- Bump software.amazon.awssdk:bom from 2.20.140 to 2.20.144 #6844
- Bump org.apache.commons:commons-compress from 1.23.0 to 1.24.0 #6843
- Bump testcontainersSpringBootVersion from 3.0.0 to 3.0.1 #6842
- Bump protobufVersion from 3.24.2 to 3.24.3 #6841
- Bump actions/checkout from 3 to 4 #6840
- Bump crazy-max/ghaction-import-gpg from 5.4.0 to 6.0.0 #6839
- Bump versions for v0.89.0-SNAPSHOT #6820
- Bump crazy-max/ghaction-import-gpg from 5.3.0 to 5.4.0 #6806
- Bump org.sonarsource.scanner.gradle:sonarqube-gradle-plugin from 4.2.1.3168 to 4.3.1.3277 #6803
- Bump com.hedera.hashgraph:sdk from 2.27.0 to 2.28.0 #6801
Contributors
We'd like to thank all the contributors who worked on this release!