Summary
v0.46.0 turns greedy backfill on by default and adds per-client admission control for serverStatus. It makes ApplicationStateFacility a plugin, with its notification handlers wired up, and moves to a new TSS library implementation. The CLI gets a block stream protobuf validator and switches block hashing from SHA2-384 to SHA2-256. The release also fixes several publisher and backfill stalls, including a late cherry-picked fix for an ack stall caused by a stale block proof. The rest is dependency bumps, docs, and test stabilization.
What's Changed
⭐ New Features
- feat(throttle): add per-client admission control for serverStatus by @Nana-EC in #3628
- feat: #2427 - simplify MetricServiceImpl by @akugal in #3926
- feat(backfill): enable greedy backfill by default by @AlfredoG87 in #3918
- feat: Block Streams CLI protobuf validator by @ivannov in #3854
- feat(helm): add PV and PVC rendering for local/hostPath storage by @arturre in #3843
- feat: #2373 - remove TestMetricsExporter by @akugal in #3838
- feat: Update TSS Library to a New Implementation by @ata-nas in #3853
- feat(subscriber): reap completed sessions independent of new requests by @Nana-EC in #3832
- feat: Switch the CLI's block hashing from SHA2-384 to SHA2-256 by @ivannov in #3753
- feat: add AcknowledgeOnly handler + manager cache + metrics (#3694) by @rockysingh in #3794
- feat(facility-app-state): Make the ApplicationStateFacility a plugin. by @berryware in #3804
- feat(metrics): one copy of each Grafana dashboard, environment-agnostic by @AlfredoG87 in #3522
🐛 Bug Fixes
- fix: Block Node ack stall - stale block proof loses a resent block and pins acks. (0.46 cherry-pick #3974) by @berryware in #3990
- fix(messaging): log and skip handler exceptions instead of stalling the ring by @AlfredoG87 in #3896
- fix(publisher): restart a finished queue forwarder and keep the flow control refresh alive (#3639). by @rockysingh in #3919
- fix(backfill): only advance the live-tail mark when the gap was accepted and bound the client buffers (#3638) by @rockysingh in #3894
- fix(backfill): start the gap scan only after the schedulers exist by @AlfredoG87 in #3951
- fix: don't request a resend for a block that is below the earliest managed block. by @berryware in #3913
- fix(charts): raise the nano profile memory limit to 192Mi for the TSS library by @AlfredoG87 in #3880
- fix(blocks-file-historic): create zip accessor links under the links directory by @AlfredoG87 in #3874
- fix: Several cases of ApplicationStateFacilityPlugin methods using exceptions for flow control by @berryware in #3858
- fix: Follow up items from PR #3631 (Wire Up the Application State Notifications and the ApplicationStateNotificationHandlers) by @berryware in #3857
- fix(cloud-storage-expanded): ExpandedCloudStoragePlugin delays persisted notifications until the next block by @ivannov in #3824
- fix: Clear scheduled resends for persisted blocks so they stop clamping acks by @berryware in #3770
🔨 Tests
- test(suites): assert cumulative ACK semantics in the stall/resend regression test by @AlfredoG87 in #3950
- test(backfill): keep BackfillFetcher backoff active during the eviction assertion by @AlfredoG87 in #3949
📝 Documentation
- docs: address API throttling design doc review follow-ups (#3630) by @Nana-EC in #3637
- docs(state): live Hashgraph state design doc + gRPC contract by @Nana-EC in #3812
- docs: fix cross-doc plugin name inconsistencies by @deshmukhpranali in #3707
- docs: remove Hashgraph PoC and cohort references from operator docs by @deshmukhpranali in #3584
- docs: Outdated cloud storage plugins docs and javadoc by @ivannov in #3671
- docs: add disaster-recovery directory index and playbook template by @deshmukhpranali in #3802
🔧 Build & Maintenance
- chore(release): Bump versions for v0.46.0-SNAPSHOT by @swirlds-automation in #3844
- chore: Follow up to PR #3753 by @ivannov in #3865
- chore: follow-up on non-blocking review comments from #3780 by @ata-nas in #3852
⬆️ Dependency Upgrades
- build(deps): bump actions/setup-java from 6.0.1 to 6.1.0. by @dependabot[bot] in #3864
- build(deps): bump PandasWhoCode/initialize-github-job from 1.4.0 to 1.5.0. by @dependabot[bot] in #3884
- build(deps): bump actions/setup-python from 7.0.0 to 7.1.0 by @dependabot[bot] in #3921
- build(deps): bump docker/login-action from 4.6.0 to 4.7.0 by @dependabot[bot] in #3941
- build(deps): bump com.google.guava:guava from 33.6.0-jre to 33.7.2-jre in /hiero-dependency-versions by @dependabot[bot] in #3904
- build(deps): bump grpcIoVersion from 1.84.0 to 1.85.0 in /hiero-dependency-versions by @dependabot[bot] in #3905
- build(deps): bump com.github.luben:zstd-jni from 1.5.7-22 to 1.5.7-24 in /hiero-dependency-versions by @dependabot[bot] in #3906
- build(deps): bump helidonVersion from 4.5.4 to 4.5.6 in /hiero-dependency-versions by @dependabot[bot] in #3908
- build(deps): bump step-security/harden-runner from 2.22.1 to 2.22.2 by @dependabot[bot] in #3922
- build(deps): bump com.hedera.pbj.pbj-compiler from 0.15.10 to 0.16.2 by @dependabot[bot] in #3601
- build(deps): bump step-security/harden-runner from 2.21.0 to 2.22.1 by @dependabot[bot] in #3821
- build(deps): bump gradle-wrapper from 9.8.0 to 9.8.1. by @dependabot[bot] in #3846
- build(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2. by @dependabot[bot] in #3822
- build(deps): bump actions/setup-node from 7.0.0 to 7.1.0. by @dependabot[bot] in #3820
- build(deps): bump helm/kind-action from 1.15.0 to 1.15.1. by @dependabot[bot] in #3819
- build(deps): bump com.github.spotbugs:spotbugs-annotations from 4.10.2 to 4.10.4 in /hiero-dependency-versions. by @dependabot[bot] in #3799
- build(deps): bump grpcIoVersion from 1.83.1 to 1.84.0 in /hiero-dependency-versions. by @dependabot[bot] in #3795
- build(deps): bump gradle/actions/setup-gradle from 6.3.0 to 6.4.0. by @dependabot[bot] in #3777
- build(deps): bump step-security/setup-buildx-action from 4.2.0 to 4.4.1. by @dependabot[bot] in #3776
Full Changelog: v0.45.1...v0.46.0