From c2575653c7d6c766028c5f2c43169b97dabdc449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tadej=20Jane=C5=BE?= Date: Tue, 21 Jan 2020 18:04:02 +0100 Subject: [PATCH] changelog: Assemble changes for release 20.2 --- .changelog/2107.breaking.md | 5 -- .changelog/2362.breaking.md | 9 --- .changelog/2457.doc.md | 3 - .changelog/2504.breaking.md | 9 --- .changelog/2521.feature.md | 13 ---- .changelog/2525.breaking.md | 12 ---- .changelog/2529.breaking.md | 3 - .changelog/2529.feature.1.md | 2 - .changelog/2529.feature.2.md | 1 - .changelog/2538.feature.md | 4 -- .changelog/2545.trivial.1.md | 7 -- .changelog/2545.trivial.2.md | 21 ------ .changelog/2558.bugfix.md | 1 - .changelog/2559.trivial.md | 1 - .changelog/2565.doc.md | 3 - .changelog/2566.bugfix.md | 1 - .changelog/2567.bugfix.md | 3 - .changelog/2569.bugfix.1.md | 10 --- .changelog/2570.trivial.md | 0 CHANGELOG.md | 120 +++++++++++++++++++++++++++++++++++ 20 files changed, 120 insertions(+), 108 deletions(-) delete mode 100644 .changelog/2107.breaking.md delete mode 100644 .changelog/2362.breaking.md delete mode 100644 .changelog/2457.doc.md delete mode 100644 .changelog/2504.breaking.md delete mode 100644 .changelog/2521.feature.md delete mode 100644 .changelog/2525.breaking.md delete mode 100644 .changelog/2529.breaking.md delete mode 100644 .changelog/2529.feature.1.md delete mode 100644 .changelog/2529.feature.2.md delete mode 100644 .changelog/2538.feature.md delete mode 100644 .changelog/2545.trivial.1.md delete mode 100644 .changelog/2545.trivial.2.md delete mode 100644 .changelog/2558.bugfix.md delete mode 100644 .changelog/2559.trivial.md delete mode 100644 .changelog/2565.doc.md delete mode 100644 .changelog/2566.bugfix.md delete mode 100644 .changelog/2567.bugfix.md delete mode 100644 .changelog/2569.bugfix.1.md delete mode 100644 .changelog/2570.trivial.md diff --git a/.changelog/2107.breaking.md b/.changelog/2107.breaking.md deleted file mode 100644 index aaae6ac92d7..00000000000 --- a/.changelog/2107.breaking.md +++ /dev/null @@ -1,5 +0,0 @@ -go node: Unite compute, merge, and transaction scheduler roles. - -We're removing the separation among registering nodes for the compute, merge, and transaction scheduler roles. -You now have to register for and enable all or none of these roles, under a new, broadened, and confusing--you're -welcome--term "compute." diff --git a/.changelog/2362.breaking.md b/.changelog/2362.breaking.md deleted file mode 100644 index ba9199efad3..00000000000 --- a/.changelog/2362.breaking.md +++ /dev/null @@ -1,9 +0,0 @@ -Simplify tendermint sentry node setup. - -Breaking configuration changes: -- `worker.sentry.address` renamed to: `worker.registration.sentry.address` -- `worker.sentry.cert_file` renamed to: `worker.registration.sentry.cert_file` -- `tendermint.private_peer_id` removed -- added `tendermint.sentry.upstream_address` which should be set on sentry node -and it will set `tendermint.private_peer_id` and `tendermint.peristent_peer` for -the configured addresses diff --git a/.changelog/2457.doc.md b/.changelog/2457.doc.md deleted file mode 100644 index dd1b4ef2c75..00000000000 --- a/.changelog/2457.doc.md +++ /dev/null @@ -1,3 +0,0 @@ -Document versioning scheme used for Oasis Core and its Protocols - -See [Versioning Scheme](./docs/versioning.md). diff --git a/.changelog/2504.breaking.md b/.changelog/2504.breaking.md deleted file mode 100644 index 608e6687ac5..00000000000 --- a/.changelog/2504.breaking.md +++ /dev/null @@ -1,9 +0,0 @@ -Charge gas for runtime transactions and suspend runtimes which do not pay periodic maintenance fees. - -This introduces gas fees for submitting roothash commitments from runtime nodes. Since periodic -maintenance work must be performed on each epoch transition (e.g., electing runtime committees), -fees for that maintenance are paid by any nodes that register to perform work for a specific -runtime. Fees are pre-paid for the number of epochs a node registers for. - -If the maintenance fees are not paid, the runtime gets suspended (so periodic work is not needed) -and must be resumed by registering nodes. diff --git a/.changelog/2521.feature.md b/.changelog/2521.feature.md deleted file mode 100644 index 79f01ea339d..00000000000 --- a/.changelog/2521.feature.md +++ /dev/null @@ -1,13 +0,0 @@ -Consensus simulation mode and fee estimator - -This change allows the compute nodes to participate in networks which require gas fees for various -operations in the network. Gas is automatically estimated by simulating transactions while gas price -is currently "discovered" manually via node configuration. - -The following configuration flags are added: - -* `consensus.tendermint.submission.gas_price` should specify the gas price that the node will be - using in all submitted transactions. -* `consensus.tendermint.submission.max_fee` can optionally specify the maximum gas fee that the node - will use in submitted transactions. If the computed fee would ever go over this limit, the - transaction will not be submitted and an error will be returned instead. diff --git a/.changelog/2525.breaking.md b/.changelog/2525.breaking.md deleted file mode 100644 index f8e67334651..00000000000 --- a/.changelog/2525.breaking.md +++ /dev/null @@ -1,12 +0,0 @@ -go: Rename compute -> executor. - -It was proposed that we rename the "compute" phase (of the txnscheduler, _compute_, merge workflow) to "executor." - -Things that remain as "compute": -- the registry node role -- the registry runtime kind -- the staking threshold kind -- things actually referring to processing inputs to outputs -- one of the drbg contexts - -So among things that are renamed are fields of the on-chain state and command line flags. diff --git a/.changelog/2529.breaking.md b/.changelog/2529.breaking.md deleted file mode 100644 index 26eb9d5c51a..00000000000 --- a/.changelog/2529.breaking.md +++ /dev/null @@ -1,3 +0,0 @@ -`RuntimeID` is not hardcoded anymore in the enclave, but is passed when -dispatching the runtime. This enables the same runtime binary to be registered -and executed multiple times with different `RuntimeID`. \ No newline at end of file diff --git a/.changelog/2529.feature.1.md b/.changelog/2529.feature.1.md deleted file mode 100644 index 0813107b3c8..00000000000 --- a/.changelog/2529.feature.1.md +++ /dev/null @@ -1,2 +0,0 @@ -Add `make force-test` to `go/Makefile` to run all go unit tests regardless -of the previously cached test results. \ No newline at end of file diff --git a/.changelog/2529.feature.2.md b/.changelog/2529.feature.2.md deleted file mode 100644 index 637661c5f8e..00000000000 --- a/.changelog/2529.feature.2.md +++ /dev/null @@ -1 +0,0 @@ -Sort e2e names of the tests when invoking `oasis-test-runner list`. \ No newline at end of file diff --git a/.changelog/2538.feature.md b/.changelog/2538.feature.md deleted file mode 100644 index 54c2ef10d41..00000000000 --- a/.changelog/2538.feature.md +++ /dev/null @@ -1,4 +0,0 @@ -Optimize registry runtime lookups during node registration. - -A performance optimization to avoid loading a list of all registered runtimes into memory in cases -when only a specific runtime is actually needed. diff --git a/.changelog/2545.trivial.1.md b/.changelog/2545.trivial.1.md deleted file mode 100644 index 0d1a9279f6f..00000000000 --- a/.changelog/2545.trivial.1.md +++ /dev/null @@ -1,7 +0,0 @@ -go/worker/common/host: Emit events on (re)starts/failures. - -This replaces the previous mechanism which was implemented twice, first to receive the CapabilityTEE -and second to receive the runtime version. - -The new mechanism is based on events so that the caller is able to get notified when changes occur -(e.g., on restarts). diff --git a/.changelog/2545.trivial.2.md b/.changelog/2545.trivial.2.md deleted file mode 100644 index 47998b152e8..00000000000 --- a/.changelog/2545.trivial.2.md +++ /dev/null @@ -1,21 +0,0 @@ -go/worker: Make worker registration event-based. - -Previously, registration was based exclusively on epoch transitions which meant that in case the -node was not yet ready to service requests when an epoch transition happened, it needed to block the -registration goroutine until it was ready. - -This prevented updating the registration in reaction to some worker event that causes the node -descriptor to become invalid (e.g., due to a runtime restart invalidating the RAK). - -Node registration API was changed as follows: - -- Each part of the code that wishes to contribute something to the node descriptor first asks the - registration worker to create a RoleProvider. This reserves a slot which is "not ready" by - default. - -- The registration worker is changed so that it reacts to both epoch transitions and role provider - changes. When a change is detected, the registration worker will check if all RoleProvider slots - indicate that the slot is "ready". In case any is not ready, registration will not proceed. - -- Anyone that has a reference to a RoleProvider can signal that the slot has become either "ready" - or "not ready". diff --git a/.changelog/2558.bugfix.md b/.changelog/2558.bugfix.md deleted file mode 100644 index ac7c3ace079..00000000000 --- a/.changelog/2558.bugfix.md +++ /dev/null @@ -1 +0,0 @@ -Don't allow duplicate P2P connections from the same IP by default. diff --git a/.changelog/2559.trivial.md b/.changelog/2559.trivial.md deleted file mode 100644 index b4a6dfbdde9..00000000000 --- a/.changelog/2559.trivial.md +++ /dev/null @@ -1 +0,0 @@ -Release tooling improvements diff --git a/.changelog/2565.doc.md b/.changelog/2565.doc.md deleted file mode 100644 index 1cd4753c8b7..00000000000 --- a/.changelog/2565.doc.md +++ /dev/null @@ -1,3 +0,0 @@ -Document Oasis Core's release process - -See [Release process](./docs/release-process.md). diff --git a/.changelog/2566.bugfix.md b/.changelog/2566.bugfix.md deleted file mode 100644 index ab84a590f7c..00000000000 --- a/.changelog/2566.bugfix.md +++ /dev/null @@ -1 +0,0 @@ -go/extra/stats: handle nil-votes and non-registered nodes diff --git a/.changelog/2567.bugfix.md b/.changelog/2567.bugfix.md deleted file mode 100644 index dc7581ced41..00000000000 --- a/.changelog/2567.bugfix.md +++ /dev/null @@ -1,3 +0,0 @@ -go/oasis-node: Include account ID in `stake list -v` subcommand. - -Changes `stake list -v` subcommand to return a map of IDs to accounts. diff --git a/.changelog/2569.bugfix.1.md b/.changelog/2569.bugfix.1.md deleted file mode 100644 index 24024468bfc..00000000000 --- a/.changelog/2569.bugfix.1.md +++ /dev/null @@ -1,10 +0,0 @@ -Use a newer version of the oasis-core tendermint fork - -The updated fork has additional changes to tendermint to hopefully -prevent the node from crashing if the file descriptors available to the -process get exhausted due to hitting the rlimit. - -While no forward progress can be made while the node is re-opening the -WAL, the node will now flush incoming connections that are in the process -of handshaking, and retry re-opening the WAL instead of crashing with -a panic. diff --git a/.changelog/2570.trivial.md b/.changelog/2570.trivial.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d348d9fe4f..9b57f2ab98d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,126 @@ The format is inspired by [Keep a Changelog]. +## 20.2 (2020-01-21) + +### Removals and Breaking changes + +- go node: Unite compute, merge, and transaction scheduler roles. + ([#2107](https://github.com/oasislabs/oasis-core/issues/2107)) + + We're removing the separation among registering nodes for the compute, merge, + and transaction scheduler roles. + You now have to register for and enable all or none of these roles, under a + new, broadened, and confusing--you're welcome--term "compute". + +- Simplify tendermint sentry node setup. + ([#2362](https://github.com/oasislabs/oasis-core/issues/2362)) + + Breaking configuration changes: + - `worker.sentry.address` renamed to: `worker.registration.sentry.address` + - `worker.sentry.cert_file` renamed to: `worker.registration.sentry.cert_file` + - `tendermint.private_peer_id` removed + - added `tendermint.sentry.upstream_address` which should be set on sentry node + and it will set `tendermint.private_peer_id` and `tendermint.peristent_peer` for + the configured addresses + +- Charge gas for runtime transactions and suspend runtimes which do not pay + periodic maintenance fees. + ([#2504](https://github.com/oasislabs/oasis-core/issues/2504)) + + This introduces gas fees for submitting roothash commitments from runtime + nodes. Since periodic maintenance work must be performed on each epoch + transition (e.g., electing runtime committees), fees for that maintenance are + paid by any nodes that register to perform work for a specific runtime. Fees + are pre-paid for the number of epochs a node registers for. + + If the maintenance fees are not paid, the runtime gets suspended (so periodic + work is not needed) and must be resumed by registering nodes. + +- go: Rename compute -> executor. + ([#2525](https://github.com/oasislabs/oasis-core/issues/2525)) + + It was proposed that we rename the "compute" phase (of the txnscheduler, + _compute_, merge workflow) to "executor". + + Things that remain as "compute": + - the registry node role + - the registry runtime kind + - the staking threshold kind + - things actually referring to processing inputs to outputs + - one of the drbg contexts + + So among things that are renamed are fields of the on-chain state and command + line flags. + +- `RuntimeID` is not hardcoded anymore in the enclave, but is passed when + dispatching the runtime. This enables the same runtime binary to be registered + and executed multiple times with different `RuntimeID`. + ([#2529](https://github.com/oasislabs/oasis-core/issues/2529)) + +### Features + +- Consensus simulation mode and fee estimator + ([#2521](https://github.com/oasislabs/oasis-core/issues/2521)) + + This change allows the compute nodes to participate in networks which require + gas fees for various operations in the network. Gas is automatically estimated + by simulating transactions while gas price is currently "discovered" manually + via node configuration. + + The following configuration flags are added: + + - `consensus.tendermint.submission.gas_price` should specify the gas price + that the node will be using in all submitted transactions. + - `consensus.tendermint.submission.max_fee` can optionally specify the maximum + gas fee that the node will use in submitted transactions. If the computed + fee would ever go over this limit, the transaction will not be submitted and + an error will be returned instead. + +- Optimize registry runtime lookups during node registration. + ([#2538](https://github.com/oasislabs/oasis-core/issues/2538)) + + A performance optimization to avoid loading a list of all registered runtimes + into memory in cases when only a specific runtime is actually needed. + +### Bug Fixes + +- Don't allow duplicate P2P connections from the same IP by default. + ([#2558](https://github.com/oasislabs/oasis-core/issues/2558)) + +- go/extra/stats: handle nil-votes and non-registered nodes + ([#2566](https://github.com/oasislabs/oasis-core/issues/2566)) + +- go/oasis-node: Include account ID in `stake list -v` subcommand. + ([#2567](https://github.com/oasislabs/oasis-core/issues/2567)) + + Changes `stake list -v` subcommand to return a map of IDs to accounts. + +- Use a newer version of the oasis-core tendermint fork + ([#2569](https://github.com/oasislabs/oasis-core/issues/2569)) + + The updated fork has additional changes to tendermint to hopefully + prevent the node from crashing if the file descriptors available to the + process get exhausted due to hitting the rlimit. + + While no forward progress can be made while the node is re-opening the + WAL, the node will now flush incoming connections that are in the process + of handshaking, and retry re-opening the WAL instead of crashing with + a panic. + +### Documentation improvements + +- Document versioning scheme used for Oasis Core and its Protocols + ([#2457](https://github.com/oasislabs/oasis-core/issues/2457)) + + See [Versioning Scheme](./docs/versioning.md). + +- Document Oasis Core's release process + ([#2565](https://github.com/oasislabs/oasis-core/issues/2565)) + + See [Release process](./docs/release-process.md). + + ## 20.1 (2020-01-14) ### Features