From 2c5addcfb667ee524e9271ff2ab6c11d9edf2121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tadej=20Jane=C5=BE?= Date: Fri, 10 Jan 2020 18:24:20 +0100 Subject: [PATCH] changelog: Assemble changes for release 20.0 --- .changelog/1693.breaking.md | 6 -- .changelog/1693.trivial.md | 1 - .changelog/1845.feature.md | 1 - .changelog/2245.feature.md | 5 -- .changelog/2246.feature.md | 4 -- .changelog/2377.breaking.md | 9 --- .changelog/2426.breaking.md | 7 -- .changelog/2435.feature.md | 2 - .changelog/2459.breaking.md | 2 - .changelog/2478.feature.md | 7 -- .changelog/2482.feature.md | 8 --- .changelog/2484.bugfix.md | 4 -- .changelog/2492.breaking.md | 4 -- .changelog/2494.breaking.md | 11 ---- .changelog/2494.feature.md | 5 -- .changelog/2498.feature.md | 7 -- .changelog/2500.feature.md | 4 -- .changelog/2503.trivial.md | 3 - .changelog/2505.trivial.md | 7 -- .changelog/2507.trivial.md | 3 - .changelog/2511.trivial.md | 3 - .changelog/2512.trivial.md | 0 .changelog/2522.trivial.md | 1 - .changelog/2524.trivial.md | 0 .changelog/2528.trivial.md | 9 --- .changelog/2535.trivial.md | 0 .changelog/2539.trivial.md | 0 CHANGELOG.md | 127 ++++++++++++++++++++++++++++++++++++ 28 files changed, 127 insertions(+), 113 deletions(-) delete mode 100644 .changelog/1693.breaking.md delete mode 100644 .changelog/1693.trivial.md delete mode 100644 .changelog/1845.feature.md delete mode 100644 .changelog/2245.feature.md delete mode 100644 .changelog/2246.feature.md delete mode 100644 .changelog/2377.breaking.md delete mode 100644 .changelog/2426.breaking.md delete mode 100644 .changelog/2435.feature.md delete mode 100644 .changelog/2459.breaking.md delete mode 100644 .changelog/2478.feature.md delete mode 100644 .changelog/2482.feature.md delete mode 100644 .changelog/2484.bugfix.md delete mode 100644 .changelog/2492.breaking.md delete mode 100644 .changelog/2494.breaking.md delete mode 100644 .changelog/2494.feature.md delete mode 100644 .changelog/2498.feature.md delete mode 100644 .changelog/2500.feature.md delete mode 100644 .changelog/2503.trivial.md delete mode 100644 .changelog/2505.trivial.md delete mode 100644 .changelog/2507.trivial.md delete mode 100644 .changelog/2511.trivial.md delete mode 100644 .changelog/2512.trivial.md delete mode 100644 .changelog/2522.trivial.md delete mode 100644 .changelog/2524.trivial.md delete mode 100644 .changelog/2528.trivial.md delete mode 100644 .changelog/2535.trivial.md delete mode 100644 .changelog/2539.trivial.md diff --git a/.changelog/1693.breaking.md b/.changelog/1693.breaking.md deleted file mode 100644 index ccaeb860fa2..00000000000 --- a/.changelog/1693.breaking.md +++ /dev/null @@ -1,6 +0,0 @@ -go: Use the new runtime ID allocation scheme - -This change alters the runtime ID allocation scheme to reserve the first -64 bits for flags indicating various properties of the runtime, and to -forbid registering runtimes that have test runtime IDs unless the -appropriate consensus flag is set. \ No newline at end of file diff --git a/.changelog/1693.trivial.md b/.changelog/1693.trivial.md deleted file mode 100644 index 6acb14ee9d1..00000000000 --- a/.changelog/1693.trivial.md +++ /dev/null @@ -1 +0,0 @@ -go: Use common.Namespace for runtime IDs \ No newline at end of file diff --git a/.changelog/1845.feature.md b/.changelog/1845.feature.md deleted file mode 100644 index 8e2fd25126a..00000000000 --- a/.changelog/1845.feature.md +++ /dev/null @@ -1 +0,0 @@ -Add `oasis-node debug storage export` sub-command. diff --git a/.changelog/2245.feature.md b/.changelog/2245.feature.md deleted file mode 100644 index dffb035c60e..00000000000 --- a/.changelog/2245.feature.md +++ /dev/null @@ -1,5 +0,0 @@ -Add fuzzing for consensus methods. - -Initial support for fuzzing was added, along with an implementation of -it for some of the consensus methods. The implementation uses -oasis-core's demultiplexing and method dispatch mechanisms. diff --git a/.changelog/2246.feature.md b/.changelog/2246.feature.md deleted file mode 100644 index 507b195d276..00000000000 --- a/.changelog/2246.feature.md +++ /dev/null @@ -1,4 +0,0 @@ -Add storage backend fuzzing. - -Based on the work done for consensus fuzzing, support was added to run fuzzing -jobs on the storage api backend. diff --git a/.changelog/2377.breaking.md b/.changelog/2377.breaking.md deleted file mode 100644 index 12f6b31c9db..00000000000 --- a/.changelog/2377.breaking.md +++ /dev/null @@ -1,9 +0,0 @@ -Remove staking-related roothash messages. - -There is no longer a plan to support direct manipulation of the staking accounts -from the runtimes in order to isolate the runtimes from corrupting the -consensus layer. - -To reduce complexity, the staking-related roothash messages were removed. The -general roothash message mechanism stayed as-is since it may be useful in the -future, but any commits with non-empty messages are rejected for now. diff --git a/.changelog/2426.breaking.md b/.changelog/2426.breaking.md deleted file mode 100644 index 40dd73e14e8..00000000000 --- a/.changelog/2426.breaking.md +++ /dev/null @@ -1,7 +0,0 @@ -Refactoring of roothash genesis block for runtime. - -- `RuntimeGenesis.Round` field was added to the roothash block for the runtime -which can be set by `--runtime.genesis.round` flag. -- The `RuntimeGenesis.StorageReceipt` field was replaced by `StorageReceipts` list, -one for each storage node. -- Support for `base64` encoding/decoding of `Bytes` was added in rust. \ No newline at end of file diff --git a/.changelog/2435.feature.md b/.changelog/2435.feature.md deleted file mode 100644 index 4d6e3d49673..00000000000 --- a/.changelog/2435.feature.md +++ /dev/null @@ -1,2 +0,0 @@ -Add `oasis-node unsafe-reset` sub-command which resets the node back to a -freshly provisioned state, preserving any key material if it exists. diff --git a/.changelog/2459.breaking.md b/.changelog/2459.breaking.md deleted file mode 100644 index 1198f79512e..00000000000 --- a/.changelog/2459.breaking.md +++ /dev/null @@ -1,2 +0,0 @@ -When registering a new runtime, require that the given key manager ID points -to a valid key manager in the registry. \ No newline at end of file diff --git a/.changelog/2478.feature.md b/.changelog/2478.feature.md deleted file mode 100644 index 3a3642f82bb..00000000000 --- a/.changelog/2478.feature.md +++ /dev/null @@ -1,7 +0,0 @@ -Add txsource. - -The so-called "txsource" utility introduced in this PR is a starting point for something like a client that sends -transactions for a long period of time, for the purpose of creating long-running tests. - -With this change is a preliminary sample "workload"--a DRBG-backed schedule of transactions--which transfers staking -tokens around among a set of test accounts. diff --git a/.changelog/2482.feature.md b/.changelog/2482.feature.md deleted file mode 100644 index d9c539f6d00..00000000000 --- a/.changelog/2482.feature.md +++ /dev/null @@ -1,8 +0,0 @@ -Add consensus block and transaction metadata accessors. - -In order to enable people to build "network explorers", we exposed some -additional methods via the consensus API endpoint, specifically: - -- Consensus block metadata. -- Access to raw consensus transactions within a block. -- Stream of consensus blocks as they are finalized. diff --git a/.changelog/2484.bugfix.md b/.changelog/2484.bugfix.md deleted file mode 100644 index 9f82042addb..00000000000 --- a/.changelog/2484.bugfix.md +++ /dev/null @@ -1,4 +0,0 @@ -Reduce Badger in-memory cache sizes. - -The default is 1 GiB per badger instance and we use a few instances so this -resulted in some nice memory usage. diff --git a/.changelog/2492.breaking.md b/.changelog/2492.breaking.md deleted file mode 100644 index 78ebb6726b7..00000000000 --- a/.changelog/2492.breaking.md +++ /dev/null @@ -1,4 +0,0 @@ -Remove `oasis-node debug dummy` sub-commands. - -These are only useful for testing, and our test harness has a internal Go API -that removes the need to have this functionality exposed as a sub-command. diff --git a/.changelog/2494.breaking.md b/.changelog/2494.breaking.md deleted file mode 100644 index bfb137e39aa..00000000000 --- a/.changelog/2494.breaking.md +++ /dev/null @@ -1,11 +0,0 @@ -Make storage per-runtime. - -Previously there was a single storage backend used by `oasis-node` which required that a single -database supported multiple namespaces for the case when multiple runtimes were being used in a -single node. - -This change simplifies the storage database backends by removing the need for backends to implement -multi-namespace support, reducing overhead and cleanly separating per-runtime state. - -Due to this changing the internal database format, this breaks previous (compute node) deployments -with no way to do an automatic migration. diff --git a/.changelog/2494.feature.md b/.changelog/2494.feature.md deleted file mode 100644 index 15ceb61af98..00000000000 --- a/.changelog/2494.feature.md +++ /dev/null @@ -1,5 +0,0 @@ -Make maximum in-memory cache size for runtime storage configurable. - -Previously the value of 64mb was always used as the size of the in-memory storage cache. This adds a -new configuration parameter/command-line flag `--storage.max_cache_size` which configures the -maximum size of the in-memory runtime storage cache. diff --git a/.changelog/2498.feature.md b/.changelog/2498.feature.md deleted file mode 100644 index 78f378f0aef..00000000000 --- a/.changelog/2498.feature.md +++ /dev/null @@ -1,7 +0,0 @@ -Undisable transfers for some senders. - -Ostensibly for faucet purposes while we run the rest of the network with transfers disabled, -this lets us identify a whitelist of accounts from which we allow transfers when otherwise transfers are disabled. - -Configure this with a map of allowed senders' public keys -> `true` in the new `undisable_transfers_from` field in the -staking consensus parameters object along with `"disable_transfers": true`. diff --git a/.changelog/2500.feature.md b/.changelog/2500.feature.md deleted file mode 100644 index f10c723d46e..00000000000 --- a/.changelog/2500.feature.md +++ /dev/null @@ -1,4 +0,0 @@ -Entity block signatures count tool. - -The tool uses node consensus and registry API endpoints and computes the per -entity block signature counts. diff --git a/.changelog/2503.trivial.md b/.changelog/2503.trivial.md deleted file mode 100644 index c8a56eef53a..00000000000 --- a/.changelog/2503.trivial.md +++ /dev/null @@ -1,3 +0,0 @@ -go staking: add isTransferPermitted tests - -it was desired that we have tests for this transfer permissions engine diff --git a/.changelog/2505.trivial.md b/.changelog/2505.trivial.md deleted file mode 100644 index eaac563a16e..00000000000 --- a/.changelog/2505.trivial.md +++ /dev/null @@ -1,7 +0,0 @@ -txsource: Short runner. - -This adds short versions of the txsource e2e tests for use in regular CI tests. -Adding these to the regular CI tests is supposed to keep the system from rotting. - -The run-e2e-txsource.sh script is removed. -Use .buildkite/scripts/test_e2e.sh with `-t txsource-transfer` instead. diff --git a/.changelog/2507.trivial.md b/.changelog/2507.trivial.md deleted file mode 100644 index ff400c57761..00000000000 --- a/.changelog/2507.trivial.md +++ /dev/null @@ -1,3 +0,0 @@ -scripts: Unhardcode node binary in txsource wrapper. - -We need this to support the test coverage hacks in integration tests. diff --git a/.changelog/2511.trivial.md b/.changelog/2511.trivial.md deleted file mode 100644 index f675738dce7..00000000000 --- a/.changelog/2511.trivial.md +++ /dev/null @@ -1,3 +0,0 @@ -changelog: Update README for the new breaking type. - -The breaking type was introduced in #2499. diff --git a/.changelog/2512.trivial.md b/.changelog/2512.trivial.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.changelog/2522.trivial.md b/.changelog/2522.trivial.md deleted file mode 100644 index 50b48c2b681..00000000000 --- a/.changelog/2522.trivial.md +++ /dev/null @@ -1 +0,0 @@ -Change Log handling improvements. diff --git a/.changelog/2524.trivial.md b/.changelog/2524.trivial.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.changelog/2528.trivial.md b/.changelog/2528.trivial.md deleted file mode 100644 index fc5803531e1..00000000000 --- a/.changelog/2528.trivial.md +++ /dev/null @@ -1,9 +0,0 @@ -go/oasis-node: Reduce node test flakiness on certain systems - -There's been intermittent failures on certain systems (read: my laptop) -in some tests for a while, that have recently gotten worse. - -This adds a helper `MustTransitionEpoch` that monitors the roothash -backend for a block in the requested epoch, that can be called after -the force advancing the epoch with the mock backend, to ensure that the -roothash's view of the world is caught up enough where required. diff --git a/.changelog/2535.trivial.md b/.changelog/2535.trivial.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.changelog/2539.trivial.md b/.changelog/2539.trivial.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/CHANGELOG.md b/CHANGELOG.md index 3dbfc3e3689..f11c5945c46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,133 @@ The format is inspired by [Keep a Changelog]. +## 20.0 (2020-01-10) + +### Removals and Breaking changes + +- Use the new runtime ID allocation scheme + ([#1693](https://github.com/oasislabs/oasis-core/issues/1693)) + + This change alters the runtime ID allocation scheme to reserve the first + 64 bits for flags indicating various properties of the runtime, and to + forbid registering runtimes that have test runtime IDs unless the + appropriate consensus flag is set. + +- Remove staking-related roothash messages. + ([#2377](https://github.com/oasislabs/oasis-core/issues/2377)) + + There is no longer a plan to support direct manipulation of the staking accounts + from the runtimes in order to isolate the runtimes from corrupting the + consensus layer. + + To reduce complexity, the staking-related roothash messages were removed. The + general roothash message mechanism stayed as-is since it may be useful in the + future, but any commits with non-empty messages are rejected for now. + +- Refactoring of roothash genesis block for runtime. + ([#2426](https://github.com/oasislabs/oasis-core/issues/2426)) + + - `RuntimeGenesis.Round` field was added to the roothash block for the runtime + which can be set by `--runtime.genesis.round` flag. + - The `RuntimeGenesis.StorageReceipt` field was replaced by `StorageReceipts` list, + one for each storage node. + - Support for `base64` encoding/decoding of `Bytes` was added in rust. + +- When registering a new runtime, require that the given key manager ID points + to a valid key manager in the registry. + ([#2459](https://github.com/oasislabs/oasis-core/issues/2459)) + +- Remove `oasis-node debug dummy` sub-commands. + ([#2492](https://github.com/oasislabs/oasis-core/issues/2492)) + + These are only useful for testing, and our test harness has a internal Go API + that removes the need to have this functionality exposed as a sub-command. + +- Make storage per-runtime. + ([#2494](https://github.com/oasislabs/oasis-core/issues/2494)) + + Previously there was a single storage backend used by `oasis-node` which required that a single + database supported multiple namespaces for the case when multiple runtimes were being used in a + single node. + + This change simplifies the storage database backends by removing the need for backends to implement + multi-namespace support, reducing overhead and cleanly separating per-runtime state. + + Due to this changing the internal database format, this breaks previous (compute node) deployments + with no way to do an automatic migration. + +### Features + +- Add `oasis-node debug storage export` sub-command. + ([#1845](https://github.com/oasislabs/oasis-core/issues/1845)) + +- Add fuzzing for consensus methods. + ([#2245](https://github.com/oasislabs/oasis-core/issues/2245)) + + Initial support for fuzzing was added, along with an implementation of + it for some of the consensus methods. The implementation uses + oasis-core's demultiplexing and method dispatch mechanisms. + +- Add storage backend fuzzing. + ([#2246](https://github.com/oasislabs/oasis-core/issues/2246)) + + Based on the work done for consensus fuzzing, support was added to run fuzzing + jobs on the storage api backend. + +- Add `oasis-node unsafe-reset` sub-command which resets the node back to a + freshly provisioned state, preserving any key material if it exists. + ([#2435](https://github.com/oasislabs/oasis-core/issues/2435)) + +- Add txsource. + ([#2478](https://github.com/oasislabs/oasis-core/issues/2478)) + + The so-called "txsource" utility introduced in this PR is a starting point for something like a client that sends + transactions for a long period of time, for the purpose of creating long-running tests. + + With this change is a preliminary sample "workload"--a DRBG-backed schedule of transactions--which transfers staking + tokens around among a set of test accounts. + +- Add consensus block and transaction metadata accessors. + ([#2482](https://github.com/oasislabs/oasis-core/issues/2482)) + + In order to enable people to build "network explorers", we exposed some + additional methods via the consensus API endpoint, specifically: + + - Consensus block metadata. + - Access to raw consensus transactions within a block. + - Stream of consensus blocks as they are finalized. + +- Make maximum in-memory cache size for runtime storage configurable. + ([#2494](https://github.com/oasislabs/oasis-core/issues/2494)) + + Previously the value of 64mb was always used as the size of the in-memory storage cache. This adds a + new configuration parameter/command-line flag `--storage.max_cache_size` which configures the + maximum size of the in-memory runtime storage cache. + +- Undisable transfers for some senders. + ([#2498](https://github.com/oasislabs/oasis-core/issues/2498)) + + Ostensibly for faucet purposes while we run the rest of the network with transfers disabled, + this lets us identify a whitelist of accounts from which we allow transfers when otherwise transfers are disabled. + + Configure this with a map of allowed senders' public keys -> `true` in the new `undisable_transfers_from` field in the + staking consensus parameters object along with `"disable_transfers": true`. + +- Entity block signatures count tool. + ([#2500](https://github.com/oasislabs/oasis-core/issues/2500)) + + The tool uses node consensus and registry API endpoints and computes the per + entity block signature counts. + +### Bug Fixes + +- Reduce Badger in-memory cache sizes. + ([#2484](https://github.com/oasislabs/oasis-core/issues/2484)) + + The default is 1 GiB per badger instance and we use a few instances so this + resulted in some nice memory usage. + + ## 19.0 (2019-12-18) ### Process