github hashgraph/hedera-mirror-node v0.83.0

latest releases: v0.117.1, v0.118.0-rc1, v0.116.1...
16 months ago

In this release we made the highly requested change to show the list of NFT transfers on the transactions list REST API. Originally, only the /api/v1/transactions/{id} showed the list of nft_transfers due to performance concerns with joining on another large table for such a heavily used and heavyweight API. To show this information while staying performant, we had to denormalize the NFT transfer information to nest it under the transaction table as a JSONB column. This avoids an extra join and allows us to return the given information with the existing query.

The mirror node is focused on tracking all possible changes to Hedera entities over time. To that end a NFT history table was created to capture all possible changes to a NFT over time. In addition to persisting this data, we're also exposing more of this historical information via the API. Now when the timestamp parameter is supplied on the /api/v1/accounts/{id} endpoint it will show the historical view of that account. Previously, the parameter would only be used for displaying the list of transactions at the given time. Expect additional improvements around historical entity information in the next release.

HIP-584 continues to make strides every release. This release focused on improving precompile support for /api/v1/contracts/call. There is now support for the CREATE2 opcode along with non-static contract state reads for precompile and non-precompile functions. Non-static contract modifications for non-precompile functions (excluding lazy account creation) was also worked on. Finally, acceptance test coverage was greatly increased and a number of bugs were addressed.

This release adds integration with the Stackgres Operator to provide a highly available Citus deployment. Stackgres is an established Kubernetes operator for PostgreSQL and their support for the Citus extension has made it easy to provide a production ready deployment without depending upon expensive, cloud-specific managed database services. This along with the ZFS volume compression we added in a previous release should greatly reduce the total cost of running a mirror node while providing horizontal scalability.

Upgrading

Expect upgrading to take about an hour due to the large NFT transfer migration in this release. As always, it's recommended upgrades be completed in a staging environment first (e.g. a red/black deployment) to allow for deployment verification and reduce downtime before being opened up to customer traffic.

Enhancements

  • HIP-584: Add tests for eth_call with modification functions #6240
  • HIP-584: Update openapi specification support table for web3 calls #6234
  • Show NFT transfers on transactions list API #6217
  • Make the prune SQL from history repositories more efficient. #6216
  • Change /transactions/{id} to use nested NFT transfers #6212
  • Add NFT transfers to transactions list API #6208
  • Change NFT history api to use nft table and nft_transfer jsonb column #6198
  • Reverting changes to enable workflows on nft transfer epic branch. #6197
  • Inefficient history repo prune SQL #6195
  • Add a highly available Citus deployment via Stackgres Operator #6192
  • HIP-584: Implement AssociatePrecompile #6173
  • Add NFT history table #6172
  • HIP-584: Copy Associate logic #6168
  • HIP-584: Alias improvements #6161
  • HIP-584: Provide implementation for transfer precompiles - Part1 #6155
  • HIP-584: Enable CREATE2 operation by saving new alias to alias map #6154
  • Cache and utilize StreamFilename path and incorporate node ID based path access in LocalStreamFileProvider #6153
  • Migrate data in nft_transfer table to transaction table #6129
  • Revert changes to enable workflows on nest nft transfer epic branch #6126
  • HIP-584: Implement account deletion in Updater #6123
  • HIP-584: Implement account deletion in Updater #6119
  • Fix nft balance and state tracking with nested nft transfer #6116
  • NFT history table #6112
  • HIP-584: Add tests for eth_call modification functions #6108
  • HIP-584: Integrate aliases map #6087
  • HIP-584: Copy AbstractAutoCreationLogic into hedera-mirror-web3 #6086
  • Enable LocalStreamFileProvider to access stream files from new node ID based bucket structure #6079
  • HIP-584: Return correct address for CREATE2 in HederaEvmStackedWorldStateUpdater #6077
  • HIP-584: Copy AbstractAutoCreationLogic into hedera-mirror-web3 #6076
  • Remove networkPrefix property and rework network property usage. #6072
  • HIP-584: Integrate aliases map into StackedStateFrames #6052
  • Add support for historical account details on accounts endpoint #6034
  • Create a NestNftTransferMigration async migration #6028
  • HIP-584: Adapt MirrorHTSPrecompiledContract to accept precompile calls #6022
  • Add NFT transfers to transactions list API #6011
  • Change NFT history API to use nested NFT transfers #6010
  • Change transaction by ID API to use nested NFT transfers #6009
  • Nest NFT transfers under transaction #6008
  • HIP-584: Adapt MirrorHTSPrecompiledContract to accept precompile calls #6005
  • HIP-584: eth_estimateGas w/o precompiles tests #5973
  • HIP-584: Copy AssociateLogic into hedera-mirror-web3 #5907
  • Add support for historical account details on accounts API #5862
  • Store/Cache pathName derived for NodeId based path #5759
  • HIP-584: Copy precompile pricing logic for gasFeeInTinybars into hedera-mirror-node #5722
  • HIP-584: Acceptance tests for simple eth_estimateGas scenarios #5499
  • Citus investigate high availability #5233
  • Show NFT transfers on transactions list API #4099

