Skip to content

Releases: casper-network/casper-node

v1.4.13

03 Mar 14:35
c8db6a7

Choose a tag to compare

Better instrumentation of branching WASM Op Codes to allow reduction of gas costs while still providing attack protection.

private-1.4.8

18 Oct 15:37
2a92bae

Choose a tag to compare

Integrating the 1.4.8 security fixes into private-chain.

v1.4.8

25 Aug 15:27
b94c4f7

Choose a tag to compare

Changed:

  • Update to fix security issue

private-1.4.6

21 Jun 20:16
4f9a59e

Choose a tag to compare

Support for Private Chain configuration of 1.4.6.

v1.4.6

11 May 20:16
6e1f65e

Choose a tag to compare

Changed

  • Update dependencies to make use of scratch global state in the contract runtime.

v1.4.5

06 Apr 15:41
fb91868

Choose a tag to compare

1.4.5

Added

  • Add a temporary chainspec setting max_stored_value_size to limit the size of individual values stored in global state.
  • Add a chainspec setting minimum_delegation_amount to limit the minimal amount of motes that can be delegated by a first time delegator.
  • Add a chainspec setting block_max_approval_count to limit the maximum number of approvals across all deploys in a single block.
  • Add a finalized_approvals field to the GetDeploy RPC, which if true causes the response to include finalized approvals substituted for the originally-received ones.

Fixed

  • Include deploy approvals in block payloads upon which consensus operates.
  • Fixes a bug where historical auction data was unavailable via get-auction-info RPC.

v1.4.4

04 Jan 15:53
6962edb

Choose a tag to compare

Added immediate metric for commit step.
Rolled back mixed case checksum formatting for output hex.

v1.4.3

21 Dec 22:24
9aa22ac

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file. The format is based on Keep a Changelog.

[2.0.1] - 2021-11-4

Test Support (casper-node/execution_engine_testing/test_support)

Changed

  • Change the path detection logic for compiled Wasm as used by the casper-node monorepo.

Deprecated

  • Deprecate the test-support feature. It had and continues to have no effect when enabled.

[2.0.0] - 2021-11-01

Test Support (casper-node/execution_engine_testing/test_support)

Added

  • Provide fine-grained support for testing all aspects of smart contract execution, including:
  • WasmTestBuilder for building and running a test to exercise a smart contract
  • DeployItemBuilder for building a DeployItem from a smart contract
  • ExecuteRequestBuilder for building an ExecuteRequest to execute a given smart contract
  • AdditiveMapDiff to allow easy comparison of two AdditiveMaps
  • StepRequestBuilder for building a StepRequest (generally only used by the execution engine itself)
  • UpgradeRequestBuilder for building an UpgradeRequest (generally only used by the execution engine itself)
  • Provide InMemoryWasmTestBuilder which will be suitable in most cases for testing a smart contract
  • Provide LmdbWasmTestBuilder can be used where global state needs to be persisted after execution of a smart contract
  • Provide several helper functions in utils module
  • Provide several default consts and statics useful across many test scenarios

Removed

  • Remove coarse-grained support and newtypes for testing smart contracts, including removal of:
  • Account
  • AccountHash
  • Error
  • Session
  • SessionBuilder
  • SessionTransferInfo
  • TestContext
  • TestContextBuilder
  • Value

[1.4.4] - 2021-11-18

Casper Types (casper-node/types/)

Fixed

  • Revert the accidental change to the std feature causing a broken build when this feature is enabled.

1.4.3 - 2021-11-17

1.4.2 - 2021-11-11

Casper Node (casper-node/node/)

Changed

  • There are now less false warnings/errors regarding dropped responders or closed channels during a shutdown, where they are expected and harmless.
  • Execution transforms are ordered by insertion order.

Removed

  • The config option consensus.highway.unit_hashes_folder has been removed.

Fixed

  • The block proposer component now retains pending deploys and transfers across a restart.

Execution Engine (casper-node/execution_engine/)

Changed

  • Execution transforms are returned in their insertion order.

Removed

  • Removed SystemContractCache as it was not being used anymore

Casper Types (casper-node/types/)

Added

  • Add checksummed hex encoding following a scheme similar to EIP-55.

v1.4.1

23 Oct 02:21
dd260c8

Choose a tag to compare

Changelog

[1.4.1] - 2021-10-19

Contract (casper-node/smart_contracts/contract)

Changed

  • Correcting breaking incompatibilities with previous 1.3.x release

[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.

v1.4.0

22 Oct 12:49
329668f

Choose a tag to compare

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.