v0.36.0 #2242
steven-sheehy
started this conversation in
Releases
v0.36.0
#2242
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
We are happy to announce the availability of a publicly accessible, free-to-use, mainnet Mirror Node operated by the Hedera team. As part of this, we put a large amount of effort into fine tuning our Kubernetes deployment. We migrated to Flux 2, a GitOps-based deployment tool that allows us to declaratively specify the expected state of the Mirror Node in git and manage our rollouts. You can browse our deploy branch and see the exact config and versions rolled out to various clusters and environments. The Helm chart was updated to add
PodDisruptionBudgets
, adjust alert rules and other improvements to make it easier to automate the deployment.This release is the first version of the Mirror Node with preliminary support for non-fungible tokens (NFTs). NFT support is being added to the Hedera nodes as outlined in HIP 17. We spent time designing how that NFT support will look like for the Mirror Node. Modifications to the schema were made to add new tables and fields and the Importer was updated to ingest NFT transactions. The existing REST APIs were updated to add NFT related fields to the response. This includes adding a
type
field to the token related APIs to indicate fungibility and anft_transfers
to/api/v1/transactions/{id}
:One thing to note is that we did not add NFT transfers to the list transactions endpoint in an effort to reduce the size and improve the performance of that endpoint. In the next release we will add new NFT specific REST APIs.
Continuing upon the theme of the last release, we made additional changes to the Rosetta API to bring it up to par with the rest of the components. Rosetta now includes support for HTS via both is data and construction APIs.
The Importer saw a large focus on improving performance and resiliency. It is now highly available (HA) when run inside Kubernetes. This allows more than one instance to run at a time and to failover to the secondary instance when the primary becomes unhealthy. A special Kubernetes ConfigMap named
leaders
is used to atomically elect the leader.We’re improving our ingestion time dramatically for entity creation. Previously those were database finds followed by updates. Since inserts are always faster than find and updates, we’ve optimized this to insert the updates into a temporary table and at the end upsert those to the final table. A record file with 6,000 new entities went from 21 seconds to 600 ms, making it 35x improvement. Balance file processing was optimized to greatly reduce memory by only keeping one file in memory at a time.
Breaking Changes
In honor of Juneteenth and as part of general industry-wide movement, we renamed our
master
branch tomain
. If you have a clone or fork of the Mirror Node Git repository, you will need to take the below steps to update it to usemain
:As part of our optimization to reduce memory usage, we now process some things earlier in the lifecycle. Due to this we had to rename some properties to reflect this change. We also changed the disk structure if you are using the
keepFiles
(now renamed towriteFiles
) properties to write the stream files to disk after download. It is no longer archived into folders by day. Instead, the folder structure will exactly match the structure in the bucket. This opens the possibility for a mirror node to download and mirror the bucket itself using a S3 compatible API like MinIO. Below is a summary of the renamed properties:hedera.mirror.importer.downloader.balance.keepSignatures
tohedera.mirror.importer.downloader.balance.writeSignatures
hedera.mirror.importer.parser.balance.keepFiles
tohedera.mirror.importer.downloader.balance.writeFiles
hedera.mirror.importer.parser.balance.persistBytes
tohedera.mirror.importer.downloader.balance.persistBytes
hedera.mirror.importer.downloader.event.keepSignatures
tohedera.mirror.importer.downloader.event.writeSignatures
hedera.mirror.importer.parser.event.keepFiles
tohedera.mirror.importer.downloader.event.writeFiles
hedera.mirror.importer.parser.event.persistBytes
tohedera.mirror.importer.downloader.event.persistBytes
hedera.mirror.importer.downloader.record.keepSignatures
tohedera.mirror.importer.downloader.record.writeSignatures
hedera.mirror.importer.parser.record.keepFiles
tohedera.mirror.importer.downloader.record.writeFiles
hedera.mirror.importer.parser.record.persistBytes
tohedera.mirror.importer.downloader.record.persistBytes
Enhancements
Bug Fixes
Dependency Upgrades
@godaddy
/terminus from 4.8.0 to 4.9.0 in /hedera-mirror-rest #2079Contributors
We'd like to thank all the contributors who worked on this release!
This discussion was created from the release v0.36.0.
Beta Was this translation helpful? Give feedback.
All reactions