This releases finalizes support for scheduled transactions and HAPI protobuf v0.12. Two new schedule specific REST APIs were added including /api/v1/schedules
and /api/v1/schedules/:id
. The former lists all schedules with various filtering options available and the latter returns a specific schedule by its schedule ID.
GET /api/v1/schedules?account.id=0.0.1024&schedule.id=gte:4000&order=desc&limit=10
{
"schedules": [
{
"admin_key": {
"_type": "ProtobufEncoded",
"key": "7b2233222c2233222c2233227d"
},
"consensus_timestamp": "1234567890.000030003",
"creator_account_id": "0.0.1024",
"executed_timestamp": null,
"memo": "Created per governing council decision dated 02/03/21",
"payer_account_id": "0.0.1024",
"schedule_id": "0.0.4000",
"signatures": [
{
"consensus_timestamp": "1234567890.000030001",
"public_key_prefix": "CQkJ",
"signature": "CQkJ"
}
],
"transaction_body": "AQECAgMD"
}
],
"links": {
"next": null
}
}
In HAPI v0.12, new memo fields were added to all entity types bringing parity across all services. Mirror node now supports the new fields including for update operations where the memo field can be set to null
, empty string or a non-empty string to keep, clear or replace the existing memo, respectively.
Historically, the importer application has always downloaded stream files and saved to the filesystem in one thread then read those files and ingested them into the database in another thread. This has sometimes caused the database and filesystem to get out of sync and require manual intervention to fix. It also makes the importer stateful and as a result could not support running multiple instances for high availability.
With this release, we've removed the need for importer to read and write to the filesystem. Instead, the downloader and parser threads now communicate via an in-memory queue. To accomplish this, we also had to remove the t_application_status
table in favor of calculating the last successful file directly from the stream file tables. In addition to fixing the aforementioned issues, the removal of the filesystem has resulted in a 5% latency improvement.
Other changes include adding an index
field to record_file
table to simulate a blockchain index and updating our Google Marketplace to v0.27. Also, we added support for the v5 stream files to the check-state-proof
client app.
Enhancements
- Bump versions for v0.28.0 #1650
- Bump versions for v0.28.0-beta2 #1622
- Bump versions for v0.28.0-beta1 #1611
- Add block index to record file #1595
- Add Schedules List API Support #1593
- Rest get schedule api #1576
- Update Acceptance Tests to Use SDK v2 #1573
- Increase downloader threads from 13 to 15 (master) #1569
- Support new entity memo fields #1567
- Upgrade Google Marketplace with support for v0.27 #1565
- Add support for ScheduleCreateTransaction memo field #1556
- Add v5 stream file support to check-state-proof #1555
- Remove filesystem dependency #1554
- Support new entity memo fields #1553
- Add v5 stream file support to check-state-proof #1549
- Add block index to record file #1548
- Support v0.12 scheduled transaction proto fields #1508
- Scheduled transactions get REST API #1471
- Scheduled transactions list REST API #1470
- Upgrade Google Marketplace #1174
- Recover when database and filesystem out of sync #918
- Update balance parser code to conform to new parser design #573
- Fetch last processed record (and event) file hash from t_record_files #109
Bug Fixes
- Fix failure when building hedera-mirror-rest docker image #1591
- Rosetta CLI validation failures #1585
- Fix RedisTopicListenerTest.startTimeBefore #1574
- Fix ConfigurableTransactionGeneratorTest.receiptPercent #1570
- hedera-mirror-monitor test case ConfigurableTransactionGeneratorTest.receiptPercent failed #1566
- Fix MirrorDateRangePropertiesProcessorIntegrationTest #1552
- RedisTopicListenerTest.startTimeBefore failed test #1543
- MirrorDateRangePropertiesProcessorIntegrationTest failed test #1519
Dependency Upgrades
- Bump
@awaitjs
/express from 0.7.1 to 0.7.2 in /hedera-mirror-rest (#1613) #1621 - Bump grpc-spring-boot to 2.11.0 #1592
- Bump junit-jupiter from 1.15.1 to 1.15.2 #1580
- Bump spring-cloud-dependencies from Hoxton.SR9 to Hoxton.SR10 #1579
- Bump aws-sdk from 2.841.0 to 2.843.0 in /hedera-mirror-rest #1578
- Bump husky from 4.3.8 to 5.0.9 in /hedera-mirror-rest #1577
- Bump hedera-protobuf.version to 0.12.0-rc.1 #1572
- Bump aws-sdk from 2.834.0 to 2.841.0 in /hedera-mirror-rest #1571
- Bump os-maven-plugin from 1.6.2 to 1.7.0 #1564
- Bump software.amazon.awssdk:bom from 2.15.73 to 2.15.77 #1563
- Bump vertx-pg-client from 4.0.0 to 4.0.2 #1562
- Bump mathjs from 9.1.0 to 9.2.0 in /hedera-mirror-rest #1561
- Bump aws-sdk from 2.834.0 to 2.839.0 in /hedera-mirror-rest #1560
- Bump
@awaitjs
/express from 0.7.0 to 0.7.1 in /hedera-mirror-rest #1559 - Bump testcontainers from 7.2.0 to 7.4.0 in /hedera-mirror-rest #1558
- Bump mathjs from 9.1.0 to 9.2.0 in /hedera-mirror-rest/monitoring/monitor_apis #1557
Contributors
We'd like to thank all the contributors who worked on this release!