What's Changed
- feat: Enable health monitor by @litt3 in #14392
- chore: rename detailed consensus event by @lpetrovic05 in #14364
- refactor: Use PBJ EventDescriptor by @timo0 in #14432
- fix: split new Reconnect metrics by NodeId in Grafana by @anthony-swirldslabs in #14430
- perf: VirtualHasher.hash() keeps too many tasks in memory by @OlegMazurov in #14470
- feat: refactor CryptoTransferHandler by @JivkoKelchev in #14278
- feat: improve hashing performance by @lpetrovic05 in #14444
- test: add test for validating numeric values for HAS and ExchangeRate functions by @stoyanov-st in #14424
- ci: Add registry mirrors to daemon-config on crazy-max/ghaction-setup-docker by @rbarkerSL in #14469
- docs: Update glossary defns of aliases, triplets by @david-bakin-sl in #14372
- chore: cloneHederaProtobufs back to main by @derektriley in #14437
- test: add tests to verify calculateFees() stability in smart-contracts handlers by @MrValioBg in #14243
- feat: Tss-Library public interface by @mxtartaglia-sl in #14307
- feat: Limit rate that PCES events are replayed by @litt3 in #14465
- fix: add
event.migrateEventHashing=false
override to upgrade@HapiTest
by @tinker-michaelj in #14493 - ci: adding upgrade test to PR check by @JeffreyDallas in #14409
- feat: HIP-904 Implement TokenCancelAirdrop transaction by @vtronkov in #14379
- chore: Add config to disable frontend throttles by @Neeharika-Sompalli in #14498
- fix: consensus performance issue by @lpetrovic05 in #14402
- refactor: Rename payload to transaction by @timo0 in #14495
- feat: update node grpc information during address book service migration by @iwsimon in #14473
- fix: use gagues for ReconnectMapMetrics and reset them to zero on new… by @anthony-swirldslabs in #14497
- feat: Document the health monitor by @litt3 in #14476
- chore: 11773 Migrated
PlatformState
to become a child ofMerkleStateRoot
. by @imalygin in #14356 - chore: Use main as protobuf branch by @timo0 in #14510
- feat: HIP-904: Implement TokenClaimAirdrop transaction by @vtronkov in #14374
- refactor: Provide EventTransaction to the app by @timo0 in #14527
- ci: Cherry pick release fixes into develop by @rbarkerSL in #14544
- chore: Renaming Warm Threads Cache Property by @thomas-swirlds-labs in #14534
- chore: remove implicit record stream assumption from builder names by @tinker-michaelj in #14503
- fix: move
VirtualMap#registerMetrics()
call to a node initializer by @tinker-michaelj in #14549 - docs: Create a "starting point" doc for the services CLI tool by @mhess-swl in #14421
- chore: Add EventCore and Signature to Event by @timo0 in #14561
- chore: include misc
@EmbeddedHapiTest
and@RepeatableHapiTest
tests in PR checks by @tinker-michaelj in #14550 - chore: ensure events with no transactions are provided to the app by @lpetrovic05 in #14560
- test: non static complex HTS functions numeric sanity checks by @MrValioBg in #14456
- chore: Add hash to TransactionWrapper by @timo0 in #14566
- fix: update
TokenReconciliationValidator
for non-fungible types by @tinker-michaelj in #14587 - fix: fixed the generated pem file size different from the original one. by @iwsimon in #14568
- fix(bug): Removed daemon config changes by @rbarkerSL in #14599
- fix: cherry-pick: TokenUpdateNftsHandler throwing HandleException in preHandle by @derektriley in #14606
- chore: flatten event impl by @lpetrovic05 in #14592
- docs: HIP-1010 Provide design document for UpdateTokenCustomFees by @stoyanov-st in #14484
- feat: Add TokenAirdropHandler by @JivkoKelchev in #14279
- fix: only skip event from missing creator by @tinker-michaelj in #14608
- feat: added X509Certificate validation for NodeCreate and NodeUpdate by @iwsimon in #14611
- chore: Revert protobufs branch to
main
by @Neeharika-Sompalli in #14651 - test: add tests to verify integrity of computeFees in query handlers by @MrValioBg in #14635
- fix: 14567: Interrupt reading from data files gracefully when the data source is closed by @artemananiev in #14654
- chore: migrate
StateChangeListener
to States API by @tinker-michaelj in #14584 - feat: instantiate
ContractService
withAppContext
signature verifier by @tinker-michaelj in #14468 - chore: migrate ghaction-setup-docker to step-security maintained by @isavov in #14593
- fix: get notification listeners up-to-date before
RECONNECT_COMPLETE
by @tinker-michaelj in #14616 - test: Add test validating that BLOCKHASH returns the latest 256 blocks by @stoyanov-st in #14532
- chore: add inert protobuf files for preview block stream by @tinker-michaelj in #14702
- fix: still set record
ethereum_hash
onCONSENSUS_GAS_EXHAUSTED
by @tinker-michaelj in #14697 - fix: Small adjustments to recently added inert protobufs by @jsync-swirlds in #14705
- chore: Metrics label proposal by @hendrikebbers in #14090
- refactor: remove redundant check by @mustafauzunn in #14665
- refactor: Provide
isSelector
method for matching system contracts' function selectors by @stoyanov-st in #14642 - chore: updates the buildkit and docker daemon configuration to use the registry mirror by @nathanklick in #14775
- feat: Add transaction receipts queue in state by @Neeharika-Sompalli in #14655
- docs: TSS Rosters design proposal by @kfa-aguda in #14045
- feat: TokenAirdrop disable contract airdrops by @vtronkov in #14664
- fix: reject tokens only with royalty with fallback fee by @ibankov in #14806
- feat: Add
StreamMode
to support blocks and records by @Neeharika-Sompalli in #14798 - feat: standalone
TransactionExecutor
by @tinker-michaelj in #14778 - chore: fix compile error by @MiroslavGatsanoga in #14839
- chore: Update inert protobufs with tx receipt queue changes by @derektriley in #14822
- ci: gradlew tasks call is throwing illegal argument exceptions by @rbarkerSL in #14824
- feat: include token memo on balance validation error by @tinker-michaelj in #14831
- feat: simplify
@HapiTest
throttle overrides by @tinker-michaelj in #14837 - chore: Mirror state change updates from protobuf repo by @jsync-swirlds in #14827
- fix: Call correct translator for
gasRequired
inUpdateTokenCustomFeesTranslator
by @stoyanov-st in #14848 - fix: update airdrop configs by @vtronkov in #14782
- feat: TokenCancelAirdrop implementation by @vtronkov in #14729
- chore: Fix compiler warnings in consensus-service and consensus-service-impl by @petreze in #14688
- chore: Add codeowners for the /hapi directory by @dalvizu in #14725
- chore: Fix compiler warnings in schedule service by @derektriley in #14692
- feat: token claim airdrop by @JivkoKelchev in #14738
- fix: fix invalid feeSchedules.json by @Neeharika-Sompalli in #14883
- feat: yahcli DAB functionality by @tinker-michaelj in #14752
- chore: Fix compiler warnings in test-clients by @petreze in #14869
- chore: Fix compiler warnings in util-service and util-service-impl by @petreze in #14867
- fix: Fix compile error by @Neeharika-Sompalli in #14891
- chore: Fix compiler warnings in admin-service and admin-service-impl by @petreze in #14685
- fix: SELFDESTRUCT now deletes contracts properly by @david-bakin-sl in #14863
- chore: Update SystemSetup to set memo in TransactionBody by @derektriley in #14872
- feat: characterize HIP-904 interaction with aliases, hollow accounts, receiver sig req by @tinker-michaelj in #14889
- test: update unit tests to use temporary folders instead of writing files to the main codebase folders by @MiroslavGatsanoga in #14157
- chore: Fix hapi-fees compiler warnings by @derektriley in #14674
- docs: Document the account sign tool by @mhess-swl in #14728
- fix: 14886 Fixed ReconnectTest by @imalygin in #14888
- fix: node exits after repeating unsuccessful reconnects by @OlegMazurov in #14897
- feat: introduce RosterValidator by @anthony-swirldslabs in #14826
- chore: address future/todo comments by @lukelee-sl in #14677
- feat: remove indexed event by @lpetrovic05 in #14870
- fix: Remove allowances support from airdrop transaction by @ibankov in #14844
- test: new token claim 9 tests by @povolev15 in #14873
- refactor: Convert
RcDiff
into usable class with cmd wrapper by @mhess-swl in #14833 - chore: Replace jetbrains annotations with Spotbugs by @thomas-swirlds-labs in #14535
- chore: Update protobufs to main by @Neeharika-Sompalli in #14903
- fix: update in-repo protobufs for roster, HIP-904 codes, new state changes by @tinker-michaelj in #14921
- chore: add AllowanceStrategy enum by @ibankov in #14910
- fix: When airdrop to contract return NOT_SUPPORTED by @vtronkov in #14932
- test: claim multiple tokens send to 1 receiver by @ibankov in #14934
- chore: Refactor Test Clients to use "resources" directory by @thomas-swirlds-labs in #14536
- fix: remove unused property by @JeffreyDallas in #14922
- fix: call with amount against HTS contract by @mustafauzunn in #14843
- ci: resolve codecov, codacy, publish-unit-test-result reporting issues by @rbarkerSL in #14931
- docs: 14825: Design proposal: MerkleDb to store binary data rather than strictly typed objects by @artemananiev in #14832
- fix: Move contract to correct directory by @stoyanov-st in #15008
- fix: reverted the changes to wait unitl appropriate change cherry picked from release 0.53 by @JeffreyDallas in #14965
- test: added Token Claim Airdrop Tests by @iwsimon in #14968
- ci: remove unnecessary tests by @JeffreyDallas in #14770
- fix: 13901: VirtualPipeline back-pressure is too harsh by @artemananiev in #15003
- test: Airdrop Cancel additional tests by @vtronkov in #15006
- chore: remove outdated docs about End-to-End Tests by @jjohannes in #15010
- build: define module locations and identities in 'settings.gradle.kts' by @jjohannes in #14245
- chore: Added metric that measures the number of queried account balances by @netopyr in #15050
- build: Javadoc warnings are reported as errors by @jjohannes in #15012
- feat: Add throttle at Consensus for airdrops by @Neeharika-Sompalli in #14838
- feat: Create RosterMap map and RosterState singleton by @kfa-aguda in #14861
- fix: 15000: No need to have data file compaction running during reconnects by @artemananiev in #15001
- test: add non-priority token airdrop tests by @vtronkov in #15062
- chore: remove spaces from png file names by @vtronkov in #15037
- docs: Adjust test plan in design doc for
UpdateTokenCustomFees
and add related tests by @stoyanov-st in #14909 - test: added Token Claim Airdrop Test by @iwsimon in #15074
- ci: update test meta data used in report generation by @JeffreyDallas in #15064
- fix: Skip charging association fees for airdrops of FT already existing in the pending state by @JivkoKelchev in #15066
- chore: Remove
EventImpl
from Gossip by @timo0 in #14694 - test: add test to ensure immutable contracts cannot be changed by @lukelee-sl in #15092
- test: added 9 new tests for token claim airdrop by @povolev15 in #14957
- feat: support certs from .pfx files in yahcli
nodes
by @tinker-michaelj in #15067 - feat: add exceed max airdrops validation by @vtronkov in #15079
- chore: remove legacy event hashing algorithm by @lpetrovic05 in #15103
- feat: add file block item writer by @MiroslavGatsanoga in #14961
- fix: pending airdrop value for token with fractional fee and net of transfers false by @JivkoKelchev in #14908
- test: Add contract as receiver tests by @JivkoKelchev in #15105
- chore: Fix compiler issues in services-cli by @petreze in #15052
- test: Claim after edit of autoAssociations while in pending by @ibankov in #14945
- test: Additional airdrop negative tests by @JivkoKelchev in #15084
- feat: add streaming tree hasher implementation by @MiroslavGatsanoga in #15089
- chore: Fix hapi utils compiler issues by @petreze in #15054
- fix: RosterSchema should provide default roster for existing states from previous versions AND genesis. by @kfa-aguda in #15108
- feat: auto post-upgrade system file updates by @tinker-michaelj in #15075
- chore: write additional tests for contract update requirements by @lukelee-sl in #15111
- fix: 15036: IndexOutOfBoundsException when flushing an empty virtual map to MerkleDb by @artemananiev in #15097
- ci: update workflows to use latitude.sh based runners by @nathanklick in #15110
- chore: grant code ownership for Gradle and GH workflow files to @hashgraph/devops-ci-committers by @jjohannes in #15137
- feat: add
BlockStreamService
by @petreze in #15011 - chore: previewnet event hashing test by @lpetrovic05 in #15101
- docs: Write documentation for record stream
sign
command by @mhess-swl in #14902 - refactor: 11771 Converted
PlatformState
into a Singleton by @imalygin in #14551 - fix: fix hollow payer paying for transaction with unlimitedAssociationsEnabled by @Neeharika-Sompalli in #15121
- test: 13658 Token Airdrop handler additional tests by @vtronkov in #14553
- feat: 14828 Added
copy
method to the State API by @imalygin in #15119 - feat: prepare PlatformBuilder for protobuf Roster by @kfa-aguda in #15094
- feat: add
SwirldState#sealConsensusRound()
lifecycle by @tinker-michaelj in #15150 - ci: resolves release issue preventing the publication of the docker images by @nathanklick in #15157
- feat: (Block Streams)
test-clients
changes for block streams by @Neeharika-Sompalli in #15152 - fix: compile error from simultaneous merges by @tinker-michaelj in #15174
- ci: fix build application workflow by @nathanklick in #15171
- fix: fixed nextNodeId is decremented when the last node is removed by @iwsimon in #15162
- feat: (Block Streams) Add benchmarks and 054 block schemas by @Neeharika-Sompalli in #15172
- feat: add
BlockStreamBuilder
and all related changes by @petreze in #15088 - fix: publishToSonatype failing due to hedera.evm overwriting itself in MC by @rbarkerSL in #15206
- fix: throw correct exception when token claim max amount is out of bounds, add hapi tests by @povolev15 in #15113
- chore: minor updates to some of the translators by @petreze in #15209
- chore: HIP-1010 Enable
systemContractUpdateCustomFeesEnabled
feature flag by @stoyanov-st in #15005 - feat: 14098 Remove usages of
PlatformState
where possible. by @imalygin in #15145 - refactor: Rename DeleteCapableTransactionRecordBuilder by @mhess-swl in #15219
- feat: Miscellaneous minor updates by @mhess-swl in #15224
- chore: Mirroring state changes update to block stream for roster values by @jsync-swirlds in #15225
- fix: 15221 Fixed migration code for the PlatformState by @imalygin in #15222
- feat: 14285: Change virtual data source to work with bytes rather than with objects by @artemananiev in #14801
- feat: introduce RosterRetriever by @anthony-swirldslabs in #15096
- chore: Update tests to use latest valid block stream info protobuf by @mhess-swl in #15230
- test: added more tests in TokenClaimAirdropTest by @iwsimon in #15106
- fix: add background traffic to
DabEnabledUpgradeTest
by @tinker-michaelj in #15223 - feat: Various block stream modifications by @mhess-swl in #15233
- build: add back 'platform-sdk/swirlds' as Gradle project by @jjohannes in #15236
- feat: Enable HIP-904 transactions and fix when empty transfers are submitted in
TokenAirdrop
transaction by @Neeharika-Sompalli in #15218 - feat: add block stream state changes listeners by @MiroslavGatsanoga in #15184
- chore: Fix compiler warnings in
hedera-config
by @petreze in #15240 - chore: Fix compiler warnings in
hedera-app-spi
by @petreze in #15242 - chore: use new MTT state by @lpetrovic05 in #15182
- test: Airdrop to contract tests by @ibankov in #15238
- feat: BlockStreamManager impl for Block Streams by @derektriley in #15226
- build: unify test source set configuration / remove unused source sets by @jjohannes in #15009
- feat: cherry-pick: add enableDAB flag to enable and disable DAB features (#15232) by @iwsimon in #15260
- feat: utility to retrieve a Roster for a round by @anthony-swirldslabs in #15259
- chore: Use protos v0.54.0 for release 0.54 by @mhess-swl in #15269
- feat: enable PR check preview block streams by @tinker-michaelj in #15256
- test: New HAPI tests added for TokenAirdrop transactions by @Evdokia-Georgieva in #15140
- build: add back 'hedera-cryptography' as Gradle projects by @jjohannes in #15280
- chore: Schedule creation of the
release/0.54
branch by @mhess-swl in #15258 - test: add contract as receiver tests by @vtronkov in #15203
- fix: write s-public-alias.pem file for each node to a configurable location by @iwsimon in #15266
- fix: cherry-pick: if the directory exist, don't create it in UnzipUtility (#15319) by @iwsimon in #15320
- fix: use
ServicesSoftwareVersion
(#15294) by @tinker-michaelj in #15307 - chore: Use 0.54 protobufs on 0.54 release branch by @mhess-swl in #15323
- chore: 15281 cherry pick by @lukelee-sl in #15356
- fix: allow absent agreement keys on disk and in state (#15340) by @edward-swirldslabs in #15358
- fix: ensure
StakePeriodManager
current stake period is always up-to-date by @tinker-michaelj in #15368 - chore: 15405 remove tss project by @mxtartaglia-sl in #15408
- fix: permit 100:1 deflation for upgrade ZIP files (#15422) by @tinker-michaelj in #15426
- fix: Reset freeze time on post-upgrade txn only by @tinker-michaelj in #15430
- fix: 15385 Used
MerkleStateRoot.getReadablePlatformState
where possible to prevent race conditions (cherry-pick) by @imalygin in #15436 - fix: (0.54) set exchange rates in triggered txn receipts by @tinker-michaelj in #15398
- chore: disable dab in release 0.54 by @iwsimon in #15450
- chore: do not update file 102 during the first transaction after a freeze upgrade when DAB is disabled by @iwsimon in #15467
New Contributors
Full Changelog: v0.53.5...v0.54.0