github hiero-ledger/hiero-mirror-node v0.165.0

3 hours ago

The Block Node effort saw major breaking changes this release. The new TSS 3.22.0 library was incorporated with the switch to Nova. The block proof was switched from a SHA-384 to a SHA-256 based proof. The Mirror Node was updated to support both block sizes for a period of time to allow operators to roll it out ahead of any Consensus Node release.

A new x-cluster-id response header was added to the REST API. This header can help clients deal with eventual consistency issues in multi-region deployments of Mirror Node by detecting if two requests came from different clusters when determining whether to retry.

As per HIP-1485, a new GET /api/v1/contracts/results/{transactionIdOrHash}/prestate REST API was added. This API is used for EVM compatibility with debug_traceTransaction with the prestateTracer option. It tracks the accounts and contracts that have been touched during an existing call. It has two different modes: diff and prestate. The prestate mode shows the accounts before the call without any changes or updates. If the diff mode is used it will show the difference between pre-execution and post-execution. This API is currently disabled by default and will be enabled in a future release once additional testing is completed. Below is an example response:

{
    "post": [],
    "pre": [
        {
            "address": "0xe1dA6BF26964aF9D7eEd9e03E93415D37aA96090",
            "balance": 42000,
            "code": "0x6080...",
            "nonce": 5,
            "storage": {
                "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000024"
            }
        }
    ]
}

A number of changes were made to improve the security and resiliency of the Mirror Node. We now throttle the list accounts by balance endpoint (e.g. /api/v1/accounts?account.balance=gt:1) to 5 requests per second per REST process. We also now throttle the gRPC API getNodes to 120 concurrent requests per process. Besides these, there were numerous other bug and security fixes.

Breaking Changes

The hiero.mirror.rest.response.includeHostInLink property that added the hostname and port to the next link in the response and header was removed in this release. This property was unused by Hedera mirror nodes.

Some properties in the web3 module were consolidated into generic request/response properties. The below table lists the property name changes with <name> being one of call, opcodes, and prestate. The underlying default values were not changed, but operators should change to the new property name if they explicitly overrode the value in their local configuration.

Old Name New Name
hiero.mirror.web3.opcode.tracer.enabled hiero.mirror.web3.api.<name>.enabled
hiero.mirror.web3.requestTimeout hiero.mirror.web3.api.<name>.response.timeout
hiero.mirror.web3.throttle.opcodeRequestsPerSecond hiero.mirror.web3.api.<name>.request.throttle

Enhancements

  • Integrate tss wraps library 3.22.0 (0.165) #14488
  • Add values per environment for x-cluster-id header in REST (testnet-na) #14444
  • Traefik chart config update #14434
  • Add x-cluster-id header in REST #14433
  • Optimize historical balance queries in web3 #14429
  • Add basic-auth to traefik dashboard - preprod #14427
  • Reject any protobuf field outside the allowlist in AccountCreateTransaction in Rosetta #14413
  • Add configurable TLS mode for monitor REST API client #14404
  • Use DataSize consistently for Java properties #14403
  • Add limit to pre-v5 record item count in a record file #14395
  • Add SHA-256 block root hash support #14389
  • Remove includeHostLink property #14388
  • Add validation for account map parsing in Rosetta #14377
  • Add individual cluster failure alerts for dual-cluster envs #14374
  • Limit concurrent account balance requests #14367
  • Add multi-alias account search option in Rosetta #14353
  • Limit streaming subscription for address book service in gRPC #14337
  • Add new endpoint for supporting prestateTracer with debug_traceTransaction #13582

Bug Fixes

  • Change query to go in batches (0.165) #14468
  • Fix syft native image error on arm64 (0.165) #14460
  • Fix pinger Docker build stage name #14455
  • Fix flaky acceptance tests related to gas estimation in EthereumFeature #14432
  • Fix importer native image due to Netty SharedArena #14422
  • Validate network node pagination links in monitor #14400
  • Fix native image behavior for state_override #14396
  • Fix EVM transaction index for scheduled transactions and hook chains #14392
  • Evict alias cache entries on entity deletion #14386
  • Use SpelHelper consistently in all repositories #14376
  • Sync Ethereum type 4 transaction authorization list encode/decode #14368
  • Disable synthetic contract id results #14366
  • Save initcode from EthereumTransaction embedded data #14357
  • Fix native image in web3 and rest-java #14339
  • Fix caching annotation conflict in web3 #14336
  • Harden and fix zfs autogrow, disk-reduction, and backup-recovery tooling #14335
  • Prefer the executed transaction over pre-execution failures when resolving contract hashes #14292

