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
- Bump flywayVersion from 10.10.0 to 10.11.0 #8037
- Bump actions/checkout from 4.1.1 to 4.1.2 #8036
- Bump jooqVersion from 3.19.6 to 3.19.7 #8035
- Add support for nvd api keys during dependency check analysis #8034
- Replace gradle enterprise plugin with develocity #8032
- Bump Go from 1.21.3 to 1.22.2 #8020
Contributors
We'd like to thank all the contributors who worked on this release!