From ff6af3cec3a70dd278e81206660513dd16fa78a1 Mon Sep 17 00:00:00 2001 From: Jacek Malec <145967538+jacek-casper@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:26:01 +0100 Subject: [PATCH 1/7] Update changelogs for 1.5.4 --- execution_engine/CHANGELOG.md | 5 ++++- node/CHANGELOG.md | 19 +++++++++++++++++++ types/CHANGELOG.md | 4 ++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index af6a9a02e3..7b4cede61e 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -21,12 +21,15 @@ All notable changes to this project will be documented in this file. The format * Add chainspec option `core.refund_handling` that specifies how payment refunds are handled. * Add chainspec option `core.fee_handling` that specifes how transaction fees are handled. * Add chainspec option `core.administrators` that, if set, contains list of administrator accounts. This option makes sense only for private chains. +* Add initial support for private chain (#3106). - +### Fixed +* Fix an issue where payment errors penalty could've been paid to block proposer regardless of fee_handling/refund_handling option (#4258). ### Changed * Default value for `max_stack_height` is increased to 500. * `current stack height` is written to `stderr` in case `Trap(Unreachable)` error is encountered during Wasm execution. +* Tweaked upgrade logic transforming withdraw purses to early exit if possible (#4119). ## 6.0.0 diff --git a/node/CHANGELOG.md b/node/CHANGELOG.md index d89c3721bb..23e8d879e5 100644 --- a/node/CHANGELOG.md +++ b/node/CHANGELOG.md @@ -13,14 +13,33 @@ All notable changes to this project will be documented in this file. The format ## Unreleased +### Security +* Update `openssl` to version 0.10.55 as mitigation for [RUSTSEC-2023-0044](https://rustsec.org/advisories/RUSTSEC-2023-0044). + ### Added * New environment variable `CL_EVENT_QUEUE_DUMP_THRESHOLD` to enable dumping of queue event counts to log when a certain threshold is exceeded. +* Add initial support for private chain (#3106). +* Add support for CA signed client certificates for private chain (#3310). +* Add a finer grained latching mechanism for block_synchronization (#4042). +* Add a NoSync option, which allows a node to opt out of historical sync via config setting (#4257). +* Add more detail in the log message for too many events in the queue (#4295). +* Add more logging in BlockValidator (#4299). +* Add a Highway Analysis tool for checking the state of the consensus (#4372). ### Fixed * Now possible to build outside a git repository context (e.g. from a source tarball). In such cases, the node's build version (as reported vie status endpoints) will not contain a trailing git short hash. +* Purge block synchronizer every time we transition out of CatchUp (#4058). +* Don't return a fatal error when trying to deactivate an era that was already deactivated (#4075). +* Fix historical sync stall after restart in era 0 on pre-1.5 chain (#4129). +* Remove error for timestamp chronology to resolve failing sync (#4195). +* Fix block synchronizer request storm by tweaking the latching (#4205). +* Short-circuit initialization of block and deploy metadata DB to resolve delays after an upgrade (#4311). ### Changed * The `state_identifier` parameter of the `query_global_state` JSON-RPC method is now optional. If no `state_identifier` is specified, the highest complete block known to the node will be used to fulfill the request. +* Make the state_identifier parameter of the query_global_state JSON-RPC method optional (#4086). +* Downgrade the 'highest_era_weights does not contain signing_public_key' log message to DEBUG (#4143). +* `state_get_account_info` RPC handler can now handle an `AccountIdentifier` as a parameter (#4218). diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index 61f7b33e9a..e175ad0f84 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -16,7 +16,11 @@ All notable changes to this project will be documented in this file. The format ### Security * Update `ed25519-dalek` to version 2.0.0 as mitigation for [RUSTSEC-2022-0093](https://rustsec.org/advisories/RUSTSEC-2022-0093) +### Added +* Add a new `SyncHandling` enum, which allows a node to opt out of historical sync (#4257). +### Changed +* Update `k256` to version 0.13.1 (#4191). ## 3.0.0 From 2cf0445e3725235d0faea45272d183f8a57c9618 Mon Sep 17 00:00:00 2001 From: Jacek Malec <145967538+jacek-casper@users.noreply.github.com> Date: Thu, 2 Nov 2023 13:13:46 +0000 Subject: [PATCH 2/7] Address PR comments --- execution_engine/CHANGELOG.md | 5 +---- node/CHANGELOG.md | 18 ++++++------------ 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index 7b4cede61e..9ee5d70fe0 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -21,16 +21,13 @@ All notable changes to this project will be documented in this file. The format * Add chainspec option `core.refund_handling` that specifies how payment refunds are handled. * Add chainspec option `core.fee_handling` that specifes how transaction fees are handled. * Add chainspec option `core.administrators` that, if set, contains list of administrator accounts. This option makes sense only for private chains. -* Add initial support for private chain (#3106). - -### Fixed -* Fix an issue where payment errors penalty could've been paid to block proposer regardless of fee_handling/refund_handling option (#4258). ### Changed * Default value for `max_stack_height` is increased to 500. * `current stack height` is written to `stderr` in case `Trap(Unreachable)` error is encountered during Wasm execution. * Tweaked upgrade logic transforming withdraw purses to early exit if possible (#4119). + ## 6.0.0 ### Changed diff --git a/node/CHANGELOG.md b/node/CHANGELOG.md index 23e8d879e5..ecb556f9fa 100644 --- a/node/CHANGELOG.md +++ b/node/CHANGELOG.md @@ -20,27 +20,21 @@ All notable changes to this project will be documented in this file. The format * New environment variable `CL_EVENT_QUEUE_DUMP_THRESHOLD` to enable dumping of queue event counts to log when a certain threshold is exceeded. * Add initial support for private chain (#3106). * Add support for CA signed client certificates for private chain (#3310). -* Add a finer grained latching mechanism for block_synchronization (#4042). -* Add a NoSync option, which allows a node to opt out of historical sync via config setting (#4257). -* Add more detail in the log message for too many events in the queue (#4295). -* Add more logging in BlockValidator (#4299). * Add a Highway Analysis tool for checking the state of the consensus (#4372). ### Fixed * Now possible to build outside a git repository context (e.g. from a source tarball). In such cases, the node's build version (as reported vie status endpoints) will not contain a trailing git short hash. -* Purge block synchronizer every time we transition out of CatchUp (#4058). -* Don't return a fatal error when trying to deactivate an era that was already deactivated (#4075). -* Fix historical sync stall after restart in era 0 on pre-1.5 chain (#4129). -* Remove error for timestamp chronology to resolve failing sync (#4195). -* Fix block synchronizer request storm by tweaking the latching (#4205). +* Remove an error that would unnecessarily be raised when a node includes its highest orphaned block within the current era. * Short-circuit initialization of block and deploy metadata DB to resolve delays after an upgrade (#4311). ### Changed * The `state_identifier` parameter of the `query_global_state` JSON-RPC method is now optional. If no `state_identifier` is specified, the highest complete block known to the node will be used to fulfill the request. -* Make the state_identifier parameter of the query_global_state JSON-RPC method optional (#4086). -* Downgrade the 'highest_era_weights does not contain signing_public_key' log message to DEBUG (#4143). * `state_get_account_info` RPC handler can now handle an `AccountIdentifier` as a parameter (#4218). - +* Replace the `sync_to_genesis` node config field with `sync_handling` (#4257). + * The new field `sync_handling` field accepts three values: + - `genesis` - node will attempt to acquire all block data back to genesis + - `ttl` - node will attempt to acquire all block data to comply with time to live enforcement + - `nosync` - node will only acquire blocks moving forward ## 1.5.3 From 98c3fdc96b50b907496711e5f291169a5f046959 Mon Sep 17 00:00:00 2001 From: Jacek Malec <145967538+jacek-casper@users.noreply.github.com> Date: Thu, 2 Nov 2023 13:52:53 +0000 Subject: [PATCH 3/7] Mention lowering default gas opcode costs --- execution_engine/CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index 9ee5d70fe0..9a7e5e3e58 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -26,7 +26,9 @@ All notable changes to this project will be documented in this file. The format * Default value for `max_stack_height` is increased to 500. * `current stack height` is written to `stderr` in case `Trap(Unreachable)` error is encountered during Wasm execution. * Tweaked upgrade logic transforming withdraw purses to early exit if possible (#4119). - +* Lower the default gas costs of opcodes (#4387). + - Set the cost for branching opcodes to 35,000 (`br`, `br_if`, `br_table`). + - Set the cost for call opcodes to 68,000 (`call`, `call_indirect`). ## 6.0.0 From ddf18120d87f1bf2b05cc02bf9e6987b0c8ea7d3 Mon Sep 17 00:00:00 2001 From: Jacek Malec <145967538+jacek-casper@users.noreply.github.com> Date: Thu, 2 Nov 2023 14:05:38 +0000 Subject: [PATCH 4/7] Fix bad PR number --- node/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/CHANGELOG.md b/node/CHANGELOG.md index ecb556f9fa..eddf4c7c55 100644 --- a/node/CHANGELOG.md +++ b/node/CHANGELOG.md @@ -20,7 +20,7 @@ All notable changes to this project will be documented in this file. The format * New environment variable `CL_EVENT_QUEUE_DUMP_THRESHOLD` to enable dumping of queue event counts to log when a certain threshold is exceeded. * Add initial support for private chain (#3106). * Add support for CA signed client certificates for private chain (#3310). -* Add a Highway Analysis tool for checking the state of the consensus (#4372). +* Add a Highway Analysis tool for checking the state of the consensus (#4327). ### Fixed * Now possible to build outside a git repository context (e.g. from a source tarball). In such cases, the node's build version (as reported vie status endpoints) will not contain a trailing git short hash. From 41183a13656c7c50634a460eec612ac6d8d8ff76 Mon Sep 17 00:00:00 2001 From: Jacek Malec <145967538+jacek-casper@users.noreply.github.com> Date: Thu, 2 Nov 2023 15:51:15 +0000 Subject: [PATCH 5/7] Address PR comments --- execution_engine/CHANGELOG.md | 4 +++- node/CHANGELOG.md | 19 ++++++++++--------- types/CHANGELOG.md | 8 +++++--- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index 9a7e5e3e58..8a30b8ddbb 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -25,11 +25,13 @@ All notable changes to this project will be documented in this file. The format ### Changed * Default value for `max_stack_height` is increased to 500. * `current stack height` is written to `stderr` in case `Trap(Unreachable)` error is encountered during Wasm execution. -* Tweaked upgrade logic transforming withdraw purses to early exit if possible (#4119). +* Tweak upgrade logic transforming withdraw purses to early exit if possible (#4119). * Lower the default gas costs of opcodes (#4387). - Set the cost for branching opcodes to 35,000 (`br`, `br_if`, `br_table`). - Set the cost for call opcodes to 68,000 (`call`, `call_indirect`). + + ## 6.0.0 ### Changed diff --git a/node/CHANGELOG.md b/node/CHANGELOG.md index eddf4c7c55..167bc32edf 100644 --- a/node/CHANGELOG.md +++ b/node/CHANGELOG.md @@ -13,29 +13,30 @@ All notable changes to this project will be documented in this file. The format ## Unreleased -### Security -* Update `openssl` to version 0.10.55 as mitigation for [RUSTSEC-2023-0044](https://rustsec.org/advisories/RUSTSEC-2023-0044). - ### Added * New environment variable `CL_EVENT_QUEUE_DUMP_THRESHOLD` to enable dumping of queue event counts to log when a certain threshold is exceeded. * Add initial support for private chain (#3106). * Add support for CA signed client certificates for private chain (#3310). * Add a Highway Analysis tool for checking the state of the consensus (#4327). -### Fixed -* Now possible to build outside a git repository context (e.g. from a source tarball). In such cases, the node's build version (as reported vie status endpoints) will not contain a trailing git short hash. -* Remove an error that would unnecessarily be raised when a node includes its highest orphaned block within the current era. -* Short-circuit initialization of block and deploy metadata DB to resolve delays after an upgrade (#4311). - ### Changed * The `state_identifier` parameter of the `query_global_state` JSON-RPC method is now optional. If no `state_identifier` is specified, the highest complete block known to the node will be used to fulfill the request. * `state_get_account_info` RPC handler can now handle an `AccountIdentifier` as a parameter (#4218). * Replace the `sync_to_genesis` node config field with `sync_handling` (#4257). - * The new field `sync_handling` field accepts three values: + * The new `sync_handling` field accepts three values: - `genesis` - node will attempt to acquire all block data back to genesis - `ttl` - node will attempt to acquire all block data to comply with time to live enforcement - `nosync` - node will only acquire blocks moving forward +### Fixed +* Now possible to build outside a git repository context (e.g. from a source tarball). In such cases, the node's build version (as reported vie status endpoints) will not contain a trailing git short hash. +* Remove an error that would unnecessarily be raised when a node includes its highest orphaned block within the current era. +* Short-circuit initialization of block and deploy metadata DB to resolve delays after an upgrade (#4311). + +### Security +* Update `openssl` to version 0.10.55 as mitigation for [RUSTSEC-2023-0044](https://rustsec.org/advisories/RUSTSEC-2023-0044). + + ## 1.5.3 diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index e175ad0f84..3b2a181633 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -13,15 +13,17 @@ All notable changes to this project will be documented in this file. The format ## Unreleased -### Security -* Update `ed25519-dalek` to version 2.0.0 as mitigation for [RUSTSEC-2022-0093](https://rustsec.org/advisories/RUSTSEC-2022-0093) - ### Added * Add a new `SyncHandling` enum, which allows a node to opt out of historical sync (#4257). ### Changed * Update `k256` to version 0.13.1 (#4191). +### Security +* Update `ed25519-dalek` to version 2.0.0 as mitigation for [RUSTSEC-2022-0093](https://rustsec.org/advisories/RUSTSEC-2022-0093) + + + ## 3.0.0 ### Added From 49e17f56587357c88c8a5209aaa4b7fb5c6bfc7b Mon Sep 17 00:00:00 2001 From: Jacek Malec <145967538+jacek-casper@users.noreply.github.com> Date: Thu, 2 Nov 2023 15:53:41 +0000 Subject: [PATCH 6/7] Remove PR numbers --- execution_engine/CHANGELOG.md | 4 ++-- node/CHANGELOG.md | 12 ++++++------ types/CHANGELOG.md | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index 8a30b8ddbb..aa79196fec 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -25,8 +25,8 @@ All notable changes to this project will be documented in this file. The format ### Changed * Default value for `max_stack_height` is increased to 500. * `current stack height` is written to `stderr` in case `Trap(Unreachable)` error is encountered during Wasm execution. -* Tweak upgrade logic transforming withdraw purses to early exit if possible (#4119). -* Lower the default gas costs of opcodes (#4387). +* Tweak upgrade logic transforming withdraw purses to early exit if possible. +* Lower the default gas costs of opcodes. - Set the cost for branching opcodes to 35,000 (`br`, `br_if`, `br_table`). - Set the cost for call opcodes to 68,000 (`call`, `call_indirect`). diff --git a/node/CHANGELOG.md b/node/CHANGELOG.md index 167bc32edf..196a363e0b 100644 --- a/node/CHANGELOG.md +++ b/node/CHANGELOG.md @@ -15,14 +15,14 @@ All notable changes to this project will be documented in this file. The format ### Added * New environment variable `CL_EVENT_QUEUE_DUMP_THRESHOLD` to enable dumping of queue event counts to log when a certain threshold is exceeded. -* Add initial support for private chain (#3106). -* Add support for CA signed client certificates for private chain (#3310). -* Add a Highway Analysis tool for checking the state of the consensus (#4327). +* Add initial support for private chain. +* Add support for CA signed client certificates for private chain. +* Add a Highway Analysis tool for checking the state of the consensus. ### Changed * The `state_identifier` parameter of the `query_global_state` JSON-RPC method is now optional. If no `state_identifier` is specified, the highest complete block known to the node will be used to fulfill the request. -* `state_get_account_info` RPC handler can now handle an `AccountIdentifier` as a parameter (#4218). -* Replace the `sync_to_genesis` node config field with `sync_handling` (#4257). +* `state_get_account_info` RPC handler can now handle an `AccountIdentifier` as a parameter. +* Replace the `sync_to_genesis` node config field with `sync_handling`. * The new `sync_handling` field accepts three values: - `genesis` - node will attempt to acquire all block data back to genesis - `ttl` - node will attempt to acquire all block data to comply with time to live enforcement @@ -31,7 +31,7 @@ All notable changes to this project will be documented in this file. The format ### Fixed * Now possible to build outside a git repository context (e.g. from a source tarball). In such cases, the node's build version (as reported vie status endpoints) will not contain a trailing git short hash. * Remove an error that would unnecessarily be raised when a node includes its highest orphaned block within the current era. -* Short-circuit initialization of block and deploy metadata DB to resolve delays after an upgrade (#4311). +* Short-circuit initialization of block and deploy metadata DB to resolve delays after an upgrade. ### Security * Update `openssl` to version 0.10.55 as mitigation for [RUSTSEC-2023-0044](https://rustsec.org/advisories/RUSTSEC-2023-0044). diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index 3b2a181633..da9e8aa92e 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -14,10 +14,10 @@ All notable changes to this project will be documented in this file. The format ## Unreleased ### Added -* Add a new `SyncHandling` enum, which allows a node to opt out of historical sync (#4257). +* Add a new `SyncHandling` enum, which allows a node to opt out of historical sync. ### Changed -* Update `k256` to version 0.13.1 (#4191). +* Update `k256` to version 0.13.1. ### Security * Update `ed25519-dalek` to version 2.0.0 as mitigation for [RUSTSEC-2022-0093](https://rustsec.org/advisories/RUSTSEC-2022-0093) From f73fe274ca301a0a700a56079757aab883dd4274 Mon Sep 17 00:00:00 2001 From: Jacek Malec <145967538+jacek-casper@users.noreply.github.com> Date: Thu, 2 Nov 2023 17:27:54 +0000 Subject: [PATCH 7/7] Mention enable_contract_version --- execution_engine/CHANGELOG.md | 1 + smart_contracts/contract/CHANGELOG.md | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index aa79196fec..465299e4be 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -21,6 +21,7 @@ All notable changes to this project will be documented in this file. The format * Add chainspec option `core.refund_handling` that specifies how payment refunds are handled. * Add chainspec option `core.fee_handling` that specifes how transaction fees are handled. * Add chainspec option `core.administrators` that, if set, contains list of administrator accounts. This option makes sense only for private chains. +* Add support for a new FFI function `enable_contract_version` for enabling a specific version of a contract. ### Changed * Default value for `max_stack_height` is increased to 500. diff --git a/smart_contracts/contract/CHANGELOG.md b/smart_contracts/contract/CHANGELOG.md index bc178a72fa..cb2f87e719 100644 --- a/smart_contracts/contract/CHANGELOG.md +++ b/smart_contracts/contract/CHANGELOG.md @@ -11,6 +11,13 @@ All notable changes to this project will be documented in this file. The format +## [Unreleased] + +### Added +* Add `storage::enable_contract_version` for enabling a specific version of a contract. + + + ## 3.0.0 ### Added