Releases: casper-network/casper-node
Releases · casper-network/casper-node
v1.4.1
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
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.
v1.4.0
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.
v1.3.4
v1.3.3
v1.3.2
[1.3.2] - 2021-08-02
Casper Node (casper-node/node/)
Fixed
- Resolve an issue in the
state_get_dictionary_item
JSON-RPC when aContractHash
is used. - Corrected network state engine to hold in blocked state for full 10 minutes when encountering out of order race condition.
[1.3.1] - 2021-07-26
Casper Node (casper-node/node/)
Fixed
- Parametrized sync_timeout and increased value to stop possible post upgrade restart loop.
[1.3.0] - 2021-07-19
Casper Node (casper-node/node/)
Added
- Add support for providing historical auction information via the addition of an optional block ID in the
state_get_auction_info
JSON-RPC. - Exclude inactive validators from proposing blocks.
- Add validation of the
[protocol]
configuration on startup, to ensure the contained values make sense. - Add optional outgoing bandwidth limiter to the networking component, controllable via new
[network][max_outgoing_byte_rate_non_validators]
config option. - Add optional incoming message limiter to the networking component, controllable via new
[network][max_incoming_message_rate_non_validators]
config option. - Add optional in-memory deduplication of deploys, controllable via new
[storage]
config options[enable_mem_deduplication]
and[mem_pool_prune_interval]
. - Add a new event stream to SSE server accessed via
<IP:Port>/events/deploys
which emits deploys in full as they are accepted.
Changed
- Major rewrite of the network component, covering connection negotiation and management, periodic housekeeping and logging.
- Exchange and authenticate Validator public keys in network handshake between peers.
- Remove needless copying of outgoing network messages.
- Move finality signatures to separate event stream and change stream endpoints to
/events/main
and/events/sigs
. - Avoid truncating the state root hash when reporting node's status via JSON-RPC or REST servers.
- The JSON-RPC server waits until an incoming deploy has been sent to storage before responding to the client.
- Persist event stream event index across node restarts.
- Separate transfers from other deploys in the block proposer.
- Enable getting validators for future eras in
EffectBuilder::get_era_validators()
. - Improve logging around stalled consensus detection.
- Skip storage integrity checks if the node didn't previously crash.
- Update pinned version of Rust to
nightly-2021-06-17
- Don't shut down by default anymore if stalled. To enable set config option
shutdown_on_standstill = true
in[consensus.highway]
.
Removed
- Remove systemd notify support, including removal of
[network][systemd_support]
config option.
Fixed
- Avoid redundant requests caused by the Highway synchronizer.
- Update "current era" metric also for initial era.
- Keep syncing until the node is in the current era, rather than allowing an acceptable drift.
- Update the list of peers with newly-learned ones in linear chain sync.
- Drain the joiner reactor queue on exit, to eliminate stale connections whose handshake has completed, but which live on the queue.
- Shut down SSE event streams gracefully.
- Limit the maximum number of clients connected to the event stream server via the
[event_stream_server][max_concurrent_subscribers]
config option. - Avoid emitting duplicate events in the event stream.
- Change
BlockIdentifier
params in the Open-RPC schema to be optional.
Execution Engine (casper-node/execution_engine/)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Node Macros (casper-node/node_macros/)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Casper Types (casper-node/types/)
Changed
- Restrict summarization when JSON pretty-printing to contiguous long hex strings.
- Update pinned version of Rust to
nightly-2021-06-17
Removed
- Remove ability to clone
SecretKey
s.
Cargo Casper (casper-node/execution_engine_testing/cargo_casper)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Test Support (casper-node/execution_engine_testing/test_support)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Contract (casper-node/smart_contracts/contract)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
v1.3.1
[1.3.1] - 2021-07-24
Casper Node (casper-node/node/)
Added
- Add support for providing historical auction information via the addition of an optional block ID in the
state_get_auction_info
JSON-RPC. - Exclude inactive validators from proposing blocks.
- Add validation of the
[protocol]
configuration on startup, to ensure the contained values make sense. - Add optional outgoing bandwidth limiter to the networking component, controllable via new
[network][max_outgoing_byte_rate_non_validators]
config option. - Add optional incoming message limiter to the networking component, controllable via new
[network][max_incoming_message_rate_non_validators]
config option. - Add optional in-memory deduplication of deploys, controllable via new
[storage]
config options[enable_mem_deduplication]
and[mem_pool_prune_interval]
. - Add a new event stream to SSE server accessed via
<IP:Port>/events/deploys
which emits deploys in full as they are accepted.
Changed
- Major rewrite of the network component, covering connection negotiation and management, periodic housekeeping and logging.
- Exchange and authenticate Validator public keys in network handshake between peers.
- Remove needless copying of outgoing network messages.
- Move finality signatures to separate event stream and change stream endpoints to
/events/main
and/events/sigs
. - Avoid truncating the state root hash when reporting node's status via JSON-RPC or REST servers.
- The JSON-RPC server waits until an incoming deploy has been sent to storage before responding to the client.
- Persist event stream event index across node restarts.
- Separate transfers from other deploys in the block proposer.
- Enable getting validators for future eras in
EffectBuilder::get_era_validators()
. - Replace config option
[block_propser][deploy_delay]
(which specified a fixed delay before proposing a deploy) with a gossip-finished announcement. - Improve logging around stalled consensus detection.
- Skip storage integrity checks if the node didn't previously crash.
- Update pinned version of Rust to
nightly-2021-06-17
- Don't shut down by default anymore if stalled. To enable set config option
shutdown_on_standstill = true
in[consensus.highway]
.
Removed
- Remove systemd notify support, including removal of
[network][systemd_support]
config option.
Fixed
- Avoid redundant requests caused by the Highway synchronizer.
- Update "current era" metric also for initial era.
- Keep syncing until the node is in the current era, rather than allowing an acceptable drift.
- Update the list of peers with newly-learned ones in linear chain sync.
- Drain the joiner reactor queue on exit, to eliminate stale connections whose handshake has completed, but which live on the queue.
- Shut down SSE event streams gracefully.
- Limit the maximum number of clients connected to the event stream server via the
[event_stream_server][max_concurrent_subscribers]
config option. - Avoid emitting duplicate events in the event stream.
- Change
BlockIdentifier
params in the Open-RPC schema to be optional.
Execution Engine (casper-node/execution_engine/)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Node Macros (casper-node/node_macros/)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Casper Types (casper-node/types/)
Changed
- Restrict summarization when JSON pretty-printing to contiguous long hex strings.
- Update pinned version of Rust to
nightly-2021-06-17
Removed
- Remove ability to clone
SecretKey
s.
Cargo Casper (casper-node/execution_engine_testing/cargo_casper)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Test Support (casper-node/execution_engine_testing/test_support)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Contract (casper-node/smart_contracts/contract)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
v1.3.0
[1.3.0] - 2021-07-19
Casper Node (casper-node/node/)
Added
- Add support for providing historical auction information via the addition of an optional block ID in the
state_get_auction_info
JSON-RPC. - Exclude inactive validators from proposing blocks.
- Add validation of the
[protocol]
configuration on startup, to ensure the contained values make sense. - Add optional outgoing bandwidth limiter to the networking component, controllable via new
[network][max_outgoing_byte_rate_non_validators]
config option. - Add optional incoming message limiter to the networking component, controllable via new
[network][max_incoming_message_rate_non_validators]
config option. - Add optional in-memory deduplication of deploys, controllable via new
[storage]
config options[enable_mem_deduplication]
and[mem_pool_prune_interval]
. - Add a new event stream to SSE server accessed via
<IP:Port>/events/deploys
which emits deploys in full as they are accepted.
Changed
- Major rewrite of the network component, covering connection negotiation and management, periodic housekeeping and logging.
- Exchange and authenticate Validator public keys in network handshake between peers.
- Remove needless copying of outgoing network messages.
- Move finality signatures to separate event stream and change stream endpoints to
/events/main
and/events/sigs
. - Avoid truncating the state root hash when reporting node's status via JSON-RPC or REST servers.
- The JSON-RPC server waits until an incoming deploy has been sent to storage before responding to the client.
- Persist event stream event index across node restarts.
- Separate transfers from other deploys in the block proposer.
- Enable getting validators for future eras in
EffectBuilder::get_era_validators()
. - Replace config option
[block_propser][deploy_delay]
(which specified a fixed delay before proposing a deploy) with a gossip-finished announcement. - Improve logging around stalled consensus detection.
- Skip storage integrity checks if the node didn't previously crash.
- Update pinned version of Rust to
nightly-2021-06-17
- Don't shut down by default anymore if stalled. To enable set config option
shutdown_on_standstill = true
in[consensus.highway]
.
Removed
- Remove systemd notify support, including removal of
[network][systemd_support]
config option.
Fixed
- Avoid redundant requests caused by the Highway synchronizer.
- Update "current era" metric also for initial era.
- Keep syncing until the node is in the current era, rather than allowing an acceptable drift.
- Update the list of peers with newly-learned ones in linear chain sync.
- Drain the joiner reactor queue on exit, to eliminate stale connections whose handshake has completed, but which live on the queue.
- Shut down SSE event streams gracefully.
- Limit the maximum number of clients connected to the event stream server via the
[event_stream_server][max_concurrent_subscribers]
config option. - Avoid emitting duplicate events in the event stream.
Execution Engine (casper-node/execution_engine/)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Node Macros (casper-node/node_macros/)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Casper Types (casper-node/types/)
Changed
- Restrict summarization when JSON pretty-printing to contiguous long hex strings.
- Update pinned version of Rust to
nightly-2021-06-17
Removed
- Remove ability to clone
SecretKey
s.
Cargo Casper (casper-node/execution_engine_testing/cargo_casper)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Test Support (casper-node/execution_engine_testing/test_support)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
Contract (casper-node/smart_contracts/contract)
Changed
- Update pinned version of Rust to
nightly-2021-06-17
v1.2.1
v1.2.0
Key Changes:
- Created REST endpoint for OpenRPC schema.
- More consensus and block proposer log messages added.
- Era supervisors must access, only deploy hashes, which will be stored separately from block bodies.
- Networking component instrumentation to gain more insight into the network before making any changes.
- Block Validator now distinguishes between deploys and transfers.
- Configurable delay added before proposing deploys.
- Added last emergency_restart field to chainspec.
- From Config broadcast_channel_size removed.
- Quantstamp Audit changes Part 1.
- Default deploy TTL reduced to 30mins.
Known Issue:
- After an upgrade the era metric is set to 0. This does not impact the Security, Performance or features of the network detrimentally.