This release contains the implementation of HIP-873 adding token decimals to the REST API. Previously users had to make N + 1
queries to determine accurate token balance information by querying /api/v1/accounts/{id}/tokens
once and /api/v1/tokens/{id}
N
times to get the relevant decimal information. This HIP adds decimals
to both /api/v1/tokens/{tokenId}/balances
and /api/v1/accounts/{id}/tokens
so that decimal information is directly returned alongside the token relationships and the additional N
queries are unnecessary. It also adds name
and decimals
fields to the /api/v1/tokens
response to expose more of the existing token information on that API.
The /api/v1/contracts/call
REST API now supports a configurable hedera.mirror.web3.evm.maxDataSize
property so that mirror node operators can adjust how large of a payload they wish to support. The default value for the max data size was increased from 24 KiB
to 25 KiB
for creates and from 6 KiB
to 25 KiB
for calls. This change makes it possible for view functions with large inputs like oracles to now work on the network.
There were a few items to improve the performance and security of the mirror node. A new hedera.mirror.importer.downloader.maxSize=50MiB
property controls the maximum stream file size it will attempt to download. This protects the mirror node against large files uploaded accidentally or via malicious actors. The importer was refactored to support batch stream file ingestion so that it is possible to process multiple stream files in one transaction. This will help pave the way for future enhancements like improving historical synchronization times.
The database saw a number of improvements including new setup documentation with recommendations for how to configure the database. Our Citus deployment had some notable additions including a huge improvement in performance by adjusting its resource configuration. The Stackgres version was upgraded to 1.8 and ZFS to 2.4.1. The entity stake calculation was optimized for Citus so it runs efficiently in a sharded database. Finally, database metrics were fixed so that partitioned tables are appropriately aggregated under the parent table name.
Enhancements
- Increase maxDataSize to 25KiB (0.99) #7796
- Upgrade to stackgres 1.8 and zfs to 2.4.1 #7757
- Allow a configurable contract call data size limit #7756
- Update DB Metrics for V2 #7750
- Refactor
StreamFile.items
fromFlux
toCollection
#7708 - Expose the entrypoint command using an env var named ENTRYPOINT_COMMAND #7704
- Add a
maxSize
property to downloader #7703 - Set optimal ZFS + Postgres Settings for V2 #7701
- Improve entity stake calculation in v2 #7700
- HIP-873: Add decimals to token REST APIs #7699
- Support batch stream file ingestion #7689
- Adding a static repository layer to the rest-java-module. #7688
Bug Fixes
- Contract call without data causes NPE in web3 (0.99) #7792
- Increase max token name length and symbol default values similar to services #7748
- Fix local stream provider regression #7744
- Fix Monitor not retrying to recover from consensus node validation failures #7732
- Disable failing acceptance tests #7728
- Add wait strategy for testcontainer docker db readiness #7705
Documentation
- Add database setup documentation #7743
Dependency Upgrades
- Bump Spring Boot from 3.2.2 to 3.2.3 (0.99) #7794
- Upgrade PostgreSQL JDBC driver to v42.7.2 #7784
- Bump securego/gosec from 2.18.2 to 2.19.0 #7777
- Bump eslint-plugin-jest from 27.6.3 to 27.9.0 in /hedera-mirror-rest #7776
- Bump
@aws-sdk
/client-s3 from 3.511.0 to 3.515.0 in /hedera-mirror-rest #7775 - Bump eslint-plugin-security from 2.1.0 to 2.1.1 in /hedera-mirror-rest #7774
- Bump com.google.cloud:spring-cloud-gcp-dependencies from 5.0.2 to 5.0.3 #7773
- Bump io.hypersistence:hypersistence-utils-hibernate-63 from 3.7.2 to 3.7.3 #7772
- Bump software.amazon.awssdk:bom from 2.24.0 to 2.24.5 #7770
- Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0 #7769
- Bump io.freefair.gradle:lombok-plugin from 8.4 to 8.6 #7768
- Bump protobufVersion from 3.25.2 to 3.25.3 #7767
- Exclude spring security from graphql module #7752
- Bump com.google.cloud:spring-cloud-gcp-dependencies from 5.0.1 to 5.0.2 #7726
- Bump com.bucket4j:bucket4j-core from 8.7.1 to 8.8.0 #7725
- Bump software.amazon.awssdk:bom from 2.23.17 to 2.24.0 #7724
- Bump io.hypersistence:hypersistence-utils-hibernate-63 from 3.7.1 to 3.7.2 #7723
- Bump org.json:json from 20231013 to 20240205 #7722
- Bump vertxVersion from 4.5.2 to 4.5.3 #7721
- Bump com.hedera.hashgraph:sdk from 2.29.0 to 2.29.2 #7720
- Bump org.testcontainers:junit-jupiter from 1.19.4 to 1.19.5 #7719
- Bump express-openapi-validator from 5.1.3 to 5.1.6 in /hedera-mirror-rest #7717
- Bump mathjs from 12.3.1 to 12.3.2 in /hedera-mirror-rest #7716
- Bump
@testcontainers
/postgresql from 10.6.0 to 10.7.1 in /hedera-mirror-rest #7715 - Bump
@aws-sdk
/client-s3 from 3.504.0 to 3.511.0 in /hedera-mirror-rest #7714 - Bump github.com/ethereum/go-ethereum from 1.13.11 to 1.13.12 in /hedera-mirror-rosetta #7713
- Bump github.com/jackc/pgtype from 1.14.1 to 1.14.2 in /hedera-mirror-rosetta #7712
- Bump gorm.io/gorm from 1.25.6 to 1.25.7 in /hedera-mirror-rosetta #7711
- Bump github.com/go-playground/validator/v10 from 10.17.0 to 10.18.0 in /hedera-mirror-rosetta #7710
- Bump gorm.io/driver/postgres from 1.5.4 to 1.5.6 in /hedera-mirror-rosetta #7709
- Bump versions for v0.99.0-SNAPSHOT #7693
Contributors
We'd like to thank all the contributors who worked on this release!