Mirror Node 0.62 saw HIP-406 staking related improvements to its REST API and partial support for HIP-513 contract traceability.
The /api/v1/network/nodes
will now use the address book stake as a fallback when it has not seen any NodeStakeUpdate
transactions on the network. This release also contains a new network stake REST API /api/v1/network/stake
to show aggregate stake information common to all nodes:
{
"max_staking_reward_rate_per_hbar": 17808,
"node_reward_fee_fraction": 0.0,
"stake_total": 35000000000000000,
"staking_period": {
"from": "1658774045.000000000",
"to": "1658860445.000000000"
},
"staking_period_duration": 1440,
"staking_periods_stored": 365,
"staking_reward_fee_fraction": 1.0,
"staking_reward_rate": 100000000000,
"staking_start_threshold": 25000000000000000
}
HIP-513 Smart Contract Traceability adds support for an optional sidecar to contain contract traceability information. In this release, the mirror node supports downloading and persisting contract state changes, contract initcode, contract runtime bytecode, and contract actions (AKA traces). The /api/v1/contracts/{id}
REST API now shows the runtime bytecode for newly created contracts. The next release will support a sidecar migration that will populate contract state changes and bytecode for all existing contracts.
HIP-435 Record Stream V6 required changes to the state proof REST API in order to not break when V6 was enabled. With this release, the API was updated to support record files in the new v6 format.
The Rosetta API saw a few minor fixes and improvements. It now uses the Hedera network alias everywhere in the Rosetta server . It also fixes the issue that Rosetta did not support alias as the from address for crypto transfers. Additionally, the Rosetta sub_network_identifier
was disabled since it was not needed.
There were a surprising number of technical debt improvements this release. The REST API and monitor API were both converted from CommonJS to ES6 modules, allowing us to finally upgrade some of our dependencies to the latest version. The REST API spec tests were organization into folders by endpoint and changed to use a single database container for the entire suite. On the importer, mutable contract information was merged into the entity
table. The RecordItem
constructor was removed everywhere in favor its builder method. Finally, we added parser performance tests to be able to generate large record files and stress test record file ingestion.
Breaking Changes
In a recent release, we added the stake_total
field to the /api/v1/network/nodes
API to show the aggregate stake of the network. With the addition of the new /api/v1/network/stake
API, we now have a separate API to return aggregate staking information associated with the network. As such, we made the decision in this release to remove the stake_total
field from the response of the /api/v1/network/nodes
API to stay consistent. If you're using this field, please update your code to use the stake_total
field in the /api/v1/network/stake
API.
Enhancements
- Merge contract and entity tables #4227
- Use hedera network alias in Rosetta #4190
- Rosetta use hedera network alias as derived account address #4189
- Add Network Stake REST API #4188
- HIP-513 Add runtime bytecode to get contract REST API #4186
- Optimize token balances in Rest API #4184
- Convert js monitor from CommonJS to ES6 modules #4179
- Convert JS monitor from CommonJS to ES6 modules #4178
- HIP-435 State Proof API #4177
- Add network stake information #4173
- Organize REST API spec tests into folders by endpoint #4168
- Set default operator to 0.0.2 #4166
- Refactor to use RecordItem builder #4165
- Combine contract and entity tables #4150
- Rename PrngTransaction to UtilPrngTransaction #4147
- Disable rosetta sub_network_identifier #4146
- HIP-351 Rename PrngTransaction to UtilPrngTransaction #4145
- Use a single db container for the rest API test suite #4143
- Convert rest api from CommonJS to ES6 Modules #4141
- Use address book stake as a fallback #4140
- Bump versions for v0.62.0-SNAPSHOT #4138
- HIP-406 Use address book stake for node REST API #4134
- HIP-406 Network Stake REST API #4133
- HIP-406 Persist network stake #4132
- Optimize token balances in REST API #4131
- HIP-435 State Proof API #4111
- HIP-513 Add Persistence for Sidecar Data #4107
- Parser performance tests #4053
- HIP-513 Persist traceability info #3972
- HIP-513 Add runtime bytecode to get contract REST API #3580
- Convert REST API from CommonJS to ES6 modules #2874
Bug Fixes
- Fix incorrect column default in EntityMetadataRegistry (0.62) #4271
- Add UNKNOWN to OpenAPI transaction types #4200
- Monitor doesn't recover if REST endpoint unreachable on startup #4180
- Use shard.realm.num account id as transaction payer in Rosetta #4174
- Rosetta doesn't support alias account as from address for crypto transfer #4170
- Fix NPE in StreamFileParser when items was reset to null #4149
- NPE when importer tries to reparse a record file after db transaction time out #4148
- Update Get Blocks Order By Clause #4135
- Get block by timestamp times out #4105
Dependency Upgrades
- Bump protobuf-java from 3.21.3 to 3.21.4 #4220
- Bump embedded.testcontainers.version from 2.2.4 to 2.2.5 #4219
- Bump docker-maven-plugin from 0.40.1 to 0.40.2 #4218
- Bump log4js from 6.6.0 to 6.6.1 in /hedera-mirror-rest/check-state-proof #4215
- Bump node-fetch from 3.2.9 to 3.2.10 in /hedera-mirror-rest/check-state-proof #4214
- Bump github.com/ethereum/go-ethereum from 1.10.20 to 1.10.21 in /hedera-mirror-rosetta #4213
- Bump node-fetch from 3.2.9 to 3.2.10 in /hedera-mirror-rest/monitoring/monitor_apis #4212
- Bump aws-sdk from 2.1181.0 to 2.1185.0 in /hedera-mirror-rest #4211
- Bump software.amazon.awssdk:bom from 2.17.238 to 2.17.243 #4210
- Bump headlong from 6.6.2 to 7.0.0 #4209
- Bump eslint-plugin-jest from 26.6.0 to 26.7.0 in /hedera-mirror-rest #4208
- Bump hibernate-types-52 from 2.17.0 to 2.17.1 #4207
- Bump cucumber.version from 7.4.1 to 7.5.0 #4206
- Bump mathjs from 11.0.0 to 11.0.1 in /hedera-mirror-rest #4205
- Bump junit-platform-suite from 1.8.2 to 1.9.0 #4204
- Bump log4js from 6.6.0 to 6.6.1 in /hedera-mirror-rest #4203
- Bump mathjs from 10.6.4 to 11.0.1 in /hedera-mirror-rest/monitoring/monitor_apis #4171
- Bump protobuf-java from 3.21.2 to 3.21.3 #4167
- Bump
@hashgraph
/proto from 2.7.0 to 2.8.0 in /hedera-mirror-rest/check-state-proof #4164 - Bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0 in /hedera-mirror-rosetta #4163
- Bump github.com/hashgraph/hedera-sdk-go/v2 from 2.16.1 to 2.17.0 in /hedera-mirror-rosetta #4162
- Bump spring-boot-starter-parent from 2.7.1 to 2.7.2 #4161
- Bump hibernate-types-52 from 2.16.3 to 2.17.0 #4160
- Bump sdk from 2.16.3 to 2.17.0 #4159
- Bump grpc.version from 1.47.0 to 1.48.0 #4158
- Bump aws-sdk from 2.1178.0 to 2.1181.0 in /hedera-mirror-rest #4157
- Bump
@hashgraph
/proto from 2.7.0 to 2.8.0 in /hedera-mirror-rest #4156 - Bump software.amazon.awssdk:bom from 2.17.233 to 2.17.238 #4155
- Bump mathjs from 10.6.4 to 11.0.0 in /hedera-mirror-rest #4154
- Bump testcontainers from 8.11.1 to 8.12.0 in /hedera-mirror-rest #4152
Contributors
We'd like to thank all the contributors who worked on this release!