Skip to content

Hedera Services v0.39.0

Compare
Choose a tag to compare
@iwsimon iwsimon released this 20 Jun 19:03
· 2162 commits to develop since this release
v0.39.0
ad4eecf

Features

Services v0.39.0 adds the following features:

  • VirtualRootNode constructor creates a cache object that doesn't get reused #6321
  • Implement blocklisting of EVM addresses #5799
  • Optimize virtual node cache flush strategy #5568
  • HIP-721: 06026 - add software version to events #6236
  • Implement CryptoCreate handle method #6112
  • UtilPrng handle Implementation #6310
  • Add a PCLI sub command to sign services stream files #6309
  • Implement token freeze handling #6467
  • Implement token unfreeze handle() #6502
  • Combine Admin and Network modules #6511
  • Implement the modular Pre-Handle Workflow #6291
  • Move hashes out of leaves node in VirtualMap #5825
  • TokenFeeScheduleUpdate handle() implementation #6582
  • Basic File service implementation #6522
  • Implement Token Association to Account #6609
  • Implementation of handle workflow #6476
  • Implement the modular record cache #6754
  • CryptoDelete handle implementation #6694

This release also adds the following minor features:

  • Includes an existing test modified to use #6168
  • Only clear memo in TokenUpdateLogic if client code can signal unset vs empty #6322
  • Update AddressBookTestingTool README.md #6330
  • Fuzzing test ethereum transaction LazyCreate #6247
  • Move token revoke verification method to preHandle #6318
  • Increase the TPS for AddressBookTestingTool to 1k #6342
  • updog #6255
  • Add ExportingRecoveredStateListener #6317
  • Refactor CryptoCreate #5878
  • Abbreviate and shorten JDB test asset names #6339
  • AddressBook.forceUseOfAddressBook default setting to false #6405
  • d busy time metric #5798
  • Faster class scan for config records #6274
  • Sync as protocol #5919
  • d ref count debug flag #6431
  • Remove unused properties for parsing config.txt #6110
  • queue thread flush #6406
  • Deleted unused code in platform module #6434
  • organize gossip packages #6436
  • Lay groundwork for ignoring app transactions during pces replay. #6442
  • Add query performance test to nightly test panel #6458
  • EVM version update and optimisations #5962
  • Add fuzz tests for hollow account completion #4855
  • Only com.swirlds is scanned by ConfigurationHolder #6430
  • Add Set support to the Config API #6004
  • Continue sending signature transactions during a freeze. #6474
  • Don't sync slowly in the hashgraph demo. #6462
  • PCES startup lifecycle #6420
  • AddressBookInitializer do not validate state loaded addressbook #6480
  • Flatten SwirldsPlatform.init() #6484
  • Update branch to latest protobufs #6459
  • Increment docker timeout #6495
  • Di services refactoring part 2 #6341
  • Flatten buildEventIntake() #6494
  • Remove HTS performance test from nightly regression #6507
  • Turn off traceability migration in 0.39 and subsequent releases #6382
  • Config API for services: Config instance is provided #6294
  • Remove vestigial Signed State cycle metric intervals #6515
  • Use adjusted account offsets in JRS test #6510
  • Add support back for genesisFreezeTime #6529
  • Accommodate varying sig map sizes in canAutoCreateWithFungibleTokenTransfersToAlias() #6520
  • Remove ChatterSettings and use ChatterConfig instead #6376
  • Extend software version to use configuration #6519
  • flatten build event handlers #6517
  • Config provided by Dagger #6525
  • Add tests for gas utility functions #6537
  • delete platform metrics #6521
  • Add Dockerfile, publish gcr.io/hedera-registry/validation-scenarios:0.1.0 #6485
  • turn NodeId into a record containing a long #6370
  • Only allow positive amounts for transferToken function #6558
  • pcli event stream info command to accept timestamp #6346
  • Skip sending class IDs for virtual leaf records during reconnects #6539
  • Implement getTypicalSerializedSize() method for variable-sized HS virtual map classes #6369
  • Move (some) signatures and decoders of versioned ABIs to a dedicated location #6564
  • Added an extended test work flow for platform function change PRs #6482
  • Export the uptime package to the config package. #6578
  • Export sync config to config impl. #6584
  • Remove FCHashMapSettings and use FCHashMapConfig instead #6378
  • remove getters #6549
  • remove onlyDefaultHapiSpec #6552
  • Remove ReconnectSettings and use configuration instead #6233
  • consistency testing tool #6505
  • remove unsafe state access #6567
  • Remove redundant pause check. #6600
  • Remove zero stake check in submission #6604
  • Update .gitignore for new metricsDoc.tsv spew #6587
  • remove get events #6602
  • Remove unwanted check #6622
  • deprecating long node ids and adding NodeId API to Address #6440
  • ReusableBucketPool synchronization redone #6597
  • Use keccak hash of signed bytes for ECDSA_SECP256K1 message #6610
  • Dagger modules refactored #6590
  • Set ReconnectController state to null after releasing #6626
  • Аdd hollow account finalization doc #5758
  • Updates Metrics to use non-contiguous NodeIds #6632
  • Implement complete SubmissionManager with expiry dedupe cache #6646
  • multinode event stream report #6624
  • Adjust netty keepAlive time/outs to longer interval #6655
  • Adjust netty keepAlive time/outs to longer interval #6655
  • Add checks for token revoke #6658
  • Crypto and State use non contiguous NodeId #6635
  • colorize pcli logs #6668
  • Out of Order Gossip Simulator #6535
  • Added missing rehash for VirtualMap leaves #6653
  • Also log timestamp when ISSTestingToolState provokes an ISS #6662
  • Added comment that hashCode test values must not be changed #6647
  • Add missing migration test panel #6678
  • use busy time metric #6562
  • MigrationTestingTool compatible with v0.38 saved state #6652
  • Add e2e tests for consensus-service #6563
  • Refactor top-level sig check #6679
  • Remove Deprecated SigInfo Class #6634
  • NodeId implements SelfSerializable #6691
  • Enabled leaf rehashing for existing VirtualMap instances. #6685
  • Gradle update and script cleanup #6637
  • gossip encapsulation #6607
  • Add optional keys and optional hollow accounts to pre-handle context #6542
  • Reflect mainnet 0.0.111 (fees) and 0.0.123 (throttles) contents in repo #6665
  • Update HIP-583 design doc and test plan #4818
  • Fuzzing test for LazyCreate through precompiles #6527
  • Add pureChecks() method to TransactionHandler #6697
  • Added contracts.nonces.externalization.enabled feature flag #6721
  • MAX_FULL_REHASHING_BUFFER_TIMEOUT is increased to 60 seconds. #6717
  • Use instantaneous capacity checks for gauges and TraceabilityExportTask #6733
  • PreHandle and QueryContext.configuration #6699
  • AddressBook.toConfigText() Supports Memo #6740
  • Add helpful debug messages for JRS failure #6744
  • updates daily CI tasks to properly handle the release branch names #6753
  • Consolidate all records in single FCQueue #6718
  • Handle old events #6663
  • Create platform status readme #6669
  • Allow queried TransactionID to have deleted payer account #6734
  • file service system file delete and undelete #6707
  • Added script for merging config.txt and currentAddressBook.txt. #6756
  • file service fix the configuration method #6766
  • Revert on-disk, consolidated FCQ dev overrides #6781
  • Config sources for services defined #6743
  • Update zero weights for new nodes #6777
  • AddressBook.toConfigText() updated unit test. #6764
  • FCQueue.getHash() is a hashing bottleneck #6769
  • Browser and Platform support noncontiguous NodeId #6695
  • Teacher should stop teaching if it falls behind while teaching #6557
  • Updated PBJ to 0.6.0 and updated gradle build for new decencies #6793
  • Allow INVALID_SIGNATURE status on EthTx value sent to EOA with receiverSigRequired=true #6779
  • Enable data on disk and MerkleDb for nightly services runs #6795
  • Better handling of failed async hashing #6796
  • MerkleDb compactions are stopped after a snapshot #6808
  • Add extra information to state dump log. #6813
  • Bytes Converter added for Config #6643
  • Always return EIP-1014 address as priority even if not alias #6776
  • Do leaf rehash during VirtualMap deserialization #6807
  • Re-use consensus throttle in HederaWorldState.commit() for following children #6800
  • Adjust burn token amount handling #6805
  • PREVIEWNET, LOCAL: Sunset old security model for smart contracts #6824
  • List of dirty leaves doesn't have to be sorted on VirtualNodeCache flush #6741
  • Fix redirect for token parsing #6819
  • Remove usages of VirtualMap.fullLeafRehash #6815
  • Add stats for platform_degraded and platform_healthyNetworkFraction_fraction to Network Status dashboard #6907
  • Accounts integrity violated with accounts.storeOnDisk enabled #6846
  • Cannot snapshot to disk after MerkleMap to VirtualMap migration w/ MerkleDb #6887
  • Make no-min fractional fees viewable via precompiles #7031
  • Move spender validation only for approvals #7030
  • Enable / disable data on disk and MerkleDb in dev environments #6886
  • Retire old security model for smart contracts by changing HAPI signature-check block limit to LOW #7055
  • Enable MerkleDb in previewnet, testnet, and mainnet in 0.39 #7109
  • MerkleDb metadata file must not be changed in saved states #7066
  • ISS in account store after migration to disk (0.39) #7136

