github hashgraph/hedera-mirror-node v0.54.0

latest releases: v0.117.1, v0.118.0-rc1, v0.116.1...
2 years ago

This release adds support for three new REST APIs and four HIPs.

HIP-21 describes the need for a free network info query to enable SDKs and other clients to be able to retrieve the current list of nodes. In v0.49.1, we added a new NetworkService.getNodes() gRPC API. In this release, we're adding an equivalent address book API to our REST API. In addition to the standard order and limit parameters, it supports a file.id query parameter to filter by the two address books 0.0.101 or 0.0.102 and a node.id query parameter to filter nodes and provide pagination.

GET /api/v1/network/nodes

{
  "nodes": [
    {
      "description": "",
      "file_id": "0.0.102",
      "memo": "0.0.3",
      "node_account_id": "0.0.3",
      "node_cert_hash": "0x3334...",
      "node_id": 0,
      "public_key": "0x308201...",
      "service_endpoints": [
        {
          "ip_address_v4": "13.124.142.126",
          "port": 50211
        }
      ],
      "timestamp": {
        "from": "1636052707.740848001",
        "to": null
      }
    }
  ],
  "links": {
    "next": null
  }
}

HIP-336 describes new Hedera APIs to approve and exercise allowances to a delegate account. An allowance grants a spender the right to transfer a predetermined amount of the payer's hbars or tokens to another account of the spender's choice. In v0.50.0 we added database support to store the new allowance transactions. In this release, two new REST APIs were created to expose the hbar and fungible token allowances. Full allowance support won't be available until a future release when consensus nodes enable it on mainnet.

GET /api/v1/accounts/{accountId}/allowances/crypto

{
  "allowances": [
    {
      "amount_granted": 10,
      "owner": "0.0.1000",
      "spender": "0.0.8488",
      "timestamp": {
        "from": "1633466229.96874612",
        "to": "1633466568.31556926"
      }
    },
    {
      "amount_granted": 5,
      "owner": "0.0.1000",
      "spender": "0.0.9857",
      "timestamp": {
        "from": "1633466229.96874612",
        "to": null
      }
    }
  ],
  "links": {}
}

GET /api/v1/accounts/{accountId}/allowances/tokens

{
  "allowances": [
    {
      "amount_granted": 10,
      "owner": "0.0.1000",
      "spender": "0.0.8488",
      "token_id": "0.0.1032",
      "timestamp": {
        "from": "1633466229.96874612",
        "to": "1633466568.31556926"
      }
    },
    {
      "amount_granted": 5,
      "owner": "0.0.1000",
      "spender": "0.0.9857",
      "token_id": "0.0.1032",
      "timestamp": {
        "from": "1633466229.96874612",
        "to": null
      }
    }
  ],
  "links": {}
}

Also on the REST API, we added support for HIP-329 CREATE2 addresses. Now any API that accepts a contract ID will also accept the 20-byte EVM address as a hex-encoded string. We improved the performance of the REST API by adding cache control headers to enable distributed caching via a CDN. The performance of the list transactions by type REST API saw a fix to improve its performance.

As part of HIP-260, contract precompile call data now populates new fields amount, gas, and function_parameter inside ContractFunctionResult within the TransactionRecord. Mirror node now stores these fields and exposes them via its existing contract results REST APIs.

There were a number of security improvements made to containerized mirror nodes. All Docker images now run as non-root regardless of running in Kubernetes or Docker Compose. The helm charts saw changes to conform to the Kubernetes restricted pod security standard. This ensures the mirror node runs with security best practices and reduces its overall attack surface. The Kubernetes Pod Security Standard replaces the deprecated PodSecurityPolicy and as such we've removed all configuration related to the latter.

Upgrading

This release has a long migration that is expected to take around 75 minutes to complete, depending upon your database hardware and configuration. As always, we recommend a red/black deployment to eliminate downtime during migrations. If you're using the hedera-mirror-common chart, please check the kube-prometheus-stack upgrade notes to ensure Prometheus Operator can update successfully.

Enhancements

  • Add a property to set API response headers #3479
  • Support configuration of default and per path response headers #3475
  • Support missing precompile contract function parameter details #3473
  • Token allowances REST api #3464
  • HIP-21 Address book REST API #3442
  • Support Rosetta suggested_fee #3439
  • Rosetta support fee estimation in /construction/metadata #3434
  • Container security improvements #3432
  • Update transactions openapi spec #3428
  • HIP-260 Precompile call data #3427
  • Crypto Allowance acceptance tests #3411
  • Bump versions for v0.54.0-SNAPSHOT #3408
  • Accept EVM address in REST APIs #3403
  • Add Crypto allowance REST API support #3388
  • Upgrade ETL importer #3351
  • HIP-329 CREATE2 REST API support #3271
  • Research mainnet public scalability #3248
  • HIP-336 Token allowance REST API #3247
  • HIP-336 Crypto allowance REST API #3244
  • HIP-21 Address book REST API #946

