# Release Notes

# [v3.1.8]

# Release Date - 19th September 2023

# Fixed

  • [SDK] Fix bug on IndexOf and SubString function of ByteString.
  • [CLI] No longer raise error for moveasset and movenft command when no private key argument passed.

# [v3.1.7]

# Release Date - 17th March 2023

# Changed

  • [SDK] EntityOperations class is obsoleted, use EntityKeyUtils instead.

# [v3.1.5]

# Release Date - 2nd February 2023

# Changed

  • [All] Update target framework from netcoreapp3.1 to net6.0.

# [v3.1.4]

# Release Date - 14 November 2022

# Added

  • [Client SDK Config] Add load balancer configuration for distributing client requests to available hosts.

# Changed

  • [Prometheus] Remove Connections field from miyabi_node_info metric.
  • [Prometheus] Remove disabled webapi metrics which are not needed anymore.
  • [Deployment] Remove log4net section from app.config and keep it separately in log4net.config.
  • [CLI] Correct description of parameter --privatekey in the DeleteTable command.
  • [CLI] Correct descriptions of parameters of smart contract commands.
  • [Admin CLI] [Archiving] Change command name from 'GetHistory' to 'GetPruneHistory'.
  • [CLI] Correct description of parameter --privatekey in the SetBinaryValue, DeleteBinaryValue, AddBinaryOwner and RemoveBinaryOwner command.
  • [Client SDK Config] blockchainConfigCacheExpiryInterval should be within predefined range.

# Fixed

  • [API] mempool/count API should display correct mempool count.

# [v3.1.3]

# Release Date - 24 August 2022

# Added

  • [SDK] Add a BaseConsole class to create a custom console.
  • [Internal] [CLI] Add a method to execute commands to write the output to console or other terminal.

# Fixed

  • Allow 'Miyabi.Contract.Analyer' NuGet to be included as build output.

# [v3.1.2]

# Release Date - 05 August 2022

# Added

  • [NFT SDK] Add helper methods for attaching and detaching prefixed tags.
  • [Entity SDK] Add helper methods for attaching and detaching prefixed tags.

# Changed

  • [ObserverSDK] Correct exception severity to 'Error'.

# [v3.1.1]

# Release Date - 20 June 2022

# Fixed

  • Allow observer to run on Linux with secure Miyabi SSL validation.
  • Handle hex values decoding when reading the entity table.

# [v3.1.0]

# Release Date - 06 May 2022

# Added

  • Implement private data feature in Miyabi.
  • Add System.Collections.Immutable to default whitelist.
  • Add logic in cli to dynamically read latest transactionLifetime from Blockchain config.
  • Add entries to update table owner, token admin, and trusted entities.
  • [CLI] --help now also shows which options are mandatory.
  • [CLI] getblock command is replaced by 2 separate commands getblockbyid and getblockbyheight.
  • [CLI] getheader command is replaced by 2 separate commands getheaderbyid and getheaderbyheight.
  • [CLI] getblockevents command is replaced by 2 separate commands getblockeventsbyid and getblockeventsbyheight.
  • Add NodeConfig.MaxTransactionCount property as the upper bound to batch queries of transactions related endpoints.
  • Add entries to update row owners.
  • Add nick name to node config and node info.
  • Implement handling of StateDump request and response on Sample Observer [Test].
  • Add table interface to get history key.
  • Implement dynamic loader for BLS module.
  • Send NotFoundTxs message for the txs that are not in the mempool but required by a GetTxs message.
  • Configure kestrel in web API builder to override options through "appsettings.json".
  • Entity Models : Create SDK methods to attach and detach key from data, parent and children keys.

# Changed

  • [CLI] Make "--host" take precedence over config.json.
  • Auto load internal assemblies for smart contracts.
  • Adjust the retry interval when ExternalObserverServer fails.
  • Check Blockchain Parameters in execution layer.
  • Forbid Miyabi client to call external hosts.
  • GetTransactionInfos and GetTransactionResults no longer get duplicated ids.
  • Move observer deserialization to individual module projects.
  • [CLI] Mark --privatekey as optional.
  • Decouple PrivateData, Contract and BLS modules from 'Miyabi.Core'.
  • Add logic to refresh cli metadata cache periodically. Also, handling of cache refresh in case client is offline.
  • Updated SocketException whitelist for retry logic.
  • Change some ContractBase methods to protected.

# Fixed

  • Fix Core node memory pool starving issue and allow Non-Core nodes to resend or purge old transactions.
  • compilecontract cannot work on Miyabi-cli-release packages.
  • Wrong display error on duplicated NFT generation & Add entity.
  • Change Node roles from 'Observer' to App and Core to Consensus.
  • Add permission check for updating entity row owner.
  • Add table deserializers to Observer SDK.
  • Update summary for web API.
  • Consensus Layer can handle no proposal commit.
  • Fix unhandled exception when field 'hosts' was not configured in SdkConfig.
  • Fix TryGetBalance behavior to be consistent with IsAccountRegistered.
  • Fix Conservation Break error in moveasset to same address.
  • Fix history endpoint [breaking].
  • Release write lock after failure.
  • Store all valid votes from one node to prevent dead lock.
  • Make PDO signatures mandatory for CRUD operations on PrivateData Table.
  • Improve catching up scheduling.
  • Fix inventory layer memory leak.
  • Complete tx task after committing of float block(s).
  • Remove hard-coded lower-bound/upper-bound limit on number of input tx-ids for getting txresults from general API.
  • On Linux, each node should have client and server connections with other nodes.
  • Remove WebApi's hard-coded MaxConcurrentConnection limit.