Releases: hashgraph/hedera-mirror-node
v0.109.0
This release adds support for the TokenReject
transaction from HIP-904 Frictionless Airdrops. Similarly, support for unlimited max automatic token associations from HIP-904 was added to the /api/v1/contracts/call
API.
There were a number of other notable bug fixes and performance optimizations. Please check the full changelog below for further details.
Enhancements
- Update protobuf to 0.52 GA version #8732
- Remove stateproof alpha from OpenAPI #8731
- Support unlimited max automatic token associations in web3 #8684
- Add support for TokenReject transaction #8683
Bug Fixes
- Reorder monitor helm test (0.109) #8739
- Increase prometheus default memory limits to 4GB (0.109) #8737
- Fix yq install in deploy workflow #8729
- Support multiple namespaces for auto deployment #8722
- Fix chart workflow #8685
- Optimize web3 fungible token historical total supply query #8666
- Fix contract result logs for zero address #8665
- Make rest monitor config in chart mergeable #8658
- Correct mainnet-citus values file name #8645
Deployments
- Deploy 0.109.0-rc1 to performance v1 and v2. #8744
- Deploy v0.109.0-rc1 to previewnet-citus #8740
- Automate staging mainnet-citus deploy #8727
- Route testnet traffic to testnet-eu #8723
- Add settings to optimize for catchup mode #8721
- Update Mainnet EU CItus to 108 #8692
- Automate staging-sm deployment #8664
- Automate mainnet-eu deployment #8663
- Update Citus Mainnet EU #8660
- Update Staging Citus #8648
- Disable importer and monitor in mainnet eu to perform clone #8644
- Add a Citus deployment to mainnet-eu #8640
Dependency Upgrades
- Bump glob from 10.4.2 to 10.4.3 in /hedera-mirror-rest/check-state-proof #8719
- Bump org.owasp:dependency-check-gradle from 10.0.1 to 10.0.2 #8718
- Bump com.hedera.hashgraph:hedera-protobuf-java-api from 0.50.0 to 0.51.2 #8717
- Bump
@aws-sdk
/client-s3 from 3.606.0 to 3.609.0 in /hedera-mirror-rest #8716 - Bump io.hypersistence:hypersistence-utils-hibernate-63 from 3.8.0 to 3.8.1 #8714
- Bump software.amazon.awssdk:bom from 2.26.12 to 2.26.16 #8712
- Bump flywayVersion from 10.15.0 to 10.15.2 #8711
- Bump mathjs from 13.0.1 to 13.0.2 in /hedera-mirror-rest #8710
- Bump qs from 6.12.1 to 6.12.2 in /hedera-mirror-rest #8709
- Bump
@testcontainers
/redis from 10.10.0 to 10.10.1 in /hedera-mirror-rest #8708 - Bump
@testcontainers
/postgresql from 10.10.0 to 10.10.1 in /hedera-mirror-rest #8707 - Bump github.com/ethereum/go-ethereum from 1.14.5 to 1.14.6 in /hedera-mirror-rosetta #8706
- Bump actions/upload-artifact from 4.3.3 to 4.3.4 #8705
- Bump docker/build-push-action from 6.2.0 to 6.3.0 #8694
- Bump dependency-check-gradle from 9.2.0 to 10.0.1 #8679
- Bump io.grpc:grpc-bom from 1.64.0 to 1.65.0 #8678
- Bump software.amazon.awssdk:bom from 2.26.7 to 2.26.12 #8677
- Bump com.google.cloud:spring-cloud-gcp-dependencies from 5.4.1 to 5.4.3 #8676
- Bump io.hypersistence:hypersistence-utils-hibernate-63 from 3.7.7 to 3.8.0 #8673
- Bump mathjs from 13.0.0 to 13.0.1 in /hedera-mirror-rest #8669
- Bump
@aws-sdk
/client-s3 from 3.600.0 to 3.606.0 in /hedera-mirror-rest #8668 - Bump docker/build-push-action from 6.1.0 to 6.2.0 #8661
- Bump versions for v0.109.0-SNAPSHOT #8646
Contributors
We'd like to thank all the contributors who worked on this release!
v0.109.0-rc1
v0.109.0-rc1
v0.109.0-beta1
v0.109.0-beta1
v0.108.0
HIP-801 Add support for debug_traceTransaction
RPC API saw its implementation completed this release. The new /api/v1/contracts/results/{id}/opcodes
is now fully implemented and will re-execute the given contract transaction and return the executed opcodes. As noted in the last release, this API is not enabled on Hedera managed mirror nodes and is intended for local execution. The next release will add additional testing and refinements, but for the most part the HIP is complete.
HIP-869 Dynamic address book work was started this sprint with a design document added that lays out its impact on the mirror node.
There was a lot of effort put into automating the mirror node deployment process. A GitOps model is already utilized to help automate a lot of the rollout process, but in the case of multi-cluster environments each cluster would have to be manually updated. We know leverage GitHub repository dispatch to automate the PR creation to update the secondary cluster whenever the first cluster completes and its automated testing completes.
Citus saw further refinements in this release including work to optimize the topic message lookup migration to improve its runtime from weeks down to below an hour. The contract logs and contract result APIs were optimized to improve their performance on Citus. As a result, we felt comfortable enough to re-enable Citus in testnet and beginning work on the mainnet migration.
Enhancements
- Auto update staging-lg to latest release #8662
- Deploy v0.108.0-beta1 to preprod/performance-citus #8656
- Upgrade mainnet-eu to v0.107.2 #8655
- Update performance to v0.108.0-beta1 #8654
- Route traffic to testnet-citus in testnet-eu cluster #8653
- Update mainnet-staging to v0.108.0-beta1 #8652
- Upgrade mainnet-na to v0.107.2 #8651
- Update integration #8641
- Upgrade previewnet-citus to v0.107.2 #8634
- Optimize topic message lookup migration #8631
- Automate testnet-eu and testnet-citus deployment PRs #8629
- Automate previewnet-citus deployment PR #8626
- Route traffic back to testnet in testnet-eu #8603
- Log contract call payload #8602
- Optimize Ethereum Transaction for Contract Results List #8599
- Update contract log query for Citus performance #8595
- Increase web3 RPS throttle for staging citus #8593
- Increase delay duration to avoid pod scheduling issue #8592
- Update stateproof credentials to the new GCP keys in testnet-na #8588
- Route traffic to testnet-citus in testnet-eu #8586
- Report DOWN on Rest API connection issue in monitor #8585
- Enable testnet-citus in testnet-eu cluster #8584
- Upgrade mainnet-citus in staging to v0.107.1 #8579
- Fix github dispatch in preprod #8578
- Update default account ID for K6 REST test #8576
- Automate performance-citus deployment #8556
- Automate multi-cluster deployment PRs #8555
- TESTNET-NA: Updated importer stream bucket read credentials #8553
- Updated importer stream bucket read credentials in testnet-eu #8552
- Implement cache control support in REST Java #8551
- Support filter k6 test cases by name #8548
- ci: Update madhead/semver-utils to use the step-security maintained version #8543
- Allow k6 to run for multiple namespaces #8538
- Increase default memory for prometheus #8535
- Initial design doc for Dynamic Address Book. #8532
- Refactor
SelfDestructOperationTest
#8457 - Implement opcode logger functionality #8241
Bug Fixes
- Fix Snyk Open Source check failing #8642
- Fix testnet-eu auto deploy #8636
- Fix auto deploy kustomization #8635
- Fix value of v in contract result APIs for legacy Ethereum transactions #8632
- ci: Fix labels on runs-on stanza such that they use Linux instead of linux #8628
- Update github dispatch token in preprod #8610
- Fix deploy workflow #8609
- Rest API redis error: wrong number of arguments for 'mget' command #8606
- Improve k6 perf test results consistency #8598
- Make thresholds impossible to breach in k6 tests #8594
- Fix monitor API failures in kubernetes #8583
- Fix inconsistent balance results with tokens REST API #8544
- Suppress recoverable error for inactive evm addresses #8536
- Support redis sentinel in REST API #8533
Dependency Upgrades
- Bump
@testcontainers
/redis from 10.9.0 to 10.10.0 in /hedera-mirror-rest #8622 - Bump
@aws-sdk
/client-s3 from 3.598.0 to 3.600.0 in /hedera-mirror-rest #8621 - Bump nodemon from 3.1.3 to 3.1.4 in /hedera-mirror-rest #8620
- Bump
@testcontainers
/postgresql from 10.9.0 to 10.10.0 in /hedera-mirror-rest #8619 - Bump glob from 10.4.1 to 10.4.2 in /hedera-mirror-rest/check-state-proof #8618
- Bump docker/build-push-action from 6.0.2 to 6.1.0 #8617
- Bump org.springframework.boot:spring-boot-gradle-plugin from 3.3.0 to 3.3.1 #8616
- Bump software.amazon.awssdk:bom from 2.26.3 to 2.26.7 #8615
- Bump io.hypersistence:hypersistence-utils-hibernate-63 from 3.7.6 to 3.7.7 #8614
- Bump io.projectreactor:reactor-core-micrometer from 1.1.6 to 1.1.7 #8613
- Bump com.graphql-java-generator:graphql-gradle-plugin3 from 2.6 to 2.7 #8612
- Bump com.graphql-java-generator:graphql-java-client-runtime from 2.6 to 2.7 #8611
- Bump docker/build-push-action from 6.0.1 to 6.0.2 #8600
- Bump docker/build-push-action from 6.0.0 to 6.0.1 #8590
- Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 #8589
- Bump docker/build-push-action from 5.4.0 to 6.0.0 #8582
- Bump actions/checkout from 4.1.6 to 4.1.7 #8581
- Bump gradle/actions from 3.4.0 to 3.4.2 #8580
- Bump com.hedera.hashgraph:sdk from 2.32.0 to 2.34.0 #8571
- Bump com.graphql-java-generator:graphql-java-client-runtime from 2...
v0.108.0-beta1
v0.108.0-beta1
v0.107.2
v0.107.1
There was a release issue with v0.107.0 so this v0.107.1 was created to workaround it. This release contains the initial work towards HIP-801 debug_traceTransaction
API. HIP-801 adds a new /api/v1/contracts/results/{transactionIdOrHash}/opcodes
REST API that can be used to debug previously executed transactions. This API works by re-executing the transaction on the mirror node using the state at the time it originally reached consensus and returning the executed opcodes. Since this is a slow and resource intensive API, it will be disabled by default. It is expected that developers run a local mirror node with a forked state to debug the transaction locally. This API is still under development and currently returns 501 Not Implemented status code.
HIP-874 is now fully complete with both acceptance and performance tests added and passing. This endpoint along with any other missing endpoints were added to our monitor API to improve our production monitoring capability.
Most of the effort in this release went into Citus database related fixes and improvements. The accounts list and NFT transaction history APIs performance were greatly improved under Citus. The topic message lookup migration was converted to run asynchronously to reduce the overall time to migrate from PostgreSQL. A cache was added for the contract runtime bytecode, improving the performance of /api/v1/contracts/call
under both both databases. A fix was put in place for inconsistent token balances and fungible token supply being returned in the API. The performance of various historical contract calls were improved by the addition of caches and query optimizations. Citus connection management was revisited and tuned to improve the throughput for cross shard queries.
Enhancements
- Disable contract monitor endpoints #8521
- Improve NFT transaction history API performance in V2 #8490
- Adjust the release checklist #8487
- Adding monitor token tests #8480
- include account query for token account query #8479
- Remove altered description when inserting repeatable migrations #8473
- Convert topic message lookup to async migration #8472
- Add accounts allowances, accounts nft and the
/contract/call
tests #8470 - Increase github workflow gradle job timeout #8465
- Cache runtime bytecode #8431
- Use web3j in acceptance tests #8424
- Adding schedules,contracts and topic endpoints to the monitor #8417
- Add
@web3
to equivalence.feature. #8416 - Add topic ID REST API to k6 #8406
- Refactor AllowancesControllerTest to extend from ControllerTest #8405
- Adding network tests to the rest monitor. #8399
- Add gas limit calculation and lower default contract call gas #8396
- Fix Token Allowances CTE #8391
- Refactor
ContractCallNativePrecompileTest
in web3 #8382 - feat: Add new opcodes endpoint #8245
- Add gasConsumed cases for Ethereum transactions #8207
- EthereumTransaction acceptance tests #8123
Bug Fixes
- Fix inconsistent balance results with tokens REST API (0.107) #8572
- Allow null entity ID in contract result response #8520
- fix: debug_traceTransaction with opcode logger returns failed for contract deploy #8507
- fix: Handle empty
EthereumTransaction.toAddress
when buildingCallServiceParameters
#8489 - Fix invalid next link when the last pagination param has eq operator #8488
- Fix restjava Topics Metadata API ingress path type #8477
- Change FixFungibleTokenTotalSupplyMigration to use deduped token balance info #8471
- Fixing integration rest monitor. #8469
- Add fallback to REST API fileService #8468
- Undo file_data time partition in V2 #8462
- Optimize citus connection management and cache some web3 repo methods #8432
- Fix flaky MetricsConfigurationTest and BalanceReconciliationServiceTest #8428
- Add system file fallback to Web3 #8418
Dependency Upgrades
- Bump eslint-plugin-jest from 28.5.0 to 28.6.0 in /hedera-mirror-rest #8504
- Bump pg from 8.11.5 to 8.12.0 in /hedera-mirror-rest #8502
- Bump nodemon from 3.1.2 to 3.1.3 in /hedera-mirror-rest #8501
- Bump
@aws-sdk
/client-s3 from 3.588.0 to 3.592.0 in /hedera-mirror-rest #8500 - Bump github.com/ethereum/go-ethereum from 1.14.3 to 1.14.5 in /hedera-mirror-rosetta #8499
- Bump github.com/hashgraph/hedera-sdk-go/v2 from 2.37.0 to 2.38.0 in /hedera-mirror-rosetta #8498
- Bump step-security/harden-runner from 2.8.0 to 2.8.1 #8497
- Bump software.amazon.awssdk:bom from 2.25.64 to 2.25.69 #8495
- Bump io.hypersistence:hypersistence-utils-hibernate-63 from 3.7.5 to 3.7.6 #8493
- Bump flywayVersion from 10.13.0 to 10.14.0 #8491
- Bump madhead/semver-utils from 40bbdc6e50b258c09f35f574e83c51f60d2ce3a2 to ed58b1e544d13426a67fea39cb19638b3c5623d4 #8482
- Bump github.com/go-playground/validator/v10 from 10.20.0 to 10.21.0 in /hedera-mirror-rosetta #8447
- Bump github.com/spf13/viper from 1.18.2 to 1.19.0 in /hedera-mirror-rosetta #8446
- Bump org.springframework.cloud:spring-cloud-dependencies from 2023.0.1 to 2023.0.2 #8443
- Bump com.google.guava:guava from 33.2.0-jre to 33.2.1-jre #8442
- Bump software.amazon.awssdk:bom from 2.25.60 to 2.25.64 #8441
- Bump jooqVersion from 3.19.8 to 3.19.9 #8440
- Bump com.google.cloud:spring-cloud-gcp-dependencies from 5.3.0 to 5.4.1 #8439
- Bump
@aws-sdk
/client-s3 from 3.583.0 to 3.588.0 in /hedera-mirror-rest #8438 - Bump express-openapi-validator from 5.1.6 to 5.2.0 in /hedera-mirror-rest #8437
- Bump nodemon from 3.1.1 to 3.1.2 in /hedera-mirror-rest #8436
- Bump mathjs from 12.4.2 to 13.0.0 in /hedera-mirror-rest #8435
- Bump swagger-ui-express from 5.0.0 to 5.0.1 in /hedera-mirror-rest #8434
- Bump versions for v0.107.0-SNAPSHOT #8398
Contributors
We'd like to thank all the contributors who worked on this release!
v0.107.0-rc1
v0.107.0-rc1
v0.106.1
Fixed an ingress issue that prevented proper operation in production networks.
Bug Fixes
- Fix restjava Topics Metadata API ingress path type (0.106) #8478
Contributors
We'd like to thank all the contributors who worked on this release!
v0.106.0
The HIP-857 NFT Allowances REST API is now fully feature complete.
Our second new Java-based REST API, HIP-874 Topic Metadata API, introduces the new /api/v1/topics/{topicId}
endpoint for retrieving the topic metadata described in the HIP; including the memo, submit key, and deleted fields as well as additional relevant entity information.
For web3 /api/v1/contract/call
, in addition to the existing requests per second rate limiter, a maximum gas used per second limiter has been added. By default it is configured at the maximum supported value of 1,000,000,000 gas per second. This can be set to a smaller value via the hedera.mirror.web3.throttle.gasPerSecond
property.
The REST API Redis cache introduced in 0.104.0 is now enabled by default.
Our sharded database, Citus, continues to make progress with this release incorporating additional enhancements to the PostgreSQL to Citus migration script as well as performance improvements around token transfers and contract log insertion.
Upgrading
Refer to docs/configuration.md
for the full spectrum of hedera.mirror.rest.redis.*
properties that may be used to tune for your specific environment. The uri
property must be set appropriately to interact with your Redis service.
When using a managed Redis service from a cloud provider (e.g., Google Cloud Memory Store Redis), setting the parameters for the REST service programmatically via the new properties may not be supported, and manual configuration by other means may be necessary.
If the Redis cache for the REST API is not desired, simply set hedera.mirror.rest.redis.enabled
to false
.
The previous web3 requests per second rate limit property hedera.mirror.web3.evm.rateLimit
has been renamed to hedera.mirror.web3.throttle.requestsPerSecond
.
Enhancements
- Add a gas limit metric to contract call #8390
- Log additional details for query timeout exception #8388
- Add topic ID REST API acceptance tests #8387
- Check support of negative one value for maxAutomaticTokenAssociations #8352
- Add a get topic REST API #8349
- Fix slowdown finding token transfers in v2 #8342
- Include transaction_hash For V2 Migration #8341
- Fix NFT allowance acceptance tests #8339
- Increase web3 maxDataSize to 128 KiB #8322
- Prevent ZFS components from restarting on every deploy #8317
- Add k6 tests for the NFT allowances API #8315
- 7937 Add k6 config for NFT allowances API testing. #8308
- Add gas throttle implementation #8266
- Add linkFactory for NftAllowances Java REST API #8264
- Nft allowances Range additions #8261
- HIP-646/657/765: Implement token metadata acceptance tests #8166
Bug Fixes
- Token creation with
INHERIT
keys via smart contract throwsCONTRACT_REVERT_EXECUTED
#8384 - Fix estimate precompile tests gas estimations for transfer #8377
- Fix NFT allowance acceptance test regression #8362
- Fix some NftAllowanceRepository corner cases #8359
- REST API returns unknown transaction type #8319
Dependency Upgrades
- Bump org.openapitools:openapi-generator-gradle-plugin from 7.5.0 to 7.6.0 #8376
- Bump software.amazon.awssdk:bom from 2.25.55 to 2.25.60 #8375
- Bump vertxVersion from 4.5.7 to 4.5.8 #8372
- Bump extensionless from 1.9.7 to 1.9.9 in /hedera-mirror-rest/check-state-proof #8370
- Bump glob from 10.3.15 to 10.4.1 in /hedera-mirror-rest/check-state-proof #8369
- Bump nodemon from 3.1.0 to 3.1.1 in /hedera-mirror-rest #8368
- Bump
@aws-sdk
/client-s3 from 3.577.0 to 3.583.0 in /hedera-mirror-rest #8367 - Bump Spring Boot from 3.2.5 to 3.3.0 #8365
- Bump step-security/harden-runner from 2.7.1 to 2.8.0 #8347
- Bump codecov/codecov-action from 4.4.0 to 4.4.1 #8343
- Bump io.grpc:grpc-bom from 1.63.0 to 1.64.0 #8335
- Bump software.amazon.awssdk:bom from 2.25.50 to 2.25.55 #8334
- Bump com.google.cloud:spring-cloud-gcp-dependencies from 5.2.1 to 5.3.0 #8333
- Bump flywayVersion from 10.12.0 to 10.13.0 #8332
- Bump org.owasp:dependency-check-gradle from 9.1.0 to 9.2.0 #8331
- Bump io.cucumber:cucumber-bom from 7.17.0 to 7.18.0 #8330
- Bump io.projectreactor:reactor-core-micrometer from 1.1.5 to 1.1.6 #8329
- Bump sinon from 17.0.2 to 18.0.0 in /hedera-mirror-rest #8328
- Bump
@aws-sdk
/client-s3 from 3.574.0 to 3.577.0 in /hedera-mirror-rest #8327 - Bump actions/checkout from 4.1.5 to 4.1.6 #8326
- Bump Rosetta dependencies #8324
- Bump securego/gosec to v2.20.0 #8316
- Bump codecov/codecov-action from 4.3.1 to 4.4.0 #8314
- Bump google-github-actions/auth from 2.1.2 to 2.1.3 #8312
- Bump securego/gosec from 8658b8eab6c8fa98fd180f718b1961718e0dce48 to 417a44c73be12f54ac1732daaca952f3d3a0ba9d #8307
Contributors
We'd like to thank all the contributors who worked on this release!