Bug Fixes

  • Fix acceptance tests creating extra tokens (0.83) #6292
  • HIP-584: Stabilize acceptance tests suite #6245
  • HIP-584: Fix build #6211
  • Disable network address book update in Rosetta #6206
  • Rosetta unit test fails after address book update #6205
  • Zero pad contract log data field #6189
  • ZeroPad unformatted data fields in contract log #6188
  • HIP-584: Fix regression issues with acceptance tests #6170
  • Fix slow token account upsert #6157
  • Token account upsert is slow #6152
  • Fix null sender id in Synthetic Nft Allowance Migration #6151
  • Synthetic Nft Allowance Owner Migration fails for null owner #6150
  • HIP-584: Stabilize acceptance tests related to web3 module #6145
  • Fix GCR image cleanup workflow regression #6128
  • GCR image cleanup workflow fails after dedup fix #6127
  • Fix GCR image cleanup workflow #6118
  • Nightly GCR image cleanup workflow fails #6117
  • Handle null hapiVersion in blocks API #6115
  • hapi_version is null.null.null on blocks API #6069

Documentation

Dependency Upgrades

  • Bump netty from 4.1.92.Final to 4.1.94.Final #6247
  • Bump io.hypersistence:hypersistence-utils-hibernate-62 from 3.4.2 to 3.4.4 #6233
  • Bump software.amazon.awssdk:bom from 2.20.83 to 2.20.87 #6232
  • Bump org.sonarsource.scanner.gradle:sonarqube-gradle-plugin from 4.2.0.3129 to 4.2.1.3168 #6230
  • Bump com.hedera.hashgraph:hedera-protobuf-java-api from 0.38.10 to 0.39.1 #6229
  • Bump testcontainersSpringBootVersion from 3.0.0-RC7 to 3.0.0-RC8 #6228
  • Bump io.grpc:grpc-bom from 1.55.1 to 1.56.0 #6226
  • Bump io.projectreactor:reactor-core-micrometer from 1.0.6 to 1.0.7 #6225
  • Bump @aws-sdk/client-s3 from 3.350.0 to 3.354.0 in /hedera-mirror-rest #6224
  • Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 in /hedera-mirror-rosetta #6223
  • Bump testcontainers from 9.8.0 to 9.9.1 in /hedera-mirror-rest #6222
  • Bump sinon from 15.1.0 to 15.1.2 in /hedera-mirror-rest #6221
  • Bump mathjs from 11.8.0 to 11.8.1 in /hedera-mirror-rest #6220
  • Bump mathjs from 11.8.0 to 11.8.1 in /hedera-mirror-rest/monitoring/monitor_apis #6219
  • Bump swagger-stats from 0.99.6 to 0.99.7 in /hedera-mirror-rest #6218
  • Bump docker/build-push-action from 3 to 4 #6215
  • Bump crazy-max/ghaction-import-gpg from 5.2.0 to 5.3.0 #6204
  • Bump peter-evans/create-pull-request from 4 to 5 #6203
  • Bump securego/gosec from 2.15.0 to 2.16.0 #6202
  • Bump snakeyaml from 1.33 to 2.0 #6193
  • Bump vertxVersion from 4.4.2 to 4.4.3 #6184
  • Bump software.amazon.awssdk:bom from 2.20.78 to 2.20.83 #6183
  • Bump com.google.guava:guava from 32.0.0-jre to 32.0.1-jre #6182
  • Bump com.graphql-java-generator:graphql-java-client-runtime from 2.0 to 2.1 #6181
  • Bump commons-io:commons-io from 2.12.0 to 2.13.0 #6180
  • Bump parse-duration from 1.0.3 to 1.1.0 in /hedera-mirror-rest #6179
  • Bump @aws-sdk/client-s3 from 3.345.0 to 3.350.0 in /hedera-mirror-rest #6178
  • Bump jest-extended from 3.2.4 to 4.0.0 in /hedera-mirror-rest #6177
  • Bump glob from 10.2.6 to 10.2.7 in /hedera-mirror-rest/check-state-proof #6176
  • Bump parse-duration from 1.0.3 to 1.1.0 in /hedera-mirror-rest/monitoring/monitor_apis #6175
  • Remove NPM overrides #6147
  • Bump github.com/spf13/viper from 1.15.0 to 1.16.0 in /hedera-mirror-rosetta #6144
  • Bump org.sonarsource.scanner.gradle:sonarqube-gradle-plugin from 4.1.0.3113 to 4.2.0.3129 #6143
  • Bump org.testcontainers:junit-jupiter from 1.18.1 to 1.18.3 #6142
  • Bump github.com/sirupsen/logrus from 1.9.2 to 1.9.3 in /hedera-mirror-rosetta #6141
  • Bump io.hypersistence:hypersistence-utils-hibernate-62 from 3.4.1 to 3.4.2 #6140
  • Bump software.amazon.awssdk:bom from 2.20.74 to 2.20.78 #6139
  • Bump io.swagger.parser.v3:swagger-parser-v3 from 2.1.14 to 2.1.15 #6138
  • Bump github.com/hashgraph/hedera-sdk-go/v2 from 2.24.2 to 2.24.3 in /hedera-mirror-rosetta #6137
  • Bump io.cucumber:cucumber-bom from 7.12.0 to 7.12.1 #6136
  • Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 in /hedera-mirror-rosetta #6135
  • Bump github.com/go-playground/validator/v10 from 10.14.0 to 10.14.1 in /hedera-mirror-rosetta #6134
  • Bump @aws-sdk/client-s3 from 3.341.0 to 3.345.0 in /hedera-mirror-rest #6133
  • Bump swagger-stats from 0.99.5 to 0.99.6 in /hedera-mirror-rest #6131
  • Bump versions for v0.83.0-SNAPSHOT #6121

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.