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
anddeploy_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 endpointvalidator-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 theinfo_get_status
JSON-RPC. - Support building and testing using stable Rust.
- Log chattiness in
debug
or lower levels has been reduced and performance atinfo
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
andshared
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 theDataSize
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 forApiError
.
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
andtransfer_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
andtransferFromPurseToPublicKey
.
Fixed
- Fix instances of
return <T>unreachable()
which is invalid code under the latest AssemblyScript compiler.