Skip to content

v1.4.0

Compare
Choose a tag to compare
@sacherjj sacherjj released this 22 Oct 12:49
329668f

Changelog

[1.4.0] - 2021-10-14

Casper Node (casper-node/node/)

Added

  • Add enable_manual_sync boolean option to [contract_runtime] in the config.toml which enables manual LMDB sync.
  • Add new event to the main SSE server stream accessed via <IP:Port>/events/main which emits hashes of expired deploys.
  • Add contract_runtime_execute_block histogram tracking execution time of a whole block.
  • Long-running events now log their event type.
  • Individual weights for traffic throttling can now be set through the configuration value network.estimator_weights.
  • Add consensus.highway.max_request_batch_size configuration parameter. Defaults to 20.
  • New histogram metrics deploy_acceptor_accepted_deploy and deploy_acceptor_rejected_deploy that track how long the initial verification took.
  • Add gzip content negotiation (using accept-encoding header) to rpc endpoints.
  • Add state_get_trie JSON-RPC endpoint.
  • Add info_get_validator_changes JSON-RPC endpoint and REST endpoint validator-changes that return the status changes of active validators.

Changed

  • The following Highway timers are now separate, configurable, and optional (if the entry is not in the config, the timer is never called):
  • standstill_timeout causes the node to restart if no progress is made.
  • request_state_interval makes the node periodically request the latest state from a peer.
  • log_synchronizer_interval periodically logs the number of entries in the synchronizer queues.
  • Add support for providing node uptime via the addition of an uptime parameter in the response to the /status endpoint and the info_get_status JSON-RPC.
  • Support building and testing using stable Rust.
  • Log chattiness in debug or lower levels has been reduced and performance at info or higher slightly improved.
  • The following parameters in the [gossip] section of the config has been renamed:
  • [finished_entry_duration_secs] => [finished_entry_duration]
  • [gossip_request_timeout_secs] => [gossip_request_timeout]
  • [get_remainder_timeout_secs] => [get_remainder_timeout]
  • The following parameters in config now follow the humantime convention ('30sec', '120min', etc.):
  • [network][gossip_interval]
  • [gossip][finished_entry_duration]
  • [gossip][gossip_request_timeout]
  • [gossip][get_remainder_timeout]
  • [fetcher][get_from_peer_timeout]

Removed

  • The unofficial support for nix-related derivations and support tooling has been removed.
  • Experimental, nix-based kubernetes testing support has been removed.
  • Experimental support for libp2p has been removed.
  • The isolation_reconnect_delay configuration, which has been ignored since 1.3, has been removed.
  • The libp2p-exclusive metrics of read_futures_in_flight, read_futures_total, write_futures_in_flight, write_futures_total have been removed.

Fixed

  • Resolve an issue where Deploys with payment amounts exceeding the block gas limit would not be rejected.
  • Resolve issue of duplicated config option max_associated_keys.

Execution Engine (casper-node/execution_engine/)

Added

  • Added genesis validation step to ensure there are more genesis validators than validator slots.
  • Added a support for passing a public key as a target argument in native transfers.
  • Added a max_associated_keys configuration option for a hard limit of associated keys under accounts.

Changed

  • Documented storage module and children.
  • Reduced visibility to pub(crate) in several areas, allowing some dead code to be noticed and pruned.
  • Support building and testing using stable Rust.
  • Increase price of create_purse to 2.5CSPR.
  • Increase price of native transfer to 100 million motes (0.1 CSPR).
  • Improve doc comments to clarify behavior of the bidding functionality.
  • Document core and shared modules and their children.
  • Change parameters to LmdbEnvironment's constructor enabling manual flushing to disk.

Fixed

  • Fix a case where user could potentially supply a refund purse as a payment purse.

Node Macros (casper-node/node_macros/)

Changed

  • Support building and testing using stable Rust.

Casper Types (casper-node/types/)

Added

  • Add json-schema feature, disabled by default, to enable many types to be used to produce JSON-schema data.
  • Add implicit datasize feature, disabled by default, to enable many types to derive the DataSize trait.
  • Add StoredValue types to this crate.

Changed

  • Support building and testing using stable Rust.
  • Allow longer hex string to be presented in json files. Current maximum is increased from 100 to 150 characters.
  • Improve documentation and Debug impls for ApiError.

Deprecated

  • Feature std is deprecated as it is now a no-op, since there is no benefit to linking the std lib via this crate.

Cargo Casper (casper-node/execution_engine_testing/cargo_casper)

Changed

  • Support building and testing using stable Rust.

Removed

  • Remove support for generating an ERC-20 contract.

Test Support (casper-node/execution_engine_testing/test_support)

Changed

  • Support building and testing using stable Rust.

Contract (casper-node/smart_contracts/contract)

Added

  • Add no-std-helpers feature, enabled by default, which provides no-std panic/oom handlers and a global allocator as a convenience.
  • Add new APIs for transferring tokens to the main purse associated with a public key: transfer_to_public_key and transfer_from_purse_to_public_key.

Deprecated

  • Feature std is deprecated as it is now a no-op, since there is no benefit to linking the std lib via this crate.

Contract AssemblyScript (casper-node/smart_contracts/contract_as)

Added

  • Add function to create an account hash from a public key.
  • Add getter for public key algorithm name.
  • Add getter for raw bytes of public key.
  • Export casper_blake2b.
  • Add new APIs for transferring tokens to the main purse associated with a public key: transferToPublicKey and transferFromPurseToPublicKey.

Fixed

  • Fix instances of return <T>unreachable() which is invalid code under the latest AssemblyScript compiler.