Dependency Upgrades

  • Bump hedera-protobuf-java-api to 0.80.0-alpha.2 (0.165) #14462
  • Fix vertx dependency in snyk check #14456
  • Bump Go from 1.27.0 to 1.27.2 #14451
  • Update consensus node library to v0.78.1-rc.1 #14435
  • Bump github.com/moby/sys/user from 0.3.0 to 0.4.1 in /rosetta #14414
  • Bump the dependencies group across 11 directories with 5 updates #14411
  • Bump @google-cloud/logging from 12.1.0 to 12.2.0 in /tools/log-downloader in the dependencies group #14410
  • Bump the dependencies group in /rest with 4 updates #14409
  • Bump github.com/thanhpk/randstr from 1.0.6 to 1.0.7 in /rosetta in the dependencies group #14408
  • Bump the dependencies group with 5 updates #14407
  • Bump the dependencies group with 8 updates #14406
  • Bump PostgreSQL from 42.7.13 to 42.7.14 #14401
  • Bump golang from 433790e to 3b77fc6 in /rosetta in the dependencies group across 1 directory #14385
  • Bump the dependencies group with 3 updates #14384
  • Bump github.com/hiero-ledger/hiero-sdk-go/v2 from 2.84.0 to 2.85.1 in /pinger in the dependencies group #14383
  • Bump github.com/klauspost/pgzip from 1.2.6 to 1.2.7 in /tools/bootstrap in the dependencies group #14382
  • Bump the dependencies group in /rest with 4 updates #14381
  • Bump github.com/hiero-ledger/hiero-sdk-go/v2 from 2.84.0 to 2.85.1 in /rosetta in the dependencies group #14380
  • Bump the dependencies group with 18 updates #14379
  • Bump @grpc/grpc-js from 1.14.4 to 1.14.5 in /tools/log-downloader #14370
  • Bump vulnerable javascript dependencies #14364
  • Bump Gradle from 9.7.1 to 9.8 #14363
  • Use pgsty/silo image to replace minio in testkube #14361
  • Bump undici from 8.10.0 to 8.11.2 in /rest #14360
  • Bump the dependencies group across 5 directories with 4 updates #14351
  • Bump step-security/paths-filter from 4.0.2 to 4.0.3 in the dependencies group #14350
  • Bump the dependencies group in /tools/log-downloader with 2 updates #14349
  • Bump the dependencies group in /rest with 5 updates #14348
  • Bump github.com/go-playground/validator/v10 from 10.30.4 to 10.30.5 in /rosetta in the dependencies group #14347
  • Bump parse-duration from 2.1.8 to 2.1.9 in /rest/monitoring in the dependencies group #14346
  • Bump jest from 30.5.1 to 30.5.2 in /tools/mirror-report in the dependencies group #14345
  • Bump the dependencies group with 13 updates #14344
  • Bump versions for v0.165.0-SNAPSHOT #14338

Deployments

  • Bump mainnet-staging to 0.165.0-rc1 #14470
  • Deploy 0.165.0-alpha2 to performance environment #14464
  • Deploy v0.165.0-alpha2 to mainnet-staging #14463
  • Prepare staging for new snapshot #14438
  • Remove mainnet-eu-hot-standby cluster #14426
  • Sync citus volume sizes in mainnet-eu #14424
  • Bring mainnet-eu-hot-standby online #14417
  • Add mainnet-eu-hot-standby cluster #14402
  • Disable account balance concurrency limit on mainnet-staging #14391

Contributors

Thank you to all the contributors who worked on this release:

@bilyana-gospodinova
@IvanKavaldzhiev
@jnels124
@martingeorgiev1
@nirbosl
@sdimitrov9
@steven-sheehy
@xin-hedera

Don't miss a new hiero-mirror-node release

NewReleases is sending notifications on new releases.