Hedera Services v0.43.0
Features
Services v0.43.0 adds the following features:
- HIP-786 (#8620)
Enhancements
Services v0.43.0 adds the following enhancements:
- Update Besu to 23.10.0 - cherry pick (#9199)
- Update the Besu EVM library to version 23.7.2 (#8472)
- "Productizing" contract disassembler at last (#8563)
- Auto sidecar validations (#8404)
- Create fat jar with services CLI so it can be run standalone (#8519)
Code Modularization
Services v0.43.0 includes the following maintainability enhancements:
- fix: resolve HapiTestEngine issues preventing test execution (#8351)
- Add @hapitest annotation to tests that are passing (#8328)
- Solvency checks (#8362)
- Adjust block creation to account for freeze times (#8339)
- Solvency fixes (#8396)
- Improved ExchangeRateManager (#8282)
- Implement HtsSystemContract skeleton and balanceOf() view redirect (#8325)
- Duplicate check (#8375)
- Add @hapitest annotation to other tests (#8398)
- Throw on conversion outside long-zero subspace (#8413)
- Privileges check (#8408)
- Implement CryptoSignatureWaiversImpl (#8426)
- Fix hollow accounts signature verification (#8418)
- fixed code to pass CryptoUpdateSuite test (#8442)
- Add the modular restart support (#8337)
- Check transaction node account matches on ingest not on pre-handle (#8454)
- Implementation of SwirldsPlatformBuilder, sufficient for initial use by services (#8448)
- Do not preload file 121 with all network properties (#8453)
- 07905 schedule service unit tests - Part 1 (#8336)
- Integrate dual state into workflows (#8449)
- Implement exchange rate system contract (#8324)
- Cleanup tests (#8468)
- Complete MiscViewsXTest (#8341)
- Fix hapi initialization error (#8477)
- Disable all failing tests (#8490)
- Store calculated fees in record builder (#8492)
- Enable HandleContextImpl to work with unknown payer (#8496)
- Add support for testing with multiple nodes (#8452)
- Use the DualState from handleRound instead of from initialization for the DualStateUpdateFacility (#8516)
- ExchangeRateSet at genesis matching FileServiceImpl's GenesisSchema (#8518)
- Revert "Store calculated fees in record builder (#8492)" (#8522)
- Implement HTS system contract transfer variants (#8486)
- Rename the config property names to match what is in
semantic-version.properties
(#8539) - Fixed failing tests (#8528)
- Accommodate due diligence failure records w/
records.useConsolidatedFcq=true
(#8548) - Fix UnsupportedQueriesRegression HapiSuite (#8536)
- Token Update NPE fix (#8527)
- Implement associate/dissociate HTS system calls (#8514)
- Fix Sonar issues for rest of the modules (#8280)
- pces recovery (#8194)
- Add ContractInfoQueryHandler (#8576)
- add fees in the right way to all file services (#8508)
- Remove ReadableRunningHashLeafStore from network admin (#8632)
- Fixed code to pass some tests in TopicCreateSuite, CryptoDeleteSuite, CryptoUpdateSuite and CryptoApproveAllowanceSuite (#8630)
- Enable all passing test (#8657)
- Make an Executor available to freeze handler via Dagger injection (#8661)
- Resolve Hip17UnhappyTokensSuite errors (#8614)
- Fix TokenDeleteSpecs tests (#8560)
- Fix TokenAssociationSpecs tests (#8562)
- Disable CryptoTransferThenFreezeTest (#8677)
- File test passing AppendFailuresSpec, SysDelSysUndelSpec, ExchangeRateControlSuite (#8626)
- Resolve TokenTotalSupplyAfterMintBurnWipeSuite errors (#8685)
- Implementation for the HTS wipe operation for fungible and nonfungible tokens (#8656)
- Error handling for penalty payments (#8692)
- Fix TokenManagementSpecsStateful tests (#8555)
- Grant/Revoke kyc system contracts (#8653)
- Skip 0.0.0 auto-renew account id in synthetic ContractCreate (#8700)
- Fix ThrottleDefValidationSuite (#8219)
- Fix tests from ContractCreateSuite (#8713)
- Stabilize HapiSpec ledger id assertions (#8703)
- Create genesis records from node startup (#7983)
- Add hapi test to GitHub pipeline (#8542)
- Fix fees for some of Token operations (#8708)
- Fix genesis records creation order (#8749)
- Fix fee calculation for TokenWipe and TokenBurn (#8761)
- Implement calculateFees for token service queries (#8752)
- Implemented calculateFees() in all consensus services (#8750)
- GetApproved system contract (#8785)
- Implement ContractDeleteHandler (#8635)
- Enable some passing tests (#8803)
- Authorization information in HandleContext (#8787)
- Fix compile issues on develop (#8819)
- File test passing ProtectedFilesUpdateSuite, PermissionSemanticsSpec, FileUpdateSuite (#8659)
- Assorted fee fixes (#8832)
- Implement calculateFees in other Token operations (#8826)
- Disable failing HAPI tests (#8822)
- Burn fungibles and NFTs system contract (#8809)
- Retry failing queries during HAPI tests (#8879)
- Query fee calculation (#8807)
- Fix CallCodeOperationSuite tests (#8853) Resolve Issue1758Suite errors (#8851)
- Resolve Issue1741Suite errors (#8850)
- Fix CallOperationSuite tests (#8860)
- 08581 Freeze/Unfreeze system contracts implementation (#8607)
- Resolve Hip17UnhappyAccountsSuite errors (#8611)
- Enable passing tests for crypto transfer (#8872)
- Fix CreateOperationSuite test (#8902)
- Fix DelegateCallOperationSuite tests (#8883)
- Fix SStoreSuite tests (#8891)
- Fix PushZeroOperationSuite tests (#8888)
- Fix SelfDestructSuite tests (#8895)
- Resolve TokenUpdateSpecs errors (#8742)
- Implementation of SetApprovalForAll system contract (#8723)
Integrate Platform and Services Builds
Services v0.43.0 includes the following enhancements to the build structure:
- Further integrate 'hedera-node' and 'platform-sdk' builds (#7875)
- Update GH gradle-build-action to 2.8.0 (#8353)
- fix: workaround Gradle assemble hanging during build (#8347)
- Compile xtest code as part of assemble (#8357)
- fix: correct the version of the publish-unit-test-result-action to be a valid commit (#8359)
- fix: correct the version of the ssh-key-action step to be a valid commit (#8360)
- fix: resolve issues with Hedera JRS tests failing due to changes in #7875
- fix: ensure the grpc.stub module depends on java.logging (#8391)
- Re-add runtime only dependency to "com.swirlds.config.impl" (#8407)
- Update to Gradle 8.3 (#8352)
- Repair 'gradle showVersion' (#8406)
- Executions in 'test-client' (main() / tests) should not use --module-path (#8424)
- Adding the context API (#8423)
- fix: resolve issues with the Gradle project identifier breaking the Platform release (#8570)
Minor enhancements
Services v0.43.0 includes the following minor enhancements:
- Added scratchpad utility. (#8330)
- Make clearing the PCES a static method. (#8410)
- Add metrics to various queues. (#8416)
- Improved state logging. (#8399)
- 8380: a memory leak in SwirldsPlatform.components (#8434)
- 07739 jtr (#8401)
- Saved state metadata improvements (#8393)
- 06881 e recovery lifecycle (#8206)
- 07894 Reconnect Teacher - Throttle Logs and New Metric (#8322)
- 07762 - Treat All SSLExceptions as SOCKET_EXCEPTIONs (#8473)
- Update block number tool to compare running hash (#8512)
- 07829 HTML logs (#8307)
- 08109 - Reconnect Learner Throttled by Configuration. (#8544)
- 08251 pces origin (#8462)
- Implement HTS pause/unpause functions (#8628)
- 8386 add transaction state log (#8633)
- Elegantly handle when an empty PCES is cleared. (#8627)
- Reduce number of ops (#8671)
- Update 'any stat' dashboard to also show merkledb stats (#8682)
- 08108 phased fractional timer (#8546)
- 05287 consensus utilities (#8636)
- Emergency logger + needed dependencies added (#8680)
- 8751: No data source metrics for accounts, NFTs, or token rels (#8754)
- 05287 consensus tests (#8759)
- Update network details dashboard to map all values for platform status (#8161)
- Create intake phase timer (#8747)
- 8469: New VirtualMap metric: virtual node cache size, in Mb (#8755)
- Fix Ecdsa performance, using besu native (#8727)
- Improved stale event metrics. (#8740)
- Implement clean option for browse command (#8824)
- 08299 Selectable logs (#8800)
- Clean up JTR PCLI commands (#8821)
- Add a column to JTR summary for logs (#8838)
- Platform Dashboards (#8825)
- Add optional path for blocklist config (#8326)
Bug Fixes
Services v0.43.0 includes the following bug fixes:
- Fix flaky unit test (#8342)
- 8260: CongestionPricing-NDReconnect-1-16m has error IllegalArgumentException (#8419)
- 8170: MixedOps-Interrupted-2NReconnect-6k-41m failed with MerkleSynchronizationException (#8443)
- 08439 Stabilized VirtualMapTests.testFlushCount (#8441)
- 08212 - Fix Migrated State Event Validation (#8511)
- Remove no longer existing property (#8553)
- 08237 Fixed validation of multiple rounds in VirtualMerkleLeafHasher (#8534)
- Fix JRS queryable payer record issue (#8617)
- Updated version if Migration Testing Tool to prevent JRS test failures (#8619)
- Don't allow the tipset algorithm to create ancient self events. (#8624)
- 08741 - Disable Failing Bad Local Address Test on Windows and Macs (#8743)
- Only be a reconnect teacher if platform status is active (#8736)
- Fix log file search (#8796)
- Fix JRS account balances test (#8724)
- Fix account balance test (#8830)
- Prevent Double ISS in ISS Testing Tool (#8776)
- Fix failed test Crypto-Perf-Invalid-Accounts-5k-30m (#8880)
- 08984 reconnect deadlock (#8985) (#8987)
- Cherry-pick mono changes (#9011)
- 08816 epoch hash with sig (#8998) (#9044)
- Sync configs from file 121 in the
bootstrap.properties
andapplication.properties
(#9078) - 08138 Increased reconnect.asyncStreamTimeout property to prevent genesis reconnect from failure (#9133)
- 08138 Increased reconnect.asyncStreamTimeout property to 5 minutes (#9154)
For the full changelist see v0.42.6...v0.43.0-alpha.6
Contributors
We'd like to thank all the contributors who worked on this release!
@agadzhalov
@alittley
@artemananiev
@beeradb
@cody-littley
@david-bakin-sl
@edward-swirldslabs
@ElijahLynn
@georgi-l95
@hendrikebbers
@imalygin
@Ivo-Yankov
@iwsimon
@jasperpotts
@JeffreyDallas
@jjohannes
@jsync-swirlds
@kimbor
@lpetrovic05
@lukelee-sl
@mhess-swl
@MiroslavGatsanoga
@MrValioBg
@mustafauzunn
@natanasow
@nathanklick
@Neeharika-Sompalli
@netopyr
@OlegMazurov
@poulok
@povolev15
@qnswirlds
@rbair23
@stoyanov-st
@thenswan
@tinker-michaelj
@vtronkov