Bug Fixes

  • Fix rest stateproof downloading taking too long (0.54) #3540
  • Restore HexPrefix in null cases (0.54) #3539
  • Null functionParameters causing acceptance tests failures in 0.54 #3535
  • Remove Crypto Allowance Adjust Acceptance Test (0.54) #3533
  • Crypto Allowance Acceptance Failing on modified service node API #3531
  • Fix rosetta-api workflow failure caused by rosetta-cli breaking changes (0.54) #3524
  • Fix rosetta workflow bdd test build failure (0.54) #3523
  • Fix rosetta-api workflow failure #3511
  • Fix REST API contracts bytecode double 0x prefix #3487
  • REST API contracts bytecode contains double 0x prefix #3486
  • Fix zero allowance owner #3485
  • Fix ReadMe link. #3482
  • Rows with owner set to 0 in nft_allowance table #3481
  • gRPC API ReadMe Link Incorrect #3480
  • Fix k6 report generation when scenario failure #3476
  • k6 report generation fails when any scenario fails #3474
  • Speed up transactions by type lookup #3463
  • Fix node scale down issues #3441
  • Add passing RPS to k6 report #3437
  • REST API transactions by type performance #3433
  • Fix failing actions #3430
  • Fix monitor stopped publishing #3413
  • Fix rest API showing ecdsa public key as ProtobufEncoded key #3412
  • Fix k6 tests #3410
  • Rest API /accounts endpoint shows ECDSA public key as ProtobufEncoded #3405
  • Monitor stopped publishing #3404
  • Missing assessed_custom_fees field #3378
  • Consistently high cloudsql replication lag #3022
  • Slow transactions REST API with transaction type and limit #2385

Dependency Upgrades

  • Bump grpc.version from 1.45.0 to 1.45.1 #3497
  • Bump spring-boot to 2.6.6 #3492
  • Bump software.amazon.awssdk:bom from 2.17.157 to 2.17.158 #3472
  • Bump dependency-check-maven from 7.0.0 to 7.0.2 #3471
  • Bump embedded.testcontainers.version from 2.1.3 to 2.1.4 #3470
  • Bump prettier from 2.6.0 to 2.6.1 in /hedera-mirror-rest #3469
  • Bump spring-boot-starter-parent from 2.6.4 to 2.6.5 #3468
  • Bump aws-sdk from 2.1097.0 to 2.1102.0 in /hedera-mirror-rest #3467
  • Bump mathjs from 10.4.0 to 10.4.1 in /hedera-mirror-rest #3466
  • Bump @hashgraph/proto from 2.1.5 to 2.2.0 in /hedera-mirror-rest #3465
  • Bump @hashgraph/proto from 2.1.5 to 2.2.0 in /hedera-mirror-rest/check-state-proof #3462
  • Bump github.com/cucumber/godog from 0.12.4 to 0.12.5 in /hedera-mirror-rosetta #3461
  • Bump log4js from 6.4.3 to 6.4.4 in /hedera-mirror-rest/check-state-proof #3460
  • Bump github.com/coinbase/rosetta-sdk-go from 0.7.4 to 0.7.6 in /hedera-mirror-rosetta #3459
  • Bump github.com/hashgraph/hedera-sdk-go/v2 from 2.10.0 to 2.11.0 in /hedera-mirror-rosetta #3458
  • Bump hibernate-types-52 from 2.14.0 to 2.14.1 #3457
  • Bump express-openapi-validator from 4.13.6 to 4.13.7 in /hedera-mirror-rest #3456
  • Bump log4js from 6.4.3 to 6.4.4 in /hedera-mirror-rest #3455
  • Bump software.amazon.awssdk:bom from 2.17.152 to 2.17.157 #3454
  • Bump testcontainers from 8.4.0 to 8.6.0 in /hedera-mirror-rest #3453
  • Bump embedded.testcontainers.version from 2.1.0 to 2.1.3 #3452
  • Bump eslint-plugin-jest from 26.1.2 to 26.1.3 in /hedera-mirror-rest #3450
  • Bump mathjs from 10.4.0 to 10.4.1 in /hedera-mirror-rest/monitoring/monitor_apis #3449
  • Bump log4js from 6.4.3 to 6.4.4 in /hedera-mirror-rest/monitoring/monitor_apis #3447
  • Bump minimist from 1.2.5 to 1.2.6 in /hedera-mirror-rest/monitoring/monitor_apis #3440
  • Bump minimist from 1.2.5 to 1.2.6 in /hedera-mirror-rest/check-state-proof #3435
  • Bump aws-sdk from 2.1092.0 to 2.1097.0 in /hedera-mirror-rest #3429
  • Bump yargs from 17.3.1 to 17.4.0 in /hedera-mirror-rest/check-state-proof #3426
  • Bump log4js from 6.4.2 to 6.4.3 in /hedera-mirror-rest/check-state-proof #3425
  • Bump gorm.io/gorm from 1.23.2 to 1.23.3 in /hedera-mirror-rosetta #3424
  • Bump github.com/stretchr/testify from 1.7.0 to 1.7.1 in /hedera-mirror-rosetta #3423
  • Bump vertx-pg-client from 4.2.5 to 4.2.6 #3422
  • Bump hedera-protobuf-java-api from 0.23.1 to 0.24.0 #3421
  • Bump software.amazon.awssdk:bom from 2.17.148 to 2.17.152 #3420
  • Bump prettier from 2.5.1 to 2.6.0 in /hedera-mirror-rest #3418
  • Bump eslint-plugin-jest from 26.1.1 to 26.1.2 in /hedera-mirror-rest #3417
  • Bump log4js from 6.4.2 to 6.4.3 in /hedera-mirror-rest #3416
  • Bump log4js from 6.4.2 to 6.4.3 in /hedera-mirror-rest/monitoring/monitor_apis #3415
  • Bump asn1js from 2.2.0 to 2.3.2 in /hedera-mirror-rest #3414

Contributors

We'd like to thank all the contributors who worked on this release!

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

NewReleases is sending notifications on new releases.