Releases: hashgraph/hedera-mirror-node
v0.104.0-rc4
v0.104.0-rc4
v0.104.0-rc3
v0.104.0-rc3
v0.104.0-rc2
v0.104.0-rc2
v0.103.0
This release adds support for making metadata information from HIP-646, HIP-657, and HIP-765 available in the REST API. In particular, this adds a base64 encoded metadata
field to the /api/v1/tokens
endpoint. It also adds metadata
and metadata_key
fields to the /api/v1/tokens/{id}
endpoint.
The contract call API saw some noticeable performance improvements with the implementation of lazy loading for nested items. Previously it was eagerly loading all the account information even for simpler calls that didn't need the data. With the switch to make these additional queries lazy, we see an improvement of 50-90% in request throughput. That change plus an improvement in the performance of the NFT count query should result in additional performance and stability of the API.
Work is still underway on HIP-857 NFT allowance REST API. This release adds EVM address and alias support to the new endpoint and fixes the error response format.
Upgrading
This release requires a new PostgreSQL extension for efficient querying of bigint-based GIST indexes. The btree_gist extension is usually bundled with PostgreSQL and approved by most cloud providers . It however does still need to be manually enabled by running the following command before the upgrade:
create extension if not exists btree_gist;
The hedera-mirror-common
chart saw its dependencies updated and with that changes to the Prometheus Operator CRDs. If you're using the common chart, please run the following commands before upgrading to update the CRDs:
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.72.0/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
Enhancements
- Lazy load nested items during contract call #7953
- Add an importer duration graph to dashboard #8080
- Optimize cache control per endpoint #8077
- Enable prometheus exporter and disable util stackgres sidecars #8073
- Expose HIPs-646/657/765 token metadata in REST API #8059
- [StepSecurity] Harden GitHub Actions #8033
- Convert acceptances tests from WebClient to RestClient #8030
- Support EVM address and alias lookup in NFT allowance REST API #8026
- Fix balance opcode for 0.0.999 acceptance test #8022
- Add KYC key validations for grant and revoke logics #8013
- Verify support for Kubernetes 1.29 #8012
Bug Fixes
- Fix type conversion of
stackgres.postgresVersion
(0.103) #8131 - Fix chart install issue when applying migration v1.96.0 (0.103) #8121
- Fix equivalence acceptance test regression #8107
- Fix REST Java fallback exception handling #8104
- Handle null and empty token metadata, and adjust REST API spec tests accordingly #8076
- Optimize NftRepository queries in web3 #8070
- Increase max header size #8069
- Suppress NoSuchKey error in REST API #8065
- Fix issue when running RecordFileParserPerformanceTest #8016
- Fix flaky Rest test #8014
Dependency Upgrades
- Bump bouncy castle version to fix synk vulnerability #8110
- Bump github.com/Code-Hex/go-generics-cache from 1.3.1 to 1.5.1 in /hedera-mirror-rosetta #8103
- Bump github.com/coinbase/rosetta-sdk-go from 0.8.4 to 0.8.5 in /hedera-mirror-rosetta #8099
- Bump software.amazon.awssdk:bom from 2.25.26 to 2.25.31 #8096
- Bump com.playtika.testcontainers:embedded-google-pubsub from 3.1.5 to 3.1.6 #8093
- Bump com.github.vertical-blank:sql-formatter from 2.0.4 to 2.0.5 #8092
- Bump io.projectreactor:reactor-core-micrometer from 1.1.4 to 1.1.5 #8091
- Bump commons-io:commons-io from 2.16.0 to 2.16.1 #8090
- Bump qs from 6.12.0 to 6.12.1 in /hedera-mirror-rest #8089
- Bump
@aws-sdk
/client-s3 from 3.550.0 to 3.554.0 in /hedera-mirror-rest #8088 - Bump eslint-plugin-security from 2.1.1 to 3.0.0 in /hedera-mirror-rest #8087
- Bump
@testcontainers
/postgresql from 10.8.1 to 10.8.2 in /hedera-mirror-rest #8086 - Bump peter-evans/create-pull-request from 6.0.2 to 6.0.3 #8084
- Bump stefanzweifel/git-auto-commit-action from 5.0.0 to 5.0.1 #8083
- Bump protobufjs from 7.2.4 to 7.2.6 in /hedera-mirror-rest #8067
- Bump protobufjs from 7.2.4 to 7.2.6 in /hedera-mirror-rest/check-state-proof #8066
- Bump codecov/codecov-action from 4.2.0 to 4.3.0 #8063
- Bump securego/gosec from daf6f670f70b98339d8dfb078ce69d401b30bbe6 to 3b23ec8f0902ac0438a16fb2e5032202853e7122 #8054
- Bump gradle/actions from 3.2.0 to 3.2.1 #8053
- Bump docker/setup-buildx-action from 3.2.0 to 3.3.0 #8052
- Bump eslint-plugin-jest from 27.9.0 to 28.2.0 in /hedera-mirror-rest #8048
- Apply best practices to CI workflows #8046
- Bump pg from 8.11.4 to 8.11.5 in /hedera-mirror-rest #8045
- Bump
@testcontainers
/postgresql from 10.8.0 to 10.8.1 in /hedera-mirror-rest #8044 - Bump software.amazon.awssdk:bom from 2.25.21 to 2.25.26 #8042
- Bump
@aws-sdk
/client-s3 from 3.540.0 to 3.550.0 in /hedera-mirror-rest #8041 - Bump org.bouncycastle:bcprov-jdk15to18 from 1.77 to 1.78 #8040
- Bump commons-io:commons-io from 2.15.1 to 2.16.0 #8039
- Bump io.grpc:grpc-bom from 1.62.2 to 1.63.0 [#8038](htt...
v0.103.0-rc3
v0.103.0-rc3
v0.103.0-rc2
v0.103.0-rc2
v0.103.0-rc1
v0.103.0-rc1
v0.102.0
This is a smaller bug fix release with incremental improvements to some in-flight projects.
For HIP-857, an alpha version of the NFT allowance REST API is now in place. It can be used to experiment with while we work towards implementing the remaining query parameters and squashing any bugs. The Jooq library was integrated into the rest-java module to allow for dynamic SQL querying based upon user input. The next release should leverage this functionality to fully implement the remaining parts of the API.
Our Citus implementation was successfully deployed to the performance environment and it is passing initial benchmarks. Preliminary results show that Citus improves ingest performance by 600ms while sharding the data across multiple nodes. Promtail was enabled on Citus nodes to capture database logs and a new ZFS dashboard was added to Grafana.
Enhancements
- Add an importer duration metric #8006
- Add pause and unpause missing validations #7981
- Suppress log alerts for statement timeout #7979
- Add freeze and unfreeze missing validations #7973
- Enable promtail on citus nodes #7955
- Add a performance-citus environment #7950
- Add a ZFS dashboard and alerts #7881
- Integrate Jooq into rest-java to support dynamic SQL queries #7871
- Add an NFT allowance controller #7837
Bug Fixes
- Fix address(this) resolution when mirror address is passed in the call #7984
- Suppress stacktrace for invalid content encoding #7977
- Suppress long overflow error in gRPC API #7957
- Disable flaky estimate feature #7946
Dependency Upgrades
- Revert org.owasp:dependency-check-gradle from 9.1.0 to 8.4.3 #8002
- Bump dockerJavaVersion from 3.3.5 to 3.3.6 #7999
- Bump com.google.cloud:spring-cloud-gcp-dependencies from 5.1.0 to 5.1.2 #7998
- Bump com.bucket4j:bucket4j-core from 8.9.0 to 8.10.1 #7997
- Bump org.springframework.cloud:spring-cloud-dependencies from 2023.0.0 to 2023.0.1 #7995
- Bump software.amazon.awssdk:bom from 2.25.16 to 2.25.21 #7994
- Bump io.cucumber:cucumber-bom from 7.15.0 to 7.16.1 #7993
- Bump org.owasp:dependency-check-gradle from 8.4.3 to 9.1.0 #7991
- Bump vertxVersion from 4.5.6 to 4.5.7 #7990
- Bump
@testcontainers
/postgresql from 10.7.2 to 10.8.0 in /hedera-mirror-rest #7988 - Bump pg from 8.11.3 to 8.11.4 in /hedera-mirror-rest #7987
- Bump gorm.io/gorm from 1.25.8 to 1.25.9 in /hedera-mirror-rosetta #7986
- Bump glob from 10.3.10 to 10.3.12 in /hedera-mirror-rest/check-state-proof #7985
- Bump express to 4.19.2 #7978
- Bump
@aws-sdk
/client-s3 from 3.535.0 to 3.540.0 in /hedera-mirror-rest #7971 - Bump express from 4.18.3 to 4.19.1 in /hedera-mirror-rest #7970
- Bump com.hedera.hashgraph:hedera-protobuf-java-api from 0.48.2 to 0.48.3 #7965
- Bump vertxVersion from 4.5.5 to 4.5.6 #7964
- Bump software.amazon.awssdk:bom from 2.25.11 to 2.25.16 #7963
- Bump io.swagger:swagger-annotations from 1.6.13 to 1.6.14 #7962
- Bump flywayVersion from 10.9.1 to 10.10.0 #7960
- Bump github.com/jackc/pgtype from 1.14.2 to 1.14.3 in /hedera-mirror-rosetta #7959
- Bump gorm.io/gorm from 1.25.7 to 1.25.8 in /hedera-mirror-rosetta #7958
- Bump google.golang.org/protobuf from 1.32 to 1.33 #7949
- Bump spring-boot from 3.2.3 to 3.2.4 #7945
- Bump github.com/docker/docker from 24.0.7+incompatible to 24.0.9+incompatible in /hedera-mirror-rosetta #7935
- Bump versions for v0.102.0-SNAPSHOT #7928
Contributors
We'd like to thank all the contributors who worked on this release!
v0.102.0-rc1
v0.102.0-rc1
v0.101.0
This release adds support for storing the new mutable metadata information available in HIP-646, HIP-657, and HIP-765. For now, it just persists the data and in future releases we'll expose it via the REST APIs.
The /api/v1/tokens
REST API now supports multiple token.id
parameters. This allows users to efficiently query for multiple tokens in a single call.
The /api/v1/contracts/call
REST API saw some major performance improvements this release. The first change was to switch the Kubernetes node pools to a different machine class that provides dedicated resource allocation. The endpoint was also switched from a reactive MVC stack to a synchronous MVC stack. Simultaneously, the module enabled the new virtual thread technology that replaces platform threads. These changes combined to improve the request throughput by 1-2x.
Another important change was to enable batching between the download and parser threads in the importer. For now, this functionality is configured to behave as before with no batching. When configured manually, this can reduce sync times for historical data by at least 12x. In the future, we'll look at ways to automatically enable this functionality when the importer is attempting to catch up.
Enhancements
- Conditionally verify network stake in acceptance tests #7923
- Change web3 API to use Spring MVC & virtual threads #7900
- Add Acceptance test verification for HIP-873 decimals field #7873
- Update Rest API tokens endpoint to accept multiple token ids #7870
- Support batching between downloader and parser threads #7839
- Sync minAutoRenewDuration and maxAutoRenewDuration default values with services #7832
- HIP-646/657/765: Store token metadata and key #7787
Bug Fixes
- Disable flaky estimate feature (0.101.0) #7948
- Disable flaky estimate feature (0.101) #7947
- Optimize historical NFT count performance #7909
- Adapt gas_consumed migration query to get failed initcode from contract_result for failed contract create transactions #7883
- Fix NullPointerException when calculating gasConsumed #7875
Dependency Upgrades
- Bump Spring from 6.1.4 to 6.1.5 #7921
- Bump
@aws-sdk
/client-s3 from 3.529.1 to 3.535.0 in /hedera-mirror-rest #7920 - Bump mathjs from 12.4.0 to 12.4.1 in /hedera-mirror-rest #7919
- Bump com.google.guava:guava from 33.0.0-jre to 33.1.0-jre #7918
- Bump io.projectreactor:reactor-core-micrometer from 1.1.2 to 1.1.4 #7917
- Bump com.google.cloud:spring-cloud-gcp-dependencies from 5.0.4 to 5.1.0 #7916
- Bump vertxVersion from 4.5.4 to 4.5.5 #7915
- Bump org.openapitools:openapi-generator-gradle-plugin from 7.1.0 to 7.4.0 #7914
- Bump software.amazon.awssdk:bom from 2.25.6 to 2.25.11 #7911
- Bump org.springdoc:springdoc-openapi-webflux-ui from 1.7.0 to 1.8.0 #7910
- Bump follow-redirects from 1.15.4 to 1.15.6 in /hedera-mirror-rest #7905
- Bump github.com/jackc/pgx/v5 from 5.4.3 to 5.5.4 in /hedera-mirror-rosetta #7904
- Bump github.com/jackc/pgx/v4 from 4.17.2 to 4.18.2 in /hedera-mirror-rosetta #7896
- Bump org.apache.commons:commons-compress from 1.26.0 to 1.26.1 #7893
- Bump org.gaul:s3proxy from 2.1.0 to 2.2.0 #7892
- Bump software.amazon.awssdk:bom from 2.25.1 to 2.25.6 #7891
- Bump org.testcontainers:junit-jupiter from 1.19.6 to 1.19.7 #7890
- Bump qs from 6.11.2 to 6.12.0 in /hedera-mirror-rest #7889
- Bump
@aws-sdk
/client-s3 from 3.525.0 to 3.529.1 in /hedera-mirror-rest #7888 - Bump gorm.io/driver/postgres from 1.5.6 to 1.5.7 in /hedera-mirror-rosetta #7887
- Bump versions for v0.101.0-SNAPSHOT #7864
- Bump com.hedera.hashgraph:sdk from 2.29.2 to 2.30.0 #7847
Contributors
We'd like to thank all the contributors who worked on this release!