Bug Fixes

  • Fix string formatting bug #6337
  • Fail to read a data item after data source compaction was interrupted #6426
  • Auto-scale from per-node mtps instead of network-wide #6465
  • Fix state loading. #6499
  • Method name in TestConfigBuilder fixed #6526
  • Large reconnect relates tests fail after recent changes #6540
  • extended test lable #6591
  • FCQueue is not properly destroyed #6630
  • Cause pcli.sh to fall back to no color if the color script is missing #6683
  • Inconsistency between VirtualNodeCache and DataSource during snapshots #6681
  • Properly clear pipelines before a reconnect. #6738
  • Fix Hedera so it can start again #6804
  • bug fix in AddressBookTestingToolState #6817
  • Added tests, fixed some bugs #6784
  • IOException during warm() call #6820
  • Fix nextExportTime if time exceeded one exportPeriod #7020
  • Old virtual map copies aren't released during to disk migration #7019

Contributors

We'd like to thank all the contributors who worked on this release!

@nathanklick
@tinker-michaelj
@qnswirlds
@agadzhalov
@MiroslavGatsanoga
@mhess-swl
@cody-littley
@artemananiev
@randered
@edward-swirldslabs
@lpetrovic05
@hendrikebbers
@timo0
@Neeharika-Sompalli
@JeffreyDallas
@stoyan-lime
@iwsimon
@povolev15
@david-bakin-sl
@alittley
@kimbor
@lukelee-sl
@rbair23
@OlegMazurov
@imalygin
@poulok
@nickpoorman
@jjohannes
@jsync-swirlds
@agadzhalov
@netopyr
@jasperpotts
@beeradb