From 2416aa799938a7e252af13484573262784ad471a Mon Sep 17 00:00:00 2001
From: Benjamin Kampmann <ben@gnunicorn.org>
Date: Thu, 20 Aug 2020 17:04:42 +0200
Subject: [PATCH] prepping  for releasing rc6 (#6922)

* Bump version

* update test-utils crates to be ready for publishing

* adding changelog

* Adding automaticly generated READMEs

* fixing versions

* another version mishap
---
 substrate/Cargo.lock                          | 370 +++++++++---------
 substrate/bin/node-template/node/Cargo.toml   |  52 +--
 .../node-template/pallets/template/Cargo.toml |  12 +-
 .../node-template/pallets/template/README.md  |   1 +
 .../bin/node-template/runtime/Cargo.toml      |  50 +--
 substrate/bin/node/bench/Cargo.toml           |  34 +-
 substrate/bin/node/browser-testing/Cargo.toml |   6 +-
 substrate/bin/node/cli/Cargo.toml             | 122 +++---
 substrate/bin/node/executor/Cargo.toml        |  50 +--
 substrate/bin/node/inspect/Cargo.toml         |  14 +-
 substrate/bin/node/primitives/Cargo.toml      |  12 +-
 substrate/bin/node/rpc-client/Cargo.toml      |   6 +-
 substrate/bin/node/rpc/Cargo.toml             |  42 +-
 substrate/bin/node/runtime/Cargo.toml         | 116 +++---
 substrate/bin/node/testing/Cargo.toml         |  68 ++--
 .../bin/utils/chain-spec-builder/Cargo.toml   |  10 +-
 .../bin/utils/chain-spec-builder/README.md    |   1 +
 substrate/bin/utils/subkey/Cargo.toml         |  14 +-
 substrate/bin/utils/subkey/README.md          |   1 +
 substrate/client/api/Cargo.toml               |  44 +--
 substrate/client/api/README.md                |   3 +
 .../client/authority-discovery/Cargo.toml     |  24 +-
 .../client/authority-discovery/README.md      |   9 +
 substrate/client/basic-authorship/Cargo.toml  |  30 +-
 substrate/client/basic-authorship/README.md   |  32 ++
 substrate/client/block-builder/Cargo.toml     |  22 +-
 substrate/client/block-builder/README.md      |   9 +
 substrate/client/chain-spec/Cargo.toml        |  14 +-
 substrate/client/chain-spec/README.md         |  92 +++++
 substrate/client/chain-spec/derive/Cargo.toml |   2 +-
 substrate/client/cli/Cargo.toml               |  34 +-
 substrate/client/cli/README.md                |   3 +
 substrate/client/consensus/aura/Cargo.toml    |  50 +--
 substrate/client/consensus/aura/README.md     |  15 +
 substrate/client/consensus/babe/Cargo.toml    |  60 +--
 substrate/client/consensus/babe/README.md     |  48 +++
 .../client/consensus/babe/rpc/Cargo.toml      |  30 +-
 substrate/client/consensus/babe/rpc/README.md |   3 +
 substrate/client/consensus/common/Cargo.toml  |  10 +-
 substrate/client/consensus/common/README.md   |   3 +
 substrate/client/consensus/epochs/Cargo.toml  |  10 +-
 substrate/client/consensus/epochs/README.md   |   3 +
 .../client/consensus/manual-seal/Cargo.toml   |  26 +-
 .../client/consensus/manual-seal/README.md    |   4 +
 substrate/client/consensus/pow/Cargo.toml     |  24 +-
 substrate/client/consensus/pow/README.md      |  16 +
 substrate/client/consensus/slots/Cargo.toml   |  26 +-
 substrate/client/consensus/slots/README.md    |   7 +
 substrate/client/consensus/uncles/Cargo.toml  |  14 +-
 substrate/client/consensus/uncles/README.md   |   3 +
 substrate/client/db/Cargo.toml                |  30 +-
 substrate/client/db/README.md                 |  11 +
 substrate/client/executor/Cargo.toml          |  40 +-
 substrate/client/executor/README.md           |  13 +
 substrate/client/executor/common/Cargo.toml   |  12 +-
 substrate/client/executor/common/README.md    |   3 +
 .../client/executor/runtime-test/Cargo.toml   |  14 +-
 substrate/client/executor/wasmi/Cargo.toml    |  12 +-
 substrate/client/executor/wasmi/README.md     |   3 +
 substrate/client/executor/wasmtime/Cargo.toml |  12 +-
 substrate/client/executor/wasmtime/README.md  |   1 +
 substrate/client/finality-grandpa/Cargo.toml  |  56 +--
 substrate/client/finality-grandpa/README.md   |  39 ++
 .../client/finality-grandpa/rpc/Cargo.toml    |  26 +-
 .../client/finality-grandpa/rpc/README.md     |   3 +
 substrate/client/informant/Cargo.toml         |  10 +-
 substrate/client/informant/README.md          |   3 +
 substrate/client/keystore/Cargo.toml          |   6 +-
 substrate/client/keystore/README.md           |   3 +
 substrate/client/light/Cargo.toml             |   2 +-
 substrate/client/light/README.md              |   3 +
 substrate/client/network-gossip/Cargo.toml    |   8 +-
 substrate/client/network-gossip/README.md     |  41 ++
 substrate/client/network/Cargo.toml           |  32 +-
 substrate/client/network/README.md            | 226 +++++++++++
 substrate/client/network/test/Cargo.toml      |  26 +-
 substrate/client/offchain/Cargo.toml          |  26 +-
 substrate/client/offchain/README.md           |  18 +
 substrate/client/peerset/Cargo.toml           |   4 +-
 substrate/client/peerset/README.md            |   4 +
 substrate/client/proposer-metrics/Cargo.toml  |   4 +-
 substrate/client/proposer-metrics/README.md   |   3 +
 substrate/client/rpc-api/Cargo.toml           |  14 +-
 substrate/client/rpc-api/README.md            |   5 +
 substrate/client/rpc-servers/Cargo.toml       |   4 +-
 substrate/client/rpc-servers/README.md        |   3 +
 substrate/client/rpc/Cargo.toml               |  44 +--
 substrate/client/rpc/README.md                |   5 +
 substrate/client/service/Cargo.toml           |  72 ++--
 substrate/client/service/README.md            |   4 +
 substrate/client/service/test/Cargo.toml      |  42 +-
 substrate/client/state-db/Cargo.toml          |   6 +-
 substrate/client/state-db/README.md           |  16 +
 substrate/client/telemetry/Cargo.toml         |   2 +-
 substrate/client/telemetry/README.md          |  45 +++
 substrate/client/tracing/Cargo.toml           |   4 +-
 substrate/client/tracing/README.md            |  11 +
 substrate/client/transaction-pool/Cargo.toml  |  32 +-
 substrate/client/transaction-pool/README.md   |   3 +
 .../client/transaction-pool/graph/Cargo.toml  |  14 +-
 .../client/transaction-pool/graph/README.md   |   8 +
 substrate/docs/CHANGELOG.md                   |  37 ++
 substrate/frame/assets/Cargo.toml             |  14 +-
 substrate/frame/assets/README.md              | 116 ++++++
 substrate/frame/atomic-swap/Cargo.toml        |  16 +-
 substrate/frame/atomic-swap/README.md         |  23 ++
 substrate/frame/aura/Cargo.toml               |  26 +-
 substrate/frame/aura/README.md                |  28 ++
 .../frame/authority-discovery/Cargo.toml      |  22 +-
 substrate/frame/authority-discovery/README.md |   6 +
 substrate/frame/authorship/Cargo.toml         |  18 +-
 substrate/frame/authorship/README.md          |   5 +
 substrate/frame/babe/Cargo.toml               |  46 +--
 substrate/frame/babe/README.md                |   4 +
 substrate/frame/balances/Cargo.toml           |  18 +-
 substrate/frame/balances/README.md            | 122 ++++++
 substrate/frame/benchmark/Cargo.toml          |  14 +-
 substrate/frame/benchmark/README.md           |   5 +
 substrate/frame/benchmarking/Cargo.toml       |  18 +-
 substrate/frame/benchmarking/README.md        |   3 +
 substrate/frame/collective/Cargo.toml         |  18 +-
 substrate/frame/collective/README.md          |  22 ++
 substrate/frame/contracts/Cargo.toml          |  26 +-
 substrate/frame/contracts/README.md           |  64 +++
 substrate/frame/contracts/common/Cargo.toml   |   6 +-
 substrate/frame/contracts/common/README.md    |   3 +
 substrate/frame/contracts/rpc/Cargo.toml      |  16 +-
 substrate/frame/contracts/rpc/README.md       |   3 +
 .../contracts/rpc/runtime-api/Cargo.toml      |  10 +-
 .../frame/contracts/rpc/runtime-api/README.md |   7 +
 substrate/frame/democracy/Cargo.toml          |  24 +-
 substrate/frame/democracy/README.md           | 135 +++++++
 substrate/frame/elections-phragmen/Cargo.toml |  22 +-
 substrate/frame/elections-phragmen/README.md  |  67 ++++
 substrate/frame/elections/Cargo.toml          |  16 +-
 substrate/frame/elections/README.md           |   7 +
 substrate/frame/evm/Cargo.toml                |  18 +-
 substrate/frame/evm/README.md                 |   3 +
 .../frame/example-offchain-worker/Cargo.toml  |  14 +-
 .../frame/example-offchain-worker/README.md   |  26 ++
 substrate/frame/example/Cargo.toml            |  18 +-
 substrate/frame/example/README.md             | 237 +++++++++++
 substrate/frame/executive/Cargo.toml          |  26 +-
 substrate/frame/executive/README.md           |  61 +++
 substrate/frame/finality-tracker/Cargo.toml   |  18 +-
 substrate/frame/finality-tracker/README.md    |   3 +
 substrate/frame/generic-asset/Cargo.toml      |  14 +-
 substrate/frame/generic-asset/README.md       | 131 +++++++
 substrate/frame/grandpa/Cargo.toml            |  44 +--
 substrate/frame/grandpa/README.md             |  12 +
 substrate/frame/identity/Cargo.toml           |  18 +-
 substrate/frame/identity/README.md            |  56 +++
 substrate/frame/im-online/Cargo.toml          |  24 +-
 substrate/frame/im-online/README.md           |  51 +++
 substrate/frame/indices/Cargo.toml            |  20 +-
 substrate/frame/indices/README.md             |   4 +
 substrate/frame/membership/Cargo.toml         |  14 +-
 substrate/frame/membership/README.md          |   6 +
 substrate/frame/metadata/Cargo.toml           |   6 +-
 substrate/frame/metadata/README.md            |   7 +
 substrate/frame/multisig/Cargo.toml           |  20 +-
 substrate/frame/multisig/README.md            |  29 ++
 substrate/frame/nicks/Cargo.toml              |  16 +-
 substrate/frame/nicks/README.md               |  23 ++
 substrate/frame/offences/Cargo.toml           |  18 +-
 substrate/frame/offences/README.md            |   5 +
 .../frame/offences/benchmarking/Cargo.toml    |  36 +-
 .../frame/offences/benchmarking/README.md     |   3 +
 substrate/frame/proxy/Cargo.toml              |  22 +-
 substrate/frame/proxy/README.md               |  17 +
 .../randomness-collective-flip/Cargo.toml     |  14 +-
 .../randomness-collective-flip/README.md      |  38 ++
 substrate/frame/recovery/Cargo.toml           |  16 +-
 substrate/frame/recovery/README.md            | 134 +++++++
 substrate/frame/scheduler/Cargo.toml          |  18 +-
 substrate/frame/scheduler/README.md           |  34 ++
 substrate/frame/scored-pool/Cargo.toml        |  16 +-
 substrate/frame/scored-pool/README.md         |  66 ++++
 substrate/frame/session/Cargo.toml            |  24 +-
 substrate/frame/session/README.md             |  83 ++++
 .../frame/session/benchmarking/Cargo.toml     |  28 +-
 .../frame/session/benchmarking/README.md      |   3 +
 substrate/frame/society/Cargo.toml            |  16 +-
 substrate/frame/society/README.md             | 228 +++++++++++
 substrate/frame/staking/Cargo.toml            |  38 +-
 substrate/frame/staking/README.md             | 249 ++++++++++++
 substrate/frame/staking/fuzzer/Cargo.toml     |  26 +-
 .../frame/staking/reward-curve/Cargo.toml     |   4 +-
 substrate/frame/sudo/Cargo.toml               |  14 +-
 substrate/frame/sudo/README.md                |  70 ++++
 substrate/frame/support/Cargo.toml            |  24 +-
 substrate/frame/support/README.md             |   3 +
 substrate/frame/support/procedural/Cargo.toml |   4 +-
 .../frame/support/procedural/tools/Cargo.toml |   4 +-
 .../procedural/tools/derive/Cargo.toml        |   2 +-
 substrate/frame/support/test/Cargo.toml       |  16 +-
 substrate/frame/system/Cargo.toml             |  18 +-
 substrate/frame/system/README.md              |  75 ++++
 .../frame/system/benchmarking/Cargo.toml      |  16 +-
 substrate/frame/system/benchmarking/README.md |   1 +
 .../frame/system/rpc/runtime-api/Cargo.toml   |   4 +-
 .../frame/system/rpc/runtime-api/README.md    |   7 +
 substrate/frame/timestamp/Cargo.toml          |  22 +-
 substrate/frame/timestamp/README.md           |  74 ++++
 .../frame/transaction-payment/Cargo.toml      |  20 +-
 substrate/frame/transaction-payment/README.md |  16 +
 .../frame/transaction-payment/rpc/Cargo.toml  |  14 +-
 .../frame/transaction-payment/rpc/README.md   |   3 +
 .../rpc/runtime-api/Cargo.toml                |  10 +-
 .../rpc/runtime-api/README.md                 |   3 +
 substrate/frame/treasury/Cargo.toml           |  20 +-
 substrate/frame/treasury/README.md            |  72 ++++
 substrate/frame/utility/Cargo.toml            |  20 +-
 substrate/frame/utility/README.md             |  38 ++
 substrate/frame/vesting/Cargo.toml            |  20 +-
 substrate/frame/vesting/README.md             |  31 ++
 substrate/primitives/allocator/Cargo.toml     |   8 +-
 substrate/primitives/allocator/README.md      |   6 +
 substrate/primitives/api/Cargo.toml           |  16 +-
 substrate/primitives/api/README.md            |  17 +
 .../primitives/api/proc-macro/Cargo.toml      |   2 +-
 substrate/primitives/api/test/Cargo.toml      |  22 +-
 .../primitives/application-crypto/Cargo.toml  |   8 +-
 .../primitives/application-crypto/README.md   |   3 +
 .../application-crypto/test/Cargo.toml        |  12 +-
 substrate/primitives/arithmetic/Cargo.toml    |   6 +-
 substrate/primitives/arithmetic/README.md     |   3 +
 .../primitives/arithmetic/fuzzer/Cargo.toml   |   4 +-
 .../primitives/authority-discovery/Cargo.toml |  10 +-
 .../primitives/authority-discovery/README.md  |   3 +
 substrate/primitives/authorship/Cargo.toml    |   8 +-
 substrate/primitives/authorship/README.md     |   3 +
 substrate/primitives/block-builder/Cargo.toml |  10 +-
 substrate/primitives/block-builder/README.md  |   3 +
 substrate/primitives/blockchain/Cargo.toml    |  12 +-
 substrate/primitives/blockchain/README.md     |   3 +
 substrate/primitives/chain-spec/Cargo.toml    |   2 +-
 substrate/primitives/chain-spec/README.md     |   3 +
 .../primitives/consensus/aura/Cargo.toml      |  14 +-
 substrate/primitives/consensus/aura/README.md |   3 +
 .../primitives/consensus/babe/Cargo.toml      |  22 +-
 substrate/primitives/consensus/babe/README.md |   3 +
 .../primitives/consensus/common/Cargo.toml    |  24 +-
 .../primitives/consensus/common/README.md     |   7 +
 substrate/primitives/consensus/pow/Cargo.toml |  10 +-
 substrate/primitives/consensus/pow/README.md  |   3 +
 .../primitives/consensus/slots/Cargo.toml     |   2 +-
 .../primitives/consensus/slots/README.md      |   3 +
 substrate/primitives/consensus/vrf/Cargo.toml |   8 +-
 substrate/primitives/consensus/vrf/README.md  |   3 +
 substrate/primitives/core/Cargo.toml          |  14 +-
 substrate/primitives/database/Cargo.toml      |   2 +-
 substrate/primitives/database/README.md       |   3 +
 substrate/primitives/debug-derive/Cargo.toml  |   2 +-
 substrate/primitives/externalities/Cargo.toml |   6 +-
 substrate/primitives/externalities/README.md  |   9 +
 .../primitives/finality-grandpa/Cargo.toml    |  12 +-
 .../primitives/finality-grandpa/README.md     |   3 +
 .../primitives/finality-tracker/Cargo.toml    |   6 +-
 .../primitives/finality-tracker/README.md     |   3 +
 substrate/primitives/inherents/Cargo.toml     |   6 +-
 substrate/primitives/inherents/README.md      |  17 +
 substrate/primitives/io/Cargo.toml            |  18 +-
 substrate/primitives/io/README.md             |   3 +
 substrate/primitives/keyring/Cargo.toml       |   6 +-
 substrate/primitives/keyring/README.md        |   3 +
 .../primitives/npos-elections/Cargo.toml      |  12 +-
 substrate/primitives/npos-elections/README.md |  12 +
 .../npos-elections/compact/Cargo.toml         |   2 +-
 .../npos-elections/fuzzer/Cargo.toml          |   6 +-
 substrate/primitives/offchain/Cargo.toml      |  10 +-
 substrate/primitives/offchain/README.md       |   3 +
 substrate/primitives/panic-handler/Cargo.toml |   2 +-
 substrate/primitives/panic-handler/README.md  |  10 +
 substrate/primitives/rpc/Cargo.toml           |   4 +-
 substrate/primitives/rpc/README.md            |   3 +
 .../primitives/runtime-interface/Cargo.toml   |  22 +-
 .../primitives/runtime-interface/README.md    |  88 +++++
 .../runtime-interface/proc-macro/Cargo.toml   |   2 +-
 .../test-wasm-deprecated/Cargo.toml           |  10 +-
 .../runtime-interface/test-wasm/Cargo.toml    |  10 +-
 .../runtime-interface/test/Cargo.toml         |  18 +-
 substrate/primitives/runtime/Cargo.toml       |  16 +-
 substrate/primitives/runtime/README.md        |   3 +
 substrate/primitives/sandbox/Cargo.toml       |  10 +-
 substrate/primitives/sandbox/README.md        |  21 +
 substrate/primitives/serializer/Cargo.toml    |   2 +-
 substrate/primitives/serializer/README.md     |   6 +
 substrate/primitives/session/Cargo.toml       |  12 +-
 substrate/primitives/session/README.md        |   3 +
 substrate/primitives/staking/Cargo.toml       |   6 +-
 substrate/primitives/staking/README.md        |   4 +
 substrate/primitives/state-machine/Cargo.toml |  12 +-
 substrate/primitives/state-machine/README.md  |   3 +
 substrate/primitives/std/Cargo.toml           |   2 +-
 substrate/primitives/std/README.md            |   4 +
 substrate/primitives/storage/Cargo.toml       |   6 +-
 substrate/primitives/storage/README.md        |   3 +
 .../primitives/test-primitives/Cargo.toml     |   8 +-
 substrate/primitives/timestamp/Cargo.toml     |  10 +-
 substrate/primitives/timestamp/README.md      |   3 +
 substrate/primitives/tracing/Cargo.toml       |   2 +-
 substrate/primitives/tracing/README.md        |  15 +
 .../primitives/transaction-pool/Cargo.toml    |   8 +-
 .../primitives/transaction-pool/README.md     |   3 +
 substrate/primitives/trie/Cargo.toml          |   8 +-
 substrate/primitives/trie/README.md           |   3 +
 substrate/primitives/utils/Cargo.toml         |   2 +-
 substrate/primitives/utils/README.md          |   3 +
 substrate/primitives/version/Cargo.toml       |   6 +-
 substrate/primitives/version/README.md        |   3 +
 .../primitives/wasm-interface/Cargo.toml      |   4 +-
 substrate/primitives/wasm-interface/README.md |   3 +
 substrate/test-utils/Cargo.toml               |   7 +-
 substrate/test-utils/client/Cargo.toml        |  26 +-
 substrate/test-utils/derive/Cargo.toml        |   3 +-
 substrate/test-utils/runtime/Cargo.toml       |  60 +--
 .../test-utils/runtime/client/Cargo.toml      |  26 +-
 .../runtime/transaction-pool/Cargo.toml       |  12 +-
 substrate/test-utils/test-crate/Cargo.toml    |   5 +-
 substrate/utils/browser/Cargo.toml            |  12 +-
 substrate/utils/browser/README.md             |   1 +
 substrate/utils/build-script-utils/Cargo.toml |   2 +-
 substrate/utils/build-script-utils/README.md  |   3 +
 substrate/utils/fork-tree/Cargo.toml          |   2 +-
 substrate/utils/fork-tree/README.md           |   4 +
 .../utils/frame/benchmarking-cli/Cargo.toml   |  20 +-
 .../utils/frame/benchmarking-cli/README.md    |   1 +
 .../frame/frame-utilities-cli/Cargo.toml      |  10 +-
 .../utils/frame/frame-utilities-cli/README.md |   3 +
 substrate/utils/frame/rpc/support/Cargo.toml  |  10 +-
 substrate/utils/frame/rpc/support/README.md   |   4 +
 substrate/utils/frame/rpc/system/Cargo.toml   |  24 +-
 substrate/utils/frame/rpc/system/README.md    |   3 +
 substrate/utils/prometheus/Cargo.toml         |   2 +-
 335 files changed, 5490 insertions(+), 1879 deletions(-)
 create mode 100644 substrate/bin/node-template/pallets/template/README.md
 create mode 100644 substrate/bin/utils/chain-spec-builder/README.md
 create mode 100644 substrate/bin/utils/subkey/README.md
 create mode 100644 substrate/client/api/README.md
 create mode 100644 substrate/client/authority-discovery/README.md
 create mode 100644 substrate/client/basic-authorship/README.md
 create mode 100644 substrate/client/block-builder/README.md
 create mode 100644 substrate/client/chain-spec/README.md
 create mode 100644 substrate/client/cli/README.md
 create mode 100644 substrate/client/consensus/aura/README.md
 create mode 100644 substrate/client/consensus/babe/README.md
 create mode 100644 substrate/client/consensus/babe/rpc/README.md
 create mode 100644 substrate/client/consensus/common/README.md
 create mode 100644 substrate/client/consensus/epochs/README.md
 create mode 100644 substrate/client/consensus/manual-seal/README.md
 create mode 100644 substrate/client/consensus/pow/README.md
 create mode 100644 substrate/client/consensus/slots/README.md
 create mode 100644 substrate/client/consensus/uncles/README.md
 create mode 100644 substrate/client/db/README.md
 create mode 100644 substrate/client/executor/README.md
 create mode 100644 substrate/client/executor/common/README.md
 create mode 100644 substrate/client/executor/wasmi/README.md
 create mode 100644 substrate/client/executor/wasmtime/README.md
 create mode 100644 substrate/client/finality-grandpa/README.md
 create mode 100644 substrate/client/finality-grandpa/rpc/README.md
 create mode 100644 substrate/client/informant/README.md
 create mode 100644 substrate/client/keystore/README.md
 create mode 100644 substrate/client/light/README.md
 create mode 100644 substrate/client/network-gossip/README.md
 create mode 100644 substrate/client/network/README.md
 create mode 100644 substrate/client/offchain/README.md
 create mode 100644 substrate/client/peerset/README.md
 create mode 100644 substrate/client/proposer-metrics/README.md
 create mode 100644 substrate/client/rpc-api/README.md
 create mode 100644 substrate/client/rpc-servers/README.md
 create mode 100644 substrate/client/rpc/README.md
 create mode 100644 substrate/client/service/README.md
 create mode 100644 substrate/client/state-db/README.md
 create mode 100644 substrate/client/telemetry/README.md
 create mode 100644 substrate/client/tracing/README.md
 create mode 100644 substrate/client/transaction-pool/README.md
 create mode 100644 substrate/client/transaction-pool/graph/README.md
 create mode 100644 substrate/frame/assets/README.md
 create mode 100644 substrate/frame/atomic-swap/README.md
 create mode 100644 substrate/frame/aura/README.md
 create mode 100644 substrate/frame/authority-discovery/README.md
 create mode 100644 substrate/frame/authorship/README.md
 create mode 100644 substrate/frame/babe/README.md
 create mode 100644 substrate/frame/balances/README.md
 create mode 100644 substrate/frame/benchmark/README.md
 create mode 100644 substrate/frame/benchmarking/README.md
 create mode 100644 substrate/frame/collective/README.md
 create mode 100644 substrate/frame/contracts/README.md
 create mode 100644 substrate/frame/contracts/common/README.md
 create mode 100644 substrate/frame/contracts/rpc/README.md
 create mode 100644 substrate/frame/contracts/rpc/runtime-api/README.md
 create mode 100644 substrate/frame/democracy/README.md
 create mode 100644 substrate/frame/elections-phragmen/README.md
 create mode 100644 substrate/frame/elections/README.md
 create mode 100644 substrate/frame/evm/README.md
 create mode 100644 substrate/frame/example-offchain-worker/README.md
 create mode 100644 substrate/frame/example/README.md
 create mode 100644 substrate/frame/executive/README.md
 create mode 100644 substrate/frame/finality-tracker/README.md
 create mode 100644 substrate/frame/generic-asset/README.md
 create mode 100644 substrate/frame/grandpa/README.md
 create mode 100644 substrate/frame/identity/README.md
 create mode 100644 substrate/frame/im-online/README.md
 create mode 100644 substrate/frame/indices/README.md
 create mode 100644 substrate/frame/membership/README.md
 create mode 100644 substrate/frame/metadata/README.md
 create mode 100644 substrate/frame/multisig/README.md
 create mode 100644 substrate/frame/nicks/README.md
 create mode 100644 substrate/frame/offences/README.md
 create mode 100644 substrate/frame/offences/benchmarking/README.md
 create mode 100644 substrate/frame/proxy/README.md
 create mode 100644 substrate/frame/randomness-collective-flip/README.md
 create mode 100644 substrate/frame/recovery/README.md
 create mode 100644 substrate/frame/scheduler/README.md
 create mode 100644 substrate/frame/scored-pool/README.md
 create mode 100644 substrate/frame/session/README.md
 create mode 100644 substrate/frame/session/benchmarking/README.md
 create mode 100644 substrate/frame/society/README.md
 create mode 100644 substrate/frame/staking/README.md
 create mode 100644 substrate/frame/sudo/README.md
 create mode 100644 substrate/frame/support/README.md
 create mode 100644 substrate/frame/system/README.md
 create mode 100644 substrate/frame/system/benchmarking/README.md
 create mode 100644 substrate/frame/system/rpc/runtime-api/README.md
 create mode 100644 substrate/frame/timestamp/README.md
 create mode 100644 substrate/frame/transaction-payment/README.md
 create mode 100644 substrate/frame/transaction-payment/rpc/README.md
 create mode 100644 substrate/frame/transaction-payment/rpc/runtime-api/README.md
 create mode 100644 substrate/frame/treasury/README.md
 create mode 100644 substrate/frame/utility/README.md
 create mode 100644 substrate/frame/vesting/README.md
 create mode 100644 substrate/primitives/allocator/README.md
 create mode 100644 substrate/primitives/api/README.md
 create mode 100644 substrate/primitives/application-crypto/README.md
 create mode 100644 substrate/primitives/arithmetic/README.md
 create mode 100644 substrate/primitives/authority-discovery/README.md
 create mode 100644 substrate/primitives/authorship/README.md
 create mode 100644 substrate/primitives/block-builder/README.md
 create mode 100644 substrate/primitives/blockchain/README.md
 create mode 100644 substrate/primitives/chain-spec/README.md
 create mode 100644 substrate/primitives/consensus/aura/README.md
 create mode 100644 substrate/primitives/consensus/babe/README.md
 create mode 100644 substrate/primitives/consensus/common/README.md
 create mode 100644 substrate/primitives/consensus/pow/README.md
 create mode 100644 substrate/primitives/consensus/slots/README.md
 create mode 100644 substrate/primitives/consensus/vrf/README.md
 create mode 100644 substrate/primitives/database/README.md
 create mode 100644 substrate/primitives/externalities/README.md
 create mode 100644 substrate/primitives/finality-grandpa/README.md
 create mode 100644 substrate/primitives/finality-tracker/README.md
 create mode 100644 substrate/primitives/inherents/README.md
 create mode 100644 substrate/primitives/io/README.md
 create mode 100644 substrate/primitives/keyring/README.md
 create mode 100644 substrate/primitives/npos-elections/README.md
 create mode 100644 substrate/primitives/offchain/README.md
 create mode 100644 substrate/primitives/panic-handler/README.md
 create mode 100644 substrate/primitives/rpc/README.md
 create mode 100644 substrate/primitives/runtime-interface/README.md
 create mode 100644 substrate/primitives/runtime/README.md
 create mode 100644 substrate/primitives/sandbox/README.md
 create mode 100644 substrate/primitives/serializer/README.md
 create mode 100644 substrate/primitives/session/README.md
 create mode 100644 substrate/primitives/staking/README.md
 create mode 100644 substrate/primitives/state-machine/README.md
 create mode 100644 substrate/primitives/std/README.md
 create mode 100644 substrate/primitives/storage/README.md
 create mode 100644 substrate/primitives/timestamp/README.md
 create mode 100644 substrate/primitives/tracing/README.md
 create mode 100644 substrate/primitives/transaction-pool/README.md
 create mode 100644 substrate/primitives/trie/README.md
 create mode 100644 substrate/primitives/utils/README.md
 create mode 100644 substrate/primitives/version/README.md
 create mode 100644 substrate/primitives/wasm-interface/README.md
 create mode 100644 substrate/utils/browser/README.md
 create mode 100644 substrate/utils/build-script-utils/README.md
 create mode 100644 substrate/utils/fork-tree/README.md
 create mode 100644 substrate/utils/frame/benchmarking-cli/README.md
 create mode 100644 substrate/utils/frame/frame-utilities-cli/README.md
 create mode 100644 substrate/utils/frame/rpc/support/README.md
 create mode 100644 substrate/utils/frame/rpc/system/README.md

diff --git a/substrate/Cargo.lock b/substrate/Cargo.lock
index 1b0291023e8..70b3581bb90 100644
--- a/substrate/Cargo.lock
+++ b/substrate/Cargo.lock
@@ -717,7 +717,7 @@ dependencies = [
 
 [[package]]
 name = "chain-spec-builder"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "ansi_term 0.12.1",
  "node-cli",
@@ -1596,14 +1596,14 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "fork-tree"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
 ]
 
 [[package]]
 name = "frame-benchmarking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1621,7 +1621,7 @@ dependencies = [
 
 [[package]]
 name = "frame-benchmarking-cli"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "parity-scale-codec",
@@ -1638,7 +1638,7 @@ dependencies = [
 
 [[package]]
 name = "frame-executive"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1658,7 +1658,7 @@ dependencies = [
 
 [[package]]
 name = "frame-metadata"
-version = "11.0.0-rc5"
+version = "11.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -1668,7 +1668,7 @@ dependencies = [
 
 [[package]]
 name = "frame-support"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "bitmask",
  "frame-metadata",
@@ -1695,7 +1695,7 @@ dependencies = [
 
 [[package]]
 name = "frame-support-procedural"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support-procedural-tools",
  "proc-macro2",
@@ -1705,7 +1705,7 @@ dependencies = [
 
 [[package]]
 name = "frame-support-procedural-tools"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate",
@@ -1716,7 +1716,7 @@ dependencies = [
 
 [[package]]
 name = "frame-support-procedural-tools-derive"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1725,7 +1725,7 @@ dependencies = [
 
 [[package]]
 name = "frame-support-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -1743,7 +1743,7 @@ dependencies = [
 
 [[package]]
 name = "frame-system"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "criterion 0.2.11",
  "frame-support",
@@ -1761,7 +1761,7 @@ dependencies = [
 
 [[package]]
 name = "frame-system-benchmarking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -1776,7 +1776,7 @@ dependencies = [
 
 [[package]]
 name = "frame-system-rpc-runtime-api"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -3769,7 +3769,7 @@ dependencies = [
 
 [[package]]
 name = "node-bench"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "fs_extra",
@@ -3807,7 +3807,7 @@ dependencies = [
 
 [[package]]
 name = "node-browser-testing"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -3824,7 +3824,7 @@ dependencies = [
 
 [[package]]
 name = "node-cli"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "assert_cmd",
  "frame-benchmarking-cli",
@@ -3901,7 +3901,7 @@ dependencies = [
 
 [[package]]
 name = "node-executor"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "criterion 0.3.3",
  "frame-benchmarking",
@@ -3935,7 +3935,7 @@ dependencies = [
 
 [[package]]
 name = "node-inspect"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "log",
@@ -3951,7 +3951,7 @@ dependencies = [
 
 [[package]]
 name = "node-primitives"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-system",
  "parity-scale-codec",
@@ -3964,7 +3964,7 @@ dependencies = [
 
 [[package]]
 name = "node-rpc"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-pubsub",
@@ -3992,7 +3992,7 @@ dependencies = [
 
 [[package]]
 name = "node-rpc-client"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "env_logger",
  "futures 0.1.29",
@@ -4005,7 +4005,7 @@ dependencies = [
 
 [[package]]
 name = "node-runtime"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-executive",
@@ -4074,7 +4074,7 @@ dependencies = [
 
 [[package]]
 name = "node-template"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "jsonrpc-core",
  "node-template-runtime",
@@ -4107,7 +4107,7 @@ dependencies = [
 
 [[package]]
 name = "node-template-runtime"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-executive",
  "frame-support",
@@ -4140,7 +4140,7 @@ dependencies = [
 
 [[package]]
 name = "node-testing"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "criterion 0.3.3",
  "frame-support",
@@ -4348,7 +4348,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-assets"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4362,7 +4362,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-atomic-swap"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4377,7 +4377,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-aura"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4399,7 +4399,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-authority-discovery"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4417,7 +4417,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-authorship"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4433,7 +4433,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-babe"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4462,7 +4462,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-balances"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4478,7 +4478,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-benchmark"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4492,7 +4492,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-collective"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4509,7 +4509,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "assert_matches",
  "bitflags",
@@ -4537,7 +4537,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts-primitives"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -4546,7 +4546,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts-rpc"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -4565,7 +4565,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-contracts-rpc-runtime-api"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "pallet-contracts-primitives",
  "parity-scale-codec",
@@ -4576,7 +4576,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-democracy"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4596,7 +4596,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-elections"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4612,7 +4612,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-elections-phragmen"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4631,7 +4631,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-evm"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "evm",
  "frame-support",
@@ -4653,7 +4653,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-example"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4669,7 +4669,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-example-offchain-worker"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4684,7 +4684,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-finality-tracker"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4701,7 +4701,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-generic-asset"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4715,7 +4715,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-grandpa"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "finality-grandpa",
  "frame-benchmarking",
@@ -4744,7 +4744,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-identity"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -4761,7 +4761,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-im-online"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4780,7 +4780,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-indices"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4797,7 +4797,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-membership"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4811,7 +4811,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-multisig"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4827,7 +4827,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-nicks"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4842,7 +4842,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-offences"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4858,7 +4858,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-offences-benchmarking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4883,7 +4883,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-proxy"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4900,7 +4900,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-randomness-collective-flip"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4914,7 +4914,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-recovery"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "enumflags2",
  "frame-support",
@@ -4930,7 +4930,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-scheduler"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4946,7 +4946,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-scored-pool"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4961,7 +4961,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-session"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4982,7 +4982,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-session-benchmarking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5004,7 +5004,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-society"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5020,7 +5020,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-staking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "env_logger",
  "frame-benchmarking",
@@ -5071,7 +5071,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-staking-reward-curve"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -5082,7 +5082,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-sudo"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5096,7 +5096,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-template"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5108,7 +5108,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-timestamp"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5126,7 +5126,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-transaction-payment"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5144,7 +5144,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-transaction-payment-rpc"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -5161,7 +5161,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -5174,7 +5174,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-treasury"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5191,7 +5191,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-utility"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5207,7 +5207,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-vesting"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -6379,7 +6379,7 @@ dependencies = [
 
 [[package]]
 name = "sc-authority-discovery"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "bytes 0.5.6",
  "derive_more",
@@ -6409,7 +6409,7 @@ dependencies = [
 
 [[package]]
 name = "sc-basic-authorship"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -6435,7 +6435,7 @@ dependencies = [
 
 [[package]]
 name = "sc-block-builder"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -6453,7 +6453,7 @@ dependencies = [
 
 [[package]]
 name = "sc-chain-spec"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "impl-trait-for-tuples",
  "sc-chain-spec-derive",
@@ -6468,7 +6468,7 @@ dependencies = [
 
 [[package]]
 name = "sc-chain-spec-derive"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -6478,7 +6478,7 @@ dependencies = [
 
 [[package]]
 name = "sc-cli"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "ansi_term 0.12.1",
  "atty",
@@ -6527,7 +6527,7 @@ dependencies = [
 
 [[package]]
 name = "sc-client-api"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "derive_more",
  "fnv",
@@ -6565,7 +6565,7 @@ dependencies = [
 
 [[package]]
 name = "sc-client-db"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "blake2-rfc",
  "env_logger",
@@ -6599,7 +6599,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "sc-client-api",
  "sp-blockchain",
@@ -6609,7 +6609,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-aura"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "env_logger",
@@ -6647,7 +6647,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-babe"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "env_logger",
@@ -6700,7 +6700,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-babe-rpc"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "futures 0.3.5",
@@ -6728,7 +6728,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-epochs"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -6740,7 +6740,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-manual-seal"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "assert_matches",
  "derive_more",
@@ -6770,7 +6770,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-pow"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "futures 0.3.5",
@@ -6791,7 +6791,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-slots"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -6814,7 +6814,7 @@ dependencies = [
 
 [[package]]
 name = "sc-consensus-uncles"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "log",
  "sc-client-api",
@@ -6827,7 +6827,7 @@ dependencies = [
 
 [[package]]
 name = "sc-executor"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "assert_matches",
  "derive_more",
@@ -6865,7 +6865,7 @@ dependencies = [
 
 [[package]]
 name = "sc-executor-common"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "log",
@@ -6881,7 +6881,7 @@ dependencies = [
 
 [[package]]
 name = "sc-executor-wasmi"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -6895,7 +6895,7 @@ dependencies = [
 
 [[package]]
 name = "sc-executor-wasmtime"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "assert_matches",
  "log",
@@ -6913,7 +6913,7 @@ dependencies = [
 
 [[package]]
 name = "sc-finality-grandpa"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "assert_matches",
  "derive_more",
@@ -6958,7 +6958,7 @@ dependencies = [
 
 [[package]]
 name = "sc-finality-grandpa-rpc"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "finality-grandpa",
@@ -6987,7 +6987,7 @@ dependencies = [
 
 [[package]]
 name = "sc-informant"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "ansi_term 0.12.1",
  "futures 0.3.5",
@@ -7004,7 +7004,7 @@ dependencies = [
 
 [[package]]
 name = "sc-keystore"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "derive_more",
  "hex",
@@ -7020,7 +7020,7 @@ dependencies = [
 
 [[package]]
 name = "sc-light"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "hash-db",
  "lazy_static",
@@ -7038,7 +7038,7 @@ dependencies = [
 
 [[package]]
 name = "sc-network"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "assert_matches",
  "async-std",
@@ -7098,7 +7098,7 @@ dependencies = [
 
 [[package]]
 name = "sc-network-gossip"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "async-std",
  "futures 0.3.5",
@@ -7116,7 +7116,7 @@ dependencies = [
 
 [[package]]
 name = "sc-network-test"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "env_logger",
  "futures 0.3.5",
@@ -7142,7 +7142,7 @@ dependencies = [
 
 [[package]]
 name = "sc-offchain"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "bytes 0.5.6",
  "env_logger",
@@ -7175,7 +7175,7 @@ dependencies = [
 
 [[package]]
 name = "sc-peerset"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "libp2p 0.23.0",
@@ -7188,7 +7188,7 @@ dependencies = [
 
 [[package]]
 name = "sc-proposer-metrics"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "log",
  "substrate-prometheus-endpoint",
@@ -7196,7 +7196,7 @@ dependencies = [
 
 [[package]]
 name = "sc-rpc"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "assert_matches",
  "futures 0.1.29",
@@ -7235,7 +7235,7 @@ dependencies = [
 
 [[package]]
 name = "sc-rpc-api"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "futures 0.3.5",
@@ -7258,7 +7258,7 @@ dependencies = [
 
 [[package]]
 name = "sc-rpc-server"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-http-server",
@@ -7273,7 +7273,7 @@ dependencies = [
 
 [[package]]
 name = "sc-runtime-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "sp-allocator",
  "sp-core",
@@ -7286,7 +7286,7 @@ dependencies = [
 
 [[package]]
 name = "sc-service"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "async-std",
  "derive_more",
@@ -7352,7 +7352,7 @@ dependencies = [
 
 [[package]]
 name = "sc-service-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "env_logger",
  "fdlimit",
@@ -7388,7 +7388,7 @@ dependencies = [
 
 [[package]]
 name = "sc-state-db"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "env_logger",
  "log",
@@ -7402,7 +7402,7 @@ dependencies = [
 
 [[package]]
 name = "sc-telemetry"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -7422,7 +7422,7 @@ dependencies = [
 
 [[package]]
 name = "sc-tracing"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "erased-serde",
  "log",
@@ -7439,7 +7439,7 @@ dependencies = [
 
 [[package]]
 name = "sc-transaction-graph"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "assert_matches",
  "criterion 0.3.3",
@@ -7463,7 +7463,7 @@ dependencies = [
 
 [[package]]
 name = "sc-transaction-pool"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "assert_matches",
  "derive_more",
@@ -7909,7 +7909,7 @@ dependencies = [
 
 [[package]]
 name = "sp-allocator"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "derive_more",
  "log",
@@ -7920,7 +7920,7 @@ dependencies = [
 
 [[package]]
 name = "sp-api"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "hash-db",
  "parity-scale-codec",
@@ -7935,7 +7935,7 @@ dependencies = [
 
 [[package]]
 name = "sp-api-proc-macro"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "blake2-rfc",
  "proc-macro-crate",
@@ -7946,7 +7946,7 @@ dependencies = [
 
 [[package]]
 name = "sp-api-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "criterion 0.3.3",
  "parity-scale-codec",
@@ -7965,7 +7965,7 @@ dependencies = [
 
 [[package]]
 name = "sp-application-crypto"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -7976,7 +7976,7 @@ dependencies = [
 
 [[package]]
 name = "sp-application-crypto-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "sp-api",
  "sp-application-crypto",
@@ -7987,7 +7987,7 @@ dependencies = [
 
 [[package]]
 name = "sp-arithmetic"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "criterion 0.3.3",
  "integer-sqrt",
@@ -8003,7 +8003,7 @@ dependencies = [
 
 [[package]]
 name = "sp-arithmetic-fuzzer"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "honggfuzz",
  "num-bigint",
@@ -8014,7 +8014,7 @@ dependencies = [
 
 [[package]]
 name = "sp-authority-discovery"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8025,7 +8025,7 @@ dependencies = [
 
 [[package]]
 name = "sp-authorship"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -8035,7 +8035,7 @@ dependencies = [
 
 [[package]]
 name = "sp-block-builder"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8046,7 +8046,7 @@ dependencies = [
 
 [[package]]
 name = "sp-blockchain"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "derive_more",
  "log",
@@ -8062,7 +8062,7 @@ dependencies = [
 
 [[package]]
 name = "sp-chain-spec"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "serde",
  "serde_json",
@@ -8070,7 +8070,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "derive_more",
  "futures 0.3.5",
@@ -8096,7 +8096,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-aura"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8109,7 +8109,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-babe"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "merlin",
  "parity-scale-codec",
@@ -8127,7 +8127,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-pow"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8138,7 +8138,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-slots"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -8146,7 +8146,7 @@ dependencies = [
 
 [[package]]
 name = "sp-consensus-vrf"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "schnorrkel",
@@ -8157,7 +8157,7 @@ dependencies = [
 
 [[package]]
 name = "sp-core"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "base58",
  "blake2-rfc",
@@ -8206,7 +8206,7 @@ dependencies = [
 
 [[package]]
 name = "sp-database"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "kvdb 0.7.0",
  "parking_lot 0.10.2",
@@ -8214,7 +8214,7 @@ dependencies = [
 
 [[package]]
 name = "sp-debug-derive"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -8223,7 +8223,7 @@ dependencies = [
 
 [[package]]
 name = "sp-externalities"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -8233,7 +8233,7 @@ dependencies = [
 
 [[package]]
 name = "sp-finality-grandpa"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "finality-grandpa",
  "log",
@@ -8248,7 +8248,7 @@ dependencies = [
 
 [[package]]
 name = "sp-finality-tracker"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -8257,7 +8257,7 @@ dependencies = [
 
 [[package]]
 name = "sp-inherents"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "derive_more",
  "parity-scale-codec",
@@ -8268,7 +8268,7 @@ dependencies = [
 
 [[package]]
 name = "sp-io"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -8288,7 +8288,7 @@ dependencies = [
 
 [[package]]
 name = "sp-keyring"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -8298,7 +8298,7 @@ dependencies = [
 
 [[package]]
 name = "sp-npos-elections"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "rand 0.7.3",
@@ -8312,7 +8312,7 @@ dependencies = [
 
 [[package]]
 name = "sp-npos-elections-compact"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -8333,7 +8333,7 @@ dependencies = [
 
 [[package]]
 name = "sp-offchain"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -8343,7 +8343,7 @@ dependencies = [
 
 [[package]]
 name = "sp-panic-handler"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "backtrace",
  "log",
@@ -8351,7 +8351,7 @@ dependencies = [
 
 [[package]]
 name = "sp-rpc"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "serde",
  "serde_json",
@@ -8360,7 +8360,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "either",
  "hash256-std-hasher",
@@ -8383,7 +8383,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime-interface"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "primitive-types",
@@ -8404,7 +8404,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime-interface-proc-macro"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "Inflector",
  "proc-macro-crate",
@@ -8415,7 +8415,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime-interface-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "sc-executor",
  "sp-core",
@@ -8430,7 +8430,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime-interface-test-wasm"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "sp-core",
  "sp-io",
@@ -8441,7 +8441,7 @@ dependencies = [
 
 [[package]]
 name = "sp-runtime-interface-test-wasm-deprecated"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "sp-core",
  "sp-io",
@@ -8452,7 +8452,7 @@ dependencies = [
 
 [[package]]
 name = "sp-sandbox"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "assert_matches",
  "parity-scale-codec",
@@ -8466,7 +8466,7 @@ dependencies = [
 
 [[package]]
 name = "sp-serializer"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "serde",
  "serde_json",
@@ -8474,7 +8474,7 @@ dependencies = [
 
 [[package]]
 name = "sp-session"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8486,7 +8486,7 @@ dependencies = [
 
 [[package]]
 name = "sp-staking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -8495,7 +8495,7 @@ dependencies = [
 
 [[package]]
 name = "sp-state-machine"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "hash-db",
  "hex-literal",
@@ -8518,11 +8518,11 @@ dependencies = [
 
 [[package]]
 name = "sp-std"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 
 [[package]]
 name = "sp-storage"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "impl-serde 0.2.3",
  "parity-scale-codec",
@@ -8534,7 +8534,7 @@ dependencies = [
 
 [[package]]
 name = "sp-test-primitives"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "parity-scale-codec",
  "parity-util-mem 0.7.0",
@@ -8546,7 +8546,7 @@ dependencies = [
 
 [[package]]
 name = "sp-timestamp"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -8559,7 +8559,7 @@ dependencies = [
 
 [[package]]
 name = "sp-tracing"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "log",
  "rental",
@@ -8568,7 +8568,7 @@ dependencies = [
 
 [[package]]
 name = "sp-transaction-pool"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "derive_more",
  "futures 0.3.5",
@@ -8582,7 +8582,7 @@ dependencies = [
 
 [[package]]
 name = "sp-trie"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "criterion 0.2.11",
  "hash-db",
@@ -8600,7 +8600,7 @@ dependencies = [
 
 [[package]]
 name = "sp-utils"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "futures-core",
@@ -8611,7 +8611,7 @@ dependencies = [
 
 [[package]]
 name = "sp-version"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "impl-serde 0.2.3",
  "parity-scale-codec",
@@ -8622,7 +8622,7 @@ dependencies = [
 
 [[package]]
 name = "sp-wasm-interface"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -8737,7 +8737,7 @@ dependencies = [
 
 [[package]]
 name = "subkey"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-system",
  "node-primitives",
@@ -8762,7 +8762,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-browser-utils"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "chrono",
  "console_error_panic_hook",
@@ -8787,14 +8787,14 @@ dependencies = [
 
 [[package]]
 name = "substrate-build-script-utils"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "platforms",
 ]
 
 [[package]]
 name = "substrate-frame-cli"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-system",
  "sc-cli",
@@ -8805,7 +8805,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-frame-rpc-support"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -8821,7 +8821,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-frame-rpc-system"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "env_logger",
  "frame-system-rpc-runtime-api",
@@ -8846,7 +8846,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-prometheus-endpoint"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "async-std",
  "derive_more",
@@ -8859,7 +8859,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-test-client"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "futures 0.1.29",
  "futures 0.3.5",
@@ -8884,7 +8884,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-test-runtime"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "cfg-if",
  "frame-executive",
@@ -8927,7 +8927,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-test-runtime-client"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "parity-scale-codec",
@@ -8947,7 +8947,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-test-runtime-transaction-pool"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "derive_more",
  "futures 0.3.5",
@@ -8962,7 +8962,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-test-utils"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 dependencies = [
  "futures 0.3.5",
  "sc-service",
@@ -8973,7 +8973,7 @@ dependencies = [
 
 [[package]]
 name = "substrate-test-utils-derive"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 dependencies = [
  "proc-macro-crate",
  "quote",
diff --git a/substrate/bin/node-template/node/Cargo.toml b/substrate/bin/node-template/node/Cargo.toml
index 0c988ebd1a2..d8cc9478bbd 100644
--- a/substrate/bin/node-template/node/Cargo.toml
+++ b/substrate/bin/node-template/node/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-template"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Anonymous"]
 description = "A new FRAME-based Substrate node, ready for hacking."
 edition = "2018"
@@ -18,34 +18,34 @@ name = "node-template"
 [dependencies]
 structopt = "0.3.8"
 
-sc-cli = { version = "0.8.0-rc5", path = "../../../client/cli", features = ["wasmtime"] }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sc-executor = { version = "0.8.0-rc5", path = "../../../client/executor", features = ["wasmtime"] }
-sc-service = { version = "0.8.0-rc5", path = "../../../client/service", features = ["wasmtime"] }
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
-sc-transaction-pool = { version = "2.0.0-rc5", path = "../../../client/transaction-pool" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../../primitives/transaction-pool" }
-sc-consensus-aura = { version = "0.8.0-rc5", path = "../../../client/consensus/aura" }
-sp-consensus-aura = { version = "0.8.0-rc5", path = "../../../primitives/consensus/aura" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sc-consensus = { version = "0.8.0-rc5", path = "../../../client/consensus/common" }
-sc-finality-grandpa = { version = "0.8.0-rc5", path = "../../../client/finality-grandpa" }
-sp-finality-grandpa = { version = "2.0.0-rc5", path = "../../../primitives/finality-grandpa" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../../client/api" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
+sc-cli = { version = "0.8.0-rc6", path = "../../../client/cli", features = ["wasmtime"] }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sc-executor = { version = "0.8.0-rc6", path = "../../../client/executor", features = ["wasmtime"] }
+sc-service = { version = "0.8.0-rc6", path = "../../../client/service", features = ["wasmtime"] }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
+sc-transaction-pool = { version = "2.0.0-rc6", path = "../../../client/transaction-pool" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../../primitives/transaction-pool" }
+sc-consensus-aura = { version = "0.8.0-rc6", path = "../../../client/consensus/aura" }
+sp-consensus-aura = { version = "0.8.0-rc6", path = "../../../primitives/consensus/aura" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sc-consensus = { version = "0.8.0-rc6", path = "../../../client/consensus/common" }
+sc-finality-grandpa = { version = "0.8.0-rc6", path = "../../../client/finality-grandpa" }
+sp-finality-grandpa = { version = "2.0.0-rc6", path = "../../../primitives/finality-grandpa" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../../client/api" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
 
 # These dependencies are used for the node template's RPCs
 jsonrpc-core = "14.0.3"
-sc-rpc = { version = "2.0.0-rc5", path = "../../../client/rpc" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sc-rpc-api = { version = "0.8.0-rc5", path = "../../../client/rpc-api" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../../primitives/block-builder" }
-sc-basic-authorship = { version = "0.8.0-rc5", path = "../../../client/basic-authorship" }
-substrate-frame-rpc-system = { version = "2.0.0-rc5", path = "../../../utils/frame/rpc/system" }
-pallet-transaction-payment-rpc = { version = "2.0.0-rc5", path = "../../../frame/transaction-payment/rpc/" }
+sc-rpc = { version = "2.0.0-rc6", path = "../../../client/rpc" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sc-rpc-api = { version = "0.8.0-rc6", path = "../../../client/rpc-api" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../../primitives/block-builder" }
+sc-basic-authorship = { version = "0.8.0-rc6", path = "../../../client/basic-authorship" }
+substrate-frame-rpc-system = { version = "2.0.0-rc6", path = "../../../utils/frame/rpc/system" }
+pallet-transaction-payment-rpc = { version = "2.0.0-rc6", path = "../../../frame/transaction-payment/rpc/" }
 
-node-template-runtime = { version = "2.0.0-rc5", path = "../runtime" }
+node-template-runtime = { version = "2.0.0-rc6", path = "../runtime" }
 
 [build-dependencies]
-substrate-build-script-utils = { version = "2.0.0-rc5", path = "../../../utils/build-script-utils" }
+substrate-build-script-utils = { version = "2.0.0-rc6", path = "../../../utils/build-script-utils" }
diff --git a/substrate/bin/node-template/pallets/template/Cargo.toml b/substrate/bin/node-template/pallets/template/Cargo.toml
index 6d8868386e3..106e4af37a8 100644
--- a/substrate/bin/node-template/pallets/template/Cargo.toml
+++ b/substrate/bin/node-template/pallets/template/Cargo.toml
@@ -2,7 +2,7 @@
 authors = ['Anonymous']
 edition = '2018'
 name = 'pallet-template'
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 license = "Unlicense"
 homepage = "https://substrate.dev"
 repository = "https://github.com/paritytech/substrate/"
@@ -16,27 +16,27 @@ codec = { package = "parity-scale-codec", version = "1.3.4", default-features =
 
 [dependencies.frame-support]
 default-features = false
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 path = "../../../../frame/support"
 
 [dependencies.frame-system]
 default-features = false
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 path = "../../../../frame/system"
 
 [dev-dependencies.sp-core]
 default-features = false
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 path = "../../../../primitives/core"
 
 [dev-dependencies.sp-io]
 default-features = false
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 path = "../../../../primitives/io"
 
 [dev-dependencies.sp-runtime]
 default-features = false
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 path = "../../../../primitives/runtime"
 
 
diff --git a/substrate/bin/node-template/pallets/template/README.md b/substrate/bin/node-template/pallets/template/README.md
new file mode 100644
index 00000000000..8d751a42207
--- /dev/null
+++ b/substrate/bin/node-template/pallets/template/README.md
@@ -0,0 +1 @@
+License: Unlicense
\ No newline at end of file
diff --git a/substrate/bin/node-template/runtime/Cargo.toml b/substrate/bin/node-template/runtime/Cargo.toml
index f4e8697a47d..3cb0754089d 100644
--- a/substrate/bin/node-template/runtime/Cargo.toml
+++ b/substrate/bin/node-template/runtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-template-runtime"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Anonymous"]
 edition = "2018"
 license = "Unlicense"
@@ -13,34 +13,34 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
 
-pallet-aura = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/aura" }
-pallet-balances = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/balances" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/support" }
-pallet-grandpa = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/grandpa" }
-pallet-randomness-collective-flip = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/randomness-collective-flip" }
-pallet-sudo = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/sudo" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/system" }
-pallet-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/timestamp" }
-pallet-transaction-payment = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/transaction-payment" }
-frame-executive = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/executive" }
+pallet-aura = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/aura" }
+pallet-balances = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/balances" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/support" }
+pallet-grandpa = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/grandpa" }
+pallet-randomness-collective-flip = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/randomness-collective-flip" }
+pallet-sudo = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/sudo" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/system" }
+pallet-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/timestamp" }
+pallet-transaction-payment = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/transaction-payment" }
+frame-executive = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/executive" }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/api" }
-sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "2.0.0-rc5"}
-sp-consensus-aura = { version = "0.8.0-rc5", default-features = false, path = "../../../primitives/consensus/aura" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/core" }
-sp-inherents = { path = "../../../primitives/inherents", default-features = false, version = "2.0.0-rc5"}
-sp-offchain = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/offchain" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
-sp-session = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/session" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/std" }
-sp-transaction-pool = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/transaction-pool" }
-sp-version = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/version" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/api" }
+sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "2.0.0-rc6"}
+sp-consensus-aura = { version = "0.8.0-rc6", default-features = false, path = "../../../primitives/consensus/aura" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/core" }
+sp-inherents = { path = "../../../primitives/inherents", default-features = false, version = "2.0.0-rc6"}
+sp-offchain = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/offchain" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
+sp-session = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/session" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/std" }
+sp-transaction-pool = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/transaction-pool" }
+sp-version = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/version" }
 
 # Used for the node template's RPCs
-frame-system-rpc-runtime-api = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
-pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
+frame-system-rpc-runtime-api = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
+pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
 
-template = { version = "2.0.0-rc5", default-features = false, path = "../pallets/template", package = "pallet-template" }
+template = { version = "2.0.0-rc6", default-features = false, path = "../pallets/template", package = "pallet-template" }
 
 [build-dependencies]
 wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
diff --git a/substrate/bin/node/bench/Cargo.toml b/substrate/bin/node/bench/Cargo.toml
index 0f93039c3c1..adefbd07082 100644
--- a/substrate/bin/node/bench/Cargo.toml
+++ b/substrate/bin/node/bench/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-bench"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate node integration benchmarks."
 edition = "2018"
@@ -10,27 +10,27 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 
 [dependencies]
 log = "0.4.8"
-node-primitives = { version = "2.0.0-rc5", path = "../primitives" }
-node-testing = { version = "2.0.0-rc5", path = "../testing" }
-node-runtime = { version = "2.0.0-rc5", path = "../runtime" }
-sc-cli = { version = "0.8.0-rc5", path = "../../../client/cli" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../../client/api/" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../../primitives/state-machine" }
+node-primitives = { version = "2.0.0-rc6", path = "../primitives" }
+node-testing = { version = "2.0.0-rc6", path = "../testing" }
+node-runtime = { version = "2.0.0-rc6", path = "../runtime" }
+sc-cli = { version = "0.8.0-rc6", path = "../../../client/cli" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../../client/api/" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../../primitives/state-machine" }
 serde = "1.0.101"
 serde_json = "1.0.41"
 structopt = "0.3"
 derive_more = "0.99.2"
 kvdb = "0.7"
 kvdb-rocksdb = "0.9"
-sp-trie = { version = "2.0.0-rc5", path = "../../../primitives/trie" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../../primitives/transaction-pool" }
-sc-basic-authorship = { version = "0.8.0-rc5", path = "../../../client/basic-authorship" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
-sp-finality-tracker = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/finality-tracker" }
-sp-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/timestamp" }
+sp-trie = { version = "2.0.0-rc6", path = "../../../primitives/trie" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../../primitives/transaction-pool" }
+sc-basic-authorship = { version = "0.8.0-rc6", path = "../../../client/basic-authorship" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
+sp-finality-tracker = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/finality-tracker" }
+sp-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/timestamp" }
 hash-db = "0.15.2"
 tempfile = "3.1.0"
 fs_extra = "1"
@@ -39,5 +39,5 @@ rand = { version = "0.7.2", features = ["small_rng"] }
 lazy_static = "1.4.0"
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 parity-db = { version = "0.1.2" }
-sc-transaction-pool = { version = "2.0.0-rc5", path = "../../../client/transaction-pool" }
+sc-transaction-pool = { version = "2.0.0-rc6", path = "../../../client/transaction-pool" }
 futures = { version = "0.3.4", features = ["thread-pool"] }
diff --git a/substrate/bin/node/browser-testing/Cargo.toml b/substrate/bin/node/browser-testing/Cargo.toml
index 1f5db1053d7..977a602e1da 100644
--- a/substrate/bin/node/browser-testing/Cargo.toml
+++ b/substrate/bin/node/browser-testing/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-browser-testing"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Tests for the in-browser light client."
 edition = "2018"
@@ -17,5 +17,5 @@ wasm-bindgen-futures = "0.4.10"
 wasm-bindgen-test = "0.3.10"
 futures = "0.3.4"
 
-node-cli = { path = "../cli", default-features = false, features = ["browser"] , version = "2.0.0-rc5"}
-sc-rpc-api = { path = "../../../client/rpc-api" , version = "0.8.0-rc5"}
+node-cli = { path = "../cli", default-features = false, features = ["browser"] , version = "2.0.0-rc6"}
+sc-rpc-api = { path = "../../../client/rpc-api" , version = "0.8.0-rc6"}
diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml
index d8ed12f296b..09ed51616d5 100644
--- a/substrate/bin/node/cli/Cargo.toml
+++ b/substrate/bin/node/cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-cli"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Generic Substrate node implementation in Rust."
 build = "build.rs"
@@ -47,77 +47,77 @@ tracing = "0.1.18"
 parking_lot = "0.10.0"
 
 # primitives
-sp-authority-discovery = { version = "2.0.0-rc5",  path = "../../../primitives/authority-discovery" }
-sp-consensus-babe = { version = "0.8.0-rc5", path = "../../../primitives/consensus/babe" }
-grandpa-primitives = { version = "2.0.0-rc5", package = "sp-finality-grandpa", path = "../../../primitives/finality-grandpa" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/timestamp" }
-sp-finality-tracker = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/finality-tracker" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
-sp-keyring = { version = "2.0.0-rc5", path = "../../../primitives/keyring" }
-sp-io = { version = "2.0.0-rc5", path = "../../../primitives/io" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../../primitives/transaction-pool" }
+sp-authority-discovery = { version = "2.0.0-rc6",  path = "../../../primitives/authority-discovery" }
+sp-consensus-babe = { version = "0.8.0-rc6", path = "../../../primitives/consensus/babe" }
+grandpa-primitives = { version = "2.0.0-rc6", package = "sp-finality-grandpa", path = "../../../primitives/finality-grandpa" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/timestamp" }
+sp-finality-tracker = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/finality-tracker" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../../primitives/keyring" }
+sp-io = { version = "2.0.0-rc6", path = "../../../primitives/io" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../../primitives/transaction-pool" }
 
 # client dependencies
-sc-client-api = { version = "2.0.0-rc5", path = "../../../client/api" }
-sc-chain-spec = { version = "2.0.0-rc5", path = "../../../client/chain-spec" }
-sc-consensus = { version = "0.8.0-rc5", path = "../../../client/consensus/common" }
-sc-transaction-pool = { version = "2.0.0-rc5", path = "../../../client/transaction-pool" }
-sc-network = { version = "0.8.0-rc5", path = "../../../client/network" }
-sc-consensus-babe = { version = "0.8.0-rc5", path = "../../../client/consensus/babe" }
-grandpa = { version = "0.8.0-rc5", package = "sc-finality-grandpa", path = "../../../client/finality-grandpa" }
-sc-client-db = { version = "0.8.0-rc5", default-features = false, path = "../../../client/db" }
-sc-offchain = { version = "2.0.0-rc5", path = "../../../client/offchain" }
-sc-rpc = { version = "2.0.0-rc5", path = "../../../client/rpc" }
-sc-basic-authorship = { version = "0.8.0-rc5", path = "../../../client/basic-authorship" }
-sc-service = { version = "0.8.0-rc5", default-features = false, path = "../../../client/service" }
-sc-tracing = { version = "2.0.0-rc5", path = "../../../client/tracing" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../../../client/telemetry" }
-sc-authority-discovery = { version = "0.8.0-rc5",  path = "../../../client/authority-discovery" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../../client/api" }
+sc-chain-spec = { version = "2.0.0-rc6", path = "../../../client/chain-spec" }
+sc-consensus = { version = "0.8.0-rc6", path = "../../../client/consensus/common" }
+sc-transaction-pool = { version = "2.0.0-rc6", path = "../../../client/transaction-pool" }
+sc-network = { version = "0.8.0-rc6", path = "../../../client/network" }
+sc-consensus-babe = { version = "0.8.0-rc6", path = "../../../client/consensus/babe" }
+grandpa = { version = "0.8.0-rc6", package = "sc-finality-grandpa", path = "../../../client/finality-grandpa" }
+sc-client-db = { version = "0.8.0-rc6", default-features = false, path = "../../../client/db" }
+sc-offchain = { version = "2.0.0-rc6", path = "../../../client/offchain" }
+sc-rpc = { version = "2.0.0-rc6", path = "../../../client/rpc" }
+sc-basic-authorship = { version = "0.8.0-rc6", path = "../../../client/basic-authorship" }
+sc-service = { version = "0.8.0-rc6", default-features = false, path = "../../../client/service" }
+sc-tracing = { version = "2.0.0-rc6", path = "../../../client/tracing" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../../../client/telemetry" }
+sc-authority-discovery = { version = "0.8.0-rc6",  path = "../../../client/authority-discovery" }
 
 # frame dependencies
-pallet-indices = { version = "2.0.0-rc5", path = "../../../frame/indices" }
-pallet-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/timestamp" }
-pallet-contracts = { version = "2.0.0-rc5", path = "../../../frame/contracts" }
-frame-system = { version = "2.0.0-rc5", path = "../../../frame/system" }
-pallet-balances = { version = "2.0.0-rc5", path = "../../../frame/balances" }
-pallet-transaction-payment = { version = "2.0.0-rc5", path = "../../../frame/transaction-payment" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/support" }
-pallet-im-online = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/im-online" }
-pallet-authority-discovery = { version = "2.0.0-rc5", path = "../../../frame/authority-discovery" }
-pallet-staking = { version = "2.0.0-rc5", path = "../../../frame/staking" }
-pallet-grandpa = { version = "2.0.0-rc5", path = "../../../frame/grandpa" }
+pallet-indices = { version = "2.0.0-rc6", path = "../../../frame/indices" }
+pallet-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/timestamp" }
+pallet-contracts = { version = "2.0.0-rc6", path = "../../../frame/contracts" }
+frame-system = { version = "2.0.0-rc6", path = "../../../frame/system" }
+pallet-balances = { version = "2.0.0-rc6", path = "../../../frame/balances" }
+pallet-transaction-payment = { version = "2.0.0-rc6", path = "../../../frame/transaction-payment" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/support" }
+pallet-im-online = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/im-online" }
+pallet-authority-discovery = { version = "2.0.0-rc6", path = "../../../frame/authority-discovery" }
+pallet-staking = { version = "2.0.0-rc6", path = "../../../frame/staking" }
+pallet-grandpa = { version = "2.0.0-rc6", path = "../../../frame/grandpa" }
 
 # node-specific dependencies
-node-runtime = { version = "2.0.0-rc5", path = "../runtime" }
-node-rpc = { version = "2.0.0-rc5", path = "../rpc" }
-node-primitives = { version = "2.0.0-rc5", path = "../primitives" }
-node-executor = { version = "2.0.0-rc5", path = "../executor" }
+node-runtime = { version = "2.0.0-rc6", path = "../runtime" }
+node-rpc = { version = "2.0.0-rc6", path = "../rpc" }
+node-primitives = { version = "2.0.0-rc6", path = "../primitives" }
+node-executor = { version = "2.0.0-rc6", path = "../executor" }
 
 # CLI-specific dependencies
-sc-cli = { version = "0.8.0-rc5", optional = true, path = "../../../client/cli" }
-frame-benchmarking-cli = { version = "2.0.0-rc5", optional = true, path = "../../../utils/frame/benchmarking-cli" }
-node-inspect = { version = "0.8.0-rc5", optional = true, path = "../inspect" }
+sc-cli = { version = "0.8.0-rc6", optional = true, path = "../../../client/cli" }
+frame-benchmarking-cli = { version = "2.0.0-rc6", optional = true, path = "../../../utils/frame/benchmarking-cli" }
+node-inspect = { version = "0.8.0-rc6", optional = true, path = "../inspect" }
 
 # WASM-specific dependencies
 wasm-bindgen = { version = "0.2.57", optional = true }
 wasm-bindgen-futures = { version = "0.4.7", optional = true }
-browser-utils = { package = "substrate-browser-utils", path = "../../../utils/browser", optional = true, version = "0.8.0-rc5"}
+browser-utils = { package = "substrate-browser-utils", path = "../../../utils/browser", optional = true, version = "0.8.0-rc6"}
 
 [target.'cfg(target_arch="x86_64")'.dependencies]
-node-executor = { version = "2.0.0-rc5", path = "../executor", features = [ "wasmtime" ] }
-sc-cli = { version = "0.8.0-rc5", optional = true, path = "../../../client/cli", features = [ "wasmtime" ] }
-sc-service = { version = "0.8.0-rc5", default-features = false, path = "../../../client/service", features = [ "wasmtime" ] }
-sp-trie = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/trie", features = ["memory-tracker"] }
+node-executor = { version = "2.0.0-rc6", path = "../executor", features = [ "wasmtime" ] }
+sc-cli = { version = "0.8.0-rc6", optional = true, path = "../../../client/cli", features = [ "wasmtime" ] }
+sc-service = { version = "0.8.0-rc6", default-features = false, path = "../../../client/service", features = [ "wasmtime" ] }
+sp-trie = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/trie", features = ["memory-tracker"] }
 
 [dev-dependencies]
-sc-keystore = { version = "2.0.0-rc5", path = "../../../client/keystore" }
-sc-consensus = { version = "0.8.0-rc5", path = "../../../client/consensus/common" }
-sc-consensus-babe = { version = "0.8.0-rc5", features = ["test-helpers"], path = "../../../client/consensus/babe" }
-sc-consensus-epochs = { version = "0.8.0-rc5", path = "../../../client/consensus/epochs" }
-sc-service-test = { version = "2.0.0-rc5", path = "../../../client/service/test" }
+sc-keystore = { version = "2.0.0-rc6", path = "../../../client/keystore" }
+sc-consensus = { version = "0.8.0-rc6", path = "../../../client/consensus/common" }
+sc-consensus-babe = { version = "0.8.0-rc6", features = ["test-helpers"], path = "../../../client/consensus/babe" }
+sc-consensus-epochs = { version = "0.8.0-rc6", path = "../../../client/consensus/epochs" }
+sc-service-test = { version = "2.0.0-rc6", path = "../../../client/service/test" }
 futures = "0.3.4"
 tempfile = "3.1.0"
 assert_cmd = "1.0"
@@ -128,13 +128,13 @@ platforms = "0.2.1"
 
 [build-dependencies]
 structopt = { version = "0.3.8", optional = true }
-node-inspect = { version = "0.8.0-rc5", optional = true, path = "../inspect" }
-frame-benchmarking-cli = { version = "2.0.0-rc5", optional = true, path = "../../../utils/frame/benchmarking-cli" }
-substrate-build-script-utils = { version = "2.0.0-rc5", optional = true, path = "../../../utils/build-script-utils" }
-substrate-frame-cli = { version = "2.0.0-rc5", optional = true, path = "../../../utils/frame/frame-utilities-cli" }
+node-inspect = { version = "0.8.0-rc6", optional = true, path = "../inspect" }
+frame-benchmarking-cli = { version = "2.0.0-rc6", optional = true, path = "../../../utils/frame/benchmarking-cli" }
+substrate-build-script-utils = { version = "2.0.0-rc6", optional = true, path = "../../../utils/build-script-utils" }
+substrate-frame-cli = { version = "2.0.0-rc6", optional = true, path = "../../../utils/frame/frame-utilities-cli" }
 
 [build-dependencies.sc-cli]
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 package = "sc-cli"
 path = "../../../client/cli"
 optional = true
diff --git a/substrate/bin/node/executor/Cargo.toml b/substrate/bin/node/executor/Cargo.toml
index 6c6920d62be..d8fb2e4078b 100644
--- a/substrate/bin/node/executor/Cargo.toml
+++ b/substrate/bin/node/executor/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-executor"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate node implementation in Rust."
 edition = "2018"
@@ -13,34 +13,34 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-node-primitives = { version = "2.0.0-rc5", path = "../primitives" }
-node-runtime = { version = "2.0.0-rc5", path = "../runtime" }
-sc-executor = { version = "0.8.0-rc5", path = "../../../client/executor" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-io = { version = "2.0.0-rc5", path = "../../../primitives/io" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../../primitives/state-machine" }
-sp-trie = { version = "2.0.0-rc5", path = "../../../primitives/trie" }
+node-primitives = { version = "2.0.0-rc6", path = "../primitives" }
+node-runtime = { version = "2.0.0-rc6", path = "../runtime" }
+sc-executor = { version = "0.8.0-rc6", path = "../../../client/executor" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", path = "../../../primitives/io" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../../primitives/state-machine" }
+sp-trie = { version = "2.0.0-rc6", path = "../../../primitives/trie" }
 trie-root = "0.16.0"
-frame-benchmarking = { version = "2.0.0-rc5", path = "../../../frame/benchmarking" }
+frame-benchmarking = { version = "2.0.0-rc6", path = "../../../frame/benchmarking" }
 
 [dev-dependencies]
 criterion = "0.3.0"
-frame-support = { version = "2.0.0-rc5", path = "../../../frame/support" }
-frame-system = { version = "2.0.0-rc5", path = "../../../frame/system" }
-node-testing = { version = "2.0.0-rc5", path = "../testing" }
-pallet-balances = { version = "2.0.0-rc5", path = "../../../frame/balances" }
-pallet-contracts = { version = "2.0.0-rc5", path = "../../../frame/contracts" }
-pallet-grandpa = { version = "2.0.0-rc5", path = "../../../frame/grandpa" }
-pallet-im-online = { version = "2.0.0-rc5", path = "../../../frame/im-online" }
-pallet-indices = { version = "2.0.0-rc5", path = "../../../frame/indices" }
-pallet-session = { version = "2.0.0-rc5", path = "../../../frame/session" }
-pallet-timestamp = { version = "2.0.0-rc5", path = "../../../frame/timestamp" }
-pallet-transaction-payment = { version = "2.0.0-rc5", path = "../../../frame/transaction-payment" }
-pallet-treasury = { version = "2.0.0-rc5", path = "../../../frame/treasury" }
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../../primitives/application-crypto" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-externalities = { version = "0.8.0-rc5", path = "../../../primitives/externalities" }
-substrate-test-client = { version = "2.0.0-rc5", path = "../../../test-utils/client" }
+frame-support = { version = "2.0.0-rc6", path = "../../../frame/support" }
+frame-system = { version = "2.0.0-rc6", path = "../../../frame/system" }
+node-testing = { version = "2.0.0-rc6", path = "../testing" }
+pallet-balances = { version = "2.0.0-rc6", path = "../../../frame/balances" }
+pallet-contracts = { version = "2.0.0-rc6", path = "../../../frame/contracts" }
+pallet-grandpa = { version = "2.0.0-rc6", path = "../../../frame/grandpa" }
+pallet-im-online = { version = "2.0.0-rc6", path = "../../../frame/im-online" }
+pallet-indices = { version = "2.0.0-rc6", path = "../../../frame/indices" }
+pallet-session = { version = "2.0.0-rc6", path = "../../../frame/session" }
+pallet-timestamp = { version = "2.0.0-rc6", path = "../../../frame/timestamp" }
+pallet-transaction-payment = { version = "2.0.0-rc6", path = "../../../frame/transaction-payment" }
+pallet-treasury = { version = "2.0.0-rc6", path = "../../../frame/treasury" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../../primitives/application-crypto" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-externalities = { version = "0.8.0-rc6", path = "../../../primitives/externalities" }
+substrate-test-client = { version = "2.0.0-rc6", path = "../../../test-utils/client" }
 wabt = "0.9.2"
 
 [features]
diff --git a/substrate/bin/node/inspect/Cargo.toml b/substrate/bin/node/inspect/Cargo.toml
index b7f828a5f1e..f8dc32f1e05 100644
--- a/substrate/bin/node/inspect/Cargo.toml
+++ b/substrate/bin/node/inspect/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-inspect"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -14,10 +14,10 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "1.3.4" }
 derive_more = "0.99"
 log = "0.4.8"
-sc-cli = { version = "0.8.0-rc5", path = "../../../client/cli" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../../client/api" }
-sc-service = { version = "0.8.0-rc5", default-features = false, path = "../../../client/service" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
+sc-cli = { version = "0.8.0-rc6", path = "../../../client/cli" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../../client/api" }
+sc-service = { version = "0.8.0-rc6", default-features = false, path = "../../../client/service" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
 structopt = "0.3.8"
diff --git a/substrate/bin/node/primitives/Cargo.toml b/substrate/bin/node/primitives/Cargo.toml
index 6ff8a05d614..15fc493289f 100644
--- a/substrate/bin/node/primitives/Cargo.toml
+++ b/substrate/bin/node/primitives/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-primitives"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,13 +12,13 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/system" }
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/application-crypto" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/system" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/application-crypto" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
 
 [dev-dependencies]
-sp-serializer = { version = "2.0.0-rc5", path = "../../../primitives/serializer" }
+sp-serializer = { version = "2.0.0-rc6", path = "../../../primitives/serializer" }
 pretty_assertions = "0.6.1"
 
 [features]
diff --git a/substrate/bin/node/rpc-client/Cargo.toml b/substrate/bin/node/rpc-client/Cargo.toml
index d1a76f2ab37..698aa8f08ae 100644
--- a/substrate/bin/node/rpc-client/Cargo.toml
+++ b/substrate/bin/node/rpc-client/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-rpc-client"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,5 +16,5 @@ futures = "0.1.29"
 hyper = "0.12.35"
 jsonrpc-core-client = { version = "14.2.0", default-features = false, features = ["http"] }
 log = "0.4.8"
-node-primitives = { version = "2.0.0-rc5", path = "../primitives" }
-sc-rpc = { version = "2.0.0-rc5", path = "../../../client/rpc" }
+node-primitives = { version = "2.0.0-rc6", path = "../primitives" }
+sc-rpc = { version = "2.0.0-rc6", path = "../../../client/rpc" }
diff --git a/substrate/bin/node/rpc/Cargo.toml b/substrate/bin/node/rpc/Cargo.toml
index ee11ff4ac8c..9ed8c22fbe3 100644
--- a/substrate/bin/node/rpc/Cargo.toml
+++ b/substrate/bin/node/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-rpc"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,23 +13,23 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 jsonrpc-core = "14.2.0"
 jsonrpc-pubsub = "14.2.0"
-node-primitives = { version = "2.0.0-rc5", path = "../primitives" }
-node-runtime = { version = "2.0.0-rc5", path = "../runtime" }
-pallet-contracts-rpc = { version = "0.8.0-rc5", path = "../../../frame/contracts/rpc/" }
-pallet-transaction-payment-rpc = { version = "2.0.0-rc5", path = "../../../frame/transaction-payment/rpc/" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../../client/api" }
-sc-consensus-babe = { version = "0.8.0-rc5", path = "../../../client/consensus/babe" }
-sc-consensus-babe-rpc = { version = "0.8.0-rc5", path = "../../../client/consensus/babe/rpc" }
-sc-consensus-epochs = { version = "0.8.0-rc5", path = "../../../client/consensus/epochs" }
-sc-finality-grandpa = { version = "0.8.0-rc5", path = "../../../client/finality-grandpa" }
-sc-finality-grandpa-rpc = { version = "0.8.0-rc5", path = "../../../client/finality-grandpa/rpc" }
-sc-keystore = { version = "2.0.0-rc5", path = "../../../client/keystore" }
-sc-rpc-api = { version = "0.8.0-rc5", path = "../../../client/rpc-api" }
-sc-rpc = { version = "2.0.0-rc5", path = "../../../client/rpc" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../../primitives/block-builder" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sp-consensus-babe = { version = "0.8.0-rc5", path = "../../../primitives/consensus/babe" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../../primitives/transaction-pool" }
-substrate-frame-rpc-system = { version = "2.0.0-rc5", path = "../../../utils/frame/rpc/system" }
+node-primitives = { version = "2.0.0-rc6", path = "../primitives" }
+node-runtime = { version = "2.0.0-rc6", path = "../runtime" }
+pallet-contracts-rpc = { version = "0.8.0-rc6", path = "../../../frame/contracts/rpc/" }
+pallet-transaction-payment-rpc = { version = "2.0.0-rc6", path = "../../../frame/transaction-payment/rpc/" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../../client/api" }
+sc-consensus-babe = { version = "0.8.0-rc6", path = "../../../client/consensus/babe" }
+sc-consensus-babe-rpc = { version = "0.8.0-rc6", path = "../../../client/consensus/babe/rpc" }
+sc-consensus-epochs = { version = "0.8.0-rc6", path = "../../../client/consensus/epochs" }
+sc-finality-grandpa = { version = "0.8.0-rc6", path = "../../../client/finality-grandpa" }
+sc-finality-grandpa-rpc = { version = "0.8.0-rc6", path = "../../../client/finality-grandpa/rpc" }
+sc-keystore = { version = "2.0.0-rc6", path = "../../../client/keystore" }
+sc-rpc-api = { version = "0.8.0-rc6", path = "../../../client/rpc-api" }
+sc-rpc = { version = "2.0.0-rc6", path = "../../../client/rpc" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../../primitives/block-builder" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sp-consensus-babe = { version = "0.8.0-rc6", path = "../../../primitives/consensus/babe" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../../primitives/transaction-pool" }
+substrate-frame-rpc-system = { version = "2.0.0-rc6", path = "../../../utils/frame/rpc/system" }
diff --git a/substrate/bin/node/runtime/Cargo.toml b/substrate/bin/node/runtime/Cargo.toml
index 35ed7400459..303db4c2d2e 100644
--- a/substrate/bin/node/runtime/Cargo.toml
+++ b/substrate/bin/node/runtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-runtime"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -21,70 +21,70 @@ static_assertions = "1.1.0"
 hex-literal = { version = "0.2.1", optional = true }
 
 # primitives
-sp-authority-discovery = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/authority-discovery" }
-sp-consensus-babe = { version = "0.8.0-rc5", default-features = false, path = "../../../primitives/consensus/babe" }
-sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "2.0.0-rc5"}
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/inherents" }
-node-primitives = { version = "2.0.0-rc5", default-features = false, path = "../primitives" }
-sp-offchain = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/offchain" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/std" }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/api" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/staking" }
-sp-keyring = { version = "2.0.0-rc5", optional = true, path = "../../../primitives/keyring" }
-sp-session = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/session" }
-sp-transaction-pool = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/transaction-pool" }
-sp-version = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/version" }
+sp-authority-discovery = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/authority-discovery" }
+sp-consensus-babe = { version = "0.8.0-rc6", default-features = false, path = "../../../primitives/consensus/babe" }
+sp-block-builder = { path = "../../../primitives/block-builder", default-features = false, version = "2.0.0-rc6"}
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/inherents" }
+node-primitives = { version = "2.0.0-rc6", default-features = false, path = "../primitives" }
+sp-offchain = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/offchain" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/std" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/api" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/staking" }
+sp-keyring = { version = "2.0.0-rc6", optional = true, path = "../../../primitives/keyring" }
+sp-session = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/session" }
+sp-transaction-pool = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/transaction-pool" }
+sp-version = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/version" }
 
 # frame dependencies
-frame-executive = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/executive" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/system" }
-frame-system-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/system/benchmarking", optional = true }
-frame-system-rpc-runtime-api = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
-pallet-authority-discovery = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/authority-discovery" }
-pallet-authorship = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/authorship" }
-pallet-babe = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/babe" }
-pallet-balances = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/balances" }
-pallet-collective = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/collective" }
-pallet-contracts = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/contracts" }
-pallet-contracts-primitives = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/contracts/common/" }
-pallet-contracts-rpc-runtime-api = { version = "0.8.0-rc5", default-features = false, path = "../../../frame/contracts/rpc/runtime-api/" }
-pallet-democracy = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/democracy" }
-pallet-elections-phragmen = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/elections-phragmen" }
-pallet-finality-tracker = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/finality-tracker" }
-pallet-grandpa = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/grandpa" }
-pallet-im-online = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/im-online" }
-pallet-indices = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/indices" }
-pallet-identity = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/identity" }
-pallet-membership = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/membership" }
-pallet-multisig = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/multisig" }
-pallet-offences = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/offences" }
-pallet-offences-benchmarking = { version = "2.0.0-rc5", path = "../../../frame/offences/benchmarking", default-features = false, optional = true }
-pallet-proxy = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/proxy" }
-pallet-randomness-collective-flip = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/randomness-collective-flip" }
-pallet-recovery = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/recovery" }
-pallet-session = { version = "2.0.0-rc5", features = ["historical"], path = "../../../frame/session", default-features = false }
-pallet-session-benchmarking = { version = "2.0.0-rc5", path = "../../../frame/session/benchmarking", default-features = false, optional = true }
-pallet-staking = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/staking" }
-pallet-staking-reward-curve = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/staking/reward-curve" }
-pallet-scheduler = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/scheduler" }
-pallet-society = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/society" }
-pallet-sudo = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/sudo" }
-pallet-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/timestamp" }
-pallet-treasury = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/treasury" }
-pallet-utility = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/utility" }
-pallet-transaction-payment = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/transaction-payment" }
-pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
-pallet-vesting = { version = "2.0.0-rc5", default-features = false, path = "../../../frame/vesting" }
+frame-executive = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/executive" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/system" }
+frame-system-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/system/benchmarking", optional = true }
+frame-system-rpc-runtime-api = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/system/rpc/runtime-api/" }
+pallet-authority-discovery = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/authority-discovery" }
+pallet-authorship = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/authorship" }
+pallet-babe = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/babe" }
+pallet-balances = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/balances" }
+pallet-collective = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/collective" }
+pallet-contracts = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/contracts" }
+pallet-contracts-primitives = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/contracts/common/" }
+pallet-contracts-rpc-runtime-api = { version = "0.8.0-rc6", default-features = false, path = "../../../frame/contracts/rpc/runtime-api/" }
+pallet-democracy = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/democracy" }
+pallet-elections-phragmen = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/elections-phragmen" }
+pallet-finality-tracker = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/finality-tracker" }
+pallet-grandpa = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/grandpa" }
+pallet-im-online = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/im-online" }
+pallet-indices = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/indices" }
+pallet-identity = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/identity" }
+pallet-membership = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/membership" }
+pallet-multisig = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/multisig" }
+pallet-offences = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/offences" }
+pallet-offences-benchmarking = { version = "2.0.0-rc6", path = "../../../frame/offences/benchmarking", default-features = false, optional = true }
+pallet-proxy = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/proxy" }
+pallet-randomness-collective-flip = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/randomness-collective-flip" }
+pallet-recovery = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/recovery" }
+pallet-session = { version = "2.0.0-rc6", features = ["historical"], path = "../../../frame/session", default-features = false }
+pallet-session-benchmarking = { version = "2.0.0-rc6", path = "../../../frame/session/benchmarking", default-features = false, optional = true }
+pallet-staking = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/staking" }
+pallet-staking-reward-curve = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/staking/reward-curve" }
+pallet-scheduler = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/scheduler" }
+pallet-society = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/society" }
+pallet-sudo = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/sudo" }
+pallet-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/timestamp" }
+pallet-treasury = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/treasury" }
+pallet-utility = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/utility" }
+pallet-transaction-payment = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/transaction-payment" }
+pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/transaction-payment/rpc/runtime-api/" }
+pallet-vesting = { version = "2.0.0-rc6", default-features = false, path = "../../../frame/vesting" }
 
 [build-dependencies]
 wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
 
 [dev-dependencies]
-sp-io = { version = "2.0.0-rc5", path = "../../../primitives/io" }
+sp-io = { version = "2.0.0-rc6", path = "../../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/bin/node/testing/Cargo.toml b/substrate/bin/node/testing/Cargo.toml
index a61a344ccee..23bf10336dc 100644
--- a/substrate/bin/node/testing/Cargo.toml
+++ b/substrate/bin/node/testing/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "node-testing"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Test utilities for Substrate node."
 edition = "2018"
@@ -13,40 +13,40 @@ publish = true
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-pallet-balances = { version = "2.0.0-rc5", path = "../../../frame/balances" }
-sc-service = { version = "0.8.0-rc5", features = ["test-helpers", "db"],  path = "../../../client/service" }
-sc-client-db = { version = "0.8.0-rc5", path = "../../../client/db/", features = ["kvdb-rocksdb", "parity-db"] }
-sc-client-api = { version = "2.0.0-rc5", path = "../../../client/api/" }
+pallet-balances = { version = "2.0.0-rc6", path = "../../../frame/balances" }
+sc-service = { version = "0.8.0-rc6", features = ["test-helpers", "db"],  path = "../../../client/service" }
+sc-client-db = { version = "0.8.0-rc6", path = "../../../client/db/", features = ["kvdb-rocksdb", "parity-db"] }
+sc-client-api = { version = "2.0.0-rc6", path = "../../../client/api/" }
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-pallet-contracts = { version = "2.0.0-rc5", path = "../../../frame/contracts" }
-pallet-grandpa = { version = "2.0.0-rc5", path = "../../../frame/grandpa" }
-pallet-indices = { version = "2.0.0-rc5", path = "../../../frame/indices" }
-sp-keyring = { version = "2.0.0-rc5", path = "../../../primitives/keyring" }
-node-executor = { version = "2.0.0-rc5", path = "../executor" }
-node-primitives = { version = "2.0.0-rc5", path = "../primitives" }
-node-runtime = { version = "2.0.0-rc5", path = "../runtime" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-io = { version = "2.0.0-rc5", path = "../../../primitives/io" }
-frame-support = { version = "2.0.0-rc5", path = "../../../frame/support" }
-pallet-session = { version = "2.0.0-rc5", path = "../../../frame/session" }
-pallet-society = { version = "2.0.0-rc5", path = "../../../frame/society" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-pallet-staking = { version = "2.0.0-rc5", path = "../../../frame/staking" }
-sc-executor = { version = "0.8.0-rc5", path = "../../../client/executor", features = ["wasmtime"] }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-frame-system = { version = "2.0.0-rc5", path = "../../../frame/system" }
-substrate-test-client = { version = "2.0.0-rc5", path = "../../../test-utils/client" }
-pallet-timestamp = { version = "2.0.0-rc5", path = "../../../frame/timestamp" }
-pallet-transaction-payment = { version = "2.0.0-rc5", path = "../../../frame/transaction-payment" }
-pallet-treasury = { version = "2.0.0-rc5", path = "../../../frame/treasury" }
+pallet-contracts = { version = "2.0.0-rc6", path = "../../../frame/contracts" }
+pallet-grandpa = { version = "2.0.0-rc6", path = "../../../frame/grandpa" }
+pallet-indices = { version = "2.0.0-rc6", path = "../../../frame/indices" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../../primitives/keyring" }
+node-executor = { version = "2.0.0-rc6", path = "../executor" }
+node-primitives = { version = "2.0.0-rc6", path = "../primitives" }
+node-runtime = { version = "2.0.0-rc6", path = "../runtime" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", path = "../../../primitives/io" }
+frame-support = { version = "2.0.0-rc6", path = "../../../frame/support" }
+pallet-session = { version = "2.0.0-rc6", path = "../../../frame/session" }
+pallet-society = { version = "2.0.0-rc6", path = "../../../frame/society" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+pallet-staking = { version = "2.0.0-rc6", path = "../../../frame/staking" }
+sc-executor = { version = "0.8.0-rc6", path = "../../../client/executor", features = ["wasmtime"] }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+frame-system = { version = "2.0.0-rc6", path = "../../../frame/system" }
+substrate-test-client = { version = "2.0.0-rc6", path = "../../../test-utils/client" }
+pallet-timestamp = { version = "2.0.0-rc6", path = "../../../frame/timestamp" }
+pallet-transaction-payment = { version = "2.0.0-rc6", path = "../../../frame/transaction-payment" }
+pallet-treasury = { version = "2.0.0-rc6", path = "../../../frame/treasury" }
 wabt = "0.9.2"
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sp-finality-tracker = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/finality-tracker" }
-sp-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/timestamp" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../../primitives/block-builder" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../../../client/block-builder" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sp-finality-tracker = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/finality-tracker" }
+sp-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/timestamp" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../../primitives/block-builder" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../../client/block-builder" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
 log = "0.4.8"
 tempfile = "3.1.0"
 fs_extra = "1"
@@ -54,4 +54,4 @@ futures = "0.3.1"
 
 [dev-dependencies]
 criterion = "0.3.0"
-sc-cli = { version = "0.8.0-rc5", path = "../../../client/cli" }
+sc-cli = { version = "0.8.0-rc6", path = "../../../client/cli" }
diff --git a/substrate/bin/utils/chain-spec-builder/Cargo.toml b/substrate/bin/utils/chain-spec-builder/Cargo.toml
index e90ef12f681..f6d03d4f3d1 100644
--- a/substrate/bin/utils/chain-spec-builder/Cargo.toml
+++ b/substrate/bin/utils/chain-spec-builder/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "chain-spec-builder"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -13,9 +13,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 ansi_term = "0.12.1"
-sc-keystore = { version = "2.0.0-rc5", path = "../../../client/keystore" }
-sc-chain-spec = { version = "2.0.0-rc5", path = "../../../client/chain-spec" }
-node-cli = { version = "2.0.0-rc5", path = "../../node/cli" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
+sc-keystore = { version = "2.0.0-rc6", path = "../../../client/keystore" }
+sc-chain-spec = { version = "2.0.0-rc6", path = "../../../client/chain-spec" }
+node-cli = { version = "2.0.0-rc6", path = "../../node/cli" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
 rand = "0.7.2"
 structopt = "0.3.8"
diff --git a/substrate/bin/utils/chain-spec-builder/README.md b/substrate/bin/utils/chain-spec-builder/README.md
new file mode 100644
index 00000000000..3e9ac0bddbd
--- /dev/null
+++ b/substrate/bin/utils/chain-spec-builder/README.md
@@ -0,0 +1 @@
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/bin/utils/subkey/Cargo.toml b/substrate/bin/utils/subkey/Cargo.toml
index 1b0288faeed..0dc1a1b5970 100644
--- a/substrate/bin/utils/subkey/Cargo.toml
+++ b/substrate/bin/utils/subkey/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "subkey"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -15,13 +15,13 @@ name = "subkey"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-node-runtime = { version = "2.0.0-rc5", path = "../../node/runtime" }
-node-primitives = { version = "2.0.0-rc5", path = "../../node/primitives" }
-sc-cli = { version = "0.8.0-rc5", path = "../../../client/cli" }
-substrate-frame-cli = { version = "2.0.0-rc5", path = "../../../utils/frame/frame-utilities-cli" }
+node-runtime = { version = "2.0.0-rc6", path = "../../node/runtime" }
+node-primitives = { version = "2.0.0-rc6", path = "../../node/primitives" }
+sc-cli = { version = "0.8.0-rc6", path = "../../../client/cli" }
+substrate-frame-cli = { version = "2.0.0-rc6", path = "../../../utils/frame/frame-utilities-cli" }
 structopt = "0.3.14"
-frame-system = { version = "2.0.0-rc5", path = "../../../frame/system" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
+frame-system = { version = "2.0.0-rc6", path = "../../../frame/system" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
 
 [features]
 bench = []
diff --git a/substrate/bin/utils/subkey/README.md b/substrate/bin/utils/subkey/README.md
new file mode 100644
index 00000000000..3e9ac0bddbd
--- /dev/null
+++ b/substrate/bin/utils/subkey/README.md
@@ -0,0 +1 @@
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/api/Cargo.toml b/substrate/client/api/Cargo.toml
index 45601771a40..e84c3642bcf 100644
--- a/substrate/client/api/Cargo.toml
+++ b/substrate/client/api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-client-api"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -14,36 +14,36 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
 derive_more = { version = "0.99.2" }
-sc-executor = { version = "0.8.0-rc5", path = "../executor" }
-sp-externalities = { version = "0.8.0-rc5", path = "../../primitives/externalities" }
+sc-executor = { version = "0.8.0-rc6", path = "../executor" }
+sp-externalities = { version = "0.8.0-rc6", path = "../../primitives/externalities" }
 fnv = { version = "1.0.6" }
 futures = { version = "0.3.1" }
 hash-db = { version = "0.15.2", default-features = false }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
 hex-literal = { version = "0.2.1" }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-sp-keyring = { version = "2.0.0-rc5", path = "../../primitives/keyring" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../primitives/keyring" }
 kvdb = "0.7.0"
 log = { version = "0.4.8" }
 parking_lot = "0.10.0"
 lazy_static =  "1.4.0"
-sp-database = { version = "2.0.0-rc5", path = "../../primitives/database" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-version = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/version" }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../telemetry" }
-sp-trie = { version = "2.0.0-rc5", path = "../../primitives/trie" }
-sp-storage = { version = "2.0.0-rc5", path = "../../primitives/storage" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../primitives/transaction-pool" }
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.8.0-rc5", path = "../../utils/prometheus" }
+sp-database = { version = "2.0.0-rc6", path = "../../primitives/database" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-version = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/version" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../telemetry" }
+sp-trie = { version = "2.0.0-rc6", path = "../../primitives/trie" }
+sp-storage = { version = "2.0.0-rc6", path = "../../primitives/storage" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../primitives/transaction-pool" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.8.0-rc6", path = "../../utils/prometheus" }
 
 [dev-dependencies]
 kvdb-memorydb = "0.6.0"
-sp-test-primitives = { version = "2.0.0-rc5", path = "../../primitives/test-primitives" }
-substrate-test-runtime = { version = "2.0.0-rc5", path = "../../test-utils/runtime"  }
+sp-test-primitives = { version = "2.0.0-rc6", path = "../../primitives/test-primitives" }
+substrate-test-runtime = { version = "2.0.0-rc6", path = "../../test-utils/runtime"  }
diff --git a/substrate/client/api/README.md b/substrate/client/api/README.md
new file mode 100644
index 00000000000..142f5b32dd9
--- /dev/null
+++ b/substrate/client/api/README.md
@@ -0,0 +1,3 @@
+Substrate client interfaces.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/authority-discovery/Cargo.toml b/substrate/client/authority-discovery/Cargo.toml
index 3f3e5b55894..b651dbbbc94 100644
--- a/substrate/client/authority-discovery/Cargo.toml
+++ b/substrate/client/authority-discovery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-authority-discovery"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -23,21 +23,21 @@ futures = "0.3.4"
 futures-timer = "3.0.1"
 libp2p = { version = "0.23.0", default-features = false, features = ["kad"] }
 log = "0.4.8"
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc5"}
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc6"}
 prost = "0.6.1"
 rand = "0.7.2"
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sc-keystore = { version = "2.0.0-rc5", path = "../keystore" }
-sc-network = { version = "0.8.0-rc5", path = "../network" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sc-keystore = { version = "2.0.0-rc6", path = "../keystore" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
 serde_json = "1.0.41"
-sp-authority-discovery = { version = "2.0.0-rc5", path = "../../primitives/authority-discovery" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
+sp-authority-discovery = { version = "2.0.0-rc6", path = "../../primitives/authority-discovery" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
 
 [dev-dependencies]
 env_logger = "0.7.0"
 quickcheck = "0.9.0"
-sc-peerset = { version = "2.0.0-rc5", path = "../peerset" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client"}
+sc-peerset = { version = "2.0.0-rc6", path = "../peerset" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client"}
diff --git a/substrate/client/authority-discovery/README.md b/substrate/client/authority-discovery/README.md
new file mode 100644
index 00000000000..54c51d5ba04
--- /dev/null
+++ b/substrate/client/authority-discovery/README.md
@@ -0,0 +1,9 @@
+Substrate authority discovery.
+
+This crate enables Substrate authorities to discover and directly connect to
+other authorities. It is split into two components the [`Worker`] and the
+[`Service`].
+
+See [`Worker`] and [`Service`] for more documentation.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/basic-authorship/Cargo.toml b/substrate/client/basic-authorship/Cargo.toml
index 6160a41fdef..6c9da3f3d8a 100644
--- a/substrate/client/basic-authorship/Cargo.toml
+++ b/substrate/client/basic-authorship/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-basic-authorship"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -16,21 +16,21 @@ codec = { package = "parity-scale-codec", version = "1.3.4" }
 futures = "0.3.4"
 futures-timer = "3.0.1"
 log = "0.4.8"
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc5"}
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../primitives/inherents" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../telemetry" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../primitives/transaction-pool" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../block-builder" }
-sc-proposer-metrics = { version = "0.8.0-rc5", path = "../proposer-metrics" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc6"}
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../primitives/inherents" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../telemetry" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../primitives/transaction-pool" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../block-builder" }
+sc-proposer-metrics = { version = "0.8.0-rc6", path = "../proposer-metrics" }
 tokio-executor = { version = "0.2.0-alpha.6", features = ["blocking"] }
 
 [dev-dependencies]
-sc-transaction-pool = { version = "2.0.0-rc5", path = "../../client/transaction-pool" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
+sc-transaction-pool = { version = "2.0.0-rc6", path = "../../client/transaction-pool" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
 parking_lot = "0.10.0"
diff --git a/substrate/client/basic-authorship/README.md b/substrate/client/basic-authorship/README.md
new file mode 100644
index 00000000000..1a20593c09e
--- /dev/null
+++ b/substrate/client/basic-authorship/README.md
@@ -0,0 +1,32 @@
+Basic implementation of block-authoring logic.
+
+# Example
+
+```rust
+// The first step is to create a `ProposerFactory`.
+let mut proposer_factory = ProposerFactory::new(client.clone(), txpool.clone(), None);
+
+// From this factory, we create a `Proposer`.
+let proposer = proposer_factory.init(
+	&client.header(&BlockId::number(0)).unwrap().unwrap(),
+);
+
+// The proposer is created asynchronously.
+let proposer = futures::executor::block_on(proposer).unwrap();
+
+// This `Proposer` allows us to create a block proposition.
+// The proposer will grab transactions from the transaction pool, and put them into the block.
+let future = proposer.propose(
+	Default::default(),
+	Default::default(),
+	Duration::from_secs(2),
+	RecordProof::Yes,
+);
+
+// We wait until the proposition is performed.
+let block = futures::executor::block_on(future).unwrap();
+println!("Generated block: {:?}", block.block);
+```
+
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/block-builder/Cargo.toml b/substrate/client/block-builder/Cargo.toml
index ac1d0265fd9..94d6b70eeeb 100644
--- a/substrate/client/block-builder/Cargo.toml
+++ b/substrate/client/block-builder/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-block-builder"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -13,17 +13,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 
 [dependencies]
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../primitives/block-builder" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../primitives/inherents" }
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../primitives/block-builder" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../primitives/inherents" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
 codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
 
 [dev-dependencies]
 substrate-test-runtime-client = { path = "../../test-utils/runtime/client" }
-sp-trie = { version = "2.0.0-rc5", path = "../../primitives/trie" }
+sp-trie = { version = "2.0.0-rc6", path = "../../primitives/trie" }
diff --git a/substrate/client/block-builder/README.md b/substrate/client/block-builder/README.md
new file mode 100644
index 00000000000..c691f6692ab
--- /dev/null
+++ b/substrate/client/block-builder/README.md
@@ -0,0 +1,9 @@
+Substrate block builder
+
+This crate provides the [`BlockBuilder`] utility and the corresponding runtime api
+[`BlockBuilder`](sp_block_builder::BlockBuilder).Error
+
+The block builder utility is used in the node as an abstraction over the runtime api to
+initialize a block, to push extrinsics and to finalize a block.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/chain-spec/Cargo.toml b/substrate/client/chain-spec/Cargo.toml
index 5a4759cbf17..fb0addf461a 100644
--- a/substrate/client/chain-spec/Cargo.toml
+++ b/substrate/client/chain-spec/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-chain-spec"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -12,12 +12,12 @@ description = "Substrate chain configurations."
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-chain-spec-derive = { version = "2.0.0-rc5", path = "./derive" }
+sc-chain-spec-derive = { version = "2.0.0-rc6", path = "./derive" }
 impl-trait-for-tuples = "0.1.3"
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 serde = { version = "1.0.101", features = ["derive"] }
 serde_json = "1.0.41"
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-chain-spec = { version = "2.0.0-rc5", path = "../../primitives/chain-spec" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../telemetry" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-chain-spec = { version = "2.0.0-rc6", path = "../../primitives/chain-spec" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../telemetry" }
diff --git a/substrate/client/chain-spec/README.md b/substrate/client/chain-spec/README.md
new file mode 100644
index 00000000000..6475c811045
--- /dev/null
+++ b/substrate/client/chain-spec/README.md
@@ -0,0 +1,92 @@
+Substrate chain configurations.
+
+This crate contains structs and utilities to declare
+a runtime-specific configuration file (a.k.a chain spec).
+
+Basic chain spec type containing all required parameters is
+[`ChainSpec`](./struct.ChainSpec.html). It can be extended with
+additional options that contain configuration specific to your chain.
+Usually the extension is going to be an amalgamate of types exposed
+by Substrate core modules. To allow the core modules to retrieve
+their configuration from your extension you should use `ChainSpecExtension`
+macro exposed by this crate.
+
+```rust
+use std::collections::HashMap;
+use sc_chain_spec::{GenericChainSpec, ChainSpecExtension};
+
+#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, ChainSpecExtension)]
+pub struct MyExtension {
+		pub known_blocks: HashMap<u64, String>,
+}
+
+pub type MyChainSpec<G> = GenericChainSpec<G, MyExtension>;
+```
+
+Some parameters may require different values depending on the
+current blockchain height (a.k.a. forks). You can use `ChainSpecGroup`
+macro and provided [`Forks`](./struct.Forks.html) structure to put
+such parameters to your chain spec.
+This will allow to override a single parameter starting at specific
+block number.
+
+```rust
+use sc_chain_spec::{Forks, ChainSpecGroup, ChainSpecExtension, GenericChainSpec};
+
+#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, ChainSpecGroup)]
+pub struct ClientParams {
+		max_block_size: usize,
+		max_extrinsic_size: usize,
+}
+
+#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, ChainSpecGroup)]
+pub struct PoolParams {
+		max_transaction_size: usize,
+}
+
+#[derive(Clone, Debug, serde::Serialize, serde::Deserialize, ChainSpecGroup, ChainSpecExtension)]
+pub struct Extension {
+		pub client: ClientParams,
+		pub pool: PoolParams,
+}
+
+pub type BlockNumber = u64;
+
+/// A chain spec supporting forkable `ClientParams`.
+pub type MyChainSpec1<G> = GenericChainSpec<G, Forks<BlockNumber, ClientParams>>;
+
+/// A chain spec supporting forkable `Extension`.
+pub type MyChainSpec2<G> = GenericChainSpec<G, Forks<BlockNumber, Extension>>;
+```
+
+It's also possible to have a set of parameters that is allowed to change
+with block numbers (i.e. is forkable), and another set that is not subject to changes.
+This is also possible by declaring an extension that contains `Forks` within it.
+
+
+```rust
+use serde::{Serialize, Deserialize};
+use sc_chain_spec::{Forks, GenericChainSpec, ChainSpecGroup, ChainSpecExtension};
+
+#[derive(Clone, Debug, Serialize, Deserialize, ChainSpecGroup)]
+pub struct ClientParams {
+		max_block_size: usize,
+		max_extrinsic_size: usize,
+}
+
+#[derive(Clone, Debug, Serialize, Deserialize, ChainSpecGroup)]
+pub struct PoolParams {
+		max_transaction_size: usize,
+}
+
+#[derive(Clone, Debug, Serialize, Deserialize, ChainSpecExtension)]
+pub struct Extension {
+		pub client: ClientParams,
+		#[forks]
+		pub pool: Forks<u64, PoolParams>,
+}
+
+pub type MyChainSpec<G> = GenericChainSpec<G, Extension>;
+```
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/chain-spec/derive/Cargo.toml b/substrate/client/chain-spec/derive/Cargo.toml
index b7eb03d7fbb..a3112e10fac 100644
--- a/substrate/client/chain-spec/derive/Cargo.toml
+++ b/substrate/client/chain-spec/derive/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-chain-spec-derive"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
diff --git a/substrate/client/cli/Cargo.toml b/substrate/client/cli/Cargo.toml
index 2fe1b30ab14..57bc622deb4 100644
--- a/substrate/client/cli/Cargo.toml
+++ b/substrate/client/cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-cli"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate CLI interface."
 edition = "2018"
@@ -29,24 +29,24 @@ hex = "0.4.2"
 rand = "0.7.3"
 bip39 = "0.6.0-beta.1"
 serde_json = "1.0.41"
-sc-keystore = { version = "2.0.0-rc5", path = "../keystore" }
-sc-informant = { version = "0.8.0-rc5", path = "../informant" }
-sp-panic-handler = { version = "2.0.0-rc5", path = "../../primitives/panic-handler" }
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils" }
-sp-version = { version = "2.0.0-rc5", path = "../../primitives/version" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sc-service = { version = "0.8.0-rc5", default-features = false, path = "../service" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../telemetry" }
-substrate-prometheus-endpoint = { path = "../../utils/prometheus" , version = "0.8.0-rc5"}
-sp-keyring = { version = "2.0.0-rc5", path = "../../primitives/keyring" }
+sc-keystore = { version = "2.0.0-rc6", path = "../keystore" }
+sc-informant = { version = "0.8.0-rc6", path = "../informant" }
+sp-panic-handler = { version = "2.0.0-rc6", path = "../../primitives/panic-handler" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils" }
+sp-version = { version = "2.0.0-rc6", path = "../../primitives/version" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sc-service = { version = "0.8.0-rc6", default-features = false, path = "../service" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../telemetry" }
+substrate-prometheus-endpoint = { path = "../../utils/prometheus" , version = "0.8.0-rc6"}
+sp-keyring = { version = "2.0.0-rc6", path = "../../primitives/keyring" }
 names = "0.11.0"
 structopt = "0.3.8"
-sc-tracing = { version = "2.0.0-rc5", path = "../tracing" }
+sc-tracing = { version = "2.0.0-rc6", path = "../tracing" }
 chrono = "0.4.10"
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 serde = "1.0.111"
diff --git a/substrate/client/cli/README.md b/substrate/client/cli/README.md
new file mode 100644
index 00000000000..2504dbb0c03
--- /dev/null
+++ b/substrate/client/cli/README.md
@@ -0,0 +1,3 @@
+Substrate CLI library.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/aura/Cargo.toml b/substrate/client/consensus/aura/Cargo.toml
index 6bf60335b7b..b107499daf4 100644
--- a/substrate/client/consensus/aura/Cargo.toml
+++ b/substrate/client/consensus/aura/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-aura"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Aura consensus algorithm for substrate"
 edition = "2018"
@@ -12,37 +12,37 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../../primitives/application-crypto" }
-sp-consensus-aura = { version = "0.8.0-rc5", path = "../../../primitives/consensus/aura" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../../primitives/block-builder" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../../../client/block-builder" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../api" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../../primitives/application-crypto" }
+sp-consensus-aura = { version = "0.8.0-rc6", path = "../../../primitives/consensus/aura" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../../primitives/block-builder" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../../client/block-builder" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../api" }
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
 derive_more = "0.99.2"
 futures = "0.3.4"
 futures-timer = "3.0.1"
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
-sc-keystore = { version = "2.0.0-rc5", path = "../../keystore" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
+sc-keystore = { version = "2.0.0-rc6", path = "../../keystore" }
 log = "0.4.8"
 parking_lot = "0.10.0"
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-io = { version = "2.0.0-rc5", path = "../../../primitives/io" }
-sp-version = { version = "2.0.0-rc5", path = "../../../primitives/version" }
-sc-consensus-slots = { version = "0.8.0-rc5", path = "../slots" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-timestamp = { version = "2.0.0-rc5", path = "../../../primitives/timestamp" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../../telemetry" }
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc5"}
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-io = { version = "2.0.0-rc6", path = "../../../primitives/io" }
+sp-version = { version = "2.0.0-rc6", path = "../../../primitives/version" }
+sc-consensus-slots = { version = "0.8.0-rc6", path = "../slots" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-timestamp = { version = "2.0.0-rc6", path = "../../../primitives/timestamp" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../../telemetry" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc6"}
 
 [dev-dependencies]
-sp-keyring = { version = "2.0.0-rc5", path = "../../../primitives/keyring" }
-sc-executor = { version = "0.8.0-rc5", path = "../../executor" }
-sc-network = { version = "0.8.0-rc5", path = "../../network" }
-sc-network-test = { version = "0.8.0-rc5", path = "../../network/test" }
-sc-service = { version = "0.8.0-rc5", default-features = false, path = "../../service" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../test-utils/runtime/client" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../../primitives/keyring" }
+sc-executor = { version = "0.8.0-rc6", path = "../../executor" }
+sc-network = { version = "0.8.0-rc6", path = "../../network" }
+sc-network-test = { version = "0.8.0-rc6", path = "../../network/test" }
+sc-service = { version = "0.8.0-rc6", default-features = false, path = "../../service" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../test-utils/runtime/client" }
 env_logger = "0.7.0"
 tempfile = "3.1.0"
diff --git a/substrate/client/consensus/aura/README.md b/substrate/client/consensus/aura/README.md
new file mode 100644
index 00000000000..85d82cd7dfd
--- /dev/null
+++ b/substrate/client/consensus/aura/README.md
@@ -0,0 +1,15 @@
+Aura (Authority-round) consensus in substrate.
+
+Aura works by having a list of authorities A who are expected to roughly
+agree on the current time. Time is divided up into discrete slots of t
+seconds each. For each slot s, the author of that slot is A[s % |A|].
+
+The author is allowed to issue one block but not more during that slot,
+and it will be built upon the longest valid chain that has been seen.
+
+Blocks from future steps will be either deferred or rejected depending on how
+far in the future they are.
+
+NOTE: Aura itself is designed to be generic over the crypto used.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/babe/Cargo.toml b/substrate/client/consensus/babe/Cargo.toml
index 1b6b705139c..58385670967 100644
--- a/substrate/client/consensus/babe/Cargo.toml
+++ b/substrate/client/consensus/babe/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-babe"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "BABE consensus algorithm for substrate"
 edition = "2018"
@@ -14,32 +14,32 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
-sp-consensus-babe = { version = "0.8.0-rc5", path = "../../../primitives/consensus/babe" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../../primitives/application-crypto" }
+sp-consensus-babe = { version = "0.8.0-rc6", path = "../../../primitives/consensus/babe" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../../primitives/application-crypto" }
 num-bigint = "0.2.3"
 num-rational = "0.2.2"
 num-traits = "0.2.8"
 serde = { version = "1.0.104", features = ["derive"] }
-sp-version = { version = "2.0.0-rc5", path = "../../../primitives/version" }
-sp-io = { version = "2.0.0-rc5", path = "../../../primitives/io" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
-sp-timestamp = { version = "2.0.0-rc5", path = "../../../primitives/timestamp" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../../telemetry" }
-sc-keystore = { version = "2.0.0-rc5", path = "../../keystore" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../api" }
-sc-consensus-epochs = { version = "0.8.0-rc5", path = "../epochs" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../../primitives/block-builder" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sp-consensus-vrf = { version = "0.8.0-rc5", path = "../../../primitives/consensus/vrf" }
-sc-consensus-uncles = { version = "0.8.0-rc5", path = "../uncles" }
-sc-consensus-slots = { version = "0.8.0-rc5", path = "../slots" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-utils = { version = "2.0.0-rc5", path = "../../../primitives/utils" }
-fork-tree = { version = "2.0.0-rc5", path = "../../../utils/fork-tree" }
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc5"}
+sp-version = { version = "2.0.0-rc6", path = "../../../primitives/version" }
+sp-io = { version = "2.0.0-rc6", path = "../../../primitives/io" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
+sp-timestamp = { version = "2.0.0-rc6", path = "../../../primitives/timestamp" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../../telemetry" }
+sc-keystore = { version = "2.0.0-rc6", path = "../../keystore" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../api" }
+sc-consensus-epochs = { version = "0.8.0-rc6", path = "../epochs" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../../primitives/block-builder" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sp-consensus-vrf = { version = "0.8.0-rc6", path = "../../../primitives/consensus/vrf" }
+sc-consensus-uncles = { version = "0.8.0-rc6", path = "../uncles" }
+sc-consensus-slots = { version = "0.8.0-rc6", path = "../slots" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-utils = { version = "2.0.0-rc6", path = "../../../primitives/utils" }
+fork-tree = { version = "2.0.0-rc6", path = "../../../utils/fork-tree" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc6"}
 futures = "0.3.4"
 futures-timer = "3.0.1"
 parking_lot = "0.10.0"
@@ -52,13 +52,13 @@ derive_more = "0.99.2"
 retain_mut = "0.1.1"
 
 [dev-dependencies]
-sp-keyring = { version = "2.0.0-rc5", path = "../../../primitives/keyring" }
-sc-executor = { version = "0.8.0-rc5", path = "../../executor" }
-sc-network = { version = "0.8.0-rc5", path = "../../network" }
-sc-network-test = { version = "0.8.0-rc5", path = "../../network/test" }
-sc-service = { version = "0.8.0-rc5", default-features = false, path = "../../service" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../test-utils/runtime/client" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../../block-builder" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../../primitives/keyring" }
+sc-executor = { version = "0.8.0-rc6", path = "../../executor" }
+sc-network = { version = "0.8.0-rc6", path = "../../network" }
+sc-network-test = { version = "0.8.0-rc6", path = "../../network/test" }
+sc-service = { version = "0.8.0-rc6", default-features = false, path = "../../service" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../test-utils/runtime/client" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../block-builder" }
 env_logger = "0.7.0"
 rand_chacha = "0.2.2"
 tempfile = "3.1.0"
diff --git a/substrate/client/consensus/babe/README.md b/substrate/client/consensus/babe/README.md
new file mode 100644
index 00000000000..faba3948ed7
--- /dev/null
+++ b/substrate/client/consensus/babe/README.md
@@ -0,0 +1,48 @@
+# BABE (Blind Assignment for Blockchain Extension)
+
+BABE is a slot-based block production mechanism which uses a VRF PRNG to
+randomly perform the slot allocation. On every slot, all the authorities
+generate a new random number with the VRF function and if it is lower than a
+given threshold (which is proportional to their weight/stake) they have a
+right to produce a block. The proof of the VRF function execution will be
+used by other peer to validate the legitimacy of the slot claim.
+
+The engine is also responsible for collecting entropy on-chain which will be
+used to seed the given VRF PRNG. An epoch is a contiguous number of slots
+under which we will be using the same authority set. During an epoch all VRF
+outputs produced as a result of block production will be collected on an
+on-chain randomness pool. Epoch changes are announced one epoch in advance,
+i.e. when ending epoch N, we announce the parameters (randomness,
+authorities, etc.) for epoch N+2.
+
+Since the slot assignment is randomized, it is possible that a slot is
+assigned to multiple validators in which case we will have a temporary fork,
+or that a slot is assigned to no validator in which case no block is
+produced. Which means that block times are not deterministic.
+
+The protocol has a parameter `c` [0, 1] for which `1 - c` is the probability
+of a slot being empty. The choice of this parameter affects the security of
+the protocol relating to maximum tolerable network delays.
+
+In addition to the VRF-based slot assignment described above, which we will
+call primary slots, the engine also supports a deterministic secondary slot
+assignment. Primary slots take precedence over secondary slots, when
+authoring the node starts by trying to claim a primary slot and falls back
+to a secondary slot claim attempt. The secondary slot assignment is done
+by picking the authority at index:
+
+`blake2_256(epoch_randomness ++ slot_number) % authorities_len`.
+
+The secondary slots supports either a `SecondaryPlain` or `SecondaryVRF`
+variant. Comparing with `SecondaryPlain` variant, the `SecondaryVRF` variant
+generates an additional VRF output. The output is not included in beacon
+randomness, but can be consumed by parachains.
+
+The fork choice rule is weight-based, where weight equals the number of
+primary blocks in the chain. We will pick the heaviest chain (more primary
+blocks) and will go with the longest one in case of a tie.
+
+An in-depth description and analysis of the protocol can be found here:
+<https://research.web3.foundation/en/latest/polkadot/BABE/Babe.html>
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/babe/rpc/Cargo.toml b/substrate/client/consensus/babe/rpc/Cargo.toml
index 280b38f4d6c..4d2e89af3b0 100644
--- a/substrate/client/consensus/babe/rpc/Cargo.toml
+++ b/substrate/client/consensus/babe/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-babe-rpc"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "RPC extensions for the BABE consensus algorithm"
 edition = "2018"
@@ -12,27 +12,27 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-consensus-babe = { version = "0.8.0-rc5", path = "../" }
-sc-rpc-api = { version = "0.8.0-rc5", path = "../../../rpc-api" }
+sc-consensus-babe = { version = "0.8.0-rc6", path = "../" }
+sc-rpc-api = { version = "0.8.0-rc6", path = "../../../rpc-api" }
 jsonrpc-core = "14.2.0"
 jsonrpc-core-client = "14.2.0"
 jsonrpc-derive = "14.2.1"
-sp-consensus-babe = { version = "0.8.0-rc5", path = "../../../../primitives/consensus/babe" }
+sp-consensus-babe = { version = "0.8.0-rc6", path = "../../../../primitives/consensus/babe" }
 serde = { version = "1.0.104", features=["derive"] }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../../primitives/blockchain" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../../primitives/runtime" }
-sc-consensus-epochs = { version = "0.8.0-rc5", path = "../../epochs" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../../primitives/blockchain" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../../primitives/runtime" }
+sc-consensus-epochs = { version = "0.8.0-rc6", path = "../../epochs" }
 futures = { version = "0.3.4", features = ["compat"] }
 derive_more = "0.99.2"
-sp-api = { version = "2.0.0-rc5", path = "../../../../primitives/api" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../../primitives/consensus/common" }
-sp-core = { version = "2.0.0-rc5", path = "../../../../primitives/core" }
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../../../primitives/application-crypto" }
-sc-keystore = { version = "2.0.0-rc5", path = "../../../keystore" }
+sp-api = { version = "2.0.0-rc6", path = "../../../../primitives/api" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../../primitives/consensus/common" }
+sp-core = { version = "2.0.0-rc6", path = "../../../../primitives/core" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../../../primitives/application-crypto" }
+sc-keystore = { version = "2.0.0-rc6", path = "../../../keystore" }
 
 [dev-dependencies]
-sc-consensus = { version = "0.8.0-rc5", path = "../../../consensus/common" }
+sc-consensus = { version = "0.8.0-rc6", path = "../../../consensus/common" }
 serde_json = "1.0.50"
-sp-keyring = { version = "2.0.0-rc5", path = "../../../../primitives/keyring" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../../test-utils/runtime/client" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../../../primitives/keyring" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../../test-utils/runtime/client" }
 tempfile = "3.1.0"
diff --git a/substrate/client/consensus/babe/rpc/README.md b/substrate/client/consensus/babe/rpc/README.md
new file mode 100644
index 00000000000..e76dd3dc67f
--- /dev/null
+++ b/substrate/client/consensus/babe/rpc/README.md
@@ -0,0 +1,3 @@
+RPC api for babe.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/common/Cargo.toml b/substrate/client/consensus/common/Cargo.toml
index a617cf77af3..69d5eae8516 100644
--- a/substrate/client/consensus/common/Cargo.toml
+++ b/substrate/client/consensus/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -12,7 +12,7 @@ description = "Collection of common consensus specific imlementations for Substr
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-client-api = { version = "2.0.0-rc5", path = "../../api" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../api" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
diff --git a/substrate/client/consensus/common/README.md b/substrate/client/consensus/common/README.md
new file mode 100644
index 00000000000..a6717a1d7a6
--- /dev/null
+++ b/substrate/client/consensus/common/README.md
@@ -0,0 +1,3 @@
+Collection of common consensus specific implementations
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/epochs/Cargo.toml b/substrate/client/consensus/epochs/Cargo.toml
index 4a26611a758..7bcc30e3cff 100644
--- a/substrate/client/consensus/epochs/Cargo.toml
+++ b/substrate/client/consensus/epochs/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-epochs"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Generic epochs-based utilities for consensus"
 edition = "2018"
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
 parking_lot = "0.10.0"
-fork-tree = { version = "2.0.0-rc5", path = "../../../utils/fork-tree" }
-sp-runtime = {  path = "../../../primitives/runtime" , version = "2.0.0-rc5"}
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sc-client-api = { path = "../../api" , version = "2.0.0-rc5"}
+fork-tree = { version = "2.0.0-rc6", path = "../../../utils/fork-tree" }
+sp-runtime = {  path = "../../../primitives/runtime" , version = "2.0.0-rc6"}
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sc-client-api = { path = "../../api" , version = "2.0.0-rc6"}
diff --git a/substrate/client/consensus/epochs/README.md b/substrate/client/consensus/epochs/README.md
new file mode 100644
index 00000000000..1e74e04172c
--- /dev/null
+++ b/substrate/client/consensus/epochs/README.md
@@ -0,0 +1,3 @@
+Generic utilities for epoch-based consensus engines.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/manual-seal/Cargo.toml b/substrate/client/consensus/manual-seal/Cargo.toml
index ab77f355bfa..b557f171c35 100644
--- a/substrate/client/consensus/manual-seal/Cargo.toml
+++ b/substrate/client/consensus/manual-seal/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-manual-seal"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Manual sealing engine for Substrate"
 edition = "2018"
@@ -22,20 +22,20 @@ parking_lot = "0.10.0"
 serde = { version = "1.0", features=["derive"] }
 assert_matches = "1.3.0"
 
-sc-client-api = { path = "../../../client/api", version = "2.0.0-rc5" }
-sc-transaction-pool = { path = "../../transaction-pool", version = "2.0.0-rc5" }
-sp-blockchain = { path = "../../../primitives/blockchain", version = "2.0.0-rc5" }
-sp-consensus = { package = "sp-consensus", path = "../../../primitives/consensus/common", version = "0.8.0-rc5" }
-sp-inherents = { path = "../../../primitives/inherents", version = "2.0.0-rc5" }
-sp-runtime = {  path = "../../../primitives/runtime", version = "2.0.0-rc5" }
-sp-core = {  path = "../../../primitives/core", version = "2.0.0-rc5" }
-sp-transaction-pool = { path = "../../../primitives/transaction-pool", version = "2.0.0-rc5" }
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc5" }
+sc-client-api = { path = "../../../client/api", version = "2.0.0-rc6" }
+sc-transaction-pool = { path = "../../transaction-pool", version = "2.0.0-rc6" }
+sp-blockchain = { path = "../../../primitives/blockchain", version = "2.0.0-rc6" }
+sp-consensus = { package = "sp-consensus", path = "../../../primitives/consensus/common", version = "0.8.0-rc6" }
+sp-inherents = { path = "../../../primitives/inherents", version = "2.0.0-rc6" }
+sp-runtime = {  path = "../../../primitives/runtime", version = "2.0.0-rc6" }
+sp-core = {  path = "../../../primitives/core", version = "2.0.0-rc6" }
+sp-transaction-pool = { path = "../../../primitives/transaction-pool", version = "2.0.0-rc6" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc6" }
 
 [dev-dependencies]
-sc-basic-authorship = { path = "../../basic-authorship", version = "0.8.0-rc5" }
-substrate-test-runtime-client = { path = "../../../test-utils/runtime/client", version = "2.0.0-rc5" }
-substrate-test-runtime-transaction-pool = { path = "../../../test-utils/runtime/transaction-pool", version = "2.0.0-rc5" }
+sc-basic-authorship = { path = "../../basic-authorship", version = "0.8.0-rc6" }
+substrate-test-runtime-client = { path = "../../../test-utils/runtime/client", version = "2.0.0-rc6" }
+substrate-test-runtime-transaction-pool = { path = "../../../test-utils/runtime/transaction-pool", version = "2.0.0-rc6" }
 tokio = { version = "0.2", features = ["rt-core", "macros"] }
 env_logger = "0.7.0"
 tempfile = "3.1.0"
diff --git a/substrate/client/consensus/manual-seal/README.md b/substrate/client/consensus/manual-seal/README.md
new file mode 100644
index 00000000000..b355f8b7318
--- /dev/null
+++ b/substrate/client/consensus/manual-seal/README.md
@@ -0,0 +1,4 @@
+A manual sealing engine: the engine listens for rpc calls to seal blocks and create forks.
+This is suitable for a testing environment.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/pow/Cargo.toml b/substrate/client/consensus/pow/Cargo.toml
index b72166f9ce9..993502972f2 100644
--- a/substrate/client/consensus/pow/Cargo.toml
+++ b/substrate/client/consensus/pow/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-pow"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "PoW consensus algorithm for substrate"
 edition = "2018"
@@ -13,17 +13,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../api" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../../primitives/block-builder" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
-sp-consensus-pow = { version = "0.8.0-rc5", path = "../../../primitives/consensus/pow" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../api" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../../primitives/block-builder" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
+sp-consensus-pow = { version = "0.8.0-rc6", path = "../../../primitives/consensus/pow" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
 log = "0.4.8"
 futures = { version = "0.3.1", features = ["compat"] }
-sp-timestamp = { version = "2.0.0-rc5", path = "../../../primitives/timestamp" }
+sp-timestamp = { version = "2.0.0-rc6", path = "../../../primitives/timestamp" }
 derive_more = "0.99.2"
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc5"}
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc6"}
diff --git a/substrate/client/consensus/pow/README.md b/substrate/client/consensus/pow/README.md
new file mode 100644
index 00000000000..a335ec36704
--- /dev/null
+++ b/substrate/client/consensus/pow/README.md
@@ -0,0 +1,16 @@
+Proof of work consensus for Substrate.
+
+To use this engine, you can need to have a struct that implements
+`PowAlgorithm`. After that, pass an instance of the struct, along
+with other necessary client references to `import_queue` to setup
+the queue. Use the `start_mine` function for basic CPU mining.
+
+The auxiliary storage for PoW engine only stores the total difficulty.
+For other storage requirements for particular PoW algorithm (such as
+the actual difficulty for each particular blocks), you can take a client
+reference in your `PowAlgorithm` implementation, and use a separate prefix
+for the auxiliary storage. It is also possible to just use the runtime
+as the storage, but it is not recommended as it won't work well with light
+clients.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/slots/Cargo.toml b/substrate/client/consensus/slots/Cargo.toml
index 9fe82d85053..1ba015b0801 100644
--- a/substrate/client/consensus/slots/Cargo.toml
+++ b/substrate/client/consensus/slots/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-slots"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Generic slots-based utilities for consensus"
 edition = "2018"
@@ -14,21 +14,21 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../api" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../../primitives/application-crypto" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-consensus-slots = { version = "0.8.0-rc5", path = "../../../primitives/consensus/slots" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../../primitives/state-machine" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../../telemetry" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../api" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../../primitives/application-crypto" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-consensus-slots = { version = "0.8.0-rc6", path = "../../../primitives/consensus/slots" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../../primitives/state-machine" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../../telemetry" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
 futures = "0.3.4"
 futures-timer = "3.0.1"
 parking_lot = "0.10.0"
 log = "0.4.8"
 
 [dev-dependencies]
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../test-utils/runtime/client" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../test-utils/runtime/client" }
diff --git a/substrate/client/consensus/slots/README.md b/substrate/client/consensus/slots/README.md
new file mode 100644
index 00000000000..9ab3c3742f3
--- /dev/null
+++ b/substrate/client/consensus/slots/README.md
@@ -0,0 +1,7 @@
+Slots functionality for Substrate.
+
+Some consensus algorithms have a concept of *slots*, which are intervals in
+time during which certain events can and/or must occur.  This crate
+provides generic functionality for slots.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/consensus/uncles/Cargo.toml b/substrate/client/consensus/uncles/Cargo.toml
index 757daeea551..106fb57b6e6 100644
--- a/substrate/client/consensus/uncles/Cargo.toml
+++ b/substrate/client/consensus/uncles/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-consensus-uncles"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Generic uncle inclusion utilities for consensus"
 edition = "2018"
@@ -12,10 +12,10 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-client-api = { version = "2.0.0-rc5", path = "../../api" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-authorship = { version = "2.0.0-rc5", path = "../../../primitives/authorship" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../../primitives/inherents" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../api" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-authorship = { version = "2.0.0-rc6", path = "../../../primitives/authorship" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../../primitives/inherents" }
 log = "0.4.8"
diff --git a/substrate/client/consensus/uncles/README.md b/substrate/client/consensus/uncles/README.md
new file mode 100644
index 00000000000..1b6fed5b977
--- /dev/null
+++ b/substrate/client/consensus/uncles/README.md
@@ -0,0 +1,3 @@
+Uncles functionality for Substrate.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/db/Cargo.toml b/substrate/client/db/Cargo.toml
index 50e14fcaae6..28ef90cf231 100644
--- a/substrate/client/db/Cargo.toml
+++ b/substrate/client/db/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-client-db"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -23,23 +23,23 @@ parity-util-mem = { version = "0.7.0", default-features = false, features = ["st
 codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
 blake2-rfc = "0.2.18"
 
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sp-arithmetic = { version = "2.0.0-rc5", path = "../../primitives/arithmetic" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
-sc-executor = { version = "0.8.0-rc5", path = "../executor" }
-sc-state-db = { version = "0.8.0-rc5", path = "../state-db" }
-sp-trie = { version = "2.0.0-rc5", path = "../../primitives/trie" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sp-database = { version = "2.0.0-rc5", path = "../../primitives/database" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sp-arithmetic = { version = "2.0.0-rc6", path = "../../primitives/arithmetic" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
+sc-executor = { version = "0.8.0-rc6", path = "../executor" }
+sc-state-db = { version = "0.8.0-rc6", path = "../state-db" }
+sp-trie = { version = "2.0.0-rc6", path = "../../primitives/trie" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sp-database = { version = "2.0.0-rc6", path = "../../primitives/database" }
 parity-db = { version = "0.1.2", optional = true }
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.8.0-rc5", path = "../../utils/prometheus" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.8.0-rc6", path = "../../utils/prometheus" }
 
 [dev-dependencies]
-sp-keyring = { version = "2.0.0-rc5", path = "../../primitives/keyring" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../primitives/keyring" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
 env_logger = "0.7.0"
 quickcheck = "0.9"
 kvdb-rocksdb = "0.9"
diff --git a/substrate/client/db/README.md b/substrate/client/db/README.md
new file mode 100644
index 00000000000..e5fb3fce1d9
--- /dev/null
+++ b/substrate/client/db/README.md
@@ -0,0 +1,11 @@
+Client backend that is backed by a database.
+
+# Canonicality vs. Finality
+
+Finality indicates that a block will not be reverted, according to the consensus algorithm,
+while canonicality indicates that the block may be reverted, but we will be unable to do so,
+having discarded heavy state that will allow a chain reorganization.
+
+Finality implies canonicality but not vice-versa.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/executor/Cargo.toml b/substrate/client/executor/Cargo.toml
index f59c89a9d70..c25c9479c82 100644
--- a/substrate/client/executor/Cargo.toml
+++ b/substrate/client/executor/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-executor"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -15,22 +15,22 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 derive_more = "0.99.2"
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-trie = { version = "2.0.0-rc5", path = "../../primitives/trie" }
-sp-serializer = { version = "2.0.0-rc5", path = "../../primitives/serializer" }
-sp-version = { version = "2.0.0-rc5", path = "../../primitives/version" }
-sp-panic-handler = { version = "2.0.0-rc5", path = "../../primitives/panic-handler" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-trie = { version = "2.0.0-rc6", path = "../../primitives/trie" }
+sp-serializer = { version = "2.0.0-rc6", path = "../../primitives/serializer" }
+sp-version = { version = "2.0.0-rc6", path = "../../primitives/version" }
+sp-panic-handler = { version = "2.0.0-rc6", path = "../../primitives/panic-handler" }
 wasmi = "0.6.2"
 parity-wasm = "0.41.0"
 lazy_static = "1.4.0"
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
-sp-wasm-interface = { version = "2.0.0-rc5", path = "../../primitives/wasm-interface" }
-sp-runtime-interface = { version = "2.0.0-rc5", path = "../../primitives/runtime-interface" }
-sp-externalities = { version = "0.8.0-rc5", path = "../../primitives/externalities" }
-sc-executor-common = { version = "0.8.0-rc5", path = "common" }
-sc-executor-wasmi = { version = "0.8.0-rc5", path = "wasmi" }
-sc-executor-wasmtime = { version = "0.8.0-rc5", path = "wasmtime", optional = true }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
+sp-wasm-interface = { version = "2.0.0-rc6", path = "../../primitives/wasm-interface" }
+sp-runtime-interface = { version = "2.0.0-rc6", path = "../../primitives/runtime-interface" }
+sp-externalities = { version = "0.8.0-rc6", path = "../../primitives/externalities" }
+sc-executor-common = { version = "0.8.0-rc6", path = "common" }
+sc-executor-wasmi = { version = "0.8.0-rc6", path = "wasmi" }
+sc-executor-wasmtime = { version = "0.8.0-rc6", path = "wasmtime", optional = true }
 parking_lot = "0.10.0"
 log = "0.4.8"
 libsecp256k1 = "0.3.4"
@@ -39,13 +39,13 @@ libsecp256k1 = "0.3.4"
 assert_matches = "1.3.0"
 wabt = "0.9.2"
 hex-literal = "0.2.1"
-sc-runtime-test = { version = "2.0.0-rc5", path = "runtime-test" }
-substrate-test-runtime = { version = "2.0.0-rc5", path = "../../test-utils/runtime" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
+sc-runtime-test = { version = "2.0.0-rc6", path = "runtime-test" }
+substrate-test-runtime = { version = "2.0.0-rc6", path = "../../test-utils/runtime" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
 test-case = "0.3.3"
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-tracing = { version = "2.0.0-rc5", path = "../../primitives/tracing" }
-sc-tracing = { version = "2.0.0-rc5", path = "../tracing" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-tracing = { version = "2.0.0-rc6", path = "../../primitives/tracing" }
+sc-tracing = { version = "2.0.0-rc6", path = "../tracing" }
 tracing = "0.1.18"
 
 [features]
diff --git a/substrate/client/executor/README.md b/substrate/client/executor/README.md
new file mode 100644
index 00000000000..ab7b3d45206
--- /dev/null
+++ b/substrate/client/executor/README.md
@@ -0,0 +1,13 @@
+A crate that provides means of executing/dispatching calls into the runtime.
+
+There are a few responsibilities of this crate at the moment:
+
+- It provides an implementation of a common entrypoint for calling into the runtime, both
+wasm and compiled.
+- It defines the environment for the wasm execution, namely the host functions that are to be
+provided into the wasm runtime module.
+- It also provides the required infrastructure for executing the current wasm runtime (specified
+by the current value of `:code` in the provided externalities), i.e. interfacing with
+wasm engine used, instance cache.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/executor/common/Cargo.toml b/substrate/client/executor/common/Cargo.toml
index 2189d89b12d..bdbc5071323 100644
--- a/substrate/client/executor/common/Cargo.toml
+++ b/substrate/client/executor/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-executor-common"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -18,11 +18,11 @@ derive_more = "0.99.2"
 parity-wasm = "0.41.0"
 codec = { package = "parity-scale-codec", version = "1.3.4" }
 wasmi = "0.6.2"
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-allocator = { version = "2.0.0-rc5", path = "../../../primitives/allocator" }
-sp-wasm-interface = { version = "2.0.0-rc5", path = "../../../primitives/wasm-interface" }
-sp-runtime-interface = { version = "2.0.0-rc5", path = "../../../primitives/runtime-interface" }
-sp-serializer = { version = "2.0.0-rc5", path = "../../../primitives/serializer" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-allocator = { version = "2.0.0-rc6", path = "../../../primitives/allocator" }
+sp-wasm-interface = { version = "2.0.0-rc6", path = "../../../primitives/wasm-interface" }
+sp-runtime-interface = { version = "2.0.0-rc6", path = "../../../primitives/runtime-interface" }
+sp-serializer = { version = "2.0.0-rc6", path = "../../../primitives/serializer" }
 
 [features]
 default = []
diff --git a/substrate/client/executor/common/README.md b/substrate/client/executor/common/README.md
new file mode 100644
index 00000000000..0c0d3bf08bc
--- /dev/null
+++ b/substrate/client/executor/common/README.md
@@ -0,0 +1,3 @@
+A set of common definitions that are needed for defining execution engines.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/executor/runtime-test/Cargo.toml b/substrate/client/executor/runtime-test/Cargo.toml
index 9645dd90694..037359ac9ee 100644
--- a/substrate/client/executor/runtime-test/Cargo.toml
+++ b/substrate/client/executor/runtime-test/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-runtime-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -13,12 +13,12 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/io" }
-sp-sandbox = { version = "0.8.0-rc5", default-features = false, path = "../../../primitives/sandbox" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
-sp-allocator = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/allocator" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/io" }
+sp-sandbox = { version = "0.8.0-rc6", default-features = false, path = "../../../primitives/sandbox" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
+sp-allocator = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/allocator" }
 
 [build-dependencies]
 wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
diff --git a/substrate/client/executor/wasmi/Cargo.toml b/substrate/client/executor/wasmi/Cargo.toml
index 74456f06671..14468e71fd6 100644
--- a/substrate/client/executor/wasmi/Cargo.toml
+++ b/substrate/client/executor/wasmi/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-executor-wasmi"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -16,8 +16,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 log = "0.4.8"
 wasmi = "0.6.2"
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-sc-executor-common = { version = "0.8.0-rc5", path = "../common" }
-sp-wasm-interface = { version = "2.0.0-rc5", path = "../../../primitives/wasm-interface" }
-sp-runtime-interface = { version = "2.0.0-rc5", path = "../../../primitives/runtime-interface" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-allocator = { version = "2.0.0-rc5", path = "../../../primitives/allocator" }
+sc-executor-common = { version = "0.8.0-rc6", path = "../common" }
+sp-wasm-interface = { version = "2.0.0-rc6", path = "../../../primitives/wasm-interface" }
+sp-runtime-interface = { version = "2.0.0-rc6", path = "../../../primitives/runtime-interface" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-allocator = { version = "2.0.0-rc6", path = "../../../primitives/allocator" }
diff --git a/substrate/client/executor/wasmi/README.md b/substrate/client/executor/wasmi/README.md
new file mode 100644
index 00000000000..ad613aa1245
--- /dev/null
+++ b/substrate/client/executor/wasmi/README.md
@@ -0,0 +1,3 @@
+This crate provides an implementation of `WasmModule` that is baked by wasmi.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/executor/wasmtime/Cargo.toml b/substrate/client/executor/wasmtime/Cargo.toml
index 6eea4e6b14a..9618a659f52 100644
--- a/substrate/client/executor/wasmtime/Cargo.toml
+++ b/substrate/client/executor/wasmtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-executor-wasmtime"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -16,11 +16,11 @@ log = "0.4.8"
 scoped-tls = "1.0"
 parity-wasm = "0.41.0"
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-sc-executor-common = { version = "0.8.0-rc5", path = "../common" }
-sp-wasm-interface = { version = "2.0.0-rc5", path = "../../../primitives/wasm-interface" }
-sp-runtime-interface = { version = "2.0.0-rc5", path = "../../../primitives/runtime-interface" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-allocator = { version = "2.0.0-rc5", path = "../../../primitives/allocator" }
+sc-executor-common = { version = "0.8.0-rc6", path = "../common" }
+sp-wasm-interface = { version = "2.0.0-rc6", path = "../../../primitives/wasm-interface" }
+sp-runtime-interface = { version = "2.0.0-rc6", path = "../../../primitives/runtime-interface" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-allocator = { version = "2.0.0-rc6", path = "../../../primitives/allocator" }
 wasmtime = "0.19"
 pwasm-utils = "0.14.0"
 
diff --git a/substrate/client/executor/wasmtime/README.md b/substrate/client/executor/wasmtime/README.md
new file mode 100644
index 00000000000..3e9ac0bddbd
--- /dev/null
+++ b/substrate/client/executor/wasmtime/README.md
@@ -0,0 +1 @@
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/finality-grandpa/Cargo.toml b/substrate/client/finality-grandpa/Cargo.toml
index 7cd3548a762..b73fbbd8d17 100644
--- a/substrate/client/finality-grandpa/Cargo.toml
+++ b/substrate/client/finality-grandpa/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-finality-grandpa"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -15,46 +15,46 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 derive_more = "0.99.2"
-fork-tree = { version = "2.0.0-rc5", path = "../../utils/fork-tree" }
+fork-tree = { version = "2.0.0-rc6", path = "../../utils/fork-tree" }
 futures = "0.3.4"
 futures-timer = "3.0.1"
 log = "0.4.8"
 parking_lot = "0.10.0"
 rand = "0.7.2"
 parity-scale-codec = { version = "1.3.4", features = ["derive"] }
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../primitives/application-crypto" }
-sp-arithmetic = { version = "2.0.0-rc5", path = "../../primitives/arithmetic" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
-sc-consensus = { version = "0.8.0-rc5", path = "../../client/consensus/common" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../telemetry" }
-sc-keystore = { version = "2.0.0-rc5", path = "../keystore" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../primitives/application-crypto" }
+sp-arithmetic = { version = "2.0.0-rc6", path = "../../primitives/arithmetic" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
+sc-consensus = { version = "0.8.0-rc6", path = "../../client/consensus/common" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../telemetry" }
+sc-keystore = { version = "2.0.0-rc6", path = "../keystore" }
 serde_json = "1.0.41"
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../primitives/inherents" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sc-network-gossip = { version = "0.8.0-rc5", path = "../network-gossip" }
-sp-finality-tracker = { version = "2.0.0-rc5", path = "../../primitives/finality-tracker" }
-sp-finality-grandpa = { version = "2.0.0-rc5", path = "../../primitives/finality-grandpa" }
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc5"}
-sc-block-builder = { version = "0.8.0-rc5", path = "../block-builder" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../primitives/inherents" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sc-network-gossip = { version = "0.8.0-rc6", path = "../network-gossip" }
+sp-finality-tracker = { version = "2.0.0-rc6", path = "../../primitives/finality-tracker" }
+sp-finality-grandpa = { version = "2.0.0-rc6", path = "../../primitives/finality-grandpa" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc6"}
+sc-block-builder = { version = "0.8.0-rc6", path = "../block-builder" }
 finality-grandpa = { version = "0.12.3", features = ["derive-codec"] }
 pin-project = "0.4.6"
 
 [dev-dependencies]
 assert_matches = "1.3.0"
 finality-grandpa = { version = "0.12.3", features = ["derive-codec", "test-helpers"] }
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sc-network-test = { version = "0.8.0-rc5", path = "../network/test" }
-sp-keyring = { version = "2.0.0-rc5", path = "../../primitives/keyring" }
-substrate-test-runtime-client = { version = "2.0.0-rc5",  path = "../../test-utils/runtime/client" }
-sp-consensus-babe = { version = "0.8.0-rc5", path = "../../primitives/consensus/babe" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sc-network-test = { version = "0.8.0-rc6", path = "../network/test" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../primitives/keyring" }
+substrate-test-runtime-client = { version = "2.0.0-rc6",  path = "../../test-utils/runtime/client" }
+sp-consensus-babe = { version = "0.8.0-rc6", path = "../../primitives/consensus/babe" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
 env_logger = "0.7.0"
 tokio = { version = "0.2", features = ["rt-core"] }
 tempfile = "3.1.0"
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
diff --git a/substrate/client/finality-grandpa/README.md b/substrate/client/finality-grandpa/README.md
new file mode 100644
index 00000000000..64a7e70bc6a
--- /dev/null
+++ b/substrate/client/finality-grandpa/README.md
@@ -0,0 +1,39 @@
+Integration of the GRANDPA finality gadget into substrate.
+
+This crate is unstable and the API and usage may change.
+
+This crate provides a long-running future that produces finality notifications.
+
+# Usage
+
+First, create a block-import wrapper with the `block_import` function. The
+GRANDPA worker needs to be linked together with this block import object, so
+a `LinkHalf` is returned as well. All blocks imported (from network or
+consensus or otherwise) must pass through this wrapper, otherwise consensus
+is likely to break in unexpected ways.
+
+Next, use the `LinkHalf` and a local configuration to `run_grandpa_voter`.
+This requires a `Network` implementation. The returned future should be
+driven to completion and will finalize blocks in the background.
+
+# Changing authority sets
+
+The rough idea behind changing authority sets in GRANDPA is that at some point,
+we obtain agreement for some maximum block height that the current set can
+finalize, and once a block with that height is finalized the next set will
+pick up finalization from there.
+
+Technically speaking, this would be implemented as a voting rule which says,
+"if there is a signal for a change in N blocks in block B, only vote on
+chains with length NUM(B) + N if they contain B". This conditional-inclusion
+logic is complex to compute because it requires looking arbitrarily far
+back in the chain.
+
+Instead, we keep track of a list of all signals we've seen so far (across
+all forks), sorted ascending by the block number they would be applied at.
+We never vote on chains with number higher than the earliest handoff block
+number (this is num(signal) + N). When finalizing a block, we either apply
+or prune any signaled changes based on whether the signaling block is
+included in the newly-finalized chain.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/finality-grandpa/rpc/Cargo.toml b/substrate/client/finality-grandpa/rpc/Cargo.toml
index ca405eaec9d..28197405c8d 100644
--- a/substrate/client/finality-grandpa/rpc/Cargo.toml
+++ b/substrate/client/finality-grandpa/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-finality-grandpa-rpc"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "RPC extensions for the GRANDPA finality gadget"
 repository = "https://github.com/paritytech/substrate/"
@@ -8,9 +8,9 @@ edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 
 [dependencies]
-sc-rpc = { version = "2.0.0-rc5", path = "../../rpc" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sc-finality-grandpa = { version = "0.8.0-rc5", path = "../" }
+sc-rpc = { version = "2.0.0-rc6", path = "../../rpc" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sc-finality-grandpa = { version = "0.8.0-rc6", path = "../" }
 finality-grandpa = { version = "0.12.3", features = ["derive-codec"] }
 jsonrpc-core = "14.2.0"
 jsonrpc-core-client = "14.2.0"
@@ -24,13 +24,13 @@ derive_more = "0.99.2"
 parity-scale-codec = { version = "1.3.0", features = ["derive"] }
 
 [dev-dependencies]
-sc-block-builder = { version = "0.8.0-rc5", path = "../../block-builder" }
-sc-network-test = { version = "0.8.0-rc5", path = "../../network/test" }
-sc-rpc = { version = "2.0.0-rc5", path = "../../rpc", features = ["test-helpers"] }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-finality-grandpa = { version = "2.0.0-rc5", path = "../../../primitives/finality-grandpa" }
-sp-keyring = { version = "2.0.0-rc5", path = "../../../primitives/keyring" }
-substrate-test-runtime-client = { version = "2.0.0-rc5",  path = "../../../test-utils/runtime/client" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../block-builder" }
+sc-network-test = { version = "0.8.0-rc6", path = "../../network/test" }
+sc-rpc = { version = "2.0.0-rc6", path = "../../rpc", features = ["test-helpers"] }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-finality-grandpa = { version = "2.0.0-rc6", path = "../../../primitives/finality-grandpa" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../../primitives/keyring" }
+substrate-test-runtime-client = { version = "2.0.0-rc6",  path = "../../../test-utils/runtime/client" }
 lazy_static = "1.4"
diff --git a/substrate/client/finality-grandpa/rpc/README.md b/substrate/client/finality-grandpa/rpc/README.md
new file mode 100644
index 00000000000..0007f55dbd4
--- /dev/null
+++ b/substrate/client/finality-grandpa/rpc/README.md
@@ -0,0 +1,3 @@
+RPC API for GRANDPA.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/informant/Cargo.toml b/substrate/client/informant/Cargo.toml
index 917052041ba..6e6dc01f91e 100644
--- a/substrate/client/informant/Cargo.toml
+++ b/substrate/client/informant/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-informant"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate informant."
 edition = "2018"
@@ -16,10 +16,10 @@ ansi_term = "0.12.1"
 futures = "0.3.4"
 log = "0.4.8"
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
 sp-utils = { version = "2.0.0-rc2", path = "../../primitives/utils" }
 sp-transaction-pool = { version = "2.0.0-rc2", path = "../../primitives/transaction-pool" }
 wasm-timer = "0.2"
diff --git a/substrate/client/informant/README.md b/substrate/client/informant/README.md
new file mode 100644
index 00000000000..b494042590a
--- /dev/null
+++ b/substrate/client/informant/README.md
@@ -0,0 +1,3 @@
+Console informant. Prints sync progress and block events. Runs on the calling thread.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/keystore/Cargo.toml b/substrate/client/keystore/Cargo.toml
index 0fe4ab5a9ba..004d829bbfa 100644
--- a/substrate/client/keystore/Cargo.toml
+++ b/substrate/client/keystore/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-keystore"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -15,8 +15,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 derive_more = "0.99.2"
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../primitives/application-crypto" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../primitives/application-crypto" }
 hex = "0.4.0"
 merlin = { version = "2.0", default-features = false }
 parking_lot = "0.10.0"
diff --git a/substrate/client/keystore/README.md b/substrate/client/keystore/README.md
new file mode 100644
index 00000000000..9946a61d6fd
--- /dev/null
+++ b/substrate/client/keystore/README.md
@@ -0,0 +1,3 @@
+Keystore (and session key management) for ed25519 based chains like Polkadot.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/light/Cargo.toml b/substrate/client/light/Cargo.toml
index 53e84ae3186..23b306d178e 100644
--- a/substrate/client/light/Cargo.toml
+++ b/substrate/client/light/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "components for a light client"
 name = "sc-light"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
diff --git a/substrate/client/light/README.md b/substrate/client/light/README.md
new file mode 100644
index 00000000000..1ba1f155b16
--- /dev/null
+++ b/substrate/client/light/README.md
@@ -0,0 +1,3 @@
+Light client components.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/network-gossip/Cargo.toml b/substrate/client/network-gossip/Cargo.toml
index 90d606238b6..7af59a68dfe 100644
--- a/substrate/client/network-gossip/Cargo.toml
+++ b/substrate/client/network-gossip/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Gossiping for the Substrate network protocol"
 name = "sc-network-gossip"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -19,12 +19,12 @@ futures-timer = "3.0.1"
 libp2p = { version = "0.23.0", default-features = false }
 log = "0.4.8"
 lru = "0.4.3"
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
 wasm-timer = "0.2"
 
 [dev-dependencies]
 async-std = "1.6.2"
 quickcheck = "0.9.0"
 rand = "0.7.2"
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
diff --git a/substrate/client/network-gossip/README.md b/substrate/client/network-gossip/README.md
new file mode 100644
index 00000000000..9030fac0564
--- /dev/null
+++ b/substrate/client/network-gossip/README.md
@@ -0,0 +1,41 @@
+Polite gossiping.
+
+This crate provides gossiping capabilities on top of a network.
+
+Gossip messages are separated by two categories: "topics" and consensus engine ID.
+The consensus engine ID is sent over the wire with the message, while the topic is not,
+with the expectation that the topic can be derived implicitly from the content of the
+message, assuming it is valid.
+
+Topics are a single 32-byte tag associated with a message, used to group those messages
+in an opaque way. Consensus code can invoke `broadcast_topic` to attempt to send all messages
+under a single topic to all peers who don't have them yet, and `send_topic` to
+send all messages under a single topic to a specific peer.
+
+# Usage
+
+- Implement the `Network` trait, representing the low-level networking primitives. It is
+  already implemented on `sc_network::NetworkService`.
+- Implement the `Validator` trait. See the section below.
+- Decide on a `ConsensusEngineId`. Each gossiping protocol should have a different one.
+- Build a `GossipEngine` using these three elements.
+- Use the methods of the `GossipEngine` in order to send out messages and receive incoming
+  messages.
+
+# What is a validator?
+
+The primary role of a `Validator` is to process incoming messages from peers, and decide
+whether to discard them or process them. It also decides whether to re-broadcast the message.
+
+The secondary role of the `Validator` is to check if a message is allowed to be sent to a given
+peer. All messages, before being sent, will be checked against this filter.
+This enables the validator to use information it's aware of about connected peers to decide
+whether to send messages to them at any given moment in time - In particular, to wait until
+peers can accept and process the message before sending it.
+
+Lastly, the fact that gossip validators can decide not to rebroadcast messages
+opens the door for neighbor status packets to be baked into the gossip protocol.
+These status packets will typically contain light pieces of information
+used to inform peers of a current view of protocol state.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/network/Cargo.toml b/substrate/client/network/Cargo.toml
index de4f484535e..a5020507b50 100644
--- a/substrate/client/network/Cargo.toml
+++ b/substrate/client/network/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Substrate network protocol"
 name = "sc-network"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -25,7 +25,7 @@ derive_more = "0.99.2"
 either = "1.5.3"
 erased-serde = "0.3.9"
 fnv = "1.0.6"
-fork-tree = { version = "2.0.0-rc5", path = "../../utils/fork-tree" }
+fork-tree = { version = "2.0.0-rc6", path = "../../utils/fork-tree" }
 futures = "0.3.4"
 futures-timer = "3.0.2"
 futures_codec = "0.4.0"
@@ -38,23 +38,23 @@ lru = "0.4.0"
 nohash-hasher = "0.2.0"
 parking_lot = "0.10.0"
 pin-project = "0.4.6"
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.8.0-rc5", path = "../../utils/prometheus" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.8.0-rc6", path = "../../utils/prometheus" }
 prost = "0.6.1"
 rand = "0.7.2"
-sc-block-builder = { version = "0.8.0-rc5", path = "../block-builder" }
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sc-peerset = { version = "2.0.0-rc5", path = "../peerset" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../block-builder" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sc-peerset = { version = "2.0.0-rc6", path = "../peerset" }
 serde = { version = "1.0.101", features = ["derive"] }
 serde_json = "1.0.41"
 slog = { version = "2.5.2", features = ["nested-values"] }
 slog_derive = "0.2.0"
 smallvec = "0.6.10"
-sp-arithmetic = { version = "2.0.0-rc5", path = "../../primitives/arithmetic" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils" }
+sp-arithmetic = { version = "2.0.0-rc6", path = "../../primitives/arithmetic" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils" }
 thiserror = "1"
 unsigned-varint = { version = "0.4.0", features = ["futures", "futures-codec"] }
 void = "1.0.2"
@@ -72,10 +72,10 @@ env_logger = "0.7.0"
 libp2p = { version = "0.23.0", default-features = false, features = ["secio"] }
 quickcheck = "0.9.0"
 rand = "0.7.2"
-sp-keyring = { version = "2.0.0-rc5", path = "../../primitives/keyring" }
-sp-test-primitives = { version = "2.0.0-rc5", path = "../../primitives/test-primitives" }
-substrate-test-runtime = { version = "2.0.0-rc5", path = "../../test-utils/runtime" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../primitives/keyring" }
+sp-test-primitives = { version = "2.0.0-rc6", path = "../../primitives/test-primitives" }
+substrate-test-runtime = { version = "2.0.0-rc6", path = "../../test-utils/runtime" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
 tempfile = "3.1.0"
 
 [features]
diff --git a/substrate/client/network/README.md b/substrate/client/network/README.md
new file mode 100644
index 00000000000..e0bd691043b
--- /dev/null
+++ b/substrate/client/network/README.md
@@ -0,0 +1,226 @@
+Substrate-specific P2P networking.
+
+**Important**: This crate is unstable and the API and usage may change.
+
+# Node identities and addresses
+
+In a decentralized network, each node possesses a network private key and a network public key.
+In Substrate, the keys are based on the ed25519 curve.
+
+From a node's public key, we can derive its *identity*. In Substrate and libp2p, a node's
+identity is represented with the [`PeerId`] struct. All network communications between nodes on
+the network use encryption derived from both sides's keys, which means that **identities cannot
+be faked**.
+
+A node's identity uniquely identifies a machine on the network. If you start two or more
+clients using the same network key, large interferences will happen.
+
+# Substrate's network protocol
+
+Substrate's networking protocol is based upon libp2p. It is at the moment not possible and not
+planned to permit using something else than the libp2p network stack and the rust-libp2p
+library. However the libp2p framework is very flexible and the rust-libp2p library could be
+extended to support a wider range of protocols than what is offered by libp2p.
+
+## Discovery mechanisms
+
+In order for our node to join a peer-to-peer network, it has to know a list of nodes that are
+part of said network. This includes nodes identities and their address (how to reach them).
+Building such a list is called the **discovery** mechanism. There are three mechanisms that
+Substrate uses:
+
+- Bootstrap nodes. These are hard-coded node identities and addresses passed alongside with
+the network configuration.
+- mDNS. We perform a UDP broadcast on the local network. Nodes that listen may respond with
+their identity. More info [here](https://github.com/libp2p/specs/blob/master/discovery/mdns.md).
+mDNS can be disabled in the network configuration.
+- Kademlia random walk. Once connected, we perform random Kademlia `FIND_NODE` requests on the
+configured Kademlia DHTs (one per configured chain protocol) in order for nodes to propagate to
+us their view of the network. More information about Kademlia can be found [on
+Wikipedia](https://en.wikipedia.org/wiki/Kademlia).
+
+## Connection establishment
+
+When node Alice knows node Bob's identity and address, it can establish a connection with Bob.
+All connections must always use encryption and multiplexing. While some node addresses (eg.
+addresses using `/quic`) already imply which encryption and/or multiplexing to use, for others
+the **multistream-select** protocol is used in order to negotiate an encryption layer and/or a
+multiplexing layer.
+
+The connection establishment mechanism is called the **transport**.
+
+As of the writing of this documentation, the following base-layer protocols are supported by
+Substrate:
+
+- TCP/IP for addresses of the form `/ip4/1.2.3.4/tcp/5`. Once the TCP connection is open, an
+encryption and a multiplexing layer are negotiated on top.
+- WebSockets for addresses of the form `/ip4/1.2.3.4/tcp/5/ws`. A TCP/IP connection is open and
+the WebSockets protocol is negotiated on top. Communications then happen inside WebSockets data
+frames. Encryption and multiplexing are additionally negotiated again inside this channel.
+- DNS for addresses of the form `/dns/example.com/tcp/5` or `/dns/example.com/tcp/5/ws`. A
+node's address can contain a domain name.
+- (All of the above using IPv6 instead of IPv4.)
+
+On top of the base-layer protocol, the [Noise](https://noiseprotocol.org/) protocol is
+negotiated and applied. The exact handshake protocol is experimental and is subject to change.
+
+The following multiplexing protocols are supported:
+
+- [Mplex](https://github.com/libp2p/specs/tree/master/mplex). Support for mplex will likely
+be deprecated in the future.
+- [Yamux](https://github.com/hashicorp/yamux/blob/master/spec.md).
+
+## Substreams
+
+Once a connection has been established and uses multiplexing, substreams can be opened. When
+a substream is open, the **multistream-select** protocol is used to negotiate which protocol
+to use on that given substream.
+
+Protocols that are specific to a certain chain have a `<protocol-id>` in their name. This
+"protocol ID" is defined in the chain specifications. For example, the protocol ID of Polkadot
+is "dot". In the protocol names below, `<protocol-id>` must be replaced with the corresponding
+protocol ID.
+
+> **Note**: It is possible for the same connection to be used for multiple chains. For example,
+>           one can use both the `/dot/sync/2` and `/sub/sync/2` protocols on the same
+>           connection, provided that the remote supports them.
+
+Substrate uses the following standard libp2p protocols:
+
+- **`/ipfs/ping/1.0.0`**. We periodically open an ephemeral substream in order to ping the
+remote and check whether the connection is still alive. Failure for the remote to reply leads
+to a disconnection.
+- **[`/ipfs/id/1.0.0`](https://github.com/libp2p/specs/tree/master/identify)**. We
+periodically open an ephemeral substream in order to ask information from the remote.
+- **[`/<protocol_id>/kad`](https://github.com/libp2p/specs/pull/108)**. We periodically open
+ephemeral substreams for Kademlia random walk queries. Each Kademlia query is done in a
+separate substream.
+
+Additionally, Substrate uses the following non-libp2p-standard protocols:
+
+- **`/substrate/<protocol-id>/<version>`** (where `<protocol-id>` must be replaced with the
+protocol ID of the targeted chain, and `<version>` is a number between 2 and 6). For each
+connection we optionally keep an additional substream for all Substrate-based communications alive.
+This protocol is considered legacy, and is progressively being replaced with alternatives.
+This is designated as "The legacy Substrate substream" in this documentation. See below for
+more details.
+- **`/<protocol-id>/sync/2`** is a request-response protocol (see below) that lets one perform
+requests for information about blocks. Each request is the encoding of a `BlockRequest` and
+each response is the encoding of a `BlockResponse`, as defined in the `api.v1.proto` file in
+this source tree.
+- **`/<protocol-id>/light/2`** is a request-response protocol (see below) that lets one perform
+light-client-related requests for information about the state. Each request is the encoding of
+a `light::Request` and each response is the encoding of a `light::Response`, as defined in the
+`light.v1.proto` file in this source tree.
+- **`/<protocol-id>/transactions/1`** is a notifications protocol (see below) where
+transactions are pushed to other nodes. The handshake is empty on both sides. The message
+format is a SCALE-encoded list of transactions, where each transaction is an opaque list of
+bytes.
+- **`/<protocol-id>/block-announces/1`** is a notifications protocol (see below) where
+block announces are pushed to other nodes. The handshake is empty on both sides. The message
+format is a SCALE-encoded tuple containing a block header followed with an opaque list of
+bytes containing some data associated with this block announcement, e.g. a candidate message.
+- Notifications protocols that are registered using the `register_notifications_protocol`
+method. For example: `/paritytech/grandpa/1`. See below for more information.
+
+## The legacy Substrate substream
+
+Substrate uses a component named the **peerset manager (PSM)**. Through the discovery
+mechanism, the PSM is aware of the nodes that are part of the network and decides which nodes
+we should perform Substrate-based communications with. For these nodes, we open a connection
+if necessary and open a unique substream for Substrate-based communications. If the PSM decides
+that we should disconnect a node, then that substream is closed.
+
+For more information about the PSM, see the *sc-peerset* crate.
+
+Note that at the moment there is no mechanism in place to solve the issues that arise where the
+two sides of a connection open the unique substream simultaneously. In order to not run into
+issues, only the dialer of a connection is allowed to open the unique substream. When the
+substream is closed, the entire connection is closed as well. This is a bug that will be
+resolved by deprecating the protocol entirely.
+
+Within the unique Substrate substream, messages encoded using
+[*parity-scale-codec*](https://github.com/paritytech/parity-scale-codec) are exchanged.
+The detail of theses messages is not totally in place, but they can be found in the
+`message.rs` file.
+
+Once the substream is open, the first step is an exchange of a *status* message from both
+sides, containing information such as the chain root hash, head of chain, and so on.
+
+Communications within this substream include:
+
+- Syncing. Blocks are announced and requested from other nodes.
+- Light-client requests. When a light client requires information, a random node we have a
+substream open with is chosen, and the information is requested from it.
+- Gossiping. Used for example by grandpa.
+
+## Request-response protocols
+
+A so-called request-response protocol is defined as follow:
+
+- When a substream is opened, the opening side sends a message whose content is
+protocol-specific. The message must be prefixed with an
+[LEB128-encoded number](https://en.wikipedia.org/wiki/LEB128) indicating its length. After the
+message has been sent, the writing side is closed.
+- The remote sends back the response prefixed with a LEB128-encoded length, and closes its
+side as well.
+
+Each request is performed in a new separate substream.
+
+## Notifications protocols
+
+A so-called notifications protocol is defined as follow:
+
+- When a substream is opened, the opening side sends a handshake message whose content is
+protocol-specific. The handshake message must be prefixed with an
+[LEB128-encoded number](https://en.wikipedia.org/wiki/LEB128) indicating its length. The
+handshake message can be of length 0, in which case the sender has to send a single `0`.
+- The receiver then either immediately closes the substream, or answers with its own
+LEB128-prefixed protocol-specific handshake response. The message can be of length 0, in which
+case a single `0` has to be sent back.
+- Once the handshake has completed, the notifications protocol is unidirectional. Only the
+node which initiated the substream can push notifications. If the remote wants to send
+notifications as well, it has to open its own undirectional substream.
+- Each notification must be prefixed with an LEB128-encoded length. The encoding of the
+messages is specific to each protocol.
+- Either party can signal that it doesn't want a notifications substream anymore by closing
+its writing side. The other party should respond by closing its own writing side soon after.
+
+The API of `sc-network` allows one to register user-defined notification protocols.
+`sc-network` automatically tries to open a substream towards each node for which the legacy
+Substream substream is open. The handshake is then performed automatically.
+
+For example, the `sc-finality-grandpa` crate registers the `/paritytech/grandpa/1`
+notifications protocol.
+
+At the moment, for backwards-compatibility, notification protocols are tied to the legacy
+Substrate substream. Additionally, the handshake message is hardcoded to be a single 8-bits
+integer representing the role of the node:
+
+- 1 for a full node.
+- 2 for a light node.
+- 4 for an authority.
+
+In the future, though, these restrictions will be removed.
+
+# Usage
+
+Using the `sc-network` crate is done through the [`NetworkWorker`] struct. Create this
+struct by passing a [`config::Params`], then poll it as if it was a `Future`. You can extract an
+`Arc<NetworkService>` from the `NetworkWorker`, which can be shared amongst multiple places
+in order to give orders to the networking.
+
+See the [`config`] module for more information about how to configure the networking.
+
+After the `NetworkWorker` has been created, the important things to do are:
+
+- Calling `NetworkWorker::poll` in order to advance the network. This can be done by
+dispatching a background task with the [`NetworkWorker`].
+- Calling `on_block_import` whenever a block is added to the client.
+- Calling `on_block_finalized` whenever a block is finalized.
+- Calling `trigger_repropagate` when a transaction is added to the pool.
+
+More precise usage details are still being worked on and will likely change in the future.
+
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/network/test/Cargo.toml b/substrate/client/network/test/Cargo.toml
index 7c157ce1c60..f9e7ec4c89e 100644
--- a/substrate/client/network/test/Cargo.toml
+++ b/substrate/client/network/test/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Integration tests for Substrate network protocol"
 name = "sc-network-test"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -13,23 +13,23 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-network = { version = "0.8.0-rc5", path = "../" }
+sc-network = { version = "0.8.0-rc6", path = "../" }
 log = "0.4.8"
 parking_lot = "0.10.0"
 futures = "0.3.4"
 futures-timer = "3.0.1"
 rand = "0.7.2"
 libp2p = { version = "0.23.0", default-features = false }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sc-consensus = { version = "0.8.0-rc5", path = "../../../client/consensus/common" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../api" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../../block-builder" }
-sp-consensus-babe = { version = "0.8.0-rc5", path = "../../../primitives/consensus/babe" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sc-consensus = { version = "0.8.0-rc6", path = "../../../client/consensus/common" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../api" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../block-builder" }
+sp-consensus-babe = { version = "0.8.0-rc6", path = "../../../primitives/consensus/babe" }
 env_logger = "0.7.0"
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../test-utils/runtime/client" }
-substrate-test-runtime = { version = "2.0.0-rc5", path = "../../../test-utils/runtime" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../test-utils/runtime/client" }
+substrate-test-runtime = { version = "2.0.0-rc6", path = "../../../test-utils/runtime" }
 tempfile = "3.1.0"
-sc-service = { version = "0.8.0-rc5", default-features = false, features = ["test-helpers"],  path = "../../service" }
+sc-service = { version = "0.8.0-rc6", default-features = false, features = ["test-helpers"],  path = "../../service" }
diff --git a/substrate/client/offchain/Cargo.toml b/substrate/client/offchain/Cargo.toml
index ef2b00daab4..9f574ff9ebe 100644
--- a/substrate/client/offchain/Cargo.toml
+++ b/substrate/client/offchain/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Substrate offchain workers"
 name = "sc-offchain"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -13,23 +13,23 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 bytes = "0.5"
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
 fnv = "1.0.6"
 futures = "0.3.4"
 futures-timer = "3.0.1"
 log = "0.4.8"
 threadpool = "1.7"
 num_cpus = "1.10"
-sp-offchain = { version = "2.0.0-rc5", path = "../../primitives/offchain" }
+sp-offchain = { version = "2.0.0-rc6", path = "../../primitives/offchain" }
 codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
 parking_lot = "0.10.0"
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 rand = "0.7.2"
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils" }
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sc-keystore = { version = "2.0.0-rc5", path = "../keystore" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sc-keystore = { version = "2.0.0-rc6", path = "../keystore" }
 
 [target.'cfg(not(target_os = "unknown"))'.dependencies]
 hyper = "0.13.2"
@@ -37,10 +37,10 @@ hyper-rustls = "0.21.0"
 
 [dev-dependencies]
 env_logger = "0.7.0"
-sc-client-db = { version = "0.8.0-rc5", default-features = true, path = "../db/" }
-sc-transaction-pool = { version = "2.0.0-rc5", path = "../../client/transaction-pool" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../primitives/transaction-pool" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
+sc-client-db = { version = "0.8.0-rc6", default-features = true, path = "../db/" }
+sc-transaction-pool = { version = "2.0.0-rc6", path = "../../client/transaction-pool" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../primitives/transaction-pool" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
 tokio = "0.2"
 lazy_static = "1.4.0"
 
diff --git a/substrate/client/offchain/README.md b/substrate/client/offchain/README.md
new file mode 100644
index 00000000000..f7c097e8e0b
--- /dev/null
+++ b/substrate/client/offchain/README.md
@@ -0,0 +1,18 @@
+Substrate offchain workers.
+
+The offchain workers is a special function of the runtime that
+gets executed after block is imported. During execution
+it's able to asynchronously submit extrinsics that will either
+be propagated to other nodes or added to the next block
+produced by the node as unsigned transactions.
+
+Offchain workers can be used for computation-heavy tasks
+that are not feasible for execution during regular block processing.
+It can either be tasks that no consensus is required for,
+or some form of consensus over the data can be built on-chain
+for instance via:
+1. Challenge period for incorrect computations
+2. Majority voting for results
+3. etc
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/peerset/Cargo.toml b/substrate/client/peerset/Cargo.toml
index 8a9aa0adb18..550217c2b06 100644
--- a/substrate/client/peerset/Cargo.toml
+++ b/substrate/client/peerset/Cargo.toml
@@ -3,7 +3,7 @@ description = "Connectivity manager based on reputation"
 homepage = "http://parity.io"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 name = "sc-peerset"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 repository = "https://github.com/paritytech/substrate/"
@@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 futures = "0.3.4"
 libp2p = { version = "0.23.0", default-features = false }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils"}
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils"}
 log = "0.4.8"
 serde_json = "1.0.41"
 wasm-timer = "0.2"
diff --git a/substrate/client/peerset/README.md b/substrate/client/peerset/README.md
new file mode 100644
index 00000000000..1b54c52001c
--- /dev/null
+++ b/substrate/client/peerset/README.md
@@ -0,0 +1,4 @@
+Peer Set Manager (PSM). Contains the strategy for choosing which nodes the network should be
+connected to.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/proposer-metrics/Cargo.toml b/substrate/client/proposer-metrics/Cargo.toml
index 8427786919f..5708a970a1b 100644
--- a/substrate/client/proposer-metrics/Cargo.toml
+++ b/substrate/client/proposer-metrics/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-proposer-metrics"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -13,4 +13,4 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 log = "0.4.8"
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc5"}
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc6"}
diff --git a/substrate/client/proposer-metrics/README.md b/substrate/client/proposer-metrics/README.md
new file mode 100644
index 00000000000..9669c7d3519
--- /dev/null
+++ b/substrate/client/proposer-metrics/README.md
@@ -0,0 +1,3 @@
+Prometheus basic proposer metrics.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/rpc-api/Cargo.toml b/substrate/client/rpc-api/Cargo.toml
index 7701befbf71..95080911320 100644
--- a/substrate/client/rpc-api/Cargo.toml
+++ b/substrate/client/rpc-api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-rpc-api"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -21,11 +21,11 @@ jsonrpc-derive = "14.2.1"
 jsonrpc-pubsub = "14.2.0"
 log = "0.4.8"
 parking_lot = "0.10.0"
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-version = { version = "2.0.0-rc5", path = "../../primitives/version" }
-sp-runtime = { path = "../../primitives/runtime" , version = "2.0.0-rc5"}
-sp-chain-spec = { path = "../../primitives/chain-spec" , version = "2.0.0-rc5"}
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-version = { version = "2.0.0-rc6", path = "../../primitives/version" }
+sp-runtime = { path = "../../primitives/runtime" , version = "2.0.0-rc6"}
+sp-chain-spec = { path = "../../primitives/chain-spec" , version = "2.0.0-rc6"}
 serde = { version = "1.0.101", features = ["derive"] }
 serde_json = "1.0.41"
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../primitives/transaction-pool" }
-sp-rpc = { version = "2.0.0-rc5", path = "../../primitives/rpc" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../primitives/transaction-pool" }
+sp-rpc = { version = "2.0.0-rc6", path = "../../primitives/rpc" }
diff --git a/substrate/client/rpc-api/README.md b/substrate/client/rpc-api/README.md
new file mode 100644
index 00000000000..e860e0c2334
--- /dev/null
+++ b/substrate/client/rpc-api/README.md
@@ -0,0 +1,5 @@
+Substrate RPC interfaces.
+
+A collection of RPC methods and subscriptions supported by all substrate clients.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/rpc-servers/Cargo.toml b/substrate/client/rpc-servers/Cargo.toml
index f6a1b470249..3af5cdd039d 100644
--- a/substrate/client/rpc-servers/Cargo.toml
+++ b/substrate/client/rpc-servers/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-rpc-server"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -17,7 +17,7 @@ pubsub = { package = "jsonrpc-pubsub", version = "14.2.0" }
 log = "0.4.8"
 serde = "1.0.101"
 serde_json = "1.0.41"
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
 
 [target.'cfg(not(target_os = "unknown"))'.dependencies]
 http = { package = "jsonrpc-http-server", version = "14.2.0" }
diff --git a/substrate/client/rpc-servers/README.md b/substrate/client/rpc-servers/README.md
new file mode 100644
index 00000000000..cf00b3169a6
--- /dev/null
+++ b/substrate/client/rpc-servers/README.md
@@ -0,0 +1,3 @@
+Substrate RPC servers.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/rpc/Cargo.toml b/substrate/client/rpc/Cargo.toml
index 5681672cc34..fe4a02aa83f 100644
--- a/substrate/client/rpc/Cargo.toml
+++ b/substrate/client/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-rpc"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -12,29 +12,29 @@ description = "Substrate Client RPC"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-rpc-api = { version = "0.8.0-rc5", path = "../rpc-api" }
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
+sc-rpc-api = { version = "0.8.0-rc6", path = "../rpc-api" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
 codec = { package = "parity-scale-codec", version = "1.3.4" }
 futures = { version = "0.3.1", features = ["compat"] }
 jsonrpc-pubsub = "14.2.0"
 log = "0.4.8"
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 rpc = { package = "jsonrpc-core", version = "14.2.0" }
-sp-version = { version = "2.0.0-rc5", path = "../../primitives/version" }
+sp-version = { version = "2.0.0-rc6", path = "../../primitives/version" }
 serde_json = "1.0.41"
-sp-session = { version = "2.0.0-rc5", path = "../../primitives/session" }
-sp-offchain = { version = "2.0.0-rc5", path = "../../primitives/offchain" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils" }
-sp-rpc = { version = "2.0.0-rc5", path = "../../primitives/rpc" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
-sp-chain-spec = { version = "2.0.0-rc5", path = "../../primitives/chain-spec" }
-sc-executor = { version = "0.8.0-rc5", path = "../executor" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../../client/block-builder" }
-sc-keystore = { version = "2.0.0-rc5", path = "../keystore" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../primitives/transaction-pool" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
+sp-session = { version = "2.0.0-rc6", path = "../../primitives/session" }
+sp-offchain = { version = "2.0.0-rc6", path = "../../primitives/offchain" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils" }
+sp-rpc = { version = "2.0.0-rc6", path = "../../primitives/rpc" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
+sp-chain-spec = { version = "2.0.0-rc6", path = "../../primitives/chain-spec" }
+sc-executor = { version = "0.8.0-rc6", path = "../executor" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../client/block-builder" }
+sc-keystore = { version = "2.0.0-rc6", path = "../keystore" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../primitives/transaction-pool" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
 hash-db = { version = "0.15.2", default-features = false }
 parking_lot = "0.10.0"
 lazy_static = { version = "1.4.0", optional = true }
@@ -42,11 +42,11 @@ lazy_static = { version = "1.4.0", optional = true }
 [dev-dependencies]
 assert_matches = "1.3.0"
 futures01 = { package = "futures", version = "0.1.29" }
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
 tokio = "0.1.22"
-sc-transaction-pool = { version = "2.0.0-rc5", path = "../transaction-pool" }
+sc-transaction-pool = { version = "2.0.0-rc6", path = "../transaction-pool" }
 
 [features]
 test-helpers = ["lazy_static"]
diff --git a/substrate/client/rpc/README.md b/substrate/client/rpc/README.md
new file mode 100644
index 00000000000..6066af4da71
--- /dev/null
+++ b/substrate/client/rpc/README.md
@@ -0,0 +1,5 @@
+Substrate RPC implementation.
+
+A core implementation of Substrate RPC interfaces.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/service/Cargo.toml b/substrate/client/service/Cargo.toml
index 6462549403b..fc4d3298a41 100644
--- a/substrate/client/service/Cargo.toml
+++ b/substrate/client/service/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-service"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -40,39 +40,39 @@ pin-project = "0.4.8"
 hash-db = "0.15.2"
 serde = "1.0.101"
 serde_json = "1.0.41"
-sc-keystore = { version = "2.0.0-rc5", path = "../keystore" }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-trie = { version = "2.0.0-rc5", path = "../../primitives/trie" }
-sp-externalities = { version = "0.8.0-rc5", path = "../../primitives/externalities" }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils" }
-sp-version = { version = "2.0.0-rc5", path = "../../primitives/version" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-session = { version = "2.0.0-rc5", path = "../../primitives/session" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../primitives/application-crypto" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
-sp-inherents = { version = "2.0.0-rc5", path = "../../primitives/inherents" }
-sc-network = { version = "0.8.0-rc5", path = "../network" }
-sc-chain-spec = { version = "2.0.0-rc5", path = "../chain-spec" }
-sc-light = { version = "2.0.0-rc5", path = "../light" }
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
-sc-client-db = { version = "0.8.0-rc5", default-features = false, path = "../db" }
+sc-keystore = { version = "2.0.0-rc6", path = "../keystore" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-trie = { version = "2.0.0-rc6", path = "../../primitives/trie" }
+sp-externalities = { version = "0.8.0-rc6", path = "../../primitives/externalities" }
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils" }
+sp-version = { version = "2.0.0-rc6", path = "../../primitives/version" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-session = { version = "2.0.0-rc6", path = "../../primitives/session" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../primitives/application-crypto" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
+sp-inherents = { version = "2.0.0-rc6", path = "../../primitives/inherents" }
+sc-network = { version = "0.8.0-rc6", path = "../network" }
+sc-chain-spec = { version = "2.0.0-rc6", path = "../chain-spec" }
+sc-light = { version = "2.0.0-rc6", path = "../light" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
+sc-client-db = { version = "0.8.0-rc6", default-features = false, path = "../db" }
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-sc-executor = { version = "0.8.0-rc5", path = "../executor" }
-sc-transaction-pool = { version = "2.0.0-rc5", path = "../transaction-pool" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../primitives/transaction-pool" }
-sc-rpc-server = { version = "2.0.0-rc5", path = "../rpc-servers" }
-sc-rpc = { version = "2.0.0-rc5", path = "../rpc" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../block-builder" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../primitives/block-builder" }
+sc-executor = { version = "0.8.0-rc6", path = "../executor" }
+sc-transaction-pool = { version = "2.0.0-rc6", path = "../transaction-pool" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../primitives/transaction-pool" }
+sc-rpc-server = { version = "2.0.0-rc6", path = "../rpc-servers" }
+sc-rpc = { version = "2.0.0-rc6", path = "../rpc" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../block-builder" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../primitives/block-builder" }
 sc-informant = { version = "0.8.0-rc2", path = "../informant" }
-sc-telemetry = { version = "2.0.0-rc5", path = "../telemetry" }
-sc-offchain = { version = "2.0.0-rc5", path = "../offchain" }
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc5"}
-sc-tracing = { version = "2.0.0-rc5", path = "../tracing" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../telemetry" }
+sc-offchain = { version = "2.0.0-rc6", path = "../offchain" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc6"}
+sc-tracing = { version = "2.0.0-rc6", path = "../tracing" }
 tracing = "0.1.18"
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 
@@ -81,9 +81,9 @@ tempfile = "3.1.0"
 directories = "2.0.2"
 
 [dev-dependencies]
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
-sp-consensus-babe = { version = "0.8.0-rc5", path = "../../primitives/consensus/babe" }
-grandpa = { version = "0.8.0-rc5", package = "sc-finality-grandpa", path = "../finality-grandpa" }
-grandpa-primitives = { version = "2.0.0-rc5", package = "sp-finality-grandpa", path = "../../primitives/finality-grandpa" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
+sp-consensus-babe = { version = "0.8.0-rc6", path = "../../primitives/consensus/babe" }
+grandpa = { version = "0.8.0-rc6", package = "sc-finality-grandpa", path = "../finality-grandpa" }
+grandpa-primitives = { version = "2.0.0-rc6", package = "sp-finality-grandpa", path = "../../primitives/finality-grandpa" }
 tokio = { version = "0.2", default-features = false }
 async-std = { version = "1.6", default-features = false }
diff --git a/substrate/client/service/README.md b/substrate/client/service/README.md
new file mode 100644
index 00000000000..26f940f16df
--- /dev/null
+++ b/substrate/client/service/README.md
@@ -0,0 +1,4 @@
+Substrate service. Starts a thread that spins up the network, client, and extrinsic pool.
+Manages communication between them.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/service/test/Cargo.toml b/substrate/client/service/test/Cargo.toml
index d8f069eadfd..016b6e37d2d 100644
--- a/substrate/client/service/test/Cargo.toml
+++ b/substrate/client/service/test/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-service-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -20,25 +20,25 @@ log = "0.4.8"
 env_logger = "0.7.0"
 fdlimit = "0.1.4"
 parking_lot = "0.10.0"
-sc-light = { version = "2.0.0-rc5", path = "../../light" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../../primitives/state-machine" }
-sp-externalities = { version = "0.8.0-rc5", path = "../../../primitives/externalities" }
-sp-trie = { version = "2.0.0-rc5", path = "../../../primitives/trie" }
-sp-storage = { version = "2.0.0-rc5", path = "../../../primitives/storage" }
-sc-client-db = { version = "0.8.0-rc5", default-features = false, path = "../../db" }
+sc-light = { version = "2.0.0-rc6", path = "../../light" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../../primitives/state-machine" }
+sp-externalities = { version = "0.8.0-rc6", path = "../../../primitives/externalities" }
+sp-trie = { version = "2.0.0-rc6", path = "../../../primitives/trie" }
+sp-storage = { version = "2.0.0-rc6", path = "../../../primitives/storage" }
+sc-client-db = { version = "0.8.0-rc6", default-features = false, path = "../../db" }
 futures = { version = "0.3.1", features = ["compat"] }
-sc-service = { version = "0.8.0-rc5", default-features = false, features = ["test-helpers"], path = "../../service" }
-sc-network = { version = "0.8.0-rc5", path = "../../network" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../../primitives/transaction-pool" }
-substrate-test-runtime = { version = "2.0.0-rc5", path = "../../../test-utils/runtime" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../test-utils/runtime/client" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../api" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../../block-builder" }
-sc-executor = { version = "0.8.0-rc5", path = "../../executor" }
-sp-panic-handler = { version = "2.0.0-rc5", path = "../../../primitives/panic-handler" }
+sc-service = { version = "0.8.0-rc6", default-features = false, features = ["test-helpers"], path = "../../service" }
+sc-network = { version = "0.8.0-rc6", path = "../../network" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../../primitives/transaction-pool" }
+substrate-test-runtime = { version = "2.0.0-rc6", path = "../../../test-utils/runtime" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../test-utils/runtime/client" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../api" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../block-builder" }
+sc-executor = { version = "0.8.0-rc6", path = "../../executor" }
+sp-panic-handler = { version = "2.0.0-rc6", path = "../../../primitives/panic-handler" }
 parity-scale-codec = "1.3.4"
diff --git a/substrate/client/state-db/Cargo.toml b/substrate/client/state-db/Cargo.toml
index 685f68f0835..f78e0ca505a 100644
--- a/substrate/client/state-db/Cargo.toml
+++ b/substrate/client/state-db/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-state-db"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -14,8 +14,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 parking_lot = "0.10.0"
 log = "0.4.8"
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 parity-util-mem-derive = "0.1.0"
diff --git a/substrate/client/state-db/README.md b/substrate/client/state-db/README.md
new file mode 100644
index 00000000000..a02b3929088
--- /dev/null
+++ b/substrate/client/state-db/README.md
@@ -0,0 +1,16 @@
+State database maintenance. Handles canonicalization and pruning in the database. The input to
+this module is a `ChangeSet` which is basically a list of key-value pairs (trie nodes) that
+were added or deleted during block execution.
+
+# Canonicalization.
+Canonicalization window tracks a tree of blocks identified by header hash. The in-memory
+overlay allows to get any node that was inserted in any of the blocks within the window.
+The tree is journaled to the backing database and rebuilt on startup.
+Canonicalization function selects one root from the top of the tree and discards all other roots and
+their subtrees.
+
+# Pruning.
+See `RefWindow` for pruning algorithm details. `StateDb` prunes on each canonicalization until pruning
+constraints are satisfied.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/telemetry/Cargo.toml b/substrate/client/telemetry/Cargo.toml
index 4c9cc05b07f..2f3601b1729 100644
--- a/substrate/client/telemetry/Cargo.toml
+++ b/substrate/client/telemetry/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-telemetry"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Telemetry utils"
 edition = "2018"
diff --git a/substrate/client/telemetry/README.md b/substrate/client/telemetry/README.md
new file mode 100644
index 00000000000..8fdf9e50072
--- /dev/null
+++ b/substrate/client/telemetry/README.md
@@ -0,0 +1,45 @@
+Telemetry utilities.
+
+Calling `init_telemetry` registers a global `slog` logger using `slog_scope::set_global_logger`.
+After that, calling `slog_scope::with_logger` will return a logger that sends information to
+the telemetry endpoints. The `telemetry!` macro is a short-cut for calling
+`slog_scope::with_logger` followed with `slog_log!`.
+
+Note that you are supposed to only ever use `telemetry!` and not `slog_scope::with_logger` at
+the moment. Substrate may eventually be reworked to get proper `slog` support, including sending
+information to the telemetry.
+
+The [`Telemetry`] struct implements `Stream` and must be polled regularly (or sent to a
+background thread/task) in order for the telemetry to properly function. Dropping the object
+will also deregister the global logger and replace it with a logger that discards messages.
+The `Stream` generates [`TelemetryEvent`]s.
+
+> **Note**: Cloning the [`Telemetry`] and polling from multiple clones has an unspecified behaviour.
+
+# Example
+
+```rust
+use futures::prelude::*;
+
+let telemetry = sc_telemetry::init_telemetry(sc_telemetry::TelemetryConfig {
+	endpoints: sc_telemetry::TelemetryEndpoints::new(vec![
+		// The `0` is the maximum verbosity level of messages to send to this endpoint.
+		("wss://example.com".into(), 0)
+	]).expect("Invalid URL or multiaddr provided"),
+	// Can be used to pass an external implementation of WebSockets.
+	wasm_external_transport: None,
+});
+
+// The `telemetry` object implements `Stream` and must be processed.
+std::thread::spawn(move || {
+	futures::executor::block_on(telemetry.for_each(|_| future::ready(())));
+});
+
+// Sends a message on the telemetry.
+sc_telemetry::telemetry!(sc_telemetry::SUBSTRATE_INFO; "test";
+	"foo" => "bar",
+)
+```
+
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/tracing/Cargo.toml b/substrate/client/tracing/Cargo.toml
index 0a692cbe57f..40ab1bd4603 100644
--- a/substrate/client/tracing/Cargo.toml
+++ b/substrate/client/tracing/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-tracing"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -23,4 +23,4 @@ tracing = "0.1.18"
 tracing-subscriber = "0.2.10"
 sp-tracing = { version = "2.0.0-rc2", path = "../../primitives/tracing" }
 
-sc-telemetry = { version = "2.0.0-rc5", path = "../telemetry" }
+sc-telemetry = { version = "2.0.0-rc6", path = "../telemetry" }
diff --git a/substrate/client/tracing/README.md b/substrate/client/tracing/README.md
new file mode 100644
index 00000000000..b008436df9b
--- /dev/null
+++ b/substrate/client/tracing/README.md
@@ -0,0 +1,11 @@
+Instrumentation implementation for substrate.
+
+This crate is unstable and the API and usage may change.
+
+# Usage
+
+See `sp-tracing` for examples on how to use tracing.
+
+Currently we provide `Log` (default), `Telemetry` variants for `Receiver`
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/transaction-pool/Cargo.toml b/substrate/client/transaction-pool/Cargo.toml
index 56ea881d7a0..f6ef1b1322f 100644
--- a/substrate/client/transaction-pool/Cargo.toml
+++ b/substrate/client/transaction-pool/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-transaction-pool"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -20,23 +20,23 @@ intervalier = "0.4.0"
 log = "0.4.8"
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 parking_lot = "0.10.0"
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc5"}
-sc-client-api = { version = "2.0.0-rc5", path = "../api" }
-sc-transaction-graph = { version = "2.0.0-rc5", path = "./graph" }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-tracing = { version = "2.0.0-rc5", path = "../../primitives/tracing" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../primitives/transaction-pool" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sp-utils = { version = "2.0.0-rc5", path = "../../primitives/utils" }
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus", version = "0.8.0-rc6"}
+sc-client-api = { version = "2.0.0-rc6", path = "../api" }
+sc-transaction-graph = { version = "2.0.0-rc6", path = "./graph" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-tracing = { version = "2.0.0-rc6", path = "../../primitives/tracing" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../primitives/transaction-pool" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sp-utils = { version = "2.0.0-rc6", path = "../../primitives/utils" }
 wasm-timer = "0.2"
 
 [dev-dependencies]
 assert_matches = "1.3.0"
 hex = "0.4"
-sp-keyring = { version = "2.0.0-rc5", path = "../../primitives/keyring" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
-substrate-test-runtime-transaction-pool = { version = "2.0.0-rc5", path = "../../test-utils/runtime/transaction-pool" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../block-builder" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../primitives/keyring" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
+substrate-test-runtime-transaction-pool = { version = "2.0.0-rc6", path = "../../test-utils/runtime/transaction-pool" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../block-builder" }
diff --git a/substrate/client/transaction-pool/README.md b/substrate/client/transaction-pool/README.md
new file mode 100644
index 00000000000..15e4641c1f4
--- /dev/null
+++ b/substrate/client/transaction-pool/README.md
@@ -0,0 +1,3 @@
+Substrate transaction pool implementation.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/client/transaction-pool/graph/Cargo.toml b/substrate/client/transaction-pool/graph/Cargo.toml
index 8719a9c8fed..7255cf3df30 100644
--- a/substrate/client/transaction-pool/graph/Cargo.toml
+++ b/substrate/client/transaction-pool/graph/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sc-transaction-graph"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
@@ -18,11 +18,11 @@ log = "0.4.8"
 parking_lot = "0.10.0"
 serde = { version = "1.0.101", features = ["derive"] }
 wasm-timer = "0.2"
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-utils = { version = "2.0.0-rc5", path = "../../../primitives/utils" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../../primitives/transaction-pool" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-utils = { version = "2.0.0-rc6", path = "../../../primitives/utils" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../../primitives/transaction-pool" }
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 linked-hash-map = "0.5.2"
 retain_mut = "0.1.1"
@@ -30,7 +30,7 @@ retain_mut = "0.1.1"
 [dev-dependencies]
 assert_matches = "1.3.0"
 codec = { package = "parity-scale-codec", version = "1.3.4" }
-substrate-test-runtime = { version = "2.0.0-rc5", path = "../../../test-utils/runtime" }
+substrate-test-runtime = { version = "2.0.0-rc6", path = "../../../test-utils/runtime" }
 criterion = "0.3"
 
 [[bench]]
diff --git a/substrate/client/transaction-pool/graph/README.md b/substrate/client/transaction-pool/graph/README.md
new file mode 100644
index 00000000000..bc9cd929122
--- /dev/null
+++ b/substrate/client/transaction-pool/graph/README.md
@@ -0,0 +1,8 @@
+Generic Transaction Pool
+
+The pool is based on dependency graph between transactions
+and their priority.
+The pool is able to return an iterator that traverses transaction
+graph in the correct order taking into account priorities and dependencies.
+
+License: GPL-3.0-or-later WITH Classpath-exception-2.0
\ No newline at end of file
diff --git a/substrate/docs/CHANGELOG.md b/substrate/docs/CHANGELOG.md
index 719059477e1..254c64819bd 100644
--- a/substrate/docs/CHANGELOG.md
+++ b/substrate/docs/CHANGELOG.md
@@ -6,11 +6,48 @@ The format is based on [Keep a Changelog].
 
 ## Unreleased
 
+## 2.0.0-rc5 -> 2.0.0-rc6 – Rock Hyrax
+
+Runtime
+-------
+
+* Custom Codec Implenetation for NPoS Election (#6720)
+* Successful `note_imminent_preimage` is free (#6793)
+* pallet-democracy use of weightinfo (#6783)
+* Update Balances Pallet to use `WeightInfo` (#6610)
+* pallet-evm: add builtin support for the four basic Ethereum precompiles (#6743)
+* Allow `PostDispatchInfo` to disable fees (#6749)
+* pallet-evm: add support for tuple-based precompile declarations (#6681)
+* grandpa: allow noting that the set has stalled (#6725)
+
 Client
 ------
 
+* Merge Subkey into sc-cli (#4954)
+* RpcHandlers Refactorings (#6846)
+* client/authority-discovery: Introduce AuthorityDiscoveryService (#6760)
+* Implement tracing::Event handling & parent_id for spans and events (#6672)
+* Move to upstream wasmtime, refactor globals snapshot  (#6759)
+* Revalidate transactions only on latest best block (#6824)
+* Allow task manager to have children (#6771)
+* client/network: Expose DHT query duration to Prometheus (#6784)
+* client/network: Add peers to DHT only if protocols match (#6549)
+* Name all the tasks! (#6726)
 * Child nodes can be handled by adding a child `TaskManager` to the parent's `TaskManager` (#6771)
 
+API
+---
+
+* pow: add access to pre-digest for algorithm verifiers (#6900)
+* babe, aura, pow: only call check_inherents if authoring version is compatible (#6862)
+* Implement 'transactional' annotation for runtime functions. (#6763)
+* seal: Change prefix and module name from "ext_" to "seal_" for contract callable functions (#6798)
+* Add Subscription RPC for Grandpa Finality (#5732)
+* seal: Fix and improve error reporting (#6773)
+* Allow blacklisting blocks from being finalized again after block revert (#6301)
+* BABE slot and epoch event notifications (#6563)
+* Add `memory-tracker` feature to `sp-trie` to fix wasm panic (#6745)
+
 ## 2.0.0-rc4 -> 2.0.0-rc5 – River Dolphin
 
 Runtime
diff --git a/substrate/frame/assets/Cargo.toml b/substrate/frame/assets/Cargo.toml
index 47bf0cecf21..bb7c2828c30 100644
--- a/substrate/frame/assets/Cargo.toml
+++ b/substrate/frame/assets/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-assets"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,16 +15,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
 # Needed for various traits. In our case, `OnFinalize`.
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
 # Needed for type-safe access to storage DB.
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
 # `system` module provides us with all sorts of useful stuff and macros depend on it being around.
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/assets/README.md b/substrate/frame/assets/README.md
new file mode 100644
index 00000000000..dca51b7c296
--- /dev/null
+++ b/substrate/frame/assets/README.md
@@ -0,0 +1,116 @@
+# Assets Module
+
+A simple, secure module for dealing with fungible assets.
+
+## Overview
+
+The Assets module provides functionality for asset management of fungible asset classes
+with a fixed supply, including:
+
+* Asset Issuance
+* Asset Transfer
+* Asset Destruction
+
+To use it in your runtime, you need to implement the assets [`Trait`](./trait.Trait.html).
+
+The supported dispatchable functions are documented in the [`Call`](./enum.Call.html) enum.
+
+### Terminology
+
+* **Asset issuance:** The creation of a new asset, whose total supply will belong to the
+  account that issues the asset.
+* **Asset transfer:** The action of transferring assets from one account to another.
+* **Asset destruction:** The process of an account removing its entire holding of an asset.
+* **Fungible asset:** An asset whose units are interchangeable.
+* **Non-fungible asset:** An asset for which each unit has unique characteristics.
+
+### Goals
+
+The assets system in Substrate is designed to make the following possible:
+
+* Issue a unique asset to its creator's account.
+* Move assets between accounts.
+* Remove an account's balance of an asset when requested by that account's owner and update
+  the asset's total supply.
+
+## Interface
+
+### Dispatchable Functions
+
+* `issue` - Issues the total supply of a new fungible asset to the account of the caller of the function.
+* `transfer` - Transfers an `amount` of units of fungible asset `id` from the balance of
+the function caller's account (`origin`) to a `target` account.
+* `destroy` - Destroys the entire holding of a fungible asset `id` associated with the account
+that called the function.
+
+Please refer to the [`Call`](./enum.Call.html) enum and its associated variants for documentation on each function.
+
+### Public Functions
+<!-- Original author of descriptions: @gavofyork -->
+
+* `balance` - Get the asset `id` balance of `who`.
+* `total_supply` - Get the total supply of an asset `id`.
+
+Please refer to the [`Module`](./struct.Module.html) struct for details on publicly available functions.
+
+## Usage
+
+The following example shows how to use the Assets module in your runtime by exposing public functions to:
+
+* Issue a new fungible asset for a token distribution event (airdrop).
+* Query the fungible asset holding balance of an account.
+* Query the total supply of a fungible asset that has been issued.
+
+### Prerequisites
+
+Import the Assets module and types and derive your runtime's configuration traits from the Assets module trait.
+
+### Simple Code Snippet
+
+```rust
+use pallet_assets as assets;
+use frame_support::{decl_module, dispatch, ensure};
+use frame_system::ensure_signed;
+
+pub trait Trait: assets::Trait { }
+
+decl_module! {
+	pub struct Module<T: Trait> for enum Call where origin: T::Origin {
+		pub fn issue_token_airdrop(origin) -> dispatch::DispatchResult {
+			let sender = ensure_signed(origin).map_err(|e| e.as_str())?;
+
+			const ACCOUNT_ALICE: u64 = 1;
+			const ACCOUNT_BOB: u64 = 2;
+			const COUNT_AIRDROP_RECIPIENTS: u64 = 2;
+			const TOKENS_FIXED_SUPPLY: u64 = 100;
+
+			ensure!(!COUNT_AIRDROP_RECIPIENTS.is_zero(), "Divide by zero error.");
+
+			let asset_id = Self::next_asset_id();
+
+			<NextAssetId<T>>::mutate(|asset_id| *asset_id += 1);
+			<Balances<T>>::insert((asset_id, &ACCOUNT_ALICE), TOKENS_FIXED_SUPPLY / COUNT_AIRDROP_RECIPIENTS);
+			<Balances<T>>::insert((asset_id, &ACCOUNT_BOB), TOKENS_FIXED_SUPPLY / COUNT_AIRDROP_RECIPIENTS);
+			<TotalSupply<T>>::insert(asset_id, TOKENS_FIXED_SUPPLY);
+
+			Self::deposit_event(RawEvent::Issued(asset_id, sender, TOKENS_FIXED_SUPPLY));
+			Ok(())
+		}
+	}
+}
+```
+
+## Assumptions
+
+Below are assumptions that must be held when using this module.  If any of
+them are violated, the behavior of this module is undefined.
+
+* The total count of assets should be less than
+  `Trait::AssetId::max_value()`.
+
+## Related Modules
+
+* [`System`](../frame_system/index.html)
+* [`Support`](../frame_support/index.html)
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/atomic-swap/Cargo.toml b/substrate/frame/atomic-swap/Cargo.toml
index 704d22ba780..982cd7d6cb8 100644
--- a/substrate/frame/atomic-swap/Cargo.toml
+++ b/substrate/frame/atomic-swap/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-atomic-swap"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
 
 [dev-dependencies]
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/atomic-swap/README.md b/substrate/frame/atomic-swap/README.md
new file mode 100644
index 00000000000..f2be32554cb
--- /dev/null
+++ b/substrate/frame/atomic-swap/README.md
@@ -0,0 +1,23 @@
+# Atomic Swap
+
+A module for atomically sending funds.
+
+- [`atomic_swap::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+## Overview
+
+A module for atomically sending funds from an origin to a target. A proof
+is used to allow the target to approve (claim) the swap. If the swap is not
+claimed within a specified duration of time, the sender may cancel it.
+
+## Interface
+
+### Dispatchable Functions
+
+* `create_swap` - called by a sender to register a new atomic swap
+* `claim_swap` - called by the target to approve a swap
+* `cancel_swap` - may be called by a sender after a specified duration
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/aura/Cargo.toml b/substrate/frame/aura/Cargo.toml
index cc9b1bf6f66..283462f5cc6 100644
--- a/substrate/frame/aura/Cargo.toml
+++ b/substrate/frame/aura/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-aura"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,23 +12,23 @@ description = "FRAME AURA consensus pallet"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/application-crypto" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/application-crypto" }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
 serde = { version = "1.0.101", optional = true }
-pallet-session = { version = "2.0.0-rc5", default-features = false, path = "../session" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-sp-consensus-aura = { version = "0.8.0-rc5", path = "../../primitives/consensus/aura", default-features = false }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/timestamp" }
-pallet-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../timestamp" }
+pallet-session = { version = "2.0.0-rc6", default-features = false, path = "../session" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+sp-consensus-aura = { version = "0.8.0-rc6", path = "../../primitives/consensus/aura", default-features = false }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/timestamp" }
+pallet-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../timestamp" }
 
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-io ={ version = "2.0.0-rc5", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-io ={ version = "2.0.0-rc6", path = "../../primitives/io" }
 lazy_static = "1.4.0"
 parking_lot = "0.10.0"
 
diff --git a/substrate/frame/aura/README.md b/substrate/frame/aura/README.md
new file mode 100644
index 00000000000..59747493193
--- /dev/null
+++ b/substrate/frame/aura/README.md
@@ -0,0 +1,28 @@
+# Aura Module
+
+- [`aura::Trait`](./trait.Trait.html)
+- [`Module`](./struct.Module.html)
+
+## Overview
+
+The Aura module extends Aura consensus by managing offline reporting.
+
+## Interface
+
+### Public Functions
+
+- `slot_duration` - Determine the Aura slot-duration based on the Timestamp module configuration.
+
+## Related Modules
+
+- [Timestamp](../pallet_timestamp/index.html): The Timestamp module is used in Aura to track
+consensus rounds (via `slots`).
+
+## References
+
+If you're interested in hacking on this module, it is useful to understand the interaction with
+`substrate/primitives/inherents/src/lib.rs` and, specifically, the required implementation of
+[`ProvideInherent`](../sp_inherents/trait.ProvideInherent.html) and
+[`ProvideInherentData`](../sp_inherents/trait.ProvideInherentData.html) to create and check inherents.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/authority-discovery/Cargo.toml b/substrate/frame/authority-discovery/Cargo.toml
index bfd7017d06f..26fa250d720 100644
--- a/substrate/frame/authority-discovery/Cargo.toml
+++ b/substrate/frame/authority-discovery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-authority-discovery"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,20 +12,20 @@ description = "FRAME pallet for authority discovery"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-authority-discovery = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/authority-discovery" }
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/application-crypto" }
+sp-authority-discovery = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/authority-discovery" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/application-crypto" }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
 serde = { version = "1.0.101", optional = true }
-pallet-session = { version = "2.0.0-rc5", features = ["historical" ], path = "../session", default-features = false }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+pallet-session = { version = "2.0.0-rc6", features = ["historical" ], path = "../session", default-features = false }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/staking" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/staking" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/authority-discovery/README.md b/substrate/frame/authority-discovery/README.md
new file mode 100644
index 00000000000..9a534dcbeb6
--- /dev/null
+++ b/substrate/frame/authority-discovery/README.md
@@ -0,0 +1,6 @@
+# Authority discovery module.
+
+This module is used by the `client/authority-discovery` to retrieve the
+current set of authorities.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/authorship/Cargo.toml b/substrate/frame/authorship/Cargo.toml
index 9ddd24888ca..f351b2d6670 100644
--- a/substrate/frame/authorship/Cargo.toml
+++ b/substrate/frame/authorship/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-authorship"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 description = "Block and Uncle Author tracking for the FRAME"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -13,17 +13,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-sp-authorship = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/authorship" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+sp-authorship = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/authorship" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 impl-trait-for-tuples = "0.1.3"
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-io ={ version = "2.0.0-rc5", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-io ={ version = "2.0.0-rc6", path = "../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/authorship/README.md b/substrate/frame/authorship/README.md
new file mode 100644
index 00000000000..d61747da3e1
--- /dev/null
+++ b/substrate/frame/authorship/README.md
@@ -0,0 +1,5 @@
+Authorship tracking for FRAME runtimes.
+
+This tracks the current author of the block and recent uncles.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/babe/Cargo.toml b/substrate/frame/babe/Cargo.toml
index e2577e8daf1..5b59dd6b278 100644
--- a/substrate/frame/babe/Cargo.toml
+++ b/substrate/frame/babe/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-babe"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,31 +13,31 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-authorship = { version = "2.0.0-rc5", default-features = false, path = "../authorship" }
-pallet-session = { version = "2.0.0-rc5", default-features = false, path = "../session" }
-pallet-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../timestamp" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-authorship = { version = "2.0.0-rc6", default-features = false, path = "../authorship" }
+pallet-session = { version = "2.0.0-rc6", default-features = false, path = "../session" }
+pallet-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../timestamp" }
 serde = { version = "1.0.101", optional = true }
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/application-crypto" }
-sp-consensus-babe = { version = "0.8.0-rc5", default-features = false, path = "../../primitives/consensus/babe" }
-sp-consensus-vrf = { version = "0.8.0-rc5", default-features = false, path = "../../primitives/consensus/vrf" }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-session = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/session" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/staking" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/timestamp" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/application-crypto" }
+sp-consensus-babe = { version = "0.8.0-rc6", default-features = false, path = "../../primitives/consensus/babe" }
+sp-consensus-vrf = { version = "0.8.0-rc6", default-features = false, path = "../../primitives/consensus/vrf" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-session = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/session" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/staking" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/timestamp" }
 
 [dev-dependencies]
-frame-benchmarking = { version = "2.0.0-rc5", path = "../benchmarking" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-pallet-offences = { version = "2.0.0-rc5", path = "../offences" }
-pallet-staking = { version = "2.0.0-rc5", path = "../staking" }
-pallet-staking-reward-curve = { version = "2.0.0-rc5", path = "../staking/reward-curve" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+frame-benchmarking = { version = "2.0.0-rc6", path = "../benchmarking" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+pallet-offences = { version = "2.0.0-rc6", path = "../offences" }
+pallet-staking = { version = "2.0.0-rc6", path = "../staking" }
+pallet-staking-reward-curve = { version = "2.0.0-rc6", path = "../staking/reward-curve" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/babe/README.md b/substrate/frame/babe/README.md
new file mode 100644
index 00000000000..6f20be89efc
--- /dev/null
+++ b/substrate/frame/babe/README.md
@@ -0,0 +1,4 @@
+Consensus extension module for BABE consensus. Collects on-chain randomness
+from VRF outputs and manages epoch transitions.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/balances/Cargo.toml b/substrate/frame/balances/Cargo.toml
index e6c8eec65de..3f1a088f889 100644
--- a/substrate/frame/balances/Cargo.toml
+++ b/substrate/frame/balances/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-balances"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,16 +14,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-transaction-payment = { version = "2.0.0-rc5", path = "../transaction-payment" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-transaction-payment = { version = "2.0.0-rc6", path = "../transaction-payment" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/balances/README.md b/substrate/frame/balances/README.md
new file mode 100644
index 00000000000..c5c578848fa
--- /dev/null
+++ b/substrate/frame/balances/README.md
@@ -0,0 +1,122 @@
+# Balances Module
+
+The Balances module provides functionality for handling accounts and balances.
+
+- [`balances::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+## Overview
+
+The Balances module provides functions for:
+
+- Getting and setting free balances.
+- Retrieving total, reserved and unreserved balances.
+- Repatriating a reserved balance to a beneficiary account that exists.
+- Transferring a balance between accounts (when not reserved).
+- Slashing an account balance.
+- Account creation and removal.
+- Managing total issuance.
+- Setting and managing locks.
+
+### Terminology
+
+- **Existential Deposit:** The minimum balance required to create or keep an account open. This prevents
+"dust accounts" from filling storage. When the free plus the reserved balance (i.e. the total balance)
+  fall below this, then the account is said to be dead; and it loses its functionality as well as any
+  prior history and all information on it is removed from the chain's state.
+  No account should ever have a total balance that is strictly between 0 and the existential
+  deposit (exclusive). If this ever happens, it indicates either a bug in this module or an
+  erroneous raw mutation of storage.
+
+- **Total Issuance:** The total number of units in existence in a system.
+
+- **Reaping an account:** The act of removing an account by resetting its nonce. Happens after its
+total balance has become zero (or, strictly speaking, less than the Existential Deposit).
+
+- **Free Balance:** The portion of a balance that is not reserved. The free balance is the only
+  balance that matters for most operations.
+
+- **Reserved Balance:** Reserved balance still belongs to the account holder, but is suspended.
+  Reserved balance can still be slashed, but only after all the free balance has been slashed.
+
+- **Imbalance:** A condition when some funds were credited or debited without equal and opposite accounting
+(i.e. a difference between total issuance and account balances). Functions that result in an imbalance will
+return an object of the `Imbalance` trait that can be managed within your runtime logic. (If an imbalance is
+simply dropped, it should automatically maintain any book-keeping such as total issuance.)
+
+- **Lock:** A freeze on a specified amount of an account's free balance until a specified block number. Multiple
+locks always operate over the same funds, so they "overlay" rather than "stack".
+
+### Implementations
+
+The Balances module provides implementations for the following traits. If these traits provide the functionality
+that you need, then you can avoid coupling with the Balances module.
+
+- [`Currency`](../frame_support/traits/trait.Currency.html): Functions for dealing with a
+fungible assets system.
+- [`ReservableCurrency`](../frame_support/traits/trait.ReservableCurrency.html):
+Functions for dealing with assets that can be reserved from an account.
+- [`LockableCurrency`](../frame_support/traits/trait.LockableCurrency.html): Functions for
+dealing with accounts that allow liquidity restrictions.
+- [`Imbalance`](../frame_support/traits/trait.Imbalance.html): Functions for handling
+imbalances between total issuance in the system and account balances. Must be used when a function
+creates new funds (e.g. a reward) or destroys some funds (e.g. a system fee).
+- [`IsDeadAccount`](../frame_system/trait.IsDeadAccount.html): Determiner to say whether a
+given account is unused.
+
+## Interface
+
+### Dispatchable Functions
+
+- `transfer` - Transfer some liquid free balance to another account.
+- `set_balance` - Set the balances of a given account. The origin of this call must be root.
+
+## Usage
+
+The following examples show how to use the Balances module in your custom module.
+
+### Examples from the FRAME
+
+The Contract module uses the `Currency` trait to handle gas payment, and its types inherit from `Currency`:
+
+```rust
+use frame_support::traits::Currency;
+
+pub type BalanceOf<T> = <<T as Trait>::Currency as Currency<<T as frame_system::Trait>::AccountId>>::Balance;
+pub type NegativeImbalanceOf<T> = <<T as Trait>::Currency as Currency<<T as frame_system::Trait>::AccountId>>::NegativeImbalance;
+
+```
+
+The Staking module uses the `LockableCurrency` trait to lock a stash account's funds:
+
+```rust
+use frame_support::traits::{WithdrawReasons, LockableCurrency};
+use sp_runtime::traits::Bounded;
+pub trait Trait: frame_system::Trait {
+	type Currency: LockableCurrency<Self::AccountId, Moment=Self::BlockNumber>;
+}
+
+fn update_ledger<T: Trait>(
+	controller: &T::AccountId,
+	ledger: &StakingLedger<T>
+) {
+	T::Currency::set_lock(
+		STAKING_ID,
+		&ledger.stash,
+		ledger.total,
+		WithdrawReasons::all()
+	);
+	// <Ledger<T>>::insert(controller, ledger); // Commented out as we don't have access to Staking's storage here.
+}
+```
+
+## Genesis config
+
+The Balances module depends on the [`GenesisConfig`](./struct.GenesisConfig.html).
+
+## Assumptions
+
+* Total issued balanced of all accounts should be less than `Trait::Balance::max_value()`.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/benchmark/Cargo.toml b/substrate/frame/benchmark/Cargo.toml
index 43e131c2dc7..f731ebcbacf 100644
--- a/substrate/frame/benchmark/Cargo.toml
+++ b/substrate/frame/benchmark/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-benchmark"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,12 +14,12 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.0.0", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/benchmark/README.md b/substrate/frame/benchmark/README.md
new file mode 100644
index 00000000000..e00e11292e1
--- /dev/null
+++ b/substrate/frame/benchmark/README.md
@@ -0,0 +1,5 @@
+A pallet that contains common runtime patterns in an isolated manner.
+This pallet is **not** meant to be used in a production blockchain, just
+for benchmarking and testing purposes.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/benchmarking/Cargo.toml b/substrate/frame/benchmarking/Cargo.toml
index 917988a825f..8011ce779df 100644
--- a/substrate/frame/benchmarking/Cargo.toml
+++ b/substrate/frame/benchmarking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-benchmarking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,14 +15,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 linregress = "0.1"
 paste = "0.1"
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-sp-api = { version = "2.0.0-rc5", path = "../../primitives/api", default-features = false }
-sp-runtime-interface = { version = "2.0.0-rc5", path = "../../primitives/runtime-interface", default-features = false }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime", default-features = false }
-sp-std = { version = "2.0.0-rc5", path = "../../primitives/std", default-features = false }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io", default-features = false }
-sp-storage = { version = "2.0.0-rc5", path = "../../primitives/storage", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-api = { version = "2.0.0-rc6", path = "../../primitives/api", default-features = false }
+sp-runtime-interface = { version = "2.0.0-rc6", path = "../../primitives/runtime-interface", default-features = false }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime", default-features = false }
+sp-std = { version = "2.0.0-rc6", path = "../../primitives/std", default-features = false }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io", default-features = false }
+sp-storage = { version = "2.0.0-rc6", path = "../../primitives/storage", default-features = false }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
 hex-literal = "0.2.1"
diff --git a/substrate/frame/benchmarking/README.md b/substrate/frame/benchmarking/README.md
new file mode 100644
index 00000000000..1e06135e345
--- /dev/null
+++ b/substrate/frame/benchmarking/README.md
@@ -0,0 +1,3 @@
+Macro for benchmarking a FRAME runtime.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/collective/Cargo.toml b/substrate/frame/collective/Cargo.toml
index b1db6fe6b97..38fb3d6cd3b 100644
--- a/substrate/frame/collective/Cargo.toml
+++ b/substrate/frame/collective/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-collective"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,17 +14,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
 hex-literal = "0.2.1"
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/collective/README.md b/substrate/frame/collective/README.md
new file mode 100644
index 00000000000..e4928dbcf2d
--- /dev/null
+++ b/substrate/frame/collective/README.md
@@ -0,0 +1,22 @@
+Collective system: Members of a set of account IDs can make their collective feelings known
+through dispatched calls from one of two specialized origins.
+
+The membership can be provided in one of two ways: either directly, using the Root-dispatchable
+function `set_members`, or indirectly, through implementing the `ChangeMembers`.
+The pallet assumes that the amount of members stays at or below `MAX_MEMBERS` for its weight
+calculations, but enforces this neither in `set_members` nor in `change_members_sorted`.
+
+A "prime" member may be set allowing their vote to act as the default vote in case of any
+abstentions after the voting period.
+
+Voting happens through motions comprising a proposal (i.e. a curried dispatchable) plus a
+number of approvals required for it to pass and be called. Motions are open for members to
+vote on for a minimum period given by `MotionDuration`. As soon as the needed number of
+approvals is given, the motion is closed and executed. If the number of approvals is not reached
+during the voting period, then `close` may be called by any account in order to force the end
+the motion explicitly. If a prime member is defined then their vote is used in place of any
+abstentions and the proposal is executed if there are enough approvals counting the new votes.
+
+If there are not, or if no prime is set, then the motion is dropped without being executed.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/contracts/Cargo.toml b/substrate/frame/contracts/Cargo.toml
index 1a42af6833b..4d3083720a6 100644
--- a/substrate/frame/contracts/Cargo.toml
+++ b/substrate/frame/contracts/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,27 +14,27 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 bitflags = "1.0"
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-contracts-primitives = { version = "2.0.0-rc5", default-features = false, path = "common" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-contracts-primitives = { version = "2.0.0-rc6", default-features = false, path = "common" }
 parity-wasm = { version = "0.41.0", default-features = false }
 pwasm-utils = { version = "0.14.0", default-features = false }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-sandbox = { version = "0.8.0-rc5", default-features = false, path = "../../primitives/sandbox" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-sandbox = { version = "0.8.0-rc6", default-features = false, path = "../../primitives/sandbox" }
 wasmi-validation = { version = "0.3.0", default-features = false }
 wat = { version = "1.0", optional = true, default-features = false }
 
 [dev-dependencies]
 assert_matches = "1.3.0"
 hex-literal = "0.2.1"
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-pallet-timestamp = { version = "2.0.0-rc5", path = "../timestamp" }
-pallet-randomness-collective-flip = { version = "2.0.0-rc5", path = "../randomness-collective-flip" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+pallet-timestamp = { version = "2.0.0-rc6", path = "../timestamp" }
+pallet-randomness-collective-flip = { version = "2.0.0-rc6", path = "../randomness-collective-flip" }
 pretty_assertions = "0.6.1"
 wat = "1.0"
 
diff --git a/substrate/frame/contracts/README.md b/substrate/frame/contracts/README.md
new file mode 100644
index 00000000000..f2d58048c34
--- /dev/null
+++ b/substrate/frame/contracts/README.md
@@ -0,0 +1,64 @@
+# Contract Module
+
+The Contract module provides functionality for the runtime to deploy and execute WebAssembly smart-contracts.
+
+- [`contract::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+This module extends accounts based on the `Currency` trait to have smart-contract functionality. It can
+be used with other modules that implement accounts based on `Currency`. These "smart-contract accounts"
+have the ability to instantiate smart-contracts and make calls to other contract and non-contract accounts.
+
+The smart-contract code is stored once in a `code_cache`, and later retrievable via its `code_hash`.
+This means that multiple smart-contracts can be instantiated from the same `code_cache`, without replicating
+the code each time.
+
+When a smart-contract is called, its associated code is retrieved via the code hash and gets executed.
+This call can alter the storage entries of the smart-contract account, instantiate new smart-contracts,
+or call other smart-contracts.
+
+Finally, when an account is reaped, its associated code and storage of the smart-contract account
+will also be deleted.
+
+### Gas
+
+Senders must specify a gas limit with every call, as all instructions invoked by the smart-contract require gas.
+Unused gas is refunded after the call, regardless of the execution outcome.
+
+If the gas limit is reached, then all calls and state changes (including balance transfers) are only
+reverted at the current call's contract level. For example, if contract A calls B and B runs out of gas mid-call,
+then all of B's calls are reverted. Assuming correct error handling by contract A, A's other calls and state
+changes still persist.
+
+### Notable Scenarios
+
+Contract call failures are not always cascading. When failures occur in a sub-call, they do not "bubble up",
+and the call will only revert at the specific contract level. For example, if contract A calls contract B, and B
+fails, A can decide how to handle that failure, either proceeding or reverting A's changes.
+
+## Interface
+
+### Dispatchable functions
+
+* `put_code` - Stores the given binary Wasm code into the chain's storage and returns its `code_hash`.
+* `instantiate` - Deploys a new contract from the given `code_hash`, optionally transferring some balance.
+This instantiates a new smart contract account and calls its contract deploy handler to
+initialize the contract.
+* `call` - Makes a call to an account, optionally transferring some balance.
+
+## Usage
+
+The Contract module is a work in progress. The following examples show how this Contract module
+can be used to instantiate and call contracts.
+
+* [`ink`](https://github.com/paritytech/ink) is
+an [`eDSL`](https://wiki.haskell.org/Embedded_domain_specific_language) that enables writing
+WebAssembly based smart contracts in the Rust programming language. This is a work in progress.
+
+## Related Modules
+
+* [Balances](../pallet_balances/index.html)
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/contracts/common/Cargo.toml b/substrate/frame/contracts/common/Cargo.toml
index a8f5e407600..d397a280591 100644
--- a/substrate/frame/contracts/common/Cargo.toml
+++ b/substrate/frame/contracts/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts-primitives"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,8 +14,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 # This crate should not rely on any of the frame primitives.
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/contracts/common/README.md b/substrate/frame/contracts/common/README.md
new file mode 100644
index 00000000000..12718cd8642
--- /dev/null
+++ b/substrate/frame/contracts/common/README.md
@@ -0,0 +1,3 @@
+A crate that hosts a common definitions that are relevant for the pallet-contracts.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/contracts/rpc/Cargo.toml b/substrate/frame/contracts/rpc/Cargo.toml
index c6b8fc8ac10..0de6bc105a9 100644
--- a/substrate/frame/contracts/rpc/Cargo.toml
+++ b/substrate/frame/contracts/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts-rpc"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,14 +16,14 @@ codec = { package = "parity-scale-codec", version = "1.3.4" }
 jsonrpc-core = "14.2.0"
 jsonrpc-core-client = "14.2.0"
 jsonrpc-derive = "14.2.1"
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-rpc = { version = "2.0.0-rc5", path = "../../../primitives/rpc" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-rpc = { version = "2.0.0-rc6", path = "../../../primitives/rpc" }
 serde = { version = "1.0.101", features = ["derive"] }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-pallet-contracts-primitives = { version = "2.0.0-rc5", path = "../common" }
-pallet-contracts-rpc-runtime-api = { version = "0.8.0-rc5", path = "./runtime-api" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+pallet-contracts-primitives = { version = "2.0.0-rc6", path = "../common" }
+pallet-contracts-rpc-runtime-api = { version = "0.8.0-rc6", path = "./runtime-api" }
 
 [dev-dependencies]
 serde_json = "1.0.41"
diff --git a/substrate/frame/contracts/rpc/README.md b/substrate/frame/contracts/rpc/README.md
new file mode 100644
index 00000000000..be6df237bf6
--- /dev/null
+++ b/substrate/frame/contracts/rpc/README.md
@@ -0,0 +1,3 @@
+Node-specific RPC methods for interaction with contracts.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/contracts/rpc/runtime-api/Cargo.toml b/substrate/frame/contracts/rpc/runtime-api/Cargo.toml
index a9266b986c6..fcb57d0a69f 100644
--- a/substrate/frame/contracts/rpc/runtime-api/Cargo.toml
+++ b/substrate/frame/contracts/rpc/runtime-api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-contracts-rpc-runtime-api"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,11 +12,11 @@ description = "Runtime API definition required by Contracts RPC extensions."
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../../../primitives/api" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../../../primitives/api" }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../../primitives/runtime" }
-pallet-contracts-primitives = { version = "2.0.0-rc5", default-features = false, path = "../../common" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../../primitives/runtime" }
+pallet-contracts-primitives = { version = "2.0.0-rc6", default-features = false, path = "../../common" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/contracts/rpc/runtime-api/README.md b/substrate/frame/contracts/rpc/runtime-api/README.md
new file mode 100644
index 00000000000..d57f29a93bd
--- /dev/null
+++ b/substrate/frame/contracts/rpc/runtime-api/README.md
@@ -0,0 +1,7 @@
+Runtime API definition required by Contracts RPC extensions.
+
+This API should be imported and implemented by the runtime,
+of a node that wants to use the custom RPC extension
+adding Contracts access methods.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/democracy/Cargo.toml b/substrate/frame/democracy/Cargo.toml
index 3d67b4d0ec5..ac3d4419502 100644
--- a/substrate/frame/democracy/Cargo.toml
+++ b/substrate/frame/democracy/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-democracy"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,19 +14,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-pallet-scheduler = { version = "2.0.0-rc5", path = "../scheduler" }
-sp-storage = { version = "2.0.0-rc5", path = "../../primitives/storage" }
-substrate-test-utils = { version = "2.0.0-rc5", path = "../../test-utils" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+pallet-scheduler = { version = "2.0.0-rc6", path = "../scheduler" }
+sp-storage = { version = "2.0.0-rc6", path = "../../primitives/storage" }
+substrate-test-utils = { version = "2.0.0-rc6", path = "../../test-utils" }
 hex-literal = "0.2.1"
 
 [features]
diff --git a/substrate/frame/democracy/README.md b/substrate/frame/democracy/README.md
new file mode 100644
index 00000000000..0f836f1158c
--- /dev/null
+++ b/substrate/frame/democracy/README.md
@@ -0,0 +1,135 @@
+# Democracy Pallet
+
+- [`democracy::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+The Democracy pallet handles the administration of general stakeholder voting.
+
+There are two different queues that a proposal can be added to before it
+becomes a referendum, 1) the proposal queue consisting of all public proposals
+and 2) the external queue consisting of a single proposal that originates
+from one of the _external_ origins (such as a collective group).
+
+Every launch period - a length defined in the runtime - the Democracy pallet
+launches a referendum from a proposal that it takes from either the proposal
+queue or the external queue in turn. Any token holder in the system can vote
+on referenda. The voting system
+uses time-lock voting by allowing the token holder to set their _conviction_
+behind a vote. The conviction will dictate the length of time the tokens
+will be locked, as well as the multiplier that scales the vote power.
+
+### Terminology
+
+- **Enactment Period:** The minimum period of locking and the period between a proposal being
+approved and enacted.
+- **Lock Period:** A period of time after proposal enactment that the tokens of _winning_ voters
+will be locked.
+- **Conviction:** An indication of a voter's strength of belief in their vote. An increase
+of one in conviction indicates that a token holder is willing to lock their tokens for twice
+as many lock periods after enactment.
+- **Vote:** A value that can either be in approval ("Aye") or rejection ("Nay")
+  of a particular referendum.
+- **Proposal:** A submission to the chain that represents an action that a proposer (either an
+account or an external origin) suggests that the system adopt.
+- **Referendum:** A proposal that is in the process of being voted on for
+  either acceptance or rejection as a change to the system.
+- **Delegation:** The act of granting your voting power to the decisions of another account for
+  up to a certain conviction.
+
+### Adaptive Quorum Biasing
+
+A _referendum_ can be either simple majority-carries in which 50%+1 of the
+votes decide the outcome or _adaptive quorum biased_. Adaptive quorum biasing
+makes the threshold for passing or rejecting a referendum higher or lower
+depending on how the referendum was originally proposed. There are two types of
+adaptive quorum biasing: 1) _positive turnout bias_ makes a referendum
+require a super-majority to pass that decreases as turnout increases and
+2) _negative turnout bias_ makes a referendum require a super-majority to
+reject that decreases as turnout increases. Another way to think about the
+quorum biasing is that _positive bias_ referendums will be rejected by
+default and _negative bias_ referendums get passed by default.
+
+## Interface
+
+### Dispatchable Functions
+
+#### Public
+
+These calls can be made from any externally held account capable of creating
+a signed extrinsic.
+
+Basic actions:
+- `propose` - Submits a sensitive action, represented as a hash. Requires a deposit.
+- `second` - Signals agreement with a proposal, moves it higher on the proposal queue, and
+  requires a matching deposit to the original.
+- `vote` - Votes in a referendum, either the vote is "Aye" to enact the proposal or "Nay" to
+  keep the status quo.
+- `unvote` - Cancel a previous vote, this must be done by the voter before the vote ends.
+- `delegate` - Delegates the voting power (tokens * conviction) to another account.
+- `undelegate` - Stops the delegation of voting power to another account.
+
+Administration actions that can be done to any account:
+- `reap_vote` - Remove some account's expired votes.
+- `unlock` - Redetermine the account's balance lock, potentially making tokens available.
+
+Preimage actions:
+- `note_preimage` - Registers the preimage for an upcoming proposal, requires
+  a deposit that is returned once the proposal is enacted.
+- `note_preimage_operational` - same but provided by `T::OperationalPreimageOrigin`.
+- `note_imminent_preimage` - Registers the preimage for an upcoming proposal.
+  Does not require a deposit, but the proposal must be in the dispatch queue.
+- `note_imminent_preimage_operational` - same but provided by `T::OperationalPreimageOrigin`.
+- `reap_preimage` - Removes the preimage for an expired proposal. Will only
+  work under the condition that it's the same account that noted it and
+  after the voting period, OR it's a different account after the enactment period.
+
+#### Cancellation Origin
+
+This call can only be made by the `CancellationOrigin`.
+
+- `emergency_cancel` - Schedules an emergency cancellation of a referendum.
+  Can only happen once to a specific referendum.
+
+#### ExternalOrigin
+
+This call can only be made by the `ExternalOrigin`.
+
+- `external_propose` - Schedules a proposal to become a referendum once it is is legal
+  for an externally proposed referendum.
+
+#### External Majority Origin
+
+This call can only be made by the `ExternalMajorityOrigin`.
+
+- `external_propose_majority` - Schedules a proposal to become a majority-carries
+	 referendum once it is legal for an externally proposed referendum.
+
+#### External Default Origin
+
+This call can only be made by the `ExternalDefaultOrigin`.
+
+- `external_propose_default` - Schedules a proposal to become a negative-turnout-bias
+  referendum once it is legal for an externally proposed referendum.
+
+#### Fast Track Origin
+
+This call can only be made by the `FastTrackOrigin`.
+
+- `fast_track` - Schedules the current externally proposed proposal that
+  is "majority-carries" to become a referendum immediately.
+
+#### Veto Origin
+
+This call can only be made by the `VetoOrigin`.
+
+- `veto_external` - Vetoes and blacklists the external proposal hash.
+
+#### Root
+
+- `cancel_referendum` - Removes a referendum.
+- `cancel_queued` - Cancels a proposal that is queued for enactment.
+- `clear_public_proposal` - Removes all public proposals.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/elections-phragmen/Cargo.toml b/substrate/frame/elections-phragmen/Cargo.toml
index 83ac253a8ba..3f27df1c564 100644
--- a/substrate/frame/elections-phragmen/Cargo.toml
+++ b/substrate/frame/elections-phragmen/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-elections-phragmen"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,19 +14,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-npos-elections = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/npos-elections" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-npos-elections = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/npos-elections" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
 hex-literal = "0.2.1"
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-substrate-test-utils = { version = "2.0.0-rc5", path = "../../test-utils" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+substrate-test-utils = { version = "2.0.0-rc6", path = "../../test-utils" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/elections-phragmen/README.md b/substrate/frame/elections-phragmen/README.md
new file mode 100644
index 00000000000..651b8f6aa69
--- /dev/null
+++ b/substrate/frame/elections-phragmen/README.md
@@ -0,0 +1,67 @@
+# Phragmén Election Module.
+
+An election module based on sequential phragmen.
+
+### Term and Round
+
+The election happens in _rounds_: every `N` blocks, all previous members are retired and a new
+set is elected (which may or may not have an intersection with the previous set). Each round
+lasts for some number of blocks defined by `TermDuration` storage item. The words _term_ and
+_round_ can be used interchangeably in this context.
+
+`TermDuration` might change during a round. This can shorten or extend the length of the round.
+The next election round's block number is never stored but rather always checked on the fly.
+Based on the current block number and `TermDuration`, the condition `BlockNumber % TermDuration
+== 0` being satisfied will always trigger a new election round.
+
+### Voting
+
+Voters can vote for any set of the candidates by providing a list of account ids. Invalid votes
+(voting for non-candidates) are ignored during election. Yet, a voter _might_ vote for a future
+candidate. Voters reserve a bond as they vote. Each vote defines a `value`. This amount is
+locked from the account of the voter and indicates the weight of the vote. Voters can update
+their votes at any time by calling `vote()` again. This keeps the bond untouched but can
+optionally change the locked `value`. After a round, votes are kept and might still be valid for
+further rounds. A voter is responsible for calling `remove_voter` once they are done to have
+their bond back and remove the lock.
+
+Voters also report other voters as being defunct to earn their bond. A voter is defunct once all
+of the candidates that they have voted for are neither a valid candidate anymore nor a member.
+Upon reporting, if the target voter is actually defunct, the reporter will be rewarded by the
+voting bond of the target. The target will lose their bond and get removed. If the target is not
+defunct, the reporter is slashed and removed. To prevent being reported, voters should manually
+submit a `remove_voter()` as soon as they are in the defunct state.
+
+### Candidacy and Members
+
+Candidates also reserve a bond as they submit candidacy. A candidate cannot take their candidacy
+back. A candidate can end up in one of the below situations:
+  - **Winner**: A winner is kept as a _member_. They must still have a bond in reserve and they
+    are automatically counted as a candidate for the next election.
+  - **Runner-up**: Runners-up are the best candidates immediately after the winners. The number
+    of runners_up to keep is configurable. Runners-up are used, in order that they are elected,
+    as replacements when a candidate is kicked by `[remove_member]`, or when an active member
+    renounces their candidacy. Runners are automatically counted as a candidate for the next
+    election.
+  - **Loser**: Any of the candidate who are not a winner are left as losers. A loser might be an
+    _outgoing member or runner_, meaning that they are an active member who failed to keep their
+    spot. An outgoing will always lose their bond.
+
+##### Renouncing candidacy.
+
+All candidates, elected or not, can renounce their candidacy. A call to [`Module::renounce_candidacy`]
+will always cause the candidacy bond to be refunded.
+
+Note that with the members being the default candidates for the next round and votes persisting
+in storage, the election system is entirely stable given no further input. This means that if
+the system has a particular set of candidates `C` and voters `V` that lead to a set of members
+`M` being elected, as long as `V` and `C` don't remove their candidacy and votes, `M` will keep
+being re-elected at the end of each round.
+
+### Module Information
+
+- [`election_sp_phragmen::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/elections/Cargo.toml b/substrate/frame/elections/Cargo.toml
index 8226512a626..58dba26af98 100644
--- a/substrate/frame/elections/Cargo.toml
+++ b/substrate/frame/elections/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-elections"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,16 +14,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
 hex-literal = "0.2.1"
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/elections/README.md b/substrate/frame/elections/README.md
new file mode 100644
index 00000000000..1f6fd42331c
--- /dev/null
+++ b/substrate/frame/elections/README.md
@@ -0,0 +1,7 @@
+Election module for stake-weighted membership selection of a collective.
+
+The composition of a set of account IDs works according to one or more approval votes
+weighted by stake. There is a partial carry-over facility to give greater weight to those
+whose voting is serially unsuccessful.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/evm/Cargo.toml b/substrate/frame/evm/Cargo.toml
index 43ecc6f3688..0f14f3afe48 100644
--- a/substrate/frame/evm/Cargo.toml
+++ b/substrate/frame/evm/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-evm"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,14 +14,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../timestamp" }
-pallet-balances = { version = "2.0.0-rc5", default-features = false, path = "../balances" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../timestamp" }
+pallet-balances = { version = "2.0.0-rc6", default-features = false, path = "../balances" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
 primitive-types = { version = "0.7.0", default-features = false, features = ["rlp"] }
 rlp = { version = "0.4", default-features = false }
 evm = { version = "0.17", default-features = false }
diff --git a/substrate/frame/evm/README.md b/substrate/frame/evm/README.md
new file mode 100644
index 00000000000..f8feadbf58e
--- /dev/null
+++ b/substrate/frame/evm/README.md
@@ -0,0 +1,3 @@
+EVM execution module for Substrate
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/example-offchain-worker/Cargo.toml b/substrate/frame/example-offchain-worker/Cargo.toml
index 5f11bd54a45..d8bc2a697db 100644
--- a/substrate/frame/example-offchain-worker/Cargo.toml
+++ b/substrate/frame/example-offchain-worker/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-example-offchain-worker"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Unlicense"
@@ -13,13 +13,13 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 serde = { version = "1.0.101", optional = true }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
 lite-json = { version = "0.1", default-features = false }
 
 [features]
diff --git a/substrate/frame/example-offchain-worker/README.md b/substrate/frame/example-offchain-worker/README.md
new file mode 100644
index 00000000000..51ddaa3a9ec
--- /dev/null
+++ b/substrate/frame/example-offchain-worker/README.md
@@ -0,0 +1,26 @@
+# Offchain Worker Example Module
+
+The Offchain Worker Example: A simple pallet demonstrating
+concepts, APIs and structures common to most offchain workers.
+
+Run `cargo doc --package pallet-example-offchain-worker --open` to view this module's
+documentation.
+
+- [`pallet_example_offchain_worker::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+
+## Overview
+
+In this example we are going to build a very simplistic, naive and definitely NOT
+production-ready oracle for BTC/USD price.
+Offchain Worker (OCW) will be triggered after every block, fetch the current price
+and prepare either signed or unsigned transaction to feed the result back on chain.
+The on-chain logic will simply aggregate the results and store last `64` values to compute
+the average price.
+Additional logic in OCW is put in place to prevent spamming the network with both signed
+and unsigned transactions, and custom `UnsignedValidator` makes sure that there is only
+one unsigned transaction floating in the network.
+
+License: Unlicense
\ No newline at end of file
diff --git a/substrate/frame/example/Cargo.toml b/substrate/frame/example/Cargo.toml
index 2f7af90d76d..29e1208419d 100644
--- a/substrate/frame/example/Cargo.toml
+++ b/substrate/frame/example/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-example"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Unlicense"
@@ -14,17 +14,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-balances = { version = "2.0.0-rc5", default-features = false, path = "../balances" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-balances = { version = "2.0.0-rc6", default-features = false, path = "../balances" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
 
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core", default-features = false }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core", default-features = false }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/example/README.md b/substrate/frame/example/README.md
new file mode 100644
index 00000000000..8f4729a4ce4
--- /dev/null
+++ b/substrate/frame/example/README.md
@@ -0,0 +1,237 @@
+# Example Pallet
+
+<!-- Original author of paragraph: @gavofyork -->
+The Example: A simple example of a FRAME pallet demonstrating
+concepts, APIs and structures common to most FRAME runtimes.
+
+Run `cargo doc --package pallet-example --open` to view this pallet's documentation.
+
+### Documentation Guidelines:
+
+<!-- Original author of paragraph: Various. Based on collation of review comments to PRs addressing issues with -->
+<!-- label 'S3-FRAME' in https://github.com/paritytech/substrate-developer-hub/issues -->
+<ul>
+    <li>Documentation comments (i.e. <code>/// comment</code>) - should
+        accompany pallet functions and be restricted to the pallet interface,
+        not the internals of the pallet implementation. Only state inputs,
+        outputs, and a brief description that mentions whether calling it
+        requires root, but without repeating the source code details.
+        Capitalize the first word of each documentation comment and end it with
+        a full stop. See
+        <a href="https://github.com/paritytech/substrate#72-contributing-to-documentation-for-substrate-packages"
+        target="_blank"> Generic example of annotating source code with documentation comments</a></li>
+    <li>Self-documenting code - Try to refactor code to be self-documenting.</li>
+    <li>Code comments - Supplement complex code with a brief explanation, not every line of code.</li>
+    <li>Identifiers - surround by backticks (i.e. <code>INHERENT_IDENTIFIER</code>, <code>InherentType</code>,
+        <code>u64</code>)</li>
+    <li>Usage scenarios - should be simple doctests. The compiler should ensure they stay valid.</li>
+    <li>Extended tutorials - should be moved to external files and refer to.</li>
+    <!-- Original author of paragraph: @AmarRSingh -->
+    <li>Mandatory - include all of the sections/subsections where <b>MUST</b> is specified.</li>
+    <li>Optional - optionally include sections/subsections where <b>CAN</b> is specified.</li>
+</ul>
+
+### Documentation Template:<br>
+
+Copy and paste this template from frame/example/src/lib.rs into file
+`frame/<INSERT_CUSTOM_PALLET_NAME>/src/lib.rs` of your own custom pallet and complete it.
+<details><p><pre>
+// Add heading with custom pallet name
+
+\# <INSERT_CUSTOM_PALLET_NAME> Pallet
+
+// Add simple description
+
+// Include the following links that shows what trait needs to be implemented to use the pallet
+// and the supported dispatchables that are documented in the Call enum.
+
+- \[`<INSERT_CUSTOM_PALLET_NAME>::Trait`](./trait.Trait.html)
+- \[`Call`](./enum.Call.html)
+- \[`Module`](./struct.Module.html)
+
+\## Overview
+
+<!-- Original author of paragraph: Various. See https://github.com/paritytech/substrate-developer-hub/issues/44 -->
+// Short description of pallet's purpose.
+// Links to Traits that should be implemented.
+// What this pallet is for.
+// What functionality the pallet provides.
+// When to use the pallet (use case examples).
+// How it is used.
+// Inputs it uses and the source of each input.
+// Outputs it produces.
+
+<!-- Original author of paragraph: @Kianenigma in PR https://github.com/paritytech/substrate/pull/1951 -->
+<!-- and comment https://github.com/paritytech/substrate-developer-hub/issues/44#issuecomment-471982710 -->
+
+\## Terminology
+
+// Add terminology used in the custom pallet. Include concepts, storage items, or actions that you think
+// deserve to be noted to give context to the rest of the documentation or pallet usage. The author needs to
+// use some judgment about what is included. We don't want a list of every storage item nor types - the user
+// can go to the code for that. For example, "transfer fee" is obvious and should not be included, but
+// "free balance" and "reserved balance" should be noted to give context to the pallet.
+// Please do not link to outside resources. The reference docs should be the ultimate source of truth.
+
+<!-- Original author of heading: @Kianenigma in PR https://github.com/paritytech/substrate/pull/1951 -->
+
+\## Goals
+
+// Add goals that the custom pallet is designed to achieve.
+
+<!-- Original author of heading: @Kianenigma in PR https://github.com/paritytech/substrate/pull/1951 -->
+
+\### Scenarios
+
+<!-- Original author of paragraph: @Kianenigma. Based on PR https://github.com/paritytech/substrate/pull/1951 -->
+
+\#### <INSERT_SCENARIO_NAME>
+
+// Describe requirements prior to interacting with the custom pallet.
+// Describe the process of interacting with the custom pallet for this scenario and public API functions used.
+
+\## Interface
+
+\### Supported Origins
+
+// What origins are used and supported in this pallet (root, signed, none)
+// i.e. root when <code>\`ensure_root\`</code> used
+// i.e. none when <code>\`ensure_none\`</code> used
+// i.e. signed when <code>\`ensure_signed\`</code> used
+
+<code>\`inherent\`</code> <INSERT_DESCRIPTION>
+
+<!-- Original author of paragraph: @Kianenigma in comment -->
+<!-- https://github.com/paritytech/substrate-developer-hub/issues/44#issuecomment-471982710 -->
+
+\### Types
+
+// Type aliases. Include any associated types and where the user would typically define them.
+
+<code>\`ExampleType\`</code> <INSERT_DESCRIPTION>
+
+<!-- Original author of paragraph: ??? -->
+
+// Reference documentation of aspects such as `storageItems` and `dispatchable` functions should only be
+// included in the https://docs.rs Rustdocs for Substrate and not repeated in the README file.
+
+\### Dispatchable Functions
+
+<!-- Original author of paragraph: @AmarRSingh & @joepetrowski -->
+
+// A brief description of dispatchable functions and a link to the rustdoc with their actual documentation.
+
+// <b>MUST</b> have link to Call enum
+// <b>MUST</b> have origin information included in function doc
+// <b>CAN</b> have more info up to the user
+
+\### Public Functions
+
+<!-- Original author of paragraph: @joepetrowski -->
+
+// A link to the rustdoc and any notes about usage in the pallet, not for specific functions.
+// For example, in the Balances Pallet: "Note that when using the publicly exposed functions,
+// you (the runtime developer) are responsible for implementing any necessary checks
+// (e.g. that the sender is the signer) before calling a function that will affect storage."
+
+<!-- Original author of paragraph: @AmarRSingh -->
+
+// It is up to the writer of the respective pallet (with respect to how much information to provide).
+
+\#### Public Inspection functions - Immutable (getters)
+
+// Insert a subheading for each getter function signature
+
+\##### <code>\`example_getter_name()\`</code>
+
+// What it returns
+// Why, when, and how often to call it
+// When it could panic or error
+// When safety issues to consider
+
+\#### Public Mutable functions (changing state)
+
+// Insert a subheading for each setter function signature
+
+\##### <code>\`example_setter_name(origin, parameter_name: T::ExampleType)\`</code>
+
+// What state it changes
+// Why, when, and how often to call it
+// When it could panic or error
+// When safety issues to consider
+// What parameter values are valid and why
+
+\### Storage Items
+
+// Explain any storage items included in this pallet
+
+\### Digest Items
+
+// Explain any digest items included in this pallet
+
+\### Inherent Data
+
+// Explain what inherent data (if any) is defined in the pallet and any other related types
+
+\### Events:
+
+// Insert events for this pallet if any
+
+\### Errors:
+
+// Explain what generates errors
+
+\## Usage
+
+// Insert 2-3 examples of usage and code snippets that show how to
+// use <INSERT_CUSTOM_PALLET_NAME> Pallet in a custom pallet.
+
+\### Prerequisites
+
+// Show how to include necessary imports for <INSERT_CUSTOM_PALLET_NAME> and derive
+// your pallet configuration trait with the `INSERT_CUSTOM_PALLET_NAME` trait.
+
+\```rust
+use <INSERT_CUSTOM_PALLET_NAME>;
+
+pub trait Trait: <INSERT_CUSTOM_PALLET_NAME>::Trait { }
+\```
+
+\### Simple Code Snippet
+
+// Show a simple example (e.g. how to query a public getter function of <INSERT_CUSTOM_PALLET_NAME>)
+
+\### Example from FRAME
+
+// Show a usage example in an actual runtime
+
+// See:
+// - Substrate TCR https://github.com/parity-samples/substrate-tcr
+// - Substrate Kitties https://shawntabrizi.github.io/substrate-collectables-workshop/#/
+
+\## Genesis Config
+
+<!-- Original author of paragraph: @joepetrowski -->
+
+\## Dependencies
+
+// Dependencies on other FRAME pallets and the genesis config should be mentioned,
+// but not the Rust Standard Library.
+// Genesis configuration modifications that may be made to incorporate this pallet
+// Interaction with other pallets
+
+<!-- Original author of heading: @AmarRSingh -->
+
+\## Related Pallets
+
+// Interaction with other pallets in the form of a bullet point list
+
+\## References
+
+<!-- Original author of paragraph: @joepetrowski -->
+
+// Links to reference material, if applicable. For example, Phragmen, W3F research, etc.
+// that the implementation is based on.
+</pre></p></details>
+
+License: Unlicense
\ No newline at end of file
diff --git a/substrate/frame/executive/Cargo.toml b/substrate/frame/executive/Cargo.toml
index ea123bd6e7f..bb2cd578978 100644
--- a/substrate/frame/executive/Cargo.toml
+++ b/substrate/frame/executive/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-executive"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,22 +13,22 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 serde = { version = "1.0.101", optional = true }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-tracing = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/tracing" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-tracing = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/tracing" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
 
 [dev-dependencies]
 hex-literal = "0.2.1"
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-io ={ version = "2.0.0-rc5", path = "../../primitives/io" }
-pallet-indices = { version = "2.0.0-rc5", path = "../indices" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-pallet-transaction-payment = { version = "2.0.0-rc5", path = "../transaction-payment" }
-sp-version = { version = "2.0.0-rc5", path = "../../primitives/version" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-io ={ version = "2.0.0-rc6", path = "../../primitives/io" }
+pallet-indices = { version = "2.0.0-rc6", path = "../indices" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+pallet-transaction-payment = { version = "2.0.0-rc6", path = "../transaction-payment" }
+sp-version = { version = "2.0.0-rc6", path = "../../primitives/version" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/executive/README.md b/substrate/frame/executive/README.md
new file mode 100644
index 00000000000..017aa5d0444
--- /dev/null
+++ b/substrate/frame/executive/README.md
@@ -0,0 +1,61 @@
+# Executive Module
+
+The Executive module acts as the orchestration layer for the runtime. It dispatches incoming
+extrinsic calls to the respective modules in the runtime.
+
+## Overview
+
+The executive module is not a typical pallet providing functionality around a specific feature.
+It is a cross-cutting framework component for the FRAME. It works in conjunction with the
+[FRAME System module](../frame_system/index.html) to perform these cross-cutting functions.
+
+The Executive module provides functions to:
+
+- Check transaction validity.
+- Initialize a block.
+- Apply extrinsics.
+- Execute a block.
+- Finalize a block.
+- Start an off-chain worker.
+
+### Implementations
+
+The Executive module provides the following implementations:
+
+- `ExecuteBlock`: Trait that can be used to execute a block.
+- `Executive`: Type that can be used to make the FRAME available from the runtime.
+
+## Usage
+
+The default Substrate node template declares the [`Executive`](./struct.Executive.html) type in its library.
+
+### Example
+
+`Executive` type declaration from the node template.
+
+```rust
+#
+/// Executive: handles dispatch to the various modules.
+pub type Executive = executive::Executive<Runtime, Block, Context, Runtime, AllModules>;
+```
+
+### Custom `OnRuntimeUpgrade` logic
+
+You can add custom logic that should be called in your runtime on a runtime upgrade. This is
+done by setting an optional generic parameter. The custom logic will be called before
+the on runtime upgrade logic of all modules is called.
+
+```rust
+#
+struct CustomOnRuntimeUpgrade;
+impl frame_support::traits::OnRuntimeUpgrade for CustomOnRuntimeUpgrade {
+    fn on_runtime_upgrade() -> frame_support::weights::Weight {
+        // Do whatever you want.
+        0
+    }
+}
+
+pub type Executive = executive::Executive<Runtime, Block, Context, Runtime, AllModules, CustomOnRuntimeUpgrade>;
+```
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/finality-tracker/Cargo.toml b/substrate/frame/finality-tracker/Cargo.toml
index 9b54717e4db..2f3d504879e 100644
--- a/substrate/frame/finality-tracker/Cargo.toml
+++ b/substrate/frame/finality-tracker/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-finality-tracker"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,17 +16,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", default-features = false, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-finality-tracker = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/finality-tracker" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-finality-tracker = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/finality-tracker" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 impl-trait-for-tuples = "0.1.3"
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/finality-tracker/README.md b/substrate/frame/finality-tracker/README.md
new file mode 100644
index 00000000000..bf42605ffc6
--- /dev/null
+++ b/substrate/frame/finality-tracker/README.md
@@ -0,0 +1,3 @@
+FRAME Pallet that tracks the last finalized block, as perceived by block authors.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/generic-asset/Cargo.toml b/substrate/frame/generic-asset/Cargo.toml
index e1e59030627..9dfc7699158 100644
--- a/substrate/frame/generic-asset/Cargo.toml
+++ b/substrate/frame/generic-asset/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-generic-asset"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Centrality Developers <support@centrality.ai>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,14 +14,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-io ={ version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sp-io ={ version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/generic-asset/README.md b/substrate/frame/generic-asset/README.md
new file mode 100644
index 00000000000..ab82be54b20
--- /dev/null
+++ b/substrate/frame/generic-asset/README.md
@@ -0,0 +1,131 @@
+# Generic Asset Module
+
+The Generic Asset module provides functionality for handling accounts and asset balances.
+
+## Overview
+
+The Generic Asset module provides functions for:
+
+- Creating a new kind of asset.
+- Setting permissions of an asset.
+- Getting and setting free balances.
+- Retrieving total, reserved and unreserved balances.
+- Repatriating a reserved balance to a beneficiary account.
+- Transferring a balance between accounts (when not reserved).
+- Slashing an account balance.
+- Managing total issuance.
+- Setting and managing locks.
+
+### Terminology
+
+- **Staking Asset:** The asset for staking, to participate as Validators in the network.
+- **Spending Asset:** The asset for payment, such as paying transfer fees, gas fees, etc.
+- **Permissions:** A set of rules for a kind of asset, defining the allowed operations to the asset, and which
+accounts are allowed to possess it.
+- **Total Issuance:** The total number of units in existence in a system.
+- **Free Balance:** The portion of a balance that is not reserved. The free balance is the only balance that matters
+for most operations. When this balance falls below the existential deposit, most functionality of the account is
+removed. When both it and the reserved balance are deleted, then the account is said to be dead.
+- **Reserved Balance:** Reserved balance still belongs to the account holder, but is suspended. Reserved balance
+can still be slashed, but only after all the free balance has been slashed. If the reserved balance falls below the
+existential deposit then it and any related functionality will be deleted. When both it and the free balance are
+deleted, then the account is said to be dead.
+- **Imbalance:** A condition when some assets were credited or debited without equal and opposite accounting
+(i.e. a difference between total issuance and account balances). Functions that result in an imbalance will
+return an object of the `Imbalance` trait that can be managed within your runtime logic. (If an imbalance is
+simply dropped, it should automatically maintain any book-keeping such as total issuance.)
+- **Lock:** A freeze on a specified amount of an account's free balance until a specified block number. Multiple
+locks always operate over the same funds, so they "overlay" rather than "stack".
+
+### Implementations
+
+The Generic Asset module provides `AssetCurrency`, which implements the following traits. If these traits provide
+the functionality that you need, you can avoid coupling with the Generic Asset module.
+
+- `Currency`: Functions for dealing with a fungible assets system.
+- `ReservableCurrency`: Functions for dealing with assets that can be reserved from an account.
+- `LockableCurrency`: Functions for dealing with accounts that allow liquidity restrictions.
+- `Imbalance`: Functions for handling imbalances between total issuance in the system and account balances.
+Must be used when a function creates new assets (e.g. a reward) or destroys some assets (e.g. a system fee).
+
+The Generic Asset module provides two types of `AssetCurrency` as follows.
+
+- `StakingAssetCurrency`: Currency for staking.
+- `SpendingAssetCurrency`: Currency for payments such as transfer fee, gas fee.
+
+## Interface
+
+### Dispatchable Functions
+
+- `create`: Create a new kind of asset.
+- `transfer`: Transfer some liquid free balance to another account.
+- `update_permission`: Updates permission for a given `asset_id` and an account. The origin of this call
+must have update permissions.
+- `mint`: Mint an asset, increases its total issuance. The origin of this call must have mint permissions.
+- `burn`: Burn an asset, decreases its total issuance. The origin of this call must have burn permissions.
+- `create_reserved`: Create a new kind of reserved asset. The origin of this call must be root.
+
+### Public Functions
+
+- `total_balance`: Get an account's total balance of an asset kind.
+- `free_balance`: Get an account's free balance of an asset kind.
+- `reserved_balance`: Get an account's reserved balance of an asset kind.
+- `create_asset`: Creates an asset.
+- `make_transfer`: Transfer some liquid free balance from one account to another.
+This will not emit the `Transferred` event.
+- `make_transfer_with_event`: Transfer some liquid free balance from one account to another.
+This will emit the `Transferred` event.
+- `reserve`: Moves an amount from free balance to reserved balance.
+- `unreserve`: Move up to an amount from reserved balance to free balance. This function cannot fail.
+- `mint_free`: Mint to an account's free balance.
+- `burn_free`: Burn an account's free balance.
+- `slash`: Deduct up to an amount from the combined balance of `who`, preferring to deduct from the
+	free balance. This function cannot fail.
+- `slash_reserved`: Deduct up to an amount from reserved balance of an account. This function cannot fail.
+- `repatriate_reserved`: Move up to an amount from reserved balance of an account to free balance of another
+account.
+- `check_permission`: Check permission to perform burn, mint or update.
+- `ensure_can_withdraw`: Check if the account is able to make a withdrawal of the given amount
+	for the given reason.
+
+### Usage
+
+The following examples show how to use the Generic Asset Pallet in your custom pallet.
+
+### Examples from the FRAME pallet
+
+The Fees Pallet uses the `Currency` trait to handle fee charge/refund, and its types inherit from `Currency`:
+
+```rust
+use frame_support::{
+	dispatch,
+	traits::{Currency, ExistenceRequirement, WithdrawReason},
+};
+type AssetOf<T> = <<T as Trait>::Currency as Currency<<T as frame_system::Trait>::AccountId>>::Balance;
+
+fn charge_fee<T: Trait>(transactor: &T::AccountId, amount: AssetOf<T>) -> dispatch::DispatchResult {
+	// ...
+	T::Currency::withdraw(
+		transactor,
+		amount,
+		WithdrawReason::TransactionPayment.into(),
+		ExistenceRequirement::KeepAlive,
+	)?;
+	// ...
+	Ok(())
+}
+
+fn refund_fee<T: Trait>(transactor: &T::AccountId, amount: AssetOf<T>) -> dispatch::DispatchResult {
+	// ...
+	T::Currency::deposit_into_existing(transactor, amount)?;
+	// ...
+	Ok(())
+}
+
+```
+
+## Genesis config
+
+The Generic Asset Pallet depends on the [`GenesisConfig`](./struct.GenesisConfig.html).
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/grandpa/Cargo.toml b/substrate/frame/grandpa/Cargo.toml
index 004255b9e1e..fcfa15813dc 100644
--- a/substrate/frame/grandpa/Cargo.toml
+++ b/substrate/frame/grandpa/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-grandpa"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,30 +14,30 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/application-crypto" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-finality-grandpa = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/finality-grandpa" }
-sp-session = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/session" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/staking" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-authorship = { version = "2.0.0-rc5", default-features = false, path = "../authorship" }
-pallet-session = { version = "2.0.0-rc5", default-features = false, path = "../session" }
-pallet-finality-tracker = { version = "2.0.0-rc5", default-features = false, path = "../finality-tracker" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/application-crypto" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-finality-grandpa = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/finality-grandpa" }
+sp-session = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/session" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/staking" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-authorship = { version = "2.0.0-rc6", default-features = false, path = "../authorship" }
+pallet-session = { version = "2.0.0-rc6", default-features = false, path = "../session" }
+pallet-finality-tracker = { version = "2.0.0-rc6", default-features = false, path = "../finality-tracker" }
 
 [dev-dependencies]
-frame-benchmarking = { version = "2.0.0-rc5", path = "../benchmarking" }
+frame-benchmarking = { version = "2.0.0-rc6", path = "../benchmarking" }
 grandpa = { package = "finality-grandpa", version = "0.12.3", features = ["derive-codec"] }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-keyring = { version = "2.0.0-rc5", path = "../../primitives/keyring" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-pallet-offences = { version = "2.0.0-rc5", path = "../offences" }
-pallet-staking = { version = "2.0.0-rc5", path = "../staking" }
-pallet-staking-reward-curve = { version = "2.0.0-rc5", path = "../staking/reward-curve" }
-pallet-timestamp = { version = "2.0.0-rc5", path = "../timestamp" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../primitives/keyring" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+pallet-offences = { version = "2.0.0-rc6", path = "../offences" }
+pallet-staking = { version = "2.0.0-rc6", path = "../staking" }
+pallet-staking-reward-curve = { version = "2.0.0-rc6", path = "../staking/reward-curve" }
+pallet-timestamp = { version = "2.0.0-rc6", path = "../timestamp" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/grandpa/README.md b/substrate/frame/grandpa/README.md
new file mode 100644
index 00000000000..84b181a8b31
--- /dev/null
+++ b/substrate/frame/grandpa/README.md
@@ -0,0 +1,12 @@
+GRANDPA Consensus module for runtime.
+
+This manages the GRANDPA authority set ready for the native code.
+These authorities are only for GRANDPA finality, not for consensus overall.
+
+In the future, it will also handle misbehavior reports, and on-chain
+finality notifications.
+
+For full integration with GRANDPA, the `GrandpaApi` should be implemented.
+The necessary items are re-exported via the `fg_primitives` crate.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/identity/Cargo.toml b/substrate/frame/identity/Cargo.toml
index 99e147b3141..6e6289a9dea 100644
--- a/substrate/frame/identity/Cargo.toml
+++ b/substrate/frame/identity/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-identity"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,16 +15,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
 enumflags2 = { version = "0.6.2" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/identity/README.md b/substrate/frame/identity/README.md
new file mode 100644
index 00000000000..de2f415cdf7
--- /dev/null
+++ b/substrate/frame/identity/README.md
@@ -0,0 +1,56 @@
+# Identity Module
+
+- [`identity::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+A federated naming system, allowing for multiple registrars to be added from a specified origin.
+Registrars can set a fee to provide identity-verification service. Anyone can put forth a
+proposed identity for a fixed deposit and ask for review by any number of registrars (paying
+each of their fees). Registrar judgements are given as an `enum`, allowing for sophisticated,
+multi-tier opinions.
+
+Some judgements are identified as *sticky*, which means they cannot be removed except by
+complete removal of the identity, or by the registrar. Judgements are allowed to represent a
+portion of funds that have been reserved for the registrar.
+
+A super-user can remove accounts and in doing so, slash the deposit.
+
+All accounts may also have a limited number of sub-accounts which may be specified by the owner;
+by definition, these have equivalent ownership and each has an individual name.
+
+The number of registrars should be limited, and the deposit made sufficiently large, to ensure
+no state-bloat attack is viable.
+
+## Interface
+
+### Dispatchable Functions
+
+#### For general users
+* `set_identity` - Set the associated identity of an account; a small deposit is reserved if not
+  already taken.
+* `clear_identity` - Remove an account's associated identity; the deposit is returned.
+* `request_judgement` - Request a judgement from a registrar, paying a fee.
+* `cancel_request` - Cancel the previous request for a judgement.
+
+#### For general users with sub-identities
+* `set_subs` - Set the sub-accounts of an identity.
+* `add_sub` - Add a sub-identity to an identity.
+* `remove_sub` - Remove a sub-identity of an identity.
+* `rename_sub` - Rename a sub-identity of an identity.
+* `quit_sub` - Remove a sub-identity of an identity (called by the sub-identity).
+
+#### For registrars
+* `set_fee` - Set the fee required to be paid for a judgement to be given by the registrar.
+* `set_fields` - Set the fields that a registrar cares about in their judgements.
+* `provide_judgement` - Provide a judgement to an identity.
+
+#### For super-users
+* `add_registrar` - Add a new registrar to the system.
+* `kill_identity` - Forcibly remove the associated identity; the deposit is lost.
+
+[`Call`]: ./enum.Call.html
+[`Trait`]: ./trait.Trait.html
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/im-online/Cargo.toml b/substrate/frame/im-online/Cargo.toml
index 75fc4e2454c..8541b46c9c8 100644
--- a/substrate/frame/im-online/Cargo.toml
+++ b/substrate/frame/im-online/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-im-online"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,20 +12,20 @@ description = "FRAME's I'm online pallet"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/application-crypto" }
-pallet-authorship = { version = "2.0.0-rc5", default-features = false, path = "../authorship" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/application-crypto" }
+pallet-authorship = { version = "2.0.0-rc6", default-features = false, path = "../authorship" }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
 serde = { version = "1.0.101", optional = true }
-pallet-session = { version = "2.0.0-rc5", default-features = false, path = "../session" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/staking" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+pallet-session = { version = "2.0.0-rc6", default-features = false, path = "../session" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/staking" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [features]
 default = ["std", "pallet-session/historical"]
diff --git a/substrate/frame/im-online/README.md b/substrate/frame/im-online/README.md
new file mode 100644
index 00000000000..c85705bd0ee
--- /dev/null
+++ b/substrate/frame/im-online/README.md
@@ -0,0 +1,51 @@
+# I'm online Module
+
+If the local node is a validator (i.e. contains an authority key), this module
+gossips a heartbeat transaction with each new session. The heartbeat functions
+as a simple mechanism to signal that the node is online in the current era.
+
+Received heartbeats are tracked for one era and reset with each new era. The
+module exposes two public functions to query if a heartbeat has been received
+in the current era or session.
+
+The heartbeat is a signed transaction, which was signed using the session key
+and includes the recent best block number of the local validators chain as well
+as the [NetworkState](../../client/offchain/struct.NetworkState.html).
+It is submitted as an Unsigned Transaction via off-chain workers.
+
+- [`im_online::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+## Interface
+
+### Public Functions
+
+- `is_online` - True if the validator sent a heartbeat in the current session.
+
+## Usage
+
+```rust
+use frame_support::{decl_module, dispatch};
+use frame_system::ensure_signed;
+use pallet_im_online::{self as im_online};
+
+pub trait Trait: im_online::Trait {}
+
+decl_module! {
+	pub struct Module<T: Trait> for enum Call where origin: T::Origin {
+		#[weight = 0]
+		pub fn is_online(origin, authority_index: u32) -> dispatch::DispatchResult {
+			let _sender = ensure_signed(origin)?;
+			let _is_online = <im_online::Module<T>>::is_online(authority_index);
+			Ok(())
+		}
+	}
+}
+```
+
+## Dependencies
+
+This module depends on the [Session module](../pallet_session/index.html).
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/indices/Cargo.toml b/substrate/frame/indices/Cargo.toml
index 85ab36bc039..25d5c2527a9 100644
--- a/substrate/frame/indices/Cargo.toml
+++ b/substrate/frame/indices/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-indices"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-keyring = { version = "2.0.0-rc5", optional = true, path = "../../primitives/keyring" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-keyring = { version = "2.0.0-rc6", optional = true, path = "../../primitives/keyring" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/indices/README.md b/substrate/frame/indices/README.md
new file mode 100644
index 00000000000..243392780db
--- /dev/null
+++ b/substrate/frame/indices/README.md
@@ -0,0 +1,4 @@
+An index is a short form of an address. This module handles allocation
+of indices for a newly created accounts.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/membership/Cargo.toml b/substrate/frame/membership/Cargo.toml
index fd138a97c7e..8ebcce3de78 100644
--- a/substrate/frame/membership/Cargo.toml
+++ b/substrate/frame/membership/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-membership"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,14 +14,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/membership/README.md b/substrate/frame/membership/README.md
new file mode 100644
index 00000000000..a769be49705
--- /dev/null
+++ b/substrate/frame/membership/README.md
@@ -0,0 +1,6 @@
+# Membership Module
+
+Allows control of membership of a set of `AccountId`s, useful for managing membership of of a
+collective. A prime member may be set.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/metadata/Cargo.toml b/substrate/frame/metadata/Cargo.toml
index be508ef2c04..7e2cb28f5e4 100644
--- a/substrate/frame/metadata/Cargo.toml
+++ b/substrate/frame/metadata/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-metadata"
-version = "11.0.0-rc5"
+version = "11.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,8 +14,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/metadata/README.md b/substrate/frame/metadata/README.md
new file mode 100644
index 00000000000..423af8602e3
--- /dev/null
+++ b/substrate/frame/metadata/README.md
@@ -0,0 +1,7 @@
+Decodable variant of the RuntimeMetadata.
+
+This really doesn't belong here, but is necessary for the moment. In the future
+it should be removed entirely to an external module for shimming on to the
+codec-encoded metadata.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/multisig/Cargo.toml b/substrate/frame/multisig/Cargo.toml
index aae3646644d..98db6477e3e 100644
--- a/substrate/frame/multisig/Cargo.toml
+++ b/substrate/frame/multisig/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-multisig"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
 
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/multisig/README.md b/substrate/frame/multisig/README.md
new file mode 100644
index 00000000000..c7694d8cb59
--- /dev/null
+++ b/substrate/frame/multisig/README.md
@@ -0,0 +1,29 @@
+# Multisig Module
+A module for doing multisig dispatch.
+
+- [`multisig::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+This module contains functionality for multi-signature dispatch, a (potentially) stateful
+operation, allowing multiple signed
+origins (accounts) to coordinate and dispatch a call from a well-known origin, derivable
+deterministically from the set of account IDs and the threshold number of accounts from the
+set that must approve it. In the case that the threshold is just one then this is a stateless
+operation. This is useful for multisig wallets where cryptographic threshold signatures are
+not available or desired.
+
+## Interface
+
+### Dispatchable Functions
+
+* `as_multi` - Approve and if possible dispatch a call from a composite origin formed from a
+  number of signed origins.
+* `approve_as_multi` - Approve a call from a composite origin.
+* `cancel_as_multi` - Cancel a call from a composite origin.
+
+[`Call`]: ./enum.Call.html
+[`Trait`]: ./trait.Trait.html
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/nicks/Cargo.toml b/substrate/frame/nicks/Cargo.toml
index e63ed2c600d..08446986499 100644
--- a/substrate/frame/nicks/Cargo.toml
+++ b/substrate/frame/nicks/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-nicks"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/nicks/README.md b/substrate/frame/nicks/README.md
new file mode 100644
index 00000000000..b021357bd77
--- /dev/null
+++ b/substrate/frame/nicks/README.md
@@ -0,0 +1,23 @@
+# Nicks Module
+
+- [`nicks::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+Nicks is a trivial module for keeping track of account names on-chain. It makes no effort to
+create a name hierarchy, be a DNS replacement or provide reverse lookups.
+
+## Interface
+
+### Dispatchable Functions
+
+* `set_name` - Set the associated name of an account; a small deposit is reserved if not already
+  taken.
+* `clear_name` - Remove an account's associated name; the deposit is returned.
+* `kill_name` - Forcibly remove the associated name; the deposit is lost.
+
+[`Call`]: ./enum.Call.html
+[`Trait`]: ./trait.Trait.html
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/offences/Cargo.toml b/substrate/frame/offences/Cargo.toml
index db0c847e9a1..1585732a9f5 100644
--- a/substrate/frame/offences/Cargo.toml
+++ b/substrate/frame/offences/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-offences"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,18 +12,18 @@ description = "FRAME offences pallet"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-pallet-balances = { version = "2.0.0-rc5", default-features = false, path = "../balances" }
+pallet-balances = { version = "2.0.0-rc6", default-features = false, path = "../balances" }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
 serde = { version = "1.0.101", optional = true }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/staking" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/staking" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/offences/README.md b/substrate/frame/offences/README.md
new file mode 100644
index 00000000000..454c7effaf3
--- /dev/null
+++ b/substrate/frame/offences/README.md
@@ -0,0 +1,5 @@
+# Offences Module
+
+Tracks reported offences
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/offences/benchmarking/Cargo.toml b/substrate/frame/offences/benchmarking/Cargo.toml
index 12d4882e60b..d5bfe302cb5 100644
--- a/substrate/frame/offences/benchmarking/Cargo.toml
+++ b/substrate/frame/offences/benchmarking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-offences-benchmarking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,26 +13,26 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../../benchmarking" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../../system" }
-pallet-babe = { version = "2.0.0-rc5", default-features = false, path = "../../babe" }
-pallet-balances = { version = "2.0.0-rc5", default-features = false, path = "../../balances" }
-pallet-grandpa = { version = "2.0.0-rc5", default-features = false, path = "../../grandpa" }
-pallet-im-online = { version = "2.0.0-rc5", default-features = false, path = "../../im-online" }
-pallet-offences = { version = "2.0.0-rc5", default-features = false, features = ["runtime-benchmarks"], path = "../../offences" }
-pallet-session = { version = "2.0.0-rc5", default-features = false, path = "../../session" }
-pallet-staking = { version = "2.0.0-rc5", default-features = false, features = ["runtime-benchmarks"], path = "../../staking" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/staking" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/std" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../../benchmarking" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../../system" }
+pallet-babe = { version = "2.0.0-rc6", default-features = false, path = "../../babe" }
+pallet-balances = { version = "2.0.0-rc6", default-features = false, path = "../../balances" }
+pallet-grandpa = { version = "2.0.0-rc6", default-features = false, path = "../../grandpa" }
+pallet-im-online = { version = "2.0.0-rc6", default-features = false, path = "../../im-online" }
+pallet-offences = { version = "2.0.0-rc6", default-features = false, features = ["runtime-benchmarks"], path = "../../offences" }
+pallet-session = { version = "2.0.0-rc6", default-features = false, path = "../../session" }
+pallet-staking = { version = "2.0.0-rc6", default-features = false, features = ["runtime-benchmarks"], path = "../../staking" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/staking" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/std" }
 
 [dev-dependencies]
-pallet-staking-reward-curve = { version = "2.0.0-rc5", path = "../../staking/reward-curve" }
-pallet-timestamp = { version = "2.0.0-rc5", path = "../../timestamp" }
+pallet-staking-reward-curve = { version = "2.0.0-rc6", path = "../../staking/reward-curve" }
+pallet-timestamp = { version = "2.0.0-rc6", path = "../../timestamp" }
 serde = { version = "1.0.101" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-io = { version = "2.0.0-rc5", path = "../../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", path = "../../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/offences/benchmarking/README.md b/substrate/frame/offences/benchmarking/README.md
new file mode 100644
index 00000000000..cbfe91d73a6
--- /dev/null
+++ b/substrate/frame/offences/benchmarking/README.md
@@ -0,0 +1,3 @@
+Offences pallet benchmarking.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/proxy/Cargo.toml b/substrate/frame/proxy/Cargo.toml
index 155a1395420..77c9ae8bba6 100644
--- a/substrate/frame/proxy/Cargo.toml
+++ b/substrate/frame/proxy/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-proxy"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,19 +14,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
 
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-pallet-utility = { version = "2.0.0-rc5", path = "../utility" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+pallet-utility = { version = "2.0.0-rc6", path = "../utility" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/proxy/README.md b/substrate/frame/proxy/README.md
new file mode 100644
index 00000000000..105cf5561ae
--- /dev/null
+++ b/substrate/frame/proxy/README.md
@@ -0,0 +1,17 @@
+# Proxy Module
+A module allowing accounts to give permission to other accounts to dispatch types of calls from
+their signed origin.
+
+- [`proxy::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+## Interface
+
+### Dispatchable Functions
+
+[`Call`]: ./enum.Call.html
+[`Trait`]: ./trait.Trait.html
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/randomness-collective-flip/Cargo.toml b/substrate/frame/randomness-collective-flip/Cargo.toml
index 28a16dc6411..0d0c5db0f49 100644
--- a/substrate/frame/randomness-collective-flip/Cargo.toml
+++ b/substrate/frame/randomness-collective-flip/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-randomness-collective-flip"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,14 +14,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 safe-mix = { version = "1.0", default-features = false }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/randomness-collective-flip/README.md b/substrate/frame/randomness-collective-flip/README.md
new file mode 100644
index 00000000000..318f9d0f88b
--- /dev/null
+++ b/substrate/frame/randomness-collective-flip/README.md
@@ -0,0 +1,38 @@
+# Randomness Module
+
+The Randomness Collective Flip module provides a [`random`](./struct.Module.html#method.random)
+function that generates low-influence random values based on the block hashes from the previous
+`81` blocks. Low-influence randomness can be useful when defending against relatively weak
+adversaries. Using this pallet as a randomness source is advisable primarily in low-security
+situations like testing.
+
+## Public Functions
+
+See the [`Module`](./struct.Module.html) struct for details of publicly available functions.
+
+## Usage
+
+### Prerequisites
+
+Import the Randomness Collective Flip module and derive your module's configuration trait from
+the system trait.
+
+### Example - Get random seed for the current block
+
+```rust
+use frame_support::{decl_module, dispatch, traits::Randomness};
+
+pub trait Trait: frame_system::Trait {}
+
+decl_module! {
+	pub struct Module<T: Trait> for enum Call where origin: T::Origin {
+		#[weight = 0]
+		pub fn random_module_example(origin) -> dispatch::DispatchResult {
+			let _random_value = <pallet_randomness_collective_flip::Module<T>>::random(&b"my context"[..]);
+			Ok(())
+		}
+	}
+}
+```
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/recovery/Cargo.toml b/substrate/frame/recovery/Cargo.toml
index 6302a817171..dfacac42fb4 100644
--- a/substrate/frame/recovery/Cargo.toml
+++ b/substrate/frame/recovery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-recovery"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
 enumflags2 = { version = "0.6.2" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/recovery/README.md b/substrate/frame/recovery/README.md
new file mode 100644
index 00000000000..30631da1d9a
--- /dev/null
+++ b/substrate/frame/recovery/README.md
@@ -0,0 +1,134 @@
+# Recovery Pallet
+
+- [`recovery::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+The Recovery pallet is an M-of-N social recovery tool for users to gain
+access to their accounts if the private key or other authentication mechanism
+is lost. Through this pallet, a user is able to make calls on-behalf-of another
+account which they have recovered. The recovery process is protected by trusted
+"friends" whom the original account owner chooses. A threshold (M) out of N
+friends are needed to give another account access to the recoverable account.
+
+### Recovery Configuration
+
+The recovery process for each recoverable account can be configured by the account owner.
+They are able to choose:
+* `friends` - The list of friends that the account owner trusts to protect the
+  recovery process for their account.
+* `threshold` - The number of friends that need to approve a recovery process for
+  the account to be successfully recovered.
+* `delay_period` - The minimum number of blocks after the beginning of the recovery
+  process that need to pass before the account can be successfully recovered.
+
+There is a configurable deposit that all users need to pay to create a recovery
+configuration. This deposit is composed of a base deposit plus a multiplier for
+the number of friends chosen. This deposit is returned in full when the account
+owner removes their recovery configuration.
+
+### Recovery Life Cycle
+
+The intended life cycle of a successful recovery takes the following steps:
+1. The account owner calls `create_recovery` to set up a recovery configuration
+   for their account.
+2. At some later time, the account owner loses access to their account and wants
+   to recover it. Likely, they will need to create a new account and fund it with
+   enough balance to support the transaction fees and the deposit for the
+   recovery process.
+3. Using this new account, they call `initiate_recovery`.
+4. Then the account owner would contact their configured friends to vouch for
+   the recovery attempt. The account owner would provide their old account id
+   and the new account id, and friends would call `vouch_recovery` with those
+   parameters.
+5. Once a threshold number of friends have vouched for the recovery attempt,
+   the account owner needs to wait until the delay period has passed, starting
+   when they initiated the recovery process.
+6. Now the account owner is able to call `claim_recovery`, which subsequently
+   allows them to call `as_recovered` and directly make calls on-behalf-of the lost
+   account.
+7. Using the now recovered account, the account owner can call `close_recovery`
+   on the recovery process they opened, reclaiming the recovery deposit they
+   placed.
+8. Then the account owner should then call `remove_recovery` to remove the recovery
+   configuration on the recovered account and reclaim the recovery configuration
+   deposit they placed.
+9. Using `as_recovered`, the account owner is able to call any other pallets
+   to clean up their state and reclaim any reserved or locked funds. They
+   can then transfer all funds from the recovered account to the new account.
+10. When the recovered account becomes reaped (i.e. its free and reserved
+    balance drops to zero), the final recovery link is removed.
+
+### Malicious Recovery Attempts
+
+Initializing a the recovery process for a recoverable account is open and
+permissionless. However, the recovery deposit is an economic deterrent that
+should disincentivize would-be attackers from trying to maliciously recover
+accounts.
+
+The recovery deposit can always be claimed by the account which is trying to
+to be recovered. In the case of a malicious recovery attempt, the account
+owner who still has access to their account can claim the deposit and
+essentially punish the malicious user.
+
+Furthermore, the malicious recovery attempt can only be successful if the
+attacker is also able to get enough friends to vouch for the recovery attempt.
+In the case where the account owner prevents a malicious recovery process,
+this pallet makes it near-zero cost to re-configure the recovery settings and
+remove/replace friends who are acting inappropriately.
+
+### Safety Considerations
+
+It is important to note that this is a powerful pallet that can compromise the
+security of an account if used incorrectly. Some recommended practices for users
+of this pallet are:
+
+* Configure a significant `delay_period` for your recovery process: As long as you
+  have access to your recoverable account, you need only check the blockchain once
+  every `delay_period` blocks to ensure that no recovery attempt is successful
+  against your account. Using off-chain notification systems can help with this,
+  but ultimately, setting a large `delay_period` means that even the most skilled
+  attacker will need to wait this long before they can access your account.
+* Use a high threshold of approvals: Setting a value of 1 for the threshold means
+  that any of your friends would be able to recover your account. They would
+  simply need to start a recovery process and approve their own process. Similarly,
+  a threshold of 2 would mean that any 2 friends could work together to gain
+  access to your account. The only way to prevent against these kinds of attacks
+  is to choose a high threshold of approvals and select from a diverse friend
+  group that would not be able to reasonably coordinate with one another.
+* Reset your configuration over time: Since the entire deposit of creating a
+  recovery configuration is returned to the user, the only cost of updating
+  your recovery configuration is the transaction fees for the calls. Thus,
+  it is strongly encouraged to regularly update your recovery configuration
+  as your life changes and your relationship with new and existing friends
+  change as well.
+
+## Interface
+
+### Dispatchable Functions
+
+#### For General Users
+
+* `create_recovery` - Create a recovery configuration for your account and make it recoverable.
+* `initiate_recovery` - Start the recovery process for a recoverable account.
+
+#### For Friends of a Recoverable Account
+* `vouch_recovery` - As a `friend` of a recoverable account, vouch for a recovery attempt on the account.
+
+#### For a User Who Successfully Recovered an Account
+
+* `claim_recovery` - Claim access to the account that you have successfully completed the recovery process for.
+* `as_recovered` - Send a transaction as an account that you have recovered. See other functions below.
+
+#### For the Recoverable Account
+
+* `close_recovery` - Close an active recovery process for your account and reclaim the recovery deposit.
+* `remove_recovery` - Remove the recovery configuration from the account, making it un-recoverable.
+
+#### For Super Users
+
+* `set_recovered` - The ROOT origin is able to skip the recovery process and directly allow
+  one account to access another.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/scheduler/Cargo.toml b/substrate/frame/scheduler/Cargo.toml
index 14a310ebe50..ea759b15f9e 100644
--- a/substrate/frame/scheduler/Cargo.toml
+++ b/substrate/frame/scheduler/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-scheduler"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Unlicense"
@@ -11,17 +11,17 @@ description = "FRAME example pallet"
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.2.0", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
 
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core", default-features = false }
-substrate-test-utils = { version = "2.0.0-rc5", path = "../../test-utils" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core", default-features = false }
+substrate-test-utils = { version = "2.0.0-rc6", path = "../../test-utils" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/scheduler/README.md b/substrate/frame/scheduler/README.md
new file mode 100644
index 00000000000..f51d02a1d7b
--- /dev/null
+++ b/substrate/frame/scheduler/README.md
@@ -0,0 +1,34 @@
+# Scheduler
+A module for scheduling dispatches.
+
+- [`scheduler::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+## Overview
+
+This module exposes capabilities for scheduling dispatches to occur at a
+specified block number or at a specified period. These scheduled dispatches
+may be named or anonymous and may be canceled.
+
+**NOTE:** The scheduled calls will be dispatched with the default filter
+for the origin: namely `frame_system::Trait::BaseCallFilter` for all origin
+except root which will get no filter. And not the filter contained in origin
+use to call `fn schedule`.
+
+If a call is scheduled using proxy or whatever mecanism which adds filter,
+then those filter will not be used when dispatching the schedule call.
+
+## Interface
+
+### Dispatchable Functions
+
+* `schedule` - schedule a dispatch, which may be periodic, to occur at a
+  specified block and with a specified priority.
+* `cancel` - cancel a scheduled dispatch, specified by block number and
+  index.
+* `schedule_named` - augments the `schedule` interface with an additional
+  `Vec<u8>` parameter that can be used for identification.
+* `cancel_named` - the named complement to the cancel function.
+
+License: Unlicense
\ No newline at end of file
diff --git a/substrate/frame/scored-pool/Cargo.toml b/substrate/frame/scored-pool/Cargo.toml
index 1c25b8abfdf..cffb408422d 100644
--- a/substrate/frame/scored-pool/Cargo.toml
+++ b/substrate/frame/scored-pool/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-scored-pool"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/scored-pool/README.md b/substrate/frame/scored-pool/README.md
new file mode 100644
index 00000000000..1cdbff72ef2
--- /dev/null
+++ b/substrate/frame/scored-pool/README.md
@@ -0,0 +1,66 @@
+# Scored Pool Module
+
+The module maintains a scored membership pool. Each entity in the
+pool can be attributed a `Score`. From this pool a set `Members`
+is constructed. This set contains the `MemberCount` highest
+scoring entities. Unscored entities are never part of `Members`.
+
+If an entity wants to be part of the pool a deposit is required.
+The deposit is returned when the entity withdraws or when it
+is removed by an entity with the appropriate authority.
+
+Every `Period` blocks the set of `Members` is refreshed from the
+highest scoring members in the pool and, no matter if changes
+occurred, `T::MembershipChanged::set_members_sorted` is invoked.
+On first load `T::MembershipInitialized::initialize_members` is
+invoked with the initial `Members` set.
+
+It is possible to withdraw candidacy/resign your membership at any
+time. If an entity is currently a member, this results in removal
+from the `Pool` and `Members`; the entity is immediately replaced
+by the next highest scoring candidate in the pool, if available.
+
+- [`scored_pool::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+## Interface
+
+### Public Functions
+
+- `submit_candidacy` - Submit candidacy to become a member. Requires a deposit.
+- `withdraw_candidacy` - Withdraw candidacy. Deposit is returned.
+- `score` - Attribute a quantitative score to an entity.
+- `kick` - Remove an entity from the pool and members. Deposit is returned.
+- `change_member_count` - Changes the amount of candidates taken into `Members`.
+
+## Usage
+
+```rust
+use frame_support::{decl_module, dispatch};
+use frame_system::ensure_signed;
+use pallet_scored_pool::{self as scored_pool};
+
+pub trait Trait: scored_pool::Trait {}
+
+decl_module! {
+	pub struct Module<T: Trait> for enum Call where origin: T::Origin {
+		#[weight = 0]
+		pub fn candidate(origin) -> dispatch::DispatchResult {
+			let who = ensure_signed(origin)?;
+
+			let _ = <scored_pool::Module<T>>::submit_candidacy(
+				T::Origin::from(Some(who.clone()).into())
+			);
+			Ok(())
+		}
+	}
+}
+
+```
+
+## Dependencies
+
+This module depends on the [System module](../frame_system/index.html).
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/session/Cargo.toml b/substrate/frame/session/Cargo.toml
index b4150fb8e78..81e2fc191f5 100644
--- a/substrate/frame/session/Cargo.toml
+++ b/substrate/frame/session/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-session"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,20 +14,20 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-session = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/session" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/staking" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../timestamp" }
-sp-trie = { version = "2.0.0-rc5", optional = true, default-features = false, path = "../../primitives/trie" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-session = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/session" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/staking" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../timestamp" }
+sp-trie = { version = "2.0.0-rc6", optional = true, default-features = false, path = "../../primitives/trie" }
 impl-trait-for-tuples = "0.1.3"
 
 [dev-dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", path = "../../primitives/application-crypto" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../../primitives/application-crypto" }
 lazy_static = "1.4.0"
 
 [features]
diff --git a/substrate/frame/session/README.md b/substrate/frame/session/README.md
new file mode 100644
index 00000000000..387f4479826
--- /dev/null
+++ b/substrate/frame/session/README.md
@@ -0,0 +1,83 @@
+# Session Module
+
+The Session module allows validators to manage their session keys, provides a function for changing
+the session length, and handles session rotation.
+
+- [`session::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+## Overview
+
+### Terminology
+<!-- Original author of paragraph: @gavofyork -->
+
+- **Session:** A session is a period of time that has a constant set of validators. Validators can only join
+or exit the validator set at a session change. It is measured in block numbers. The block where a session is
+ended is determined by the `ShouldEndSession` trait. When the session is ending, a new validator set
+can be chosen by `OnSessionEnding` implementations.
+- **Session key:** A session key is actually several keys kept together that provide the various signing
+functions required by network authorities/validators in pursuit of their duties.
+- **Validator ID:** Every account has an associated validator ID. For some simple staking systems, this
+may just be the same as the account ID. For staking systems using a stash/controller model,
+the validator ID would be the stash account ID of the controller.
+- **Session key configuration process:** Session keys are set using `set_keys` for use not in
+the next session, but the session after next. They are stored in `NextKeys`, a mapping between
+the caller's `ValidatorId` and the session keys provided. `set_keys` allows users to set their
+session key prior to being selected as validator.
+It is a public call since it uses `ensure_signed`, which checks that the origin is a signed account.
+As such, the account ID of the origin stored in `NextKeys` may not necessarily be associated with
+a block author or a validator. The session keys of accounts are removed once their account balance is zero.
+- **Session length:** This pallet does not assume anything about the length of each session.
+Rather, it relies on an implementation of `ShouldEndSession` to dictate a new session's start.
+This pallet provides the `PeriodicSessions` struct for simple periodic sessions.
+- **Session rotation configuration:** Configure as either a 'normal' (rewardable session where rewards are
+applied) or 'exceptional' (slashable) session rotation.
+- **Session rotation process:** At the beginning of each block, the `on_initialize` function
+queries the provided implementation of `ShouldEndSession`. If the session is to end the newly
+activated validator IDs and session keys are taken from storage and passed to the
+`SessionHandler`. The validator set supplied by `SessionManager::new_session` and the corresponding session
+keys, which may have been registered via `set_keys` during the previous session, are written
+to storage where they will wait one session before being passed to the `SessionHandler`
+themselves.
+
+### Goals
+
+The Session pallet is designed to make the following possible:
+
+- Set session keys of the validator set for upcoming sessions.
+- Control the length of sessions.
+- Configure and switch between either normal or exceptional session rotations.
+
+## Interface
+
+### Dispatchable Functions
+
+- `set_keys` - Set a validator's session keys for upcoming sessions.
+
+### Public Functions
+
+- `rotate_session` - Change to the next session. Register the new authority set. Queue changes
+for next session rotation.
+- `disable_index` - Disable a validator by index.
+- `disable` - Disable a validator by Validator ID
+
+## Usage
+
+### Example from the FRAME
+
+The [Staking pallet](../pallet_staking/index.html) uses the Session pallet to get the validator set.
+
+```rust
+use pallet_session as session;
+
+fn validators<T: pallet_session::Trait>() -> Vec<<T as pallet_session::Trait>::ValidatorId> {
+	<pallet_session::Module<T>>::validators()
+}
+```
+
+## Related Modules
+
+- [Staking](../pallet_staking/index.html)
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/session/benchmarking/Cargo.toml b/substrate/frame/session/benchmarking/Cargo.toml
index e784ff16e85..c5e94aa61f0 100644
--- a/substrate/frame/session/benchmarking/Cargo.toml
+++ b/substrate/frame/session/benchmarking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-session-benchmarking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,24 +12,24 @@ description = "FRAME sessions pallet benchmarking"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/std" }
-sp-session = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/session" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../../system" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../../benchmarking" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../../support" }
-pallet-staking = { version = "2.0.0-rc5", default-features = false, features = ["runtime-benchmarks"], path = "../../staking" }
-pallet-session = { version = "2.0.0-rc5", default-features = false, path = "../../session" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/std" }
+sp-session = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/session" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../../system" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../../benchmarking" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../../support" }
+pallet-staking = { version = "2.0.0-rc6", default-features = false, features = ["runtime-benchmarks"], path = "../../staking" }
+pallet-session = { version = "2.0.0-rc6", default-features = false, path = "../../session" }
 rand = { version = "0.7.2", default-features = false }
 
 [dev-dependencies]
 serde = { version = "1.0.101" }
 codec = { package = "parity-scale-codec", version = "1.3.4", features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-pallet-staking-reward-curve = { version = "2.0.0-rc5", path = "../../staking/reward-curve" }
-sp-io ={ version = "2.0.0-rc5", path = "../../../primitives/io" }
-pallet-timestamp = { version = "2.0.0-rc5", path = "../../timestamp" }
-pallet-balances = { version = "2.0.0-rc5", path = "../../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+pallet-staking-reward-curve = { version = "2.0.0-rc6", path = "../../staking/reward-curve" }
+sp-io ={ version = "2.0.0-rc6", path = "../../../primitives/io" }
+pallet-timestamp = { version = "2.0.0-rc6", path = "../../timestamp" }
+pallet-balances = { version = "2.0.0-rc6", path = "../../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/session/benchmarking/README.md b/substrate/frame/session/benchmarking/README.md
new file mode 100644
index 00000000000..d034a9ec732
--- /dev/null
+++ b/substrate/frame/session/benchmarking/README.md
@@ -0,0 +1,3 @@
+Benchmarks for the Session Pallet.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/society/Cargo.toml b/substrate/frame/society/Cargo.toml
index 229191c3ccb..2fd44446cc8 100644
--- a/substrate/frame/society/Cargo.toml
+++ b/substrate/frame/society/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-society"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,16 +14,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 rand_chacha = { version = "0.2", default-features = false }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-io ={ version = "2.0.0-rc5", path = "../../primitives/io" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-io ={ version = "2.0.0-rc6", path = "../../primitives/io" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/society/README.md b/substrate/frame/society/README.md
new file mode 100644
index 00000000000..d73397cc99c
--- /dev/null
+++ b/substrate/frame/society/README.md
@@ -0,0 +1,228 @@
+# Society Module
+
+- [`society::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+The Society module is an economic game which incentivizes users to participate
+and maintain a membership society.
+
+### User Types
+
+At any point, a user in the society can be one of a:
+* Bidder - A user who has submitted intention of joining the society.
+* Candidate - A user who will be voted on to join the society.
+* Suspended Candidate - A user who failed to win a vote.
+* Member - A user who is a member of the society.
+* Suspended Member - A member of the society who has accumulated too many strikes
+or failed their membership challenge.
+
+Of the non-suspended members, there is always a:
+* Head - A member who is exempt from suspension.
+* Defender - A member whose membership is under question and voted on again.
+
+Of the non-suspended members of the society, a random set of them are chosen as
+"skeptics". The mechanics of skeptics is explained in the
+[member phase](#member-phase) below.
+
+### Mechanics
+
+#### Rewards
+
+Members are incentivized to participate in the society through rewards paid
+by the Society treasury. These payments have a maturity period that the user
+must wait before they are able to access the funds.
+
+#### Punishments
+
+Members can be punished by slashing the reward payouts that have not been
+collected. Additionally, members can accumulate "strikes", and when they
+reach a max strike limit, they become suspended.
+
+#### Skeptics
+
+During the voting period, a random set of members are selected as "skeptics".
+These skeptics are expected to vote on the current candidates. If they do not vote,
+their skeptic status is treated as a rejection vote, the member is deemed
+"lazy", and are given a strike per missing vote.
+
+#### Membership Challenges
+
+Every challenge rotation period, an existing member will be randomly selected
+to defend their membership into society. Then, other members can vote whether
+this defender should stay in society. A simple majority wins vote will determine
+the outcome of the user. Ties are treated as a failure of the challenge, but
+assuming no one else votes, the defender always get a free vote on their
+own challenge keeping them in the society. The Head member is exempt from the
+negative outcome of a membership challenge.
+
+#### Society Treasury
+
+The membership society is independently funded by a treasury managed by this
+module. Some subset of this treasury is placed in a Society Pot, which is used
+to determine the number of accepted bids.
+
+#### Rate of Growth
+
+The membership society can grow at a rate of 10 accepted candidates per rotation period up
+to the max membership threshold. Once this threshold is met, candidate selections
+are stalled until there is space for new members to join. This can be resolved by
+voting out existing members through the random challenges or by using governance
+to increase the maximum membership count.
+
+### User Life Cycle
+
+A user can go through the following phases:
+
+```rust
+          +------->  User  <----------+
+          |           +               |
+          |           |               |
++----------------------------------------------+
+|         |           |               |        |
+|         |           v               |        |
+|         |        Bidder <-----------+        |
+|         |           +               |        |
+|         |           |               +        |
+|         |           v            Suspended   |
+|         |       Candidate +----> Candidate   |
+|         |           +               +        |
+|         |           |               |        |
+|         +           |               |        |
+|   Suspended +------>|               |        |
+|      Member         |               |        |
+|         ^           |               |        |
+|         |           v               |        |
+|         +-------+ Member <----------+        |
+|                                              |
+|                                              |
++------------------Society---------------------+
+```
+
+#### Initialization
+
+The society is initialized with a single member who is automatically chosen as the Head.
+
+#### Bid Phase
+
+New users must have a bid to join the society.
+
+A user can make a bid by reserving a deposit. Alternatively, an already existing member
+can create a bid on a user's behalf by "vouching" for them.
+
+A bid includes reward information that the user would like to receive for joining
+the society. A vouching bid can additionally request some portion of that reward as a tip
+to the voucher for vouching for the prospective candidate.
+
+Every rotation period, Bids are ordered by reward amount, and the module
+selects as many bids the Society Pot can support for that period.
+
+These selected bids become candidates and move on to the Candidate phase.
+Bids that were not selected stay in the bidder pool until they are selected or
+a user chooses to "unbid".
+
+#### Candidate Phase
+
+Once a bidder becomes a candidate, members vote whether to approve or reject
+that candidate into society. This voting process also happens during a rotation period.
+
+The approval and rejection criteria for candidates are not set on chain,
+and may change for different societies.
+
+At the end of the rotation period, we collect the votes for a candidate
+and randomly select a vote as the final outcome.
+
+```rust
+ [ a-accept, r-reject, s-skeptic ]
++----------------------------------+
+|                                  |
+|  Member   |0|1|2|3|4|5|6|7|8|9|  |
+|  -----------------------------   |
+|  Vote     |a|a|a|r|s|r|a|a|s|a|  |
+|  -----------------------------   |
+|  Selected | | | |x| | | | | | |  |
+|                                  |
++----------------------------------+
+
+Result: Rejected
+```
+
+Each member that voted opposite to this randomly selected vote is punished by
+slashing their unclaimed payouts and increasing the number of strikes they have.
+
+These slashed funds are given to a random user who voted the same as the
+selected vote as a reward for participating in the vote.
+
+If the candidate wins the vote, they receive their bid reward as a future payout.
+If the bid was placed by a voucher, they will receive their portion of the reward,
+before the rest is paid to the winning candidate.
+
+One winning candidate is selected as the Head of the members. This is randomly
+chosen, weighted by the number of approvals the winning candidates accumulated.
+
+If the candidate loses the vote, they are suspended and it is up to the Suspension
+Judgement origin to determine if the candidate should go through the bidding process
+again, should be accepted into the membership society, or rejected and their deposit
+slashed.
+
+#### Member Phase
+
+Once a candidate becomes a member, their role is to participate in society.
+
+Regular participation involves voting on candidates who want to join the membership
+society, and by voting in the right way, a member will accumulate future payouts.
+When a payout matures, members are able to claim those payouts.
+
+Members can also vouch for users to join the society, and request a "tip" from
+the fees the new member would collect by joining the society. This vouching
+process is useful in situations where a user may not have enough balance to
+satisfy the bid deposit. A member can only vouch one user at a time.
+
+During rotation periods, a random group of members are selected as "skeptics".
+These skeptics are expected to vote on the current candidates. If they do not vote,
+their skeptic status is treated as a rejection vote, the member is deemed
+"lazy", and are given a strike per missing vote.
+
+There is a challenge period in parallel to the rotation period. During a challenge period,
+a random member is selected to defend their membership to the society. Other members
+make a traditional majority-wins vote to determine if the member should stay in the society.
+Ties are treated as a failure of the challenge.
+
+If a member accumulates too many strikes or fails their membership challenge,
+they will become suspended. While a member is suspended, they are unable to
+claim matured payouts. It is up to the Suspension Judgement origin to determine
+if the member should re-enter society or be removed from society with all their
+future payouts slashed.
+
+## Interface
+
+### Dispatchable Functions
+
+#### For General Users
+
+* `bid` - A user can make a bid to join the membership society by reserving a deposit.
+* `unbid` - A user can withdraw their bid for entry, the deposit is returned.
+
+#### For Members
+
+* `vouch` - A member can place a bid on behalf of a user to join the membership society.
+* `unvouch` - A member can revoke their vouch for a user.
+* `vote` - A member can vote to approve or reject a candidate's request to join the society.
+* `defender_vote` - A member can vote to approve or reject a defender's continued membership
+to the society.
+* `payout` - A member can claim their first matured payment.
+* `unfound` - Allow the founder to unfound the society when they are the only member.
+
+#### For Super Users
+
+* `found` - The founder origin can initiate this society. Useful for bootstrapping the Society
+pallet on an already running chain.
+* `judge_suspended_member` - The suspension judgement origin is able to make
+judgement on a suspended member.
+* `judge_suspended_candidate` - The suspension judgement origin is able to
+make judgement on a suspended candidate.
+* `set_max_membership` - The ROOT origin can update the maximum member count for the society.
+The max membership count must be greater than 1.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/staking/Cargo.toml b/substrate/frame/staking/Cargo.toml
index f0bc0c0ac7c..2d1487afb03 100644
--- a/substrate/frame/staking/Cargo.toml
+++ b/substrate/frame/staking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-staking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,29 +15,29 @@ targets = ["x86_64-unknown-linux-gnu"]
 static_assertions = "1.1.0"
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.4", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-npos-elections = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/npos-elections" }
-sp-io ={ version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/staking" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-session = { version = "2.0.0-rc5", default-features = false, features = ["historical"], path = "../session" }
-pallet-authorship = { version = "2.0.0-rc5", default-features = false, path = "../authorship" }
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/application-crypto" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-npos-elections = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/npos-elections" }
+sp-io ={ version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/staking" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-session = { version = "2.0.0-rc6", default-features = false, features = ["historical"], path = "../session" }
+pallet-authorship = { version = "2.0.0-rc6", default-features = false, path = "../authorship" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/application-crypto" }
 
 # Optional imports for benchmarking
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 rand_chacha = { version = "0.2", default-features = false, optional = true }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-storage = { version = "2.0.0-rc5", path = "../../primitives/storage" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-pallet-timestamp = { version = "2.0.0-rc5", path = "../timestamp" }
-pallet-staking-reward-curve = { version = "2.0.0-rc5",  path = "../staking/reward-curve" }
-substrate-test-utils = { version = "2.0.0-rc5", path = "../../test-utils" }
-frame-benchmarking = { version = "2.0.0-rc5", path = "../benchmarking" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-storage = { version = "2.0.0-rc6", path = "../../primitives/storage" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+pallet-timestamp = { version = "2.0.0-rc6", path = "../timestamp" }
+pallet-staking-reward-curve = { version = "2.0.0-rc6",  path = "../staking/reward-curve" }
+substrate-test-utils = { version = "2.0.0-rc6", path = "../../test-utils" }
+frame-benchmarking = { version = "2.0.0-rc6", path = "../benchmarking" }
 rand_chacha = { version = "0.2" }
 parking_lot = "0.10.2"
 env_logger = "0.7.1"
diff --git a/substrate/frame/staking/README.md b/substrate/frame/staking/README.md
new file mode 100644
index 00000000000..02db98ab7f0
--- /dev/null
+++ b/substrate/frame/staking/README.md
@@ -0,0 +1,249 @@
+# Staking Module
+
+The Staking module is used to manage funds at stake by network maintainers.
+
+- [`staking::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+## Overview
+
+The Staking module is the means by which a set of network maintainers (known as _authorities_ in
+some contexts and _validators_ in others) are chosen based upon those who voluntarily place
+funds under deposit. Under deposit, those funds are rewarded under normal operation but are held
+at pain of _slash_ (expropriation) should the staked maintainer be found not to be discharging
+its duties properly.
+
+### Terminology
+<!-- Original author of paragraph: @gavofyork -->
+
+- Staking: The process of locking up funds for some time, placing them at risk of slashing
+  (loss) in order to become a rewarded maintainer of the network.
+- Validating: The process of running a node to actively maintain the network, either by
+  producing blocks or guaranteeing finality of the chain.
+- Nominating: The process of placing staked funds behind one or more validators in order to
+  share in any reward, and punishment, they take.
+- Stash account: The account holding an owner's funds used for staking.
+- Controller account: The account that controls an owner's funds for staking.
+- Era: A (whole) number of sessions, which is the period that the validator set (and each
+  validator's active nominator set) is recalculated and where rewards are paid out.
+- Slash: The punishment of a staker by reducing its funds.
+
+### Goals
+<!-- Original author of paragraph: @gavofyork -->
+
+The staking system in Substrate NPoS is designed to make the following possible:
+
+- Stake funds that are controlled by a cold wallet.
+- Withdraw some, or deposit more, funds without interrupting the role of an entity.
+- Switch between roles (nominator, validator, idle) with minimal overhead.
+
+### Scenarios
+
+#### Staking
+
+Almost any interaction with the Staking module requires a process of _**bonding**_ (also known
+as being a _staker_). To become *bonded*, a fund-holding account known as the _stash account_,
+which holds some or all of the funds that become frozen in place as part of the staking process,
+is paired with an active **controller** account, which issues instructions on how they shall be
+used.
+
+An account pair can become bonded using the [`bond`](./enum.Call.html#variant.bond) call.
+
+Stash accounts can change their associated controller using the
+[`set_controller`](./enum.Call.html#variant.set_controller) call.
+
+There are three possible roles that any staked account pair can be in: `Validator`, `Nominator`
+and `Idle` (defined in [`StakerStatus`](./enum.StakerStatus.html)). There are three
+corresponding instructions to change between roles, namely:
+[`validate`](./enum.Call.html#variant.validate),
+[`nominate`](./enum.Call.html#variant.nominate), and [`chill`](./enum.Call.html#variant.chill).
+
+#### Validating
+
+A **validator** takes the role of either validating blocks or ensuring their finality,
+maintaining the veracity of the network. A validator should avoid both any sort of malicious
+misbehavior and going offline. Bonded accounts that state interest in being a validator do NOT
+get immediately chosen as a validator. Instead, they are declared as a _candidate_ and they
+_might_ get elected at the _next era_ as a validator. The result of the election is determined
+by nominators and their votes.
+
+An account can become a validator candidate via the
+[`validate`](./enum.Call.html#variant.validate) call.
+
+#### Nomination
+
+A **nominator** does not take any _direct_ role in maintaining the network, instead, it votes on
+a set of validators  to be elected. Once interest in nomination is stated by an account, it
+takes effect at the next election round. The funds in the nominator's stash account indicate the
+_weight_ of its vote. Both the rewards and any punishment that a validator earns are shared
+between the validator and its nominators. This rule incentivizes the nominators to NOT vote for
+the misbehaving/offline validators as much as possible, simply because the nominators will also
+lose funds if they vote poorly.
+
+An account can become a nominator via the [`nominate`](enum.Call.html#variant.nominate) call.
+
+#### Rewards and Slash
+
+The **reward and slashing** procedure is the core of the Staking module, attempting to _embrace
+valid behavior_ while _punishing any misbehavior or lack of availability_.
+
+Rewards must be claimed for each era before it gets too old by `$HISTORY_DEPTH` using the
+`payout_stakers` call. Any account can call `payout_stakers`, which pays the reward to the
+validator as well as its nominators. Only the [`Trait::MaxNominatorRewardedPerValidator`]
+biggest stakers can claim their reward. This is to limit the i/o cost to mutate storage for each
+nominator's account.
+
+Slashing can occur at any point in time, once misbehavior is reported. Once slashing is
+determined, a value is deducted from the balance of the validator and all the nominators who
+voted for this validator (values are deducted from the _stash_ account of the slashed entity).
+
+Slashing logic is further described in the documentation of the `slashing` module.
+
+Similar to slashing, rewards are also shared among a validator and its associated nominators.
+Yet, the reward funds are not always transferred to the stash account and can be configured. See
+[Reward Calculation](#reward-calculation) for more details.
+
+#### Chilling
+
+Finally, any of the roles above can choose to step back temporarily and just chill for a while.
+This means that if they are a nominator, they will not be considered as voters anymore and if
+they are validators, they will no longer be a candidate for the next election.
+
+An account can step back via the [`chill`](enum.Call.html#variant.chill) call.
+
+### Session managing
+
+The module implement the trait `SessionManager`. Which is the only API to query new validator
+set and allowing these validator set to be rewarded once their era is ended.
+
+## Interface
+
+### Dispatchable Functions
+
+The dispatchable functions of the Staking module enable the steps needed for entities to accept
+and change their role, alongside some helper functions to get/set the metadata of the module.
+
+### Public Functions
+
+The Staking module contains many public storage items and (im)mutable functions.
+
+## Usage
+
+### Example: Rewarding a validator by id.
+
+```rust
+use frame_support::{decl_module, dispatch};
+use frame_system::ensure_signed;
+use pallet_staking::{self as staking};
+
+pub trait Trait: staking::Trait {}
+
+decl_module! {
+    pub struct Module<T: Trait> for enum Call where origin: T::Origin {
+        /// Reward a validator.
+        #[weight = 0]
+        pub fn reward_myself(origin) -> dispatch::DispatchResult {
+            let reported = ensure_signed(origin)?;
+            <staking::Module<T>>::reward_by_ids(vec![(reported, 10)]);
+            Ok(())
+        }
+    }
+}
+```
+
+## Implementation Details
+
+### Era payout
+
+The era payout is computed using yearly inflation curve defined at
+[`T::RewardCurve`](./trait.Trait.html#associatedtype.RewardCurve) as such:
+
+```nocompile
+staker_payout = yearly_inflation(npos_token_staked / total_tokens) * total_tokens / era_per_year
+```
+This payout is used to reward stakers as defined in next section
+
+```nocompile
+remaining_payout = max_yearly_inflation * total_tokens / era_per_year - staker_payout
+```
+The remaining reward is send to the configurable end-point
+[`T::RewardRemainder`](./trait.Trait.html#associatedtype.RewardRemainder).
+
+### Reward Calculation
+
+Validators and nominators are rewarded at the end of each era. The total reward of an era is
+calculated using the era duration and the staking rate (the total amount of tokens staked by
+nominators and validators, divided by the total token supply). It aims to incentivize toward a
+defined staking rate. The full specification can be found
+[here](https://research.web3.foundation/en/latest/polkadot/Token%20Economics.html#inflation-model).
+
+Total reward is split among validators and their nominators depending on the number of points
+they received during the era. Points are added to a validator using
+[`reward_by_ids`](./enum.Call.html#variant.reward_by_ids) or
+[`reward_by_indices`](./enum.Call.html#variant.reward_by_indices).
+
+[`Module`](./struct.Module.html) implements
+[`pallet_authorship::EventHandler`](../pallet_authorship/trait.EventHandler.html) to add reward
+points to block producer and block producer of referenced uncles.
+
+The validator and its nominator split their reward as following:
+
+The validator can declare an amount, named
+[`commission`](./struct.ValidatorPrefs.html#structfield.commission), that does not get shared
+with the nominators at each reward payout through its
+[`ValidatorPrefs`](./struct.ValidatorPrefs.html). This value gets deducted from the total reward
+that is paid to the validator and its nominators. The remaining portion is split among the
+validator and all of the nominators that nominated the validator, proportional to the value
+staked behind this validator (_i.e._ dividing the
+[`own`](./struct.Exposure.html#structfield.own) or
+[`others`](./struct.Exposure.html#structfield.others) by
+[`total`](./struct.Exposure.html#structfield.total) in [`Exposure`](./struct.Exposure.html)).
+
+All entities who receive a reward have the option to choose their reward destination through the
+[`Payee`](./struct.Payee.html) storage item (see
+[`set_payee`](enum.Call.html#variant.set_payee)), to be one of the following:
+
+- Controller account, (obviously) not increasing the staked value.
+- Stash account, not increasing the staked value.
+- Stash account, also increasing the staked value.
+
+### Additional Fund Management Operations
+
+Any funds already placed into stash can be the target of the following operations:
+
+The controller account can free a portion (or all) of the funds using the
+[`unbond`](enum.Call.html#variant.unbond) call. Note that the funds are not immediately
+accessible. Instead, a duration denoted by [`BondingDuration`](./struct.BondingDuration.html)
+(in number of eras) must pass until the funds can actually be removed. Once the
+`BondingDuration` is over, the [`withdraw_unbonded`](./enum.Call.html#variant.withdraw_unbonded)
+call can be used to actually withdraw the funds.
+
+Note that there is a limitation to the number of fund-chunks that can be scheduled to be
+unlocked in the future via [`unbond`](enum.Call.html#variant.unbond). In case this maximum
+(`MAX_UNLOCKING_CHUNKS`) is reached, the bonded account _must_ first wait until a successful
+call to `withdraw_unbonded` to remove some of the chunks.
+
+### Election Algorithm
+
+The current election algorithm is implemented based on Phragmén. The reference implementation
+can be found [here](https://github.com/w3f/consensus/tree/master/NPoS).
+
+The election algorithm, aside from electing the validators with the most stake value and votes,
+tries to divide the nominator votes among candidates in an equal manner. To further assure this,
+an optional post-processing can be applied that iteratively normalizes the nominator staked
+values until the total difference among votes of a particular nominator are less than a
+threshold.
+
+## GenesisConfig
+
+The Staking module depends on the [`GenesisConfig`](./struct.GenesisConfig.html). The
+`GenesisConfig` is optional and allow to set some initial stakers.
+
+## Related Modules
+
+- [Balances](../pallet_balances/index.html): Used to manage values at stake.
+- [Session](../pallet_session/index.html): Used to manage sessions. Also, a list of new
+  validators is stored in the Session module's `Validators` at the end of each era.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/staking/fuzzer/Cargo.toml b/substrate/frame/staking/fuzzer/Cargo.toml
index 832ac622a97..ee3e8928676 100644
--- a/substrate/frame/staking/fuzzer/Cargo.toml
+++ b/substrate/frame/staking/fuzzer/Cargo.toml
@@ -15,19 +15,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 honggfuzz = "0.5"
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-pallet-staking = { version = "2.0.0-rc5", path = "..", features = ["runtime-benchmarks"] }
-pallet-staking-reward-curve = { version = "2.0.0-rc5",  path = "../reward-curve" }
-pallet-session = { version = "2.0.0-rc5", path = "../../session" }
-pallet-indices = { version = "2.0.0-rc5", path = "../../indices" }
-pallet-balances = { version = "2.0.0-rc5", path = "../../balances" }
-pallet-timestamp = { version = "2.0.0-rc5", path = "../../timestamp" }
-frame-system = { version = "2.0.0-rc5", path = "../../system" }
-frame-support = { version = "2.0.0-rc5", path = "../../support" }
-sp-std = { version = "2.0.0-rc5", path = "../../../primitives/std" }
-sp-io ={ version = "2.0.0-rc5", path = "../../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-npos-elections = { version = "2.0.0-rc5", path = "../../../primitives/npos-elections" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
+pallet-staking = { version = "2.0.0-rc6", path = "..", features = ["runtime-benchmarks"] }
+pallet-staking-reward-curve = { version = "2.0.0-rc6",  path = "../reward-curve" }
+pallet-session = { version = "2.0.0-rc6", path = "../../session" }
+pallet-indices = { version = "2.0.0-rc6", path = "../../indices" }
+pallet-balances = { version = "2.0.0-rc6", path = "../../balances" }
+pallet-timestamp = { version = "2.0.0-rc6", path = "../../timestamp" }
+frame-system = { version = "2.0.0-rc6", path = "../../system" }
+frame-support = { version = "2.0.0-rc6", path = "../../support" }
+sp-std = { version = "2.0.0-rc6", path = "../../../primitives/std" }
+sp-io ={ version = "2.0.0-rc6", path = "../../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-npos-elections = { version = "2.0.0-rc6", path = "../../../primitives/npos-elections" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
 
 [[bin]]
 name = "submit_solution"
diff --git a/substrate/frame/staking/reward-curve/Cargo.toml b/substrate/frame/staking/reward-curve/Cargo.toml
index 25cbffda1de..a3ef91d3bc6 100644
--- a/substrate/frame/staking/reward-curve/Cargo.toml
+++ b/substrate/frame/staking/reward-curve/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-staking-reward-curve"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -21,4 +21,4 @@ proc-macro2 = "1.0.6"
 proc-macro-crate = "0.1.4"
 
 [dev-dependencies]
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
diff --git a/substrate/frame/sudo/Cargo.toml b/substrate/frame/sudo/Cargo.toml
index ba68aa49470..eef60150558 100644
--- a/substrate/frame/sudo/Cargo.toml
+++ b/substrate/frame/sudo/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-sudo"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,14 +14,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/sudo/README.md b/substrate/frame/sudo/README.md
new file mode 100644
index 00000000000..fb8d1974c12
--- /dev/null
+++ b/substrate/frame/sudo/README.md
@@ -0,0 +1,70 @@
+# Sudo Module
+
+- [`sudo::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+The Sudo module allows for a single account (called the "sudo key")
+to execute dispatchable functions that require a `Root` call
+or designate a new account to replace them as the sudo key.
+Only one account can be the sudo key at a time.
+
+## Interface
+
+### Dispatchable Functions
+
+Only the sudo key can call the dispatchable functions from the Sudo module.
+
+* `sudo` - Make a `Root` call to a dispatchable function.
+* `set_key` - Assign a new account to be the sudo key.
+
+## Usage
+
+### Executing Privileged Functions
+
+The Sudo module itself is not intended to be used within other modules.
+Instead, you can build "privileged functions" (i.e. functions that require `Root` origin) in other modules.
+You can execute these privileged functions by calling `sudo` with the sudo key account.
+Privileged functions cannot be directly executed via an extrinsic.
+
+Learn more about privileged functions and `Root` origin in the [`Origin`] type documentation.
+
+### Simple Code Snippet
+
+This is an example of a module that exposes a privileged function:
+
+```rust
+use frame_support::{decl_module, dispatch};
+use frame_system::ensure_root;
+
+pub trait Trait: frame_system::Trait {}
+
+decl_module! {
+    pub struct Module<T: Trait> for enum Call where origin: T::Origin {
+		#[weight = 0]
+        pub fn privileged_function(origin) -> dispatch::DispatchResult {
+            ensure_root(origin)?;
+
+            // do something...
+
+            Ok(())
+        }
+    }
+}
+```
+
+## Genesis Config
+
+The Sudo module depends on the [`GenesisConfig`](./struct.GenesisConfig.html).
+You need to set an initial superuser account as the sudo `key`.
+
+## Related Modules
+
+* [Democracy](../pallet_democracy/index.html)
+
+[`Call`]: ./enum.Call.html
+[`Trait`]: ./trait.Trait.html
+[`Origin`]: https://docs.substrate.dev/docs/substrate-types
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/support/Cargo.toml b/substrate/frame/support/Cargo.toml
index 24e898e1692..005638824b0 100644
--- a/substrate/frame/support/Cargo.toml
+++ b/substrate/frame/support/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-support"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,25 +15,25 @@ targets = ["x86_64-unknown-linux-gnu"]
 log = "0.4"
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-frame-metadata = { version = "11.0.0-rc5", default-features = false, path = "../metadata" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-tracing = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/tracing" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-arithmetic = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/arithmetic" }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-frame-support-procedural = { version = "2.0.0-rc5", path = "./procedural" }
+frame-metadata = { version = "11.0.0-rc6", default-features = false, path = "../metadata" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-tracing = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/tracing" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-arithmetic = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/arithmetic" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+frame-support-procedural = { version = "2.0.0-rc6", path = "./procedural" }
 paste = "0.1.6"
 once_cell = { version = "1", default-features = false, optional = true }
-sp-state-machine = { version = "0.8.0-rc5", optional = true, path = "../../primitives/state-machine" }
+sp-state-machine = { version = "0.8.0-rc6", optional = true, path = "../../primitives/state-machine" }
 bitmask = { version = "0.5.0", default-features = false }
 impl-trait-for-tuples = "0.1.3"
 smallvec = "1.4.1"
 
 [dev-dependencies]
 pretty_assertions = "0.6.1"
-frame-system = { version = "2.0.0-rc5", path = "../system" }
+frame-system = { version = "2.0.0-rc6", path = "../system" }
 parity-util-mem = { version = "0.7.0", features = ["primitive-types"] }
 
 [features]
diff --git a/substrate/frame/support/README.md b/substrate/frame/support/README.md
new file mode 100644
index 00000000000..2282870aca0
--- /dev/null
+++ b/substrate/frame/support/README.md
@@ -0,0 +1,3 @@
+Support code for the runtime.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/support/procedural/Cargo.toml b/substrate/frame/support/procedural/Cargo.toml
index 622b9246654..dc62a837916 100644
--- a/substrate/frame/support/procedural/Cargo.toml
+++ b/substrate/frame/support/procedural/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-support-procedural"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 proc-macro = true
 
 [dependencies]
-frame-support-procedural-tools = { version = "2.0.0-rc5", path = "./tools" }
+frame-support-procedural-tools = { version = "2.0.0-rc6", path = "./tools" }
 proc-macro2 = "1.0.6"
 quote = "1.0.3"
 syn = { version = "1.0.7", features = ["full"] }
diff --git a/substrate/frame/support/procedural/tools/Cargo.toml b/substrate/frame/support/procedural/tools/Cargo.toml
index 2c9a66baac5..131d47474e7 100644
--- a/substrate/frame/support/procedural/tools/Cargo.toml
+++ b/substrate/frame/support/procedural/tools/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-support-procedural-tools"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,7 +12,7 @@ description = "Proc macro helpers for procedural macros"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-frame-support-procedural-tools-derive = { version = "2.0.0-rc5", path = "./derive" }
+frame-support-procedural-tools-derive = { version = "2.0.0-rc6", path = "./derive" }
 proc-macro2 = "1.0.6"
 quote = "1.0.3"
 syn = { version = "1.0.7", features = ["full", "visit"] }
diff --git a/substrate/frame/support/procedural/tools/derive/Cargo.toml b/substrate/frame/support/procedural/tools/derive/Cargo.toml
index fceaeaf08d2..327409692f4 100644
--- a/substrate/frame/support/procedural/tools/derive/Cargo.toml
+++ b/substrate/frame/support/procedural/tools/derive/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-support-procedural-tools-derive"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/frame/support/test/Cargo.toml b/substrate/frame/support/test/Cargo.toml
index 22d420a6175..f2f70fb9527 100644
--- a/substrate/frame/support/test/Cargo.toml
+++ b/substrate/frame/support/test/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-support-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,13 +14,13 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", default-features = false, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-io = { version = "2.0.0-rc5", path = "../../../primitives/io", default-features = false }
-sp-state-machine = { version = "0.8.0-rc5", optional = true, path = "../../../primitives/state-machine" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../" }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/inherents" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", path = "../../../primitives/io", default-features = false }
+sp-state-machine = { version = "0.8.0-rc6", optional = true, path = "../../../primitives/state-machine" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/inherents" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/std" }
 trybuild = "1.0.17"
 pretty_assertions = "0.6.1"
 rustversion = "1.0.0"
diff --git a/substrate/frame/system/Cargo.toml b/substrate/frame/system/Cargo.toml
index e9a085f85be..5a5643fec9a 100644
--- a/substrate/frame/system/Cargo.toml
+++ b/substrate/frame/system/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-system"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io", default-features = false }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-version = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/version" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io", default-features = false }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-version = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/version" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
 impl-trait-for-tuples = "0.1.3"
 
 [dev-dependencies]
 criterion = "0.2.11"
-sp-externalities = { version = "0.8.0-rc5", path = "../../primitives/externalities" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../test-utils/runtime/client" }
+sp-externalities = { version = "0.8.0-rc6", path = "../../primitives/externalities" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../test-utils/runtime/client" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/system/README.md b/substrate/frame/system/README.md
new file mode 100644
index 00000000000..46e48b6d527
--- /dev/null
+++ b/substrate/frame/system/README.md
@@ -0,0 +1,75 @@
+# System Module
+
+The System module provides low-level access to core types and cross-cutting utilities.
+It acts as the base layer for other pallets to interact with the Substrate framework components.
+
+- [`system::Trait`](./trait.Trait.html)
+
+## Overview
+
+The System module defines the core data types used in a Substrate runtime.
+It also provides several utility functions (see [`Module`](./struct.Module.html)) for other FRAME pallets.
+
+In addition, it manages the storage items for extrinsics data, indexes, event records, and digest items,
+among other things that support the execution of the current block.
+
+It also handles low-level tasks like depositing logs, basic set up and take down of
+temporary storage entries, and access to previous block hashes.
+
+## Interface
+
+### Dispatchable Functions
+
+The System module does not implement any dispatchable functions.
+
+### Public Functions
+
+See the [`Module`](./struct.Module.html) struct for details of publicly available functions.
+
+### Signed Extensions
+
+The System module defines the following extensions:
+
+  - [`CheckWeight`]: Checks the weight and length of the block and ensure that it does not
+    exceed the limits.
+  - [`CheckNonce`]: Checks the nonce of the transaction. Contains a single payload of type
+    `T::Index`.
+  - [`CheckEra`]: Checks the era of the transaction. Contains a single payload of type `Era`.
+  - [`CheckGenesis`]: Checks the provided genesis hash of the transaction. Must be a part of the
+    signed payload of the transaction.
+  - [`CheckSpecVersion`]: Checks that the runtime version is the same as the one used to sign the
+    transaction.
+  - [`CheckTxVersion`]: Checks that the transaction version is the same as the one used to sign the
+    transaction.
+
+Lookup the runtime aggregator file (e.g. `node/runtime`) to see the full list of signed
+extensions included in a chain.
+
+## Usage
+
+### Prerequisites
+
+Import the System module and derive your module's configuration trait from the system trait.
+
+### Example - Get extrinsic count and parent hash for the current block
+
+```rust
+use frame_support::{decl_module, dispatch};
+use frame_system::{self as system, ensure_signed};
+
+pub trait Trait: system::Trait {}
+
+decl_module! {
+	pub struct Module<T: Trait> for enum Call where origin: T::Origin {
+		#[weight = 0]
+		pub fn system_module_example(origin) -> dispatch::DispatchResult {
+			let _sender = ensure_signed(origin)?;
+			let _extrinsic_count = <system::Module<T>>::extrinsic_count();
+			let _parent_hash = <system::Module<T>>::parent_hash();
+			Ok(())
+		}
+	}
+}
+```
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/system/benchmarking/Cargo.toml b/substrate/frame/system/benchmarking/Cargo.toml
index e8edab81324..c0b5366b7a4 100644
--- a/substrate/frame/system/benchmarking/Cargo.toml
+++ b/substrate/frame/system/benchmarking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-system-benchmarking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,16 +13,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/runtime" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../../benchmarking" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../../system" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../../support" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/runtime" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../../benchmarking" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../../system" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../../support" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../../primitives/core" }
 
 [dev-dependencies]
 serde = { version = "1.0.101" }
-sp-io ={ version = "2.0.0-rc5", path = "../../../primitives/io" }
+sp-io ={ version = "2.0.0-rc6", path = "../../../primitives/io" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/system/benchmarking/README.md b/substrate/frame/system/benchmarking/README.md
new file mode 100644
index 00000000000..9718db58b37
--- /dev/null
+++ b/substrate/frame/system/benchmarking/README.md
@@ -0,0 +1 @@
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/system/rpc/runtime-api/Cargo.toml b/substrate/frame/system/rpc/runtime-api/Cargo.toml
index fa2bd7dd1b8..3c6028b4f7a 100644
--- a/substrate/frame/system/rpc/runtime-api/Cargo.toml
+++ b/substrate/frame/system/rpc/runtime-api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-system-rpc-runtime-api"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,7 +12,7 @@ description = "Runtime API definition required by System RPC extensions."
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../../../primitives/api" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../../../primitives/api" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
 
 [features]
diff --git a/substrate/frame/system/rpc/runtime-api/README.md b/substrate/frame/system/rpc/runtime-api/README.md
new file mode 100644
index 00000000000..ab46c22a8be
--- /dev/null
+++ b/substrate/frame/system/rpc/runtime-api/README.md
@@ -0,0 +1,7 @@
+Runtime API definition required by System RPC extensions.
+
+This API should be imported and implemented by the runtime,
+of a node that wants to use the custom RPC extension
+adding System access methods.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/timestamp/Cargo.toml b/substrate/frame/timestamp/Cargo.toml
index bb9a3266e2d..db8e488dd5d 100644
--- a/substrate/frame/timestamp/Cargo.toml
+++ b/substrate/frame/timestamp/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-timestamp"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,19 +16,19 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io", optional = true }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/timestamp" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io", optional = true }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/timestamp" }
 impl-trait-for-tuples = "0.1.3"
 
 [dev-dependencies]
-sp-io ={ version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
+sp-io ={ version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/timestamp/README.md b/substrate/frame/timestamp/README.md
new file mode 100644
index 00000000000..7cdbdf0e79b
--- /dev/null
+++ b/substrate/frame/timestamp/README.md
@@ -0,0 +1,74 @@
+# Timestamp Module
+
+The Timestamp module provides functionality to get and set the on-chain time.
+
+- [`timestamp::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+- [`Module`](./struct.Module.html)
+
+## Overview
+
+The Timestamp module allows the validators to set and validate a timestamp with each block.
+
+It uses inherents for timestamp data, which is provided by the block author and validated/verified
+by other validators. The timestamp can be set only once per block and must be set each block.
+There could be a constraint on how much time must pass before setting the new timestamp.
+
+**NOTE:** The Timestamp module is the recommended way to query the on-chain time instead of using
+an approach based on block numbers. The block number based time measurement can cause issues
+because of cumulative calculation errors and hence should be avoided.
+
+## Interface
+
+### Dispatchable Functions
+
+* `set` - Sets the current time.
+
+### Public functions
+
+* `get` - Gets the current time for the current block. If this function is called prior to
+setting the timestamp, it will return the timestamp of the previous block.
+
+### Trait Getters
+
+* `MinimumPeriod` - Gets the minimum (and advised) period between blocks for the chain.
+
+## Usage
+
+The following example shows how to use the Timestamp module in your custom module to query the current timestamp.
+
+### Prerequisites
+
+Import the Timestamp module into your custom module and derive the module configuration
+trait from the timestamp trait.
+
+### Get current timestamp
+
+```rust
+use frame_support::{decl_module, dispatch};
+use frame_system::ensure_signed;
+
+pub trait Trait: timestamp::Trait {}
+
+decl_module! {
+	pub struct Module<T: Trait> for enum Call where origin: T::Origin {
+		#[weight = 0]
+		pub fn get_time(origin) -> dispatch::DispatchResult {
+			let _sender = ensure_signed(origin)?;
+			let _now = <timestamp::Module<T>>::get();
+			Ok(())
+		}
+	}
+}
+```
+
+### Example from the FRAME
+
+The [Session module](https://github.com/paritytech/substrate/blob/master/frame/session/src/lib.rs) uses
+the Timestamp module for session management.
+
+## Related Modules
+
+* [Session](../pallet_session/index.html)
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/transaction-payment/Cargo.toml b/substrate/frame/transaction-payment/Cargo.toml
index e48488a7bcd..e0381b20aa4 100644
--- a/substrate/frame/transaction-payment/Cargo.toml
+++ b/substrate/frame/transaction-payment/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-transaction-payment"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0-rc5", default-features = false, path = "./rpc/runtime-api" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0-rc6", default-features = false, path = "./rpc/runtime-api" }
 smallvec = "1.4.1"
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io", default-features = false }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core", default-features = false }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io", default-features = false }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core", default-features = false }
 
 [dev-dependencies]
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-sp-storage = { version = "2.0.0-rc5", path = "../../primitives/storage" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+sp-storage = { version = "2.0.0-rc6", path = "../../primitives/storage" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/transaction-payment/README.md b/substrate/frame/transaction-payment/README.md
new file mode 100644
index 00000000000..10ad9579e92
--- /dev/null
+++ b/substrate/frame/transaction-payment/README.md
@@ -0,0 +1,16 @@
+# Transaction Payment Module
+
+This module provides the basic logic needed to pay the absolute minimum amount needed for a
+transaction to be included. This includes:
+  - _weight fee_: A fee proportional to amount of weight a transaction consumes.
+  - _length fee_: A fee proportional to the encoded length of the transaction.
+  - _tip_: An optional tip. Tip increases the priority of the transaction, giving it a higher
+    chance to be included by the transaction queue.
+
+Additionally, this module allows one to configure:
+  - The mapping between one unit of weight to one unit of fee via [`Trait::WeightToFee`].
+  - A means of updating the fee for the next block, via defining a multiplier, based on the
+    final state of the chain at the end of the previous block. This can be configured via
+    [`Trait::FeeMultiplierUpdate`]
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/transaction-payment/rpc/Cargo.toml b/substrate/frame/transaction-payment/rpc/Cargo.toml
index 280a4dc490e..d3d03dd1a4d 100644
--- a/substrate/frame/transaction-payment/rpc/Cargo.toml
+++ b/substrate/frame/transaction-payment/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-transaction-payment-rpc"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,10 +16,10 @@ codec = { package = "parity-scale-codec", version = "1.3.1" }
 jsonrpc-core = "14.2.0"
 jsonrpc-core-client = "14.2.0"
 jsonrpc-derive = "14.2.1"
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sp-rpc = { version = "2.0.0-rc5", path = "../../../primitives/rpc" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sp-rpc = { version = "2.0.0-rc6", path = "../../../primitives/rpc" }
 serde = { version = "1.0.101", features = ["derive"] }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0-rc5", path = "./runtime-api" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+pallet-transaction-payment-rpc-runtime-api = { version = "2.0.0-rc6", path = "./runtime-api" }
diff --git a/substrate/frame/transaction-payment/rpc/README.md b/substrate/frame/transaction-payment/rpc/README.md
new file mode 100644
index 00000000000..21a8a7d37ca
--- /dev/null
+++ b/substrate/frame/transaction-payment/rpc/README.md
@@ -0,0 +1,3 @@
+RPC interface for the transaction payment module.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/transaction-payment/rpc/runtime-api/Cargo.toml b/substrate/frame/transaction-payment/rpc/runtime-api/Cargo.toml
index dacc7bc6423..42b9fb9e64d 100644
--- a/substrate/frame/transaction-payment/rpc/runtime-api/Cargo.toml
+++ b/substrate/frame/transaction-payment/rpc/runtime-api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-transaction-payment-rpc-runtime-api"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,11 +13,11 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../../../primitives/api" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../../../primitives/api" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../../../support" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../../../support" }
 
 [dev-dependencies]
 serde_json = "1.0.41"
diff --git a/substrate/frame/transaction-payment/rpc/runtime-api/README.md b/substrate/frame/transaction-payment/rpc/runtime-api/README.md
new file mode 100644
index 00000000000..e453d9a3b7c
--- /dev/null
+++ b/substrate/frame/transaction-payment/rpc/runtime-api/README.md
@@ -0,0 +1,3 @@
+Runtime API definition for transaction payment module.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/treasury/Cargo.toml b/substrate/frame/treasury/Cargo.toml
index a2b316a6c6a..b6ef83b32ed 100644
--- a/substrate/frame/treasury/Cargo.toml
+++ b/substrate/frame/treasury/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-treasury"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-pallet-balances = { version = "2.0.0-rc5", default-features = false, path = "../balances" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+pallet-balances = { version = "2.0.0-rc6", default-features = false, path = "../balances" }
 
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-io ={ version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-storage = { version = "2.0.0-rc5", path = "../../primitives/storage" }
+sp-io ={ version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-storage = { version = "2.0.0-rc6", path = "../../primitives/storage" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/treasury/README.md b/substrate/frame/treasury/README.md
new file mode 100644
index 00000000000..befb5811802
--- /dev/null
+++ b/substrate/frame/treasury/README.md
@@ -0,0 +1,72 @@
+# Treasury Module
+
+The Treasury module provides a "pot" of funds that can be managed by stakeholders in the
+system and a structure for making spending proposals from this pot.
+
+- [`treasury::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+The Treasury Module itself provides the pot to store funds, and a means for stakeholders to
+propose, approve, and deny expenditures. The chain will need to provide a method (e.g.
+inflation, fees) for collecting funds.
+
+By way of example, the Council could vote to fund the Treasury with a portion of the block
+reward and use the funds to pay developers.
+
+### Tipping
+
+A separate subsystem exists to allow for an agile "tipping" process, whereby a reward may be
+given without first having a pre-determined stakeholder group come to consensus on how much
+should be paid.
+
+A group of `Tippers` is determined through the config `Trait`. After half of these have declared
+some amount that they believe a particular reported reason deserves, then a countdown period is
+entered where any remaining members can declare their tip amounts also. After the close of the
+countdown period, the median of all declared tips is paid to the reported beneficiary, along
+with any finders fee, in case of a public (and bonded) original report.
+
+### Terminology
+
+- **Proposal:** A suggestion to allocate funds from the pot to a beneficiary.
+- **Beneficiary:** An account who will receive the funds from a proposal iff
+the proposal is approved.
+- **Deposit:** Funds that a proposer must lock when making a proposal. The
+deposit will be returned or slashed if the proposal is approved or rejected
+respectively.
+- **Pot:** Unspent funds accumulated by the treasury module.
+
+Tipping protocol:
+- **Tipping:** The process of gathering declarations of amounts to tip and taking the median
+  amount to be transferred from the treasury to a beneficiary account.
+- **Tip Reason:** The reason for a tip; generally a URL which embodies or explains why a
+  particular individual (identified by an account ID) is worthy of a recognition by the
+  treasury.
+- **Finder:** The original public reporter of some reason for tipping.
+- **Finders Fee:** Some proportion of the tip amount that is paid to the reporter of the tip,
+  rather than the main beneficiary.
+
+## Interface
+
+### Dispatchable Functions
+
+General spending/proposal protocol:
+- `propose_spend` - Make a spending proposal and stake the required deposit.
+- `set_pot` - Set the spendable balance of funds.
+- `configure` - Configure the module's proposal requirements.
+- `reject_proposal` - Reject a proposal, slashing the deposit.
+- `approve_proposal` - Accept the proposal, returning the deposit.
+
+Tipping protocol:
+- `report_awesome` - Report something worthy of a tip and register for a finders fee.
+- `retract_tip` - Retract a previous (finders fee registered) report.
+- `tip_new` - Report an item worthy of a tip and declare a specific amount to tip.
+- `tip` - Declare or redeclare an amount to tip for a particular reason.
+- `close_tip` - Close and pay out a tip.
+
+## GenesisConfig
+
+The Treasury module depends on the [`GenesisConfig`](./struct.GenesisConfig.html).
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/utility/Cargo.toml b/substrate/frame/utility/Cargo.toml
index 6a1525dcfb4..5ccc2085d97 100644
--- a/substrate/frame/utility/Cargo.toml
+++ b/substrate/frame/utility/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-utility"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,18 +14,18 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
 
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
 
 [features]
 default = ["std"]
diff --git a/substrate/frame/utility/README.md b/substrate/frame/utility/README.md
new file mode 100644
index 00000000000..84bb12f15b5
--- /dev/null
+++ b/substrate/frame/utility/README.md
@@ -0,0 +1,38 @@
+# Utility Module
+A stateless module with helpers for dispatch management which does no re-authentication.
+
+- [`utility::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+This module contains two basic pieces of functionality:
+- Batch dispatch: A stateless operation, allowing any origin to execute multiple calls in a
+  single dispatch. This can be useful to amalgamate proposals, combining `set_code` with
+  corresponding `set_storage`s, for efficient multiple payouts with just a single signature
+  verify, or in combination with one of the other two dispatch functionality.
+- Pseudonymal dispatch: A stateless operation, allowing a signed origin to execute a call from
+  an alternative signed origin. Each account has 2 * 2**16 possible "pseudonyms" (alternative
+  account IDs) and these can be stacked. This can be useful as a key management tool, where you
+  need multiple distinct accounts (e.g. as controllers for many staking accounts), but where
+  it's perfectly fine to have each of them controlled by the same underlying keypair.
+  Derivative accounts are, for the purposes of proxy filtering considered exactly the same as
+  the oigin and are thus hampered with the origin's filters.
+
+Since proxy filters are respected in all dispatches of this module, it should never need to be
+filtered by any proxy.
+
+## Interface
+
+### Dispatchable Functions
+
+#### For batch dispatch
+* `batch` - Dispatch multiple calls from the sender's origin.
+
+#### For pseudonymal dispatch
+* `as_derivative` - Dispatch a call from a derivative signed origin.
+
+[`Call`]: ./enum.Call.html
+[`Trait`]: ./trait.Trait.html
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/frame/vesting/Cargo.toml b/substrate/frame/vesting/Cargo.toml
index 67d796a6a98..41f144503e4 100644
--- a/substrate/frame/vesting/Cargo.toml
+++ b/substrate/frame/vesting/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pallet-vesting"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,17 +15,17 @@ targets = ["x86_64-unknown-linux-gnu"]
 serde = { version = "1.0.101", optional = true }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 enumflags2 = { version = "0.6.2" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../support" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../system" }
-frame-benchmarking = { version = "2.0.0-rc5", default-features = false, path = "../benchmarking", optional = true }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../support" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../system" }
+frame-benchmarking = { version = "2.0.0-rc6", default-features = false, path = "../benchmarking", optional = true }
 
 [dev-dependencies]
-sp-io = { version = "2.0.0-rc5", path = "../../primitives/io" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-pallet-balances = { version = "2.0.0-rc5", path = "../balances" }
-sp-storage = { version = "2.0.0-rc5", path = "../../primitives/storage" }
+sp-io = { version = "2.0.0-rc6", path = "../../primitives/io" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+pallet-balances = { version = "2.0.0-rc6", path = "../balances" }
+sp-storage = { version = "2.0.0-rc6", path = "../../primitives/storage" }
 hex-literal = "0.2.1"
 
 [features]
diff --git a/substrate/frame/vesting/README.md b/substrate/frame/vesting/README.md
new file mode 100644
index 00000000000..56f49db2647
--- /dev/null
+++ b/substrate/frame/vesting/README.md
@@ -0,0 +1,31 @@
+# Vesting Module
+
+- [`vesting::Trait`](./trait.Trait.html)
+- [`Call`](./enum.Call.html)
+
+## Overview
+
+A simple module providing a means of placing a linear curve on an account's locked balance. This
+module ensures that there is a lock in place preventing the balance to drop below the *unvested*
+amount for any reason other than transaction fee payment.
+
+As the amount vested increases over time, the amount unvested reduces. However, locks remain in
+place and explicit action is needed on behalf of the user to ensure that the amount locked is
+equivalent to the amount remaining to be vested. This is done through a dispatchable function,
+either `vest` (in typical case where the sender is calling on their own behalf) or `vest_other`
+in case the sender is calling on another account's behalf.
+
+## Interface
+
+This module implements the `VestingSchedule` trait.
+
+### Dispatchable Functions
+
+- `vest` - Update the lock, reducing it in line with the amount "vested" so far.
+- `vest_other` - Update the lock of another account, reducing it in line with the amount
+  "vested" so far.
+
+[`Call`]: ./enum.Call.html
+[`Trait`]: ./trait.Trait.html
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/allocator/Cargo.toml b/substrate/primitives/allocator/Cargo.toml
index d38eb9aa51f..6ee6c333344 100644
--- a/substrate/primitives/allocator/Cargo.toml
+++ b/substrate/primitives/allocator/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-allocator"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,9 +13,9 @@ documentation = "https://docs.rs/sp-allocator"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-std = { version = "2.0.0-rc5", path = "../std", default-features = false }
-sp-core = { version = "2.0.0-rc5", path = "../core", default-features = false }
-sp-wasm-interface = { version = "2.0.0-rc5", path = "../wasm-interface", default-features = false }
+sp-std = { version = "2.0.0-rc6", path = "../std", default-features = false }
+sp-core = { version = "2.0.0-rc6", path = "../core", default-features = false }
+sp-wasm-interface = { version = "2.0.0-rc6", path = "../wasm-interface", default-features = false }
 log = { version = "0.4.8", optional = true }
 derive_more = { version = "0.99.2", optional = true }
 
diff --git a/substrate/primitives/allocator/README.md b/substrate/primitives/allocator/README.md
new file mode 100644
index 00000000000..361feaae591
--- /dev/null
+++ b/substrate/primitives/allocator/README.md
@@ -0,0 +1,6 @@
+Collection of allocator implementations.
+
+This crate provides the following allocator implementations:
+- A freeing-bump allocator: [`FreeingBumpHeapAllocator`](freeing_bump::FreeingBumpHeapAllocator)
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/api/Cargo.toml b/substrate/primitives/api/Cargo.toml
index 8ad9fdfdbb7..e1e3dd76d47 100644
--- a/substrate/primitives/api/Cargo.toml
+++ b/substrate/primitives/api/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-api"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,16 +13,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
-sp-api-proc-macro = { version = "2.0.0-rc5", path = "proc-macro" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
-sp-version = { version = "2.0.0-rc5", default-features = false, path = "../version" }
-sp-state-machine = { version = "0.8.0-rc5", optional = true, path = "../../primitives/state-machine" }
+sp-api-proc-macro = { version = "2.0.0-rc6", path = "proc-macro" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
+sp-version = { version = "2.0.0-rc6", default-features = false, path = "../version" }
+sp-state-machine = { version = "0.8.0-rc6", optional = true, path = "../../primitives/state-machine" }
 hash-db = { version = "0.15.2", optional = true }
 
 [dev-dependencies]
-sp-test-primitives = { version = "2.0.0-rc5", path = "../test-primitives" }
+sp-test-primitives = { version = "2.0.0-rc6", path = "../test-primitives" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/api/README.md b/substrate/primitives/api/README.md
new file mode 100644
index 00000000000..551de2f82e3
--- /dev/null
+++ b/substrate/primitives/api/README.md
@@ -0,0 +1,17 @@
+Substrate runtime api
+
+The Substrate runtime api is the crucial interface between the node and the runtime.
+Every call that goes into the runtime is done with a runtime api. The runtime apis are not fixed.
+Every Substrate user can define its own apis with
+[`decl_runtime_apis`](macro.decl_runtime_apis.html) and implement them in
+the runtime with [`impl_runtime_apis`](macro.impl_runtime_apis.html).
+
+Every Substrate runtime needs to implement the [`Core`] runtime api. This api provides the basic
+functionality that every runtime needs to export.
+
+Besides the macros and the [`Core`] runtime api, this crates provides the [`Metadata`] runtime
+api, the [`ApiExt`] trait, the [`CallApiAt`] trait and the [`ConstructRuntimeApi`] trait.
+
+On a meta level this implies, the client calls the generated API from the client perspective.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/api/proc-macro/Cargo.toml b/substrate/primitives/api/proc-macro/Cargo.toml
index e267b86c8ed..b7d0bd16050 100644
--- a/substrate/primitives/api/proc-macro/Cargo.toml
+++ b/substrate/primitives/api/proc-macro/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-api-proc-macro"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/api/test/Cargo.toml b/substrate/primitives/api/test/Cargo.toml
index 6b4b82e9a9e..0c321429e13 100644
--- a/substrate/primitives/api/test/Cargo.toml
+++ b/substrate/primitives/api/test/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-api-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,22 +12,22 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "2.0.0-rc5", path = "../" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../test-utils/runtime/client" }
-sp-version = { version = "2.0.0-rc5", path = "../../version" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../runtime" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../blockchain" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../../../client/block-builder" }
+sp-api = { version = "2.0.0-rc6", path = "../" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../test-utils/runtime/client" }
+sp-version = { version = "2.0.0-rc6", path = "../../version" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../runtime" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../blockchain" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../../client/block-builder" }
 codec = { package = "parity-scale-codec", version = "1.3.1" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../../primitives/state-machine" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../../primitives/state-machine" }
 trybuild = "1.0.17"
 rustversion = "1.0.0"
 
 [dev-dependencies]
 criterion = "0.3.0"
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../test-utils/runtime/client" }
-sp-core = { version = "2.0.0-rc5", path = "../../core" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../test-utils/runtime/client" }
+sp-core = { version = "2.0.0-rc6", path = "../../core" }
 
 [[bench]]
 name = "bench"
diff --git a/substrate/primitives/application-crypto/Cargo.toml b/substrate/primitives/application-crypto/Cargo.toml
index 4366894dcf3..cbfb5d36234 100644
--- a/substrate/primitives/application-crypto/Cargo.toml
+++ b/substrate/primitives/application-crypto/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-application-crypto"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 description = "Provides facilities for generating application specific crypto wrapper types."
@@ -14,11 +14,11 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 
 [dependencies]
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/application-crypto/README.md b/substrate/primitives/application-crypto/README.md
new file mode 100644
index 00000000000..c86e33552f6
--- /dev/null
+++ b/substrate/primitives/application-crypto/README.md
@@ -0,0 +1,3 @@
+Traits and macros for constructing application specific strongly typed crypto wrappers.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/application-crypto/test/Cargo.toml b/substrate/primitives/application-crypto/test/Cargo.toml
index 554e4d25320..1fb03856dd1 100644
--- a/substrate/primitives/application-crypto/test/Cargo.toml
+++ b/substrate/primitives/application-crypto/test/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-application-crypto-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 description = "Integration tests for application-crypto"
@@ -13,8 +13,8 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../core" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../test-utils/runtime/client" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../runtime" }
-sp-api = { version = "2.0.0-rc5", path = "../../api" }
-sp-application-crypto = { version = "2.0.0-rc5", path = "../" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../core" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../test-utils/runtime/client" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../runtime" }
+sp-api = { version = "2.0.0-rc6", path = "../../api" }
+sp-application-crypto = { version = "2.0.0-rc6", path = "../" }
diff --git a/substrate/primitives/arithmetic/Cargo.toml b/substrate/primitives/arithmetic/Cargo.toml
index 83963d0c984..b4dd90736a2 100644
--- a/substrate/primitives/arithmetic/Cargo.toml
+++ b/substrate/primitives/arithmetic/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-arithmetic"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -17,9 +17,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 integer-sqrt = "0.1.2"
 num-traits = { version = "0.2.8", default-features = false }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-debug-derive = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/debug-derive" }
+sp-debug-derive = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/debug-derive" }
 
 [dev-dependencies]
 rand = "0.7.2"
diff --git a/substrate/primitives/arithmetic/README.md b/substrate/primitives/arithmetic/README.md
new file mode 100644
index 00000000000..e6e52c2a826
--- /dev/null
+++ b/substrate/primitives/arithmetic/README.md
@@ -0,0 +1,3 @@
+Minimal fixed point arithmetic primitives and types for runtime.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/arithmetic/fuzzer/Cargo.toml b/substrate/primitives/arithmetic/fuzzer/Cargo.toml
index e82821aebaf..3da97b18433 100644
--- a/substrate/primitives/arithmetic/fuzzer/Cargo.toml
+++ b/substrate/primitives/arithmetic/fuzzer/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-arithmetic-fuzzer"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,7 +14,7 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-arithmetic = { version = "2.0.0-rc5", path = ".." }
+sp-arithmetic = { version = "2.0.0-rc6", path = ".." }
 honggfuzz = "0.5.49"
 primitive-types = "0.7.0"
 num-bigint = "0.2"
diff --git a/substrate/primitives/authority-discovery/Cargo.toml b/substrate/primitives/authority-discovery/Cargo.toml
index 4bce99247fe..d201f6a70ac 100644
--- a/substrate/primitives/authority-discovery/Cargo.toml
+++ b/substrate/primitives/authority-discovery/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-authority-discovery"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Authority discovery primitives"
 edition = "2018"
@@ -12,11 +12,11 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../application-crypto" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../application-crypto" }
 codec = { package = "parity-scale-codec", default-features = false, version = "1.3.1" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../api" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../api" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/authority-discovery/README.md b/substrate/primitives/authority-discovery/README.md
new file mode 100644
index 00000000000..65c2e22dde0
--- /dev/null
+++ b/substrate/primitives/authority-discovery/README.md
@@ -0,0 +1,3 @@
+Runtime Api to help discover authorities.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/authorship/Cargo.toml b/substrate/primitives/authorship/Cargo.toml
index 514bde6a553..a5a4977c696 100644
--- a/substrate/primitives/authorship/Cargo.toml
+++ b/substrate/primitives/authorship/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-authorship"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Authorship primitives"
 edition = "2018"
@@ -12,9 +12,9 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../inherents" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../inherents" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 
 [features]
diff --git a/substrate/primitives/authorship/README.md b/substrate/primitives/authorship/README.md
new file mode 100644
index 00000000000..1aa1805cfc5
--- /dev/null
+++ b/substrate/primitives/authorship/README.md
@@ -0,0 +1,3 @@
+Authorship Primitives
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/block-builder/Cargo.toml b/substrate/primitives/block-builder/Cargo.toml
index f9a52b7505b..d6ac505c1b7 100644
--- a/substrate/primitives/block-builder/Cargo.toml
+++ b/substrate/primitives/block-builder/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-block-builder"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,11 +12,11 @@ description = "The block builder runtime api."
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../api" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../api" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../inherents" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../inherents" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/block-builder/README.md b/substrate/primitives/block-builder/README.md
new file mode 100644
index 00000000000..433197d3be9
--- /dev/null
+++ b/substrate/primitives/block-builder/README.md
@@ -0,0 +1,3 @@
+The block builder runtime api.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/blockchain/Cargo.toml b/substrate/primitives/blockchain/Cargo.toml
index 7d77ae2faa7..044130c08e5 100644
--- a/substrate/primitives/blockchain/Cargo.toml
+++ b/substrate/primitives/blockchain/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-blockchain"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -18,8 +18,8 @@ lru = "0.4.0"
 parking_lot = "0.10.0"
 derive_more = "0.99.2"
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-consensus = { version = "0.8.0-rc5", path = "../consensus/common" }
-sp-runtime = { version = "2.0.0-rc5", path = "../runtime" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../block-builder" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../state-machine" }
-sp-database = { version = "2.0.0-rc5", path = "../database" }
+sp-consensus = { version = "0.8.0-rc6", path = "../consensus/common" }
+sp-runtime = { version = "2.0.0-rc6", path = "../runtime" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../block-builder" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../state-machine" }
+sp-database = { version = "2.0.0-rc6", path = "../database" }
diff --git a/substrate/primitives/blockchain/README.md b/substrate/primitives/blockchain/README.md
new file mode 100644
index 00000000000..8298bfd7ae6
--- /dev/null
+++ b/substrate/primitives/blockchain/README.md
@@ -0,0 +1,3 @@
+Substrate blockchain traits and primitives.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/chain-spec/Cargo.toml b/substrate/primitives/chain-spec/Cargo.toml
index 20915d2f2fa..6abbf80a6db 100644
--- a/substrate/primitives/chain-spec/Cargo.toml
+++ b/substrate/primitives/chain-spec/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-chain-spec"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/chain-spec/README.md b/substrate/primitives/chain-spec/README.md
new file mode 100644
index 00000000000..375f14a441a
--- /dev/null
+++ b/substrate/primitives/chain-spec/README.md
@@ -0,0 +1,3 @@
+Types and traits related to chain specifications.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/consensus/aura/Cargo.toml b/substrate/primitives/consensus/aura/Cargo.toml
index 9ed9e840d1c..b708f34efa4 100644
--- a/substrate/primitives/consensus/aura/Cargo.toml
+++ b/substrate/primitives/consensus/aura/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-aura"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for Aura consensus"
 edition = "2018"
@@ -12,13 +12,13 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../application-crypto" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../application-crypto" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../std" }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../api" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../runtime" }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../inherents" }
-sp-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../timestamp" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../std" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../api" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../runtime" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../inherents" }
+sp-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../timestamp" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/consensus/aura/README.md b/substrate/primitives/consensus/aura/README.md
new file mode 100644
index 00000000000..0f360ae67eb
--- /dev/null
+++ b/substrate/primitives/consensus/aura/README.md
@@ -0,0 +1,3 @@
+Primitives for Aura.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/consensus/babe/Cargo.toml b/substrate/primitives/consensus/babe/Cargo.toml
index de540ebb106..e817a017cbe 100644
--- a/substrate/primitives/consensus/babe/Cargo.toml
+++ b/substrate/primitives/consensus/babe/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-babe"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for BABE consensus"
 edition = "2018"
@@ -12,18 +12,18 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../application-crypto" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../application-crypto" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
 merlin = { version = "2.0", default-features = false }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../std" }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../api" }
-sp-consensus = { version = "0.8.0-rc5", optional = true, path = "../common" }
-sp-consensus-slots = { version = "0.8.0-rc5", default-features = false, path = "../slots" }
-sp-consensus-vrf = { version = "0.8.0-rc5", path = "../vrf", default-features = false }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../core" }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../inherents" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../runtime" }
-sp-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../timestamp" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../std" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../api" }
+sp-consensus = { version = "0.8.0-rc6", optional = true, path = "../common" }
+sp-consensus-slots = { version = "0.8.0-rc6", default-features = false, path = "../slots" }
+sp-consensus-vrf = { version = "0.8.0-rc6", path = "../vrf", default-features = false }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../core" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../inherents" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../runtime" }
+sp-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../timestamp" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/consensus/babe/README.md b/substrate/primitives/consensus/babe/README.md
new file mode 100644
index 00000000000..54bae05fd6d
--- /dev/null
+++ b/substrate/primitives/consensus/babe/README.md
@@ -0,0 +1,3 @@
+Primitives for BABE.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/consensus/common/Cargo.toml b/substrate/primitives/consensus/common/Cargo.toml
index d8c5073274d..4c5a0197de2 100644
--- a/substrate/primitives/consensus/common/Cargo.toml
+++ b/substrate/primitives/consensus/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -17,25 +17,25 @@ targets = ["x86_64-unknown-linux-gnu"]
 derive_more = "0.99.2"
 libp2p = { version = "0.23.0", default-features = false }
 log = "0.4.8"
-sp-core = { path= "../../core", version = "2.0.0-rc5"}
-sp-inherents = { version = "2.0.0-rc5", path = "../../inherents" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../../primitives/state-machine" }
+sp-core = { path= "../../core", version = "2.0.0-rc6"}
+sp-inherents = { version = "2.0.0-rc6", path = "../../inherents" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../../primitives/state-machine" }
 futures = { version = "0.3.1", features = ["thread-pool"] }
 futures-timer = "3.0.1"
-sp-std = { version = "2.0.0-rc5", path = "../../std" }
-sp-version = { version = "2.0.0-rc5", path = "../../version" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../runtime" }
-sp-utils = { version = "2.0.0-rc5", path = "../../utils" }
-sp-trie = { version = "2.0.0-rc5", path = "../../trie" }
-sp-api = { version = "2.0.0-rc5", path = "../../api" }
+sp-std = { version = "2.0.0-rc6", path = "../../std" }
+sp-version = { version = "2.0.0-rc6", path = "../../version" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../runtime" }
+sp-utils = { version = "2.0.0-rc6", path = "../../utils" }
+sp-trie = { version = "2.0.0-rc6", path = "../../trie" }
+sp-api = { version = "2.0.0-rc6", path = "../../api" }
 codec = { package = "parity-scale-codec", version = "1.3.1", features = ["derive"] }
 parking_lot = "0.10.0"
 serde = { version = "1.0", features = ["derive"] }
-prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc5"}
+prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../../utils/prometheus", version = "0.8.0-rc6"}
 wasm-timer = "0.2.4"
 
 [dev-dependencies]
-sp-test-primitives = { version = "2.0.0-rc5", path = "../../test-primitives" }
+sp-test-primitives = { version = "2.0.0-rc6", path = "../../test-primitives" }
 
 [features]
 default = []
diff --git a/substrate/primitives/consensus/common/README.md b/substrate/primitives/consensus/common/README.md
new file mode 100644
index 00000000000..963bb0fbdba
--- /dev/null
+++ b/substrate/primitives/consensus/common/README.md
@@ -0,0 +1,7 @@
+Common utilities for building and using consensus engines in substrate.
+
+Much of this crate is _unstable_ and thus the API is likely to undergo
+change. Implementors of traits should not rely on the interfaces to remain
+the same.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/consensus/pow/Cargo.toml b/substrate/primitives/consensus/pow/Cargo.toml
index 598ff0ecb29..03376907a93 100644
--- a/substrate/primitives/consensus/pow/Cargo.toml
+++ b/substrate/primitives/consensus/pow/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-pow"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for Aura consensus"
 edition = "2018"
@@ -12,10 +12,10 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../api" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../runtime" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../core" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../api" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../runtime" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../core" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 
 [features]
diff --git a/substrate/primitives/consensus/pow/README.md b/substrate/primitives/consensus/pow/README.md
new file mode 100644
index 00000000000..88186437764
--- /dev/null
+++ b/substrate/primitives/consensus/pow/README.md
@@ -0,0 +1,3 @@
+Primitives for Substrate Proof-of-Work (PoW) consensus.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/consensus/slots/Cargo.toml b/substrate/primitives/consensus/slots/Cargo.toml
index ebf2be94a3f..ada913b645c 100644
--- a/substrate/primitives/consensus/slots/Cargo.toml
+++ b/substrate/primitives/consensus/slots/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-slots"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for slots-based consensus"
 edition = "2018"
diff --git a/substrate/primitives/consensus/slots/README.md b/substrate/primitives/consensus/slots/README.md
new file mode 100644
index 00000000000..f451c32888a
--- /dev/null
+++ b/substrate/primitives/consensus/slots/README.md
@@ -0,0 +1,3 @@
+Primitives for slots-based consensus engines.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/consensus/vrf/Cargo.toml b/substrate/primitives/consensus/vrf/Cargo.toml
index b5934a8a263..7cf064e9f62 100644
--- a/substrate/primitives/consensus/vrf/Cargo.toml
+++ b/substrate/primitives/consensus/vrf/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-consensus-vrf"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Primitives for VRF based consensus"
 edition = "2018"
@@ -14,9 +14,9 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { version = "1.0.0", package = "parity-scale-codec", default-features = false }
 schnorrkel = { version = "0.9.1", features = ["preaudit_deprecated", "u64_backend"], default-features = false }
-sp-std = { version = "2.0.0-rc5", path = "../../std", default-features = false }
-sp-core = { version = "2.0.0-rc5", path = "../../core", default-features = false }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../runtime" }
+sp-std = { version = "2.0.0-rc6", path = "../../std", default-features = false }
+sp-core = { version = "2.0.0-rc6", path = "../../core", default-features = false }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/consensus/vrf/README.md b/substrate/primitives/consensus/vrf/README.md
new file mode 100644
index 00000000000..d66490e023b
--- /dev/null
+++ b/substrate/primitives/consensus/vrf/README.md
@@ -0,0 +1,3 @@
+Primitives for VRF-based consensus engines.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/core/Cargo.toml b/substrate/primitives/core/Cargo.toml
index 6787efbd845..f74b0c2738e 100644
--- a/substrate/primitives/core/Cargo.toml
+++ b/substrate/primitives/core/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-core"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 derive_more = "0.99.2"
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 log = { version = "0.4.8", default-features = false }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
@@ -34,9 +34,9 @@ zeroize = { version = "1.0.0", default-features = false }
 secrecy = { version = "0.6.0", default-features = false }
 lazy_static = { version = "1.4.0", default-features = false, optional = true }
 parking_lot = { version = "0.10.0", optional = true }
-sp-debug-derive = { version = "2.0.0-rc5", path = "../debug-derive" }
-sp-externalities = { version = "0.8.0-rc5", optional = true, path = "../externalities" }
-sp-storage = { version = "2.0.0-rc5", default-features = false, path = "../storage" }
+sp-debug-derive = { version = "2.0.0-rc6", path = "../debug-derive" }
+sp-externalities = { version = "0.8.0-rc6", optional = true, path = "../externalities" }
+sp-storage = { version = "2.0.0-rc6", default-features = false, path = "../storage" }
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 futures = { version = "0.3.1", optional = true }
 dyn-clonable = { version = "0.9.0", optional = true }
@@ -52,10 +52,10 @@ twox-hash = { version = "1.5.0", default-features = false, optional = true }
 libsecp256k1 = { version = "0.3.2", default-features = false, features = ["hmac"], optional = true }
 merlin = { version = "2.0", default-features = false, optional = true }
 
-sp-runtime-interface = { version = "2.0.0-rc5", default-features = false, path = "../runtime-interface" }
+sp-runtime-interface = { version = "2.0.0-rc6", default-features = false, path = "../runtime-interface" }
 
 [dev-dependencies]
-sp-serializer = { version = "2.0.0-rc5", path = "../serializer" }
+sp-serializer = { version = "2.0.0-rc6", path = "../serializer" }
 pretty_assertions = "0.6.1"
 hex-literal = "0.2.1"
 rand = "0.7.2"
diff --git a/substrate/primitives/database/Cargo.toml b/substrate/primitives/database/Cargo.toml
index dd9c5807875..da909ddc651 100644
--- a/substrate/primitives/database/Cargo.toml
+++ b/substrate/primitives/database/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-database"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/database/README.md b/substrate/primitives/database/README.md
new file mode 100644
index 00000000000..cd0677eb9eb
--- /dev/null
+++ b/substrate/primitives/database/README.md
@@ -0,0 +1,3 @@
+The main database trait, allowing Substrate to store data persistently.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/debug-derive/Cargo.toml b/substrate/primitives/debug-derive/Cargo.toml
index 38efaed1614..99481782693 100644
--- a/substrate/primitives/debug-derive/Cargo.toml
+++ b/substrate/primitives/debug-derive/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-debug-derive"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/externalities/Cargo.toml b/substrate/primitives/externalities/Cargo.toml
index 62a2413f335..17184ca6940 100644
--- a/substrate/primitives/externalities/Cargo.toml
+++ b/substrate/primitives/externalities/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-externalities"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 license = "Apache-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -13,7 +13,7 @@ documentation = "https://docs.rs/sp-externalities"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-storage = { version = "2.0.0-rc5", path = "../storage" }
-sp-std = { version = "2.0.0-rc5", path = "../std" }
+sp-storage = { version = "2.0.0-rc6", path = "../storage" }
+sp-std = { version = "2.0.0-rc6", path = "../std" }
 environmental = { version = "1.1.1" }
 codec = { package = "parity-scale-codec", version = "1.3.1" }
diff --git a/substrate/primitives/externalities/README.md b/substrate/primitives/externalities/README.md
new file mode 100644
index 00000000000..3141b2609e6
--- /dev/null
+++ b/substrate/primitives/externalities/README.md
@@ -0,0 +1,9 @@
+Substrate externalities abstraction
+
+The externalities mainly provide access to storage and to registered extensions. Extensions
+are for example the keystore or the offchain externalities. These externalities are used to
+access the node from the runtime via the runtime interfaces.
+
+This crate exposes the main [`Externalities`] trait.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/finality-grandpa/Cargo.toml b/substrate/primitives/finality-grandpa/Cargo.toml
index 8fc318df458..8309eccccb0 100644
--- a/substrate/primitives/finality-grandpa/Cargo.toml
+++ b/substrate/primitives/finality-grandpa/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-finality-grandpa"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,15 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../application-crypto" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../application-crypto" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 grandpa = { package = "finality-grandpa", version = "0.12.3", default-features = false, features = ["derive-codec"] }
 log = { version = "0.4.8", optional = true }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../api" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../api" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/finality-grandpa/README.md b/substrate/primitives/finality-grandpa/README.md
new file mode 100644
index 00000000000..77a7abca2ee
--- /dev/null
+++ b/substrate/primitives/finality-grandpa/README.md
@@ -0,0 +1,3 @@
+Primitives for GRANDPA integration, suitable for WASM compilation.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/finality-tracker/Cargo.toml b/substrate/primitives/finality-tracker/Cargo.toml
index 67a3e836567..31db1e683a8 100644
--- a/substrate/primitives/finality-tracker/Cargo.toml
+++ b/substrate/primitives/finality-tracker/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-finality-tracker"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,8 +13,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/finality-tracker/README.md b/substrate/primitives/finality-tracker/README.md
new file mode 100644
index 00000000000..f9778e38a2b
--- /dev/null
+++ b/substrate/primitives/finality-tracker/README.md
@@ -0,0 +1,3 @@
+FRAME module that tracks the last finalized block, as perceived by block authors.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/inherents/Cargo.toml b/substrate/primitives/inherents/Cargo.toml
index fee8449a3b2..c6744925966 100644
--- a/substrate/primitives/inherents/Cargo.toml
+++ b/substrate/primitives/inherents/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-inherents"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,8 +15,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 parking_lot = { version = "0.10.0", optional = true }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 derive_more = { version = "0.99.2", optional = true }
 
diff --git a/substrate/primitives/inherents/README.md b/substrate/primitives/inherents/README.md
new file mode 100644
index 00000000000..78aa625fe85
--- /dev/null
+++ b/substrate/primitives/inherents/README.md
@@ -0,0 +1,17 @@
+Provides types and traits for creating and checking inherents.
+
+Each inherent is added to a produced block. Each runtime decides on which inherents it
+wants to attach to its blocks. All data that is required for the runtime to create the inherents
+is stored in the `InherentData`. This `InherentData` is constructed by the node and given to
+the runtime.
+
+Types that provide data for inherents, should implement `InherentDataProvider` and need to be
+registered at `InherentDataProviders`.
+
+In the runtime, modules need to implement `ProvideInherent` when they can create and/or check
+inherents. By implementing `ProvideInherent`, a module is not enforced to create an inherent.
+A module can also just check given inherents. For using a module as inherent provider, it needs
+to be registered by the `construct_runtime!` macro. The macro documentation gives more
+information on how that is done.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/io/Cargo.toml b/substrate/primitives/io/Cargo.toml
index 04ee4efd97a..a08451db243 100644
--- a/substrate/primitives/io/Cargo.toml
+++ b/substrate/primitives/io/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-io"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,15 +16,15 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
 hash-db = { version = "0.15.2", default-features = false }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 libsecp256k1 = { version = "0.3.4", optional = true }
-sp-state-machine = { version = "0.8.0-rc5", optional = true, path = "../../primitives/state-machine" }
-sp-wasm-interface = { version = "2.0.0-rc5", path = "../../primitives/wasm-interface", default-features = false }
-sp-runtime-interface = { version = "2.0.0-rc5", default-features = false, path = "../runtime-interface" }
-sp-trie = { version = "2.0.0-rc5", optional = true, path = "../../primitives/trie" }
-sp-externalities = { version = "0.8.0-rc5", optional = true, path = "../externalities" }
-sp-tracing = { version = "2.0.0-rc5", default-features = false, path = "../tracing" }
+sp-state-machine = { version = "0.8.0-rc6", optional = true, path = "../../primitives/state-machine" }
+sp-wasm-interface = { version = "2.0.0-rc6", path = "../../primitives/wasm-interface", default-features = false }
+sp-runtime-interface = { version = "2.0.0-rc6", default-features = false, path = "../runtime-interface" }
+sp-trie = { version = "2.0.0-rc6", optional = true, path = "../../primitives/trie" }
+sp-externalities = { version = "0.8.0-rc6", optional = true, path = "../externalities" }
+sp-tracing = { version = "2.0.0-rc6", default-features = false, path = "../tracing" }
 log = { version = "0.4.8", optional = true }
 futures = { version = "0.3.1", features = ["thread-pool"], optional = true }
 parking_lot = { version = "0.10.0", optional = true }
diff --git a/substrate/primitives/io/README.md b/substrate/primitives/io/README.md
new file mode 100644
index 00000000000..a24370cc566
--- /dev/null
+++ b/substrate/primitives/io/README.md
@@ -0,0 +1,3 @@
+I/O host interface for substrate runtime.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/keyring/Cargo.toml b/substrate/primitives/keyring/Cargo.toml
index 05ca4681332..e3634d9bb5f 100644
--- a/substrate/primitives/keyring/Cargo.toml
+++ b/substrate/primitives/keyring/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-keyring"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,7 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 
 [dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../core" }
-sp-runtime = { version = "2.0.0-rc5", path = "../runtime" }
+sp-core = { version = "2.0.0-rc6", path = "../core" }
+sp-runtime = { version = "2.0.0-rc6", path = "../runtime" }
 lazy_static = "1.4.0"
 strum = { version = "0.16.0", features = ["derive"] }
diff --git a/substrate/primitives/keyring/README.md b/substrate/primitives/keyring/README.md
new file mode 100644
index 00000000000..1610f237df9
--- /dev/null
+++ b/substrate/primitives/keyring/README.md
@@ -0,0 +1,3 @@
+Support code for the runtime. A set of test accounts.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/npos-elections/Cargo.toml b/substrate/primitives/npos-elections/Cargo.toml
index ff843865d67..26043df84f7 100644
--- a/substrate/primitives/npos-elections/Cargo.toml
+++ b/substrate/primitives/npos-elections/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-npos-elections"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -14,14 +14,14 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.0.0", default-features = false, features = ["derive"] }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-npos-elections-compact = { version = "2.0.0-rc5", path = "./compact" }
-sp-arithmetic = { version = "2.0.0-rc5", default-features = false, path = "../arithmetic" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-npos-elections-compact = { version = "2.0.0-rc6", path = "./compact" }
+sp-arithmetic = { version = "2.0.0-rc6", default-features = false, path = "../arithmetic" }
 
 [dev-dependencies]
-substrate-test-utils = { version = "2.0.0-rc5", path = "../../test-utils" }
+substrate-test-utils = { version = "2.0.0-rc6", path = "../../test-utils" }
 rand = "0.7.3"
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/npos-elections/README.md b/substrate/primitives/npos-elections/README.md
new file mode 100644
index 00000000000..a98351a6d89
--- /dev/null
+++ b/substrate/primitives/npos-elections/README.md
@@ -0,0 +1,12 @@
+A set of election algorithms to be used with a substrate runtime, typically within the staking
+sub-system. Notable implementation include
+
+- [`seq_phragmen`]: Implements the Phragmén Sequential Method. An un-ranked, relatively fast
+  election method that ensures PJR, but does not provide a constant factor approximation of the
+  maximin problem.
+- [`balance_solution`]: Implements the star balancing algorithm. This iterative process can
+  increase a solutions score, as described in [`evaluate_support`].
+
+More information can be found at: https://arxiv.org/abs/2004.12990
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/npos-elections/compact/Cargo.toml b/substrate/primitives/npos-elections/compact/Cargo.toml
index 4abe79b77f0..7f55fe6bea1 100644
--- a/substrate/primitives/npos-elections/compact/Cargo.toml
+++ b/substrate/primitives/npos-elections/compact/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-npos-elections-compact"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/npos-elections/fuzzer/Cargo.toml b/substrate/primitives/npos-elections/fuzzer/Cargo.toml
index 7969a68c6bc..f0c9442aade 100644
--- a/substrate/primitives/npos-elections/fuzzer/Cargo.toml
+++ b/substrate/primitives/npos-elections/fuzzer/Cargo.toml
@@ -14,9 +14,9 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-npos-elections = { version = "2.0.0-rc5", path = ".." }
-sp-std = { version = "2.0.0-rc5", path = "../../std" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../runtime" }
+sp-npos-elections = { version = "2.0.0-rc6", path = ".." }
+sp-std = { version = "2.0.0-rc6", path = "../../std" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../runtime" }
 honggfuzz = "0.5"
 rand = { version = "0.7.3", features = ["std", "small_rng"] }
 
diff --git a/substrate/primitives/offchain/Cargo.toml b/substrate/primitives/offchain/Cargo.toml
index a2738ab26e1..46c4f2144f9 100644
--- a/substrate/primitives/offchain/Cargo.toml
+++ b/substrate/primitives/offchain/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Substrate offchain workers primitives"
 name = "sp-offchain"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 license = "Apache-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
@@ -12,12 +12,12 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../api" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../api" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
 
 [dev-dependencies]
-sp-state-machine = { version = "0.8.0-rc5", default-features = false, path = "../state-machine" }
+sp-state-machine = { version = "0.8.0-rc6", default-features = false, path = "../state-machine" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/offchain/README.md b/substrate/primitives/offchain/README.md
new file mode 100644
index 00000000000..a8620d3bb9d
--- /dev/null
+++ b/substrate/primitives/offchain/README.md
@@ -0,0 +1,3 @@
+The Offchain Worker runtime api primitives.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/panic-handler/Cargo.toml b/substrate/primitives/panic-handler/Cargo.toml
index b778c1106b8..eb0e3bd9a2a 100644
--- a/substrate/primitives/panic-handler/Cargo.toml
+++ b/substrate/primitives/panic-handler/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-panic-handler"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/panic-handler/README.md b/substrate/primitives/panic-handler/README.md
new file mode 100644
index 00000000000..c08396960f4
--- /dev/null
+++ b/substrate/primitives/panic-handler/README.md
@@ -0,0 +1,10 @@
+Custom panic hook with bug report link
+
+This crate provides the [`set`] function, which wraps around [`std::panic::set_hook`] and
+sets up a panic hook that prints a backtrace and invites the user to open an issue to the
+given URL.
+
+By default, the panic handler aborts the process by calling [`std::process::exit`]. This can
+temporarily be disabled by using an [`AbortGuard`].
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/rpc/Cargo.toml b/substrate/primitives/rpc/Cargo.toml
index c2211f6fb91..a524ccfe785 100644
--- a/substrate/primitives/rpc/Cargo.toml
+++ b/substrate/primitives/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-rpc"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,7 +13,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 serde = { version = "1.0.101", features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", path = "../core" }
+sp-core = { version = "2.0.0-rc6", path = "../core" }
 
 [dev-dependencies]
 serde_json = "1.0.41"
diff --git a/substrate/primitives/rpc/README.md b/substrate/primitives/rpc/README.md
new file mode 100644
index 00000000000..8a9c17edd47
--- /dev/null
+++ b/substrate/primitives/rpc/README.md
@@ -0,0 +1,3 @@
+Substrate RPC primitives and utilities.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/runtime-interface/Cargo.toml b/substrate/primitives/runtime-interface/Cargo.toml
index f16000bff49..466e5eeccf5 100644
--- a/substrate/primitives/runtime-interface/Cargo.toml
+++ b/substrate/primitives/runtime-interface/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime-interface"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,21 +13,21 @@ documentation = "https://docs.rs/sp-runtime-interface/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-wasm-interface = { version = "2.0.0-rc5", path = "../wasm-interface", default-features = false }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-tracing = { version = "2.0.0-rc5", default-features = false, path = "../tracing" }
-sp-runtime-interface-proc-macro = { version = "2.0.0-rc5", path = "proc-macro" }
-sp-externalities = { version = "0.8.0-rc5", optional = true, path = "../externalities" }
+sp-wasm-interface = { version = "2.0.0-rc6", path = "../wasm-interface", default-features = false }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-tracing = { version = "2.0.0-rc6", default-features = false, path = "../tracing" }
+sp-runtime-interface-proc-macro = { version = "2.0.0-rc6", path = "proc-macro" }
+sp-externalities = { version = "0.8.0-rc6", optional = true, path = "../externalities" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
 static_assertions = "1.0.0"
 primitive-types = { version = "0.7.0", default-features = false }
-sp-storage = { version = "2.0.0-rc5", default-features = false, path = "../storage" }
+sp-storage = { version = "2.0.0-rc6", default-features = false, path = "../storage" }
 
 [dev-dependencies]
-sp-runtime-interface-test-wasm = { version = "2.0.0-rc5", path = "test-wasm" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
-sp-core = { version = "2.0.0-rc5", path = "../core" }
-sp-io = { version = "2.0.0-rc5", path = "../io" }
+sp-runtime-interface-test-wasm = { version = "2.0.0-rc6", path = "test-wasm" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
+sp-core = { version = "2.0.0-rc6", path = "../core" }
+sp-io = { version = "2.0.0-rc6", path = "../io" }
 rustversion = "1.0.0"
 trybuild = "1.0.23"
 
diff --git a/substrate/primitives/runtime-interface/README.md b/substrate/primitives/runtime-interface/README.md
new file mode 100644
index 00000000000..666bfe4d5a8
--- /dev/null
+++ b/substrate/primitives/runtime-interface/README.md
@@ -0,0 +1,88 @@
+Substrate runtime interface
+
+This crate provides types, traits and macros around runtime interfaces. A runtime interface is
+a fixed interface between a Substrate runtime and a Substrate node. For a native runtime the
+interface maps to a direct function call of the implementation. For a wasm runtime the interface
+maps to an external function call. These external functions are exported by the wasm executor
+and they map to the same implementation as the native calls.
+
+# Using a type in a runtime interface
+
+Any type that should be used in a runtime interface as argument or return value needs to
+implement [`RIType`]. The associated type [`FFIType`](RIType::FFIType) is the type that is used
+in the FFI function to represent the actual type. For example `[T]` is represented by an `u64`.
+The slice pointer and the length will be mapped to an `u64` value. For more information see
+this [table](#ffi-type-and-conversion). The FFI function definition is used when calling from
+the wasm runtime into the node.
+
+Traits are used to convert from a type to the corresponding [`RIType::FFIType`].
+Depending on where and how a type should be used in a function signature, a combination of the
+following traits need to be implemented:
+
+1. Pass as function argument: [`wasm::IntoFFIValue`] and [`host::FromFFIValue`]
+2. As function return value: [`wasm::FromFFIValue`] and [`host::IntoFFIValue`]
+3. Pass as mutable function argument: [`host::IntoPreallocatedFFIValue`]
+
+The traits are implemented for most of the common types like `[T]`, `Vec<T>`, arrays and
+primitive types.
+
+For custom types, we provide the [`PassBy`](pass_by::PassBy) trait and strategies that define
+how a type is passed between the wasm runtime and the node. Each strategy also provides a derive
+macro to simplify the implementation.
+
+# Performance
+
+To not waste any more performance when calling into the node, not all types are SCALE encoded
+when being passed as arguments between the wasm runtime and the node. For most types that
+are raw bytes like `Vec<u8>`, `[u8]` or `[u8; N]` we pass them directly, without SCALE encoding
+them in front of. The implementation of [`RIType`] each type provides more information on how
+the data is passed.
+
+# Declaring a runtime interface
+
+Declaring a runtime interface is similar to declaring a trait in Rust:
+
+```rust
+#[sp_runtime_interface::runtime_interface]
+trait RuntimeInterface {
+    fn some_function(value: &[u8]) -> bool {
+        value.iter().all(|v| *v > 125)
+    }
+}
+```
+
+For more information on declaring a runtime interface, see
+[`#[runtime_interface]`](attr.runtime_interface.html).
+
+# FFI type and conversion
+
+The following table documents how values of types are passed between the wasm and
+the host side and how they are converted into the corresponding type.
+
+| Type | FFI type | Conversion |
+|----|----|----|
+| `u8` | `u8` | `Identity` |
+| `u16` | `u16` | `Identity` |
+| `u32` | `u32` | `Identity` |
+| `u64` | `u64` | `Identity` |
+| `i128` | `u32` | `v.as_ptr()` (pointer to a 16 byte array) |
+| `i8` | `i8` | `Identity` |
+| `i16` | `i16` | `Identity` |
+| `i32` | `i32` | `Identity` |
+| `i64` | `i64` | `Identity` |
+| `u128` | `u32` | `v.as_ptr()` (pointer to a 16 byte array) |
+| `bool` | `u8` | `if v { 1 } else { 0 }` |
+| `&str` | `u64` | <code>v.len() 32bit << 32 &#124; v.as_ptr() 32bit</code> |
+| `&[u8]` | `u64` | <code>v.len() 32bit << 32 &#124; v.as_ptr() 32bit</code> |
+| `Vec<u8>` | `u64` | <code>v.len() 32bit << 32 &#124; v.as_ptr() 32bit</code> |
+| `Vec<T> where T: Encode` | `u64` | `let e = v.encode();`<br><br><code>e.len() 32bit << 32 &#124; e.as_ptr() 32bit</code> |
+| `&[T] where T: Encode` | `u64` | `let e = v.encode();`<br><br><code>e.len() 32bit << 32 &#124; e.as_ptr() 32bit</code> |
+| `[u8; N]` | `u32` | `v.as_ptr()` |
+| `*const T` | `u32` | `Identity` |
+| `Option<T>` | `u64` | `let e = v.encode();`<br><br><code>e.len() 32bit << 32 &#124; e.as_ptr() 32bit</code> |
+| [`T where T: PassBy<PassBy=Inner>`](pass_by::Inner) | Depends on inner | Depends on inner |
+| [`T where T: PassBy<PassBy=Codec>`](pass_by::Codec) | `u64`| <code>v.len() 32bit << 32 &#124; v.as_ptr() 32bit</code> |
+
+`Identity` means that the value is converted directly into the corresponding FFI type.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/runtime-interface/proc-macro/Cargo.toml b/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
index 96a88247180..006e8ec6c46 100644
--- a/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
+++ b/substrate/primitives/runtime-interface/proc-macro/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime-interface-proc-macro"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/runtime-interface/test-wasm-deprecated/Cargo.toml b/substrate/primitives/runtime-interface/test-wasm-deprecated/Cargo.toml
index bd4f3f97ec7..ff86713c543 100644
--- a/substrate/primitives/runtime-interface/test-wasm-deprecated/Cargo.toml
+++ b/substrate/primitives/runtime-interface/test-wasm-deprecated/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime-interface-test-wasm-deprecated"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -13,10 +13,10 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-runtime-interface = { version = "2.0.0-rc5", default-features = false, path = "../" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../io" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../core" }
+sp-runtime-interface = { version = "2.0.0-rc6", default-features = false, path = "../" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../io" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../core" }
 
 [build-dependencies]
 wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
diff --git a/substrate/primitives/runtime-interface/test-wasm/Cargo.toml b/substrate/primitives/runtime-interface/test-wasm/Cargo.toml
index a1756883ded..bfe2016ea51 100644
--- a/substrate/primitives/runtime-interface/test-wasm/Cargo.toml
+++ b/substrate/primitives/runtime-interface/test-wasm/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime-interface-test-wasm"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -13,10 +13,10 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-runtime-interface = { version = "2.0.0-rc5", default-features = false, path = "../" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../io" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../core" }
+sp-runtime-interface = { version = "2.0.0-rc6", default-features = false, path = "../" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../io" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../core" }
 
 [build-dependencies]
 wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../../utils/wasm-builder-runner" }
diff --git a/substrate/primitives/runtime-interface/test/Cargo.toml b/substrate/primitives/runtime-interface/test/Cargo.toml
index 48dbeedbdad..39a48d10b14 100644
--- a/substrate/primitives/runtime-interface/test/Cargo.toml
+++ b/substrate/primitives/runtime-interface/test/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime-interface-test"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,12 +12,12 @@ repository = "https://github.com/paritytech/substrate/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-runtime-interface = { version = "2.0.0-rc5", path = "../" }
-sc-executor = { version = "0.8.0-rc5", path = "../../../client/executor" }
-sp-runtime-interface-test-wasm = { version = "2.0.0-rc5", path = "../test-wasm" }
-sp-runtime-interface-test-wasm-deprecated = { version = "2.0.0-rc5", path = "../test-wasm-deprecated" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../../primitives/state-machine" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../runtime" }
-sp-core = { version = "2.0.0-rc5", path = "../../core" }
-sp-io = { version = "2.0.0-rc5", path = "../../io" }
+sp-runtime-interface = { version = "2.0.0-rc6", path = "../" }
+sc-executor = { version = "0.8.0-rc6", path = "../../../client/executor" }
+sp-runtime-interface-test-wasm = { version = "2.0.0-rc6", path = "../test-wasm" }
+sp-runtime-interface-test-wasm-deprecated = { version = "2.0.0-rc6", path = "../test-wasm-deprecated" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../../primitives/state-machine" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../runtime" }
+sp-core = { version = "2.0.0-rc6", path = "../../core" }
+sp-io = { version = "2.0.0-rc6", path = "../../io" }
 tracing = "0.1.18"
diff --git a/substrate/primitives/runtime/Cargo.toml b/substrate/primitives/runtime/Cargo.toml
index 78c0bbcea8f..f47b3605205 100644
--- a/substrate/primitives/runtime/Cargo.toml
+++ b/substrate/primitives/runtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-runtime"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -16,16 +16,16 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../application-crypto" }
-sp-arithmetic = { version = "2.0.0-rc5", default-features = false, path = "../arithmetic" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../io" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../application-crypto" }
+sp-arithmetic = { version = "2.0.0-rc6", default-features = false, path = "../arithmetic" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../io" }
 log = { version = "0.4.8", optional = true }
 paste = "0.1.6"
 rand = { version = "0.7.2", optional = true }
 impl-trait-for-tuples = "0.1.3"
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../inherents" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../inherents" }
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 hash256-std-hasher = { version = "0.15.2", default-features = false }
 either = { version = "1.5", default-features = false }
@@ -33,7 +33,7 @@ either = { version = "1.5", default-features = false }
 [dev-dependencies]
 serde_json = "1.0.41"
 rand = "0.7.2"
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
 
 [features]
 bench = []
diff --git a/substrate/primitives/runtime/README.md b/substrate/primitives/runtime/README.md
new file mode 100644
index 00000000000..1515cd8e296
--- /dev/null
+++ b/substrate/primitives/runtime/README.md
@@ -0,0 +1,3 @@
+Runtime Modules shared primitive types.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/sandbox/Cargo.toml b/substrate/primitives/sandbox/Cargo.toml
index ca5cfa4fdc3..98376c77464 100755
--- a/substrate/primitives/sandbox/Cargo.toml
+++ b/substrate/primitives/sandbox/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-sandbox"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,10 +13,10 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 wasmi = { version = "0.6.2", optional = true }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../io" }
-sp-wasm-interface = { version = "2.0.0-rc5", default-features = false, path = "../wasm-interface" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../io" }
+sp-wasm-interface = { version = "2.0.0-rc6", default-features = false, path = "../wasm-interface" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
 
 [dev-dependencies]
diff --git a/substrate/primitives/sandbox/README.md b/substrate/primitives/sandbox/README.md
new file mode 100644
index 00000000000..9335b53ae1f
--- /dev/null
+++ b/substrate/primitives/sandbox/README.md
@@ -0,0 +1,21 @@
+This crate provides means to instantiate and execute wasm modules.
+
+It works even when the user of this library executes from
+inside the wasm VM. In this case the same VM is used for execution
+of both the sandbox owner and the sandboxed module, without compromising security
+and without the performance penalty of full wasm emulation inside wasm.
+
+This is achieved by using bindings to the wasm VM, which are published by the host API.
+This API is thin and consists of only a handful functions. It contains functions for instantiating
+modules and executing them, but doesn't contain functions for inspecting the module
+structure. The user of this library is supposed to read the wasm module.
+
+When this crate is used in the `std` environment all these functions are implemented by directly
+calling the wasm VM.
+
+Examples of possible use-cases for this library are not limited to the following:
+
+- implementing smart-contract runtimes that use wasm for contract code
+- executing a wasm substrate runtime inside of a wasm parachain
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/serializer/Cargo.toml b/substrate/primitives/serializer/Cargo.toml
index 05b8cc74f2c..5fcaf9fe87f 100644
--- a/substrate/primitives/serializer/Cargo.toml
+++ b/substrate/primitives/serializer/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-serializer"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/serializer/README.md b/substrate/primitives/serializer/README.md
new file mode 100644
index 00000000000..083a0857cc0
--- /dev/null
+++ b/substrate/primitives/serializer/README.md
@@ -0,0 +1,6 @@
+Substrate customizable serde serializer.
+
+The idea is that we can later change the implementation
+to something more compact, but for now we're using JSON.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/session/Cargo.toml b/substrate/primitives/session/Cargo.toml
index 320e6adc1c7..b8bad3ed8da 100644
--- a/substrate/primitives/session/Cargo.toml
+++ b/substrate/primitives/session/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-session"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,11 +13,11 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../api" }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-staking = { version = "2.0.0-rc5", default-features = false, path = "../staking" }
-sp-runtime = { version = "2.0.0-rc5", optional = true, path = "../runtime" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../api" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-staking = { version = "2.0.0-rc6", default-features = false, path = "../staking" }
+sp-runtime = { version = "2.0.0-rc6", optional = true, path = "../runtime" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/session/README.md b/substrate/primitives/session/README.md
new file mode 100644
index 00000000000..2d1f9d9bc1d
--- /dev/null
+++ b/substrate/primitives/session/README.md
@@ -0,0 +1,3 @@
+Substrate core types around sessions.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/staking/Cargo.toml b/substrate/primitives/staking/Cargo.toml
index bb6ef06f34d..8b324ca6bdb 100644
--- a/substrate/primitives/staking/Cargo.toml
+++ b/substrate/primitives/staking/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-staking"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -13,8 +13,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/staking/README.md b/substrate/primitives/staking/README.md
new file mode 100644
index 00000000000..892e1379d9a
--- /dev/null
+++ b/substrate/primitives/staking/README.md
@@ -0,0 +1,4 @@
+A crate which contains primitives that are useful for implementation that uses staking
+approaches in general. Definitions related to sessions, slashing, etc go here.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/state-machine/Cargo.toml b/substrate/primitives/state-machine/Cargo.toml
index 781d3b068a8..c563fa5384d 100644
--- a/substrate/primitives/state-machine/Cargo.toml
+++ b/substrate/primitives/state-machine/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-state-machine"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Substrate State Machine"
 edition = "2018"
@@ -18,19 +18,19 @@ parking_lot = "0.10.0"
 hash-db = "0.15.2"
 trie-db = "0.22.0"
 trie-root = "0.16.0"
-sp-trie = { version = "2.0.0-rc5", path = "../trie" }
-sp-core = { version = "2.0.0-rc5", path = "../core" }
-sp-panic-handler = { version = "2.0.0-rc5", path = "../panic-handler" }
+sp-trie = { version = "2.0.0-rc6", path = "../trie" }
+sp-core = { version = "2.0.0-rc6", path = "../core" }
+sp-panic-handler = { version = "2.0.0-rc6", path = "../panic-handler" }
 codec = { package = "parity-scale-codec", version = "1.3.1" }
 num-traits = "0.2.8"
 rand = "0.7.2"
-sp-externalities = { version = "0.8.0-rc5", path = "../externalities" }
+sp-externalities = { version = "0.8.0-rc6", path = "../externalities" }
 itertools = "0.9"
 smallvec = "1.4.1"
 
 [dev-dependencies]
 hex-literal = "0.2.1"
-sp-runtime = { version = "2.0.0-rc5", path = "../runtime" }
+sp-runtime = { version = "2.0.0-rc6", path = "../runtime" }
 pretty_assertions = "0.6.1"
 
 [features]
diff --git a/substrate/primitives/state-machine/README.md b/substrate/primitives/state-machine/README.md
new file mode 100644
index 00000000000..aa244da62d5
--- /dev/null
+++ b/substrate/primitives/state-machine/README.md
@@ -0,0 +1,3 @@
+Substrate state machine implementation.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/std/Cargo.toml b/substrate/primitives/std/Cargo.toml
index a43d1997f7f..1e788c43d5d 100644
--- a/substrate/primitives/std/Cargo.toml
+++ b/substrate/primitives/std/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-std"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/std/README.md b/substrate/primitives/std/README.md
new file mode 100644
index 00000000000..6dddd8fbbdd
--- /dev/null
+++ b/substrate/primitives/std/README.md
@@ -0,0 +1,4 @@
+Lowest-abstraction level for the Substrate runtime: just exports useful primitives from std
+or client/alloc to be used with any code that depends on the runtime.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/storage/Cargo.toml b/substrate/primitives/storage/Cargo.toml
index 46d76fd7d28..9f86736518f 100644
--- a/substrate/primitives/storage/Cargo.toml
+++ b/substrate/primitives/storage/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-storage"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 description = "Storage related primitives"
@@ -13,11 +13,11 @@ documentation = "https://docs.rs/sp-storage/"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 impl-serde = { version = "0.2.3", optional = true }
 ref-cast = "1.0.0"
-sp-debug-derive = { version = "2.0.0-rc5", path = "../debug-derive" }
+sp-debug-derive = { version = "2.0.0-rc6", path = "../debug-derive" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 
 [features]
diff --git a/substrate/primitives/storage/README.md b/substrate/primitives/storage/README.md
new file mode 100644
index 00000000000..c33144fc4f6
--- /dev/null
+++ b/substrate/primitives/storage/README.md
@@ -0,0 +1,3 @@
+Primitive types for storage related stuff.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/test-primitives/Cargo.toml b/substrate/primitives/test-primitives/Cargo.toml
index 1101dd9ccc6..668a12aeca5 100644
--- a/substrate/primitives/test-primitives/Cargo.toml
+++ b/substrate/primitives/test-primitives/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-test-primitives"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,11 +12,11 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../application-crypto" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../application-crypto" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
 
 [features]
diff --git a/substrate/primitives/timestamp/Cargo.toml b/substrate/primitives/timestamp/Cargo.toml
index 794729f7754..deaa44ff39e 100644
--- a/substrate/primitives/timestamp/Cargo.toml
+++ b/substrate/primitives/timestamp/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-timestamp"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,11 +12,11 @@ description = "Substrate core types and inherents for timestamps."
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../api" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../api" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../inherents" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../inherents" }
 impl-trait-for-tuples = "0.1.3"
 wasm-timer = { version = "0.2", optional = true }
 
diff --git a/substrate/primitives/timestamp/README.md b/substrate/primitives/timestamp/README.md
new file mode 100644
index 00000000000..a61a776912c
--- /dev/null
+++ b/substrate/primitives/timestamp/README.md
@@ -0,0 +1,3 @@
+Substrate core types and inherents for timestamps.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/tracing/Cargo.toml b/substrate/primitives/tracing/Cargo.toml
index 03bec79685e..13603947567 100644
--- a/substrate/primitives/tracing/Cargo.toml
+++ b/substrate/primitives/tracing/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-tracing"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 license = "Apache-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
diff --git a/substrate/primitives/tracing/README.md b/substrate/primitives/tracing/README.md
new file mode 100644
index 00000000000..d621a23ee3e
--- /dev/null
+++ b/substrate/primitives/tracing/README.md
@@ -0,0 +1,15 @@
+Substrate tracing primitives and macros.
+
+To trace functions or invidual code in Substrate, this crate provides [`tracing_span`]
+and [`enter_span`]. See the individual docs for how to use these macros.
+
+Note that to allow traces from wasm execution environment there are
+2 reserved identifiers for tracing `Field` recording, stored in the consts:
+`WASM_TARGET_KEY` and `WASM_NAME_KEY` - if you choose to record fields, you
+must ensure that your identifiers do not clash with either of these.
+
+Additionally, we have a const: `WASM_TRACE_IDENTIFIER`, which holds a span name used
+to signal that the 'actual' span name and target should be retrieved instead from
+the associated Fields mentioned above.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/transaction-pool/Cargo.toml b/substrate/primitives/transaction-pool/Cargo.toml
index 344f491e55f..9ec79ee66b4 100644
--- a/substrate/primitives/transaction-pool/Cargo.toml
+++ b/substrate/primitives/transaction-pool/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-transaction-pool"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -18,9 +18,9 @@ derive_more = { version = "0.99.2", optional = true }
 futures = { version = "0.3.1", optional = true }
 log = { version = "0.4.8", optional = true }
 serde = { version = "1.0.101", features = ["derive"], optional = true}
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../api" }
-sp-blockchain = { version = "2.0.0-rc5", optional = true, path = "../blockchain" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../api" }
+sp-blockchain = { version = "2.0.0-rc6", optional = true, path = "../blockchain" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
 
 [features]
 default = [ "std" ]
diff --git a/substrate/primitives/transaction-pool/README.md b/substrate/primitives/transaction-pool/README.md
new file mode 100644
index 00000000000..417565ebfce
--- /dev/null
+++ b/substrate/primitives/transaction-pool/README.md
@@ -0,0 +1,3 @@
+Transaction pool primitives types & Runtime API.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/trie/Cargo.toml b/substrate/primitives/trie/Cargo.toml
index 8dd386e0951..3ebe53c680a 100644
--- a/substrate/primitives/trie/Cargo.toml
+++ b/substrate/primitives/trie/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-trie"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Patricia trie stuff using a parity-scale-codec node format"
 repository = "https://github.com/paritytech/substrate/"
@@ -18,19 +18,19 @@ harness = false
 
 [dependencies]
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
 hash-db = { version = "0.15.2", default-features = false }
 trie-db = { version = "0.22.0", default-features = false }
 trie-root = { version = "0.16.0", default-features = false }
 memory-db = { version = "0.24.0", default-features = false }
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../core" }
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../core" }
 
 [dev-dependencies]
 trie-bench = "0.24.0"
 trie-standardmap = "0.15.2"
 criterion = "0.2.11"
 hex-literal = "0.2.1"
-sp-runtime = { version = "2.0.0-rc5", path = "../runtime" }
+sp-runtime = { version = "2.0.0-rc6", path = "../runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/trie/README.md b/substrate/primitives/trie/README.md
new file mode 100644
index 00000000000..634ba4bdead
--- /dev/null
+++ b/substrate/primitives/trie/README.md
@@ -0,0 +1,3 @@
+Utility functions to interact with Substrate's Base-16 Modified Merkle Patricia tree ("trie").
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/utils/Cargo.toml b/substrate/primitives/utils/Cargo.toml
index a554a44ce44..b21dba40a9d 100644
--- a/substrate/primitives/utils/Cargo.toml
+++ b/substrate/primitives/utils/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-utils"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/primitives/utils/README.md b/substrate/primitives/utils/README.md
new file mode 100644
index 00000000000..b0e04a3f4f1
--- /dev/null
+++ b/substrate/primitives/utils/README.md
@@ -0,0 +1,3 @@
+Utilities Primitives for Substrate
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/version/Cargo.toml b/substrate/primitives/version/Cargo.toml
index fb5bcaed77c..8dbf2000f0c 100644
--- a/substrate/primitives/version/Cargo.toml
+++ b/substrate/primitives/version/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-version"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -17,8 +17,8 @@ targets = ["x86_64-unknown-linux-gnu"]
 impl-serde = { version = "0.2.3", optional = true }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../std" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../runtime" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../std" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../runtime" }
 
 [features]
 default = ["std"]
diff --git a/substrate/primitives/version/README.md b/substrate/primitives/version/README.md
new file mode 100644
index 00000000000..84f0ae57d9d
--- /dev/null
+++ b/substrate/primitives/version/README.md
@@ -0,0 +1,3 @@
+Version module for the Substrate runtime; Provides a function that returns the runtime version.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/primitives/wasm-interface/Cargo.toml b/substrate/primitives/wasm-interface/Cargo.toml
index 00fbaf5f713..e4ce84eaf0e 100644
--- a/substrate/primitives/wasm-interface/Cargo.toml
+++ b/substrate/primitives/wasm-interface/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sp-wasm-interface"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 [dependencies]
 wasmi = { version = "0.6.2", optional = true }
 impl-trait-for-tuples = "0.1.2"
-sp-std = { version = "2.0.0-rc5", path = "../std", default-features = false }
+sp-std = { version = "2.0.0-rc6", path = "../std", default-features = false }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
 
 [features]
diff --git a/substrate/primitives/wasm-interface/README.md b/substrate/primitives/wasm-interface/README.md
new file mode 100644
index 00000000000..7e6c46581ae
--- /dev/null
+++ b/substrate/primitives/wasm-interface/README.md
@@ -0,0 +1,3 @@
+Types and traits for interfacing between the host and the wasm runtime.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/test-utils/Cargo.toml b/substrate/test-utils/Cargo.toml
index 3b2a3702430..92bc9c71db5 100644
--- a/substrate/test-utils/Cargo.toml
+++ b/substrate/test-utils/Cargo.toml
@@ -1,20 +1,21 @@
 [package]
 name = "substrate-test-utils"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
 homepage = "https://substrate.dev"
 repository = "https://github.com/paritytech/substrate/"
+description = "Substrate test utilities"
 
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
 futures = { version = "0.3.1", features = ["compat"] }
-substrate-test-utils-derive = { path = "./derive" }
+substrate-test-utils-derive = { version = "0.8.0-rc6", path = "./derive" }
 tokio = { version = "0.2.13", features = ["macros"] }
 
 [dev-dependencies]
-sc-service = { path = "../client/service" }
+sc-service = { version = "0.8.0-rc6", path = "../client/service" }
 trybuild = { version = "1.0", features = ["diff"] }
diff --git a/substrate/test-utils/client/Cargo.toml b/substrate/test-utils/client/Cargo.toml
index 5e97be2e0b3..29f5acd5b38 100644
--- a/substrate/test-utils/client/Cargo.toml
+++ b/substrate/test-utils/client/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-test-client"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -19,15 +19,15 @@ hash-db = "0.15.2"
 hex = "0.4"
 serde = "1.0.55"
 serde_json = "1.0.55"
-sc-client-api = { version = "2.0.0-rc5", path = "../../client/api" }
-sc-client-db = { version = "0.8.0-rc5", features = ["test-helpers"], path = "../../client/db" }
-sc-consensus = { version = "0.8.0-rc5", path = "../../client/consensus/common" }
-sc-executor = { version = "0.8.0-rc5", path = "../../client/executor" }
-sc-light = { version = "2.0.0-rc5", path = "../../client/light" }
-sc-service = { version = "0.8.0-rc5", default-features = false, features = ["test-helpers"],  path = "../../client/service" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../primitives/blockchain" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../primitives/consensus/common" }
-sp-core = { version = "2.0.0-rc5", path = "../../primitives/core" }
-sp-keyring = { version = "2.0.0-rc5", path = "../../primitives/keyring" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../primitives/runtime" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../client/api" }
+sc-client-db = { version = "0.8.0-rc6", features = ["test-helpers"], path = "../../client/db" }
+sc-consensus = { version = "0.8.0-rc6", path = "../../client/consensus/common" }
+sc-executor = { version = "0.8.0-rc6", path = "../../client/executor" }
+sc-light = { version = "2.0.0-rc6", path = "../../client/light" }
+sc-service = { version = "0.8.0-rc6", default-features = false, features = ["test-helpers"],  path = "../../client/service" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../primitives/blockchain" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../primitives/consensus/common" }
+sp-core = { version = "2.0.0-rc6", path = "../../primitives/core" }
+sp-keyring = { version = "2.0.0-rc6", path = "../../primitives/keyring" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../primitives/runtime" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
diff --git a/substrate/test-utils/derive/Cargo.toml b/substrate/test-utils/derive/Cargo.toml
index 5ec3e10108c..e9dcc586c50 100644
--- a/substrate/test-utils/derive/Cargo.toml
+++ b/substrate/test-utils/derive/Cargo.toml
@@ -1,11 +1,12 @@
 [package]
 name = "substrate-test-utils-derive"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
 homepage = "https://substrate.dev"
 repository = "https://github.com/paritytech/substrate/"
+description = "Substrate test utilities macros"
 
 [dependencies]
 quote = "1.0.6"
diff --git a/substrate/test-utils/runtime/Cargo.toml b/substrate/test-utils/runtime/Cargo.toml
index 08e1b955ab4..6b354f5f6e9 100644
--- a/substrate/test-utils/runtime/Cargo.toml
+++ b/substrate/test-utils/runtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-test-runtime"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
@@ -13,35 +13,35 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sp-application-crypto = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/application-crypto" }
-sp-consensus-aura = { version = "0.8.0-rc5", default-features = false, path = "../../primitives/consensus/aura" }
-sp-consensus-babe = { version = "0.8.0-rc5", default-features = false, path = "../../primitives/consensus/babe" }
-sp-block-builder = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/block-builder" }
+sp-application-crypto = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/application-crypto" }
+sp-consensus-aura = { version = "0.8.0-rc6", default-features = false, path = "../../primitives/consensus/aura" }
+sp-consensus-babe = { version = "0.8.0-rc6", default-features = false, path = "../../primitives/consensus/babe" }
+sp-block-builder = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/block-builder" }
 codec = { package = "parity-scale-codec", version = "1.3.1", default-features = false, features = ["derive"] }
-frame-executive = { version = "2.0.0-rc5", default-features = false, path = "../../frame/executive" }
-sp-inherents = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/inherents" }
-sp-keyring = { version = "2.0.0-rc5", optional = true, path = "../../primitives/keyring" }
+frame-executive = { version = "2.0.0-rc6", default-features = false, path = "../../frame/executive" }
+sp-inherents = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/inherents" }
+sp-keyring = { version = "2.0.0-rc6", optional = true, path = "../../primitives/keyring" }
 memory-db = { version = "0.24.0", default-features = false }
-sp-offchain = { path = "../../primitives/offchain", default-features = false, version = "2.0.0-rc5"}
-sp-core = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/core" }
-sp-std = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/std" }
-sp-runtime-interface = { path = "../../primitives/runtime-interface", default-features = false, version = "2.0.0-rc5"}
-sp-io = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/io" }
-frame-support = { version = "2.0.0-rc5", default-features = false, path = "../../frame/support" }
-sp-version = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/version" }
-sp-session = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/session" }
-sp-api = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/api" }
-sp-runtime = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/runtime" }
-pallet-babe = { version = "2.0.0-rc5", default-features = false, path = "../../frame/babe" }
-frame-system = { version = "2.0.0-rc5", default-features = false, path = "../../frame/system" }
-frame-system-rpc-runtime-api = { version = "2.0.0-rc5", default-features = false, path = "../../frame/system/rpc/runtime-api" }
-pallet-timestamp = { version = "2.0.0-rc5", default-features = false, path = "../../frame/timestamp" }
-sp-finality-grandpa = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/finality-grandpa" }
-sp-trie = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/trie" }
-sp-transaction-pool = { version = "2.0.0-rc5", default-features = false, path = "../../primitives/transaction-pool" }
+sp-offchain = { path = "../../primitives/offchain", default-features = false, version = "2.0.0-rc6"}
+sp-core = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/core" }
+sp-std = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/std" }
+sp-runtime-interface = { path = "../../primitives/runtime-interface", default-features = false, version = "2.0.0-rc6"}
+sp-io = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/io" }
+frame-support = { version = "2.0.0-rc6", default-features = false, path = "../../frame/support" }
+sp-version = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/version" }
+sp-session = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/session" }
+sp-api = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/api" }
+sp-runtime = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/runtime" }
+pallet-babe = { version = "2.0.0-rc6", default-features = false, path = "../../frame/babe" }
+frame-system = { version = "2.0.0-rc6", default-features = false, path = "../../frame/system" }
+frame-system-rpc-runtime-api = { version = "2.0.0-rc6", default-features = false, path = "../../frame/system/rpc/runtime-api" }
+pallet-timestamp = { version = "2.0.0-rc6", default-features = false, path = "../../frame/timestamp" }
+sp-finality-grandpa = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/finality-grandpa" }
+sp-trie = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/trie" }
+sp-transaction-pool = { version = "2.0.0-rc6", default-features = false, path = "../../primitives/transaction-pool" }
 trie-db = { version = "0.22.0", default-features = false }
 parity-util-mem = { version = "0.7.0", default-features = false, features = ["primitive-types"] }
-sc-service = { version = "0.8.0-rc5", default-features = false, optional = true, features = ["test-helpers"], path = "../../client/service" }
+sc-service = { version = "0.8.0-rc6", default-features = false, optional = true, features = ["test-helpers"], path = "../../client/service" }
 
 # 3rd party
 cfg-if = "0.1.10"
@@ -49,10 +49,10 @@ log = { version = "0.4.8", optional = true }
 serde = { version = "1.0.101", optional = true, features = ["derive"] }
 
 [dev-dependencies]
-sc-block-builder = { version = "0.8.0-rc5", path = "../../client/block-builder" }
-sc-executor = { version = "0.8.0-rc5", path = "../../client/executor" }
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "./client" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../primitives/state-machine" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../client/block-builder" }
+sc-executor = { version = "0.8.0-rc6", path = "../../client/executor" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "./client" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../primitives/state-machine" }
 
 [build-dependencies]
 wasm-builder-runner = { version = "1.0.5", package = "substrate-wasm-builder-runner", path = "../../utils/wasm-builder-runner" }
diff --git a/substrate/test-utils/runtime/client/Cargo.toml b/substrate/test-utils/runtime/client/Cargo.toml
index c67ceb72010..3406ca6f95c 100644
--- a/substrate/test-utils/runtime/client/Cargo.toml
+++ b/substrate/test-utils/runtime/client/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-test-runtime-client"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,17 +12,17 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-light = { version = "2.0.0-rc5", path = "../../../client/light" }
-sp-consensus = { version = "0.8.0-rc5", path = "../../../primitives/consensus/common" }
-sc-block-builder = { version = "0.8.0-rc5", path = "../../../client/block-builder" }
-substrate-test-client = { version = "2.0.0-rc5", path = "../../client" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-substrate-test-runtime = { version = "2.0.0-rc5", path = "../../runtime" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-api = { version = "2.0.0-rc5", path = "../../../primitives/api" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
+sc-light = { version = "2.0.0-rc6", path = "../../../client/light" }
+sp-consensus = { version = "0.8.0-rc6", path = "../../../primitives/consensus/common" }
+sc-block-builder = { version = "0.8.0-rc6", path = "../../../client/block-builder" }
+substrate-test-client = { version = "2.0.0-rc6", path = "../../client" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+substrate-test-runtime = { version = "2.0.0-rc6", path = "../../runtime" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-api = { version = "2.0.0-rc6", path = "../../../primitives/api" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
 codec = { package = "parity-scale-codec", version = "1.3.1" }
-sc-client-api = { version = "2.0.0-rc5", path = "../../../client/api" }
-sc-consensus = { version = "0.8.0-rc5", path = "../../../client/consensus/common" }
-sc-service = { version = "0.8.0-rc5", default-features = false, path = "../../../client/service" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../../client/api" }
+sc-consensus = { version = "0.8.0-rc6", path = "../../../client/consensus/common" }
+sc-service = { version = "0.8.0-rc6", default-features = false, path = "../../../client/service" }
 futures = "0.3.4"
diff --git a/substrate/test-utils/runtime/transaction-pool/Cargo.toml b/substrate/test-utils/runtime/transaction-pool/Cargo.toml
index da4d2d592de..ee0992c44be 100644
--- a/substrate/test-utils/runtime/transaction-pool/Cargo.toml
+++ b/substrate/test-utils/runtime/transaction-pool/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-test-runtime-transaction-pool"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,12 +12,12 @@ publish = false
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../client" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../client" }
 parking_lot = "0.10.0"
 codec = { package = "parity-scale-codec", version = "1.3.1" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../primitives/blockchain" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../../primitives/transaction-pool" }
-sc-transaction-graph = { version = "2.0.0-rc5", path = "../../../client/transaction-pool/graph" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../primitives/blockchain" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../../primitives/transaction-pool" }
+sc-transaction-graph = { version = "2.0.0-rc6", path = "../../../client/transaction-pool/graph" }
 futures = { version = "0.3.1", features = ["compat"] }
 derive_more = "0.99.2"
diff --git a/substrate/test-utils/test-crate/Cargo.toml b/substrate/test-utils/test-crate/Cargo.toml
index 6d16edde12c..cf7f2815187 100644
--- a/substrate/test-utils/test-crate/Cargo.toml
+++ b/substrate/test-utils/test-crate/Cargo.toml
@@ -6,11 +6,12 @@ edition = "2018"
 license = "Apache-2.0"
 homepage = "https://substrate.dev"
 repository = "https://github.com/paritytech/substrate/"
+publish = false
 
 [package.metadata.docs.rs]
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dev-dependencies]
 tokio = { version = "0.2.13", features = ["macros"] }
-test-utils = { path = "..", package = "substrate-test-utils" }
-sc-service = { path = "../../client/service" }
+test-utils = { version = "2.0.0-rc6", path = "..", package = "substrate-test-utils" }
+sc-service = { version = "0.8.0-rc6", path = "../../client/service" }
diff --git a/substrate/utils/browser/Cargo.toml b/substrate/utils/browser/Cargo.toml
index 20e04148faf..c4a6152b924 100644
--- a/substrate/utils/browser/Cargo.toml
+++ b/substrate/utils/browser/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-browser-utils"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Utilities for creating a browser light-client."
 edition = "2018"
@@ -22,11 +22,11 @@ js-sys = "0.3.34"
 wasm-bindgen = "0.2.57"
 wasm-bindgen-futures = "0.4.7"
 kvdb-web = "0.7"
-sp-database = { version = "2.0.0-rc5", path = "../../primitives/database" }
-sc-informant = { version = "0.8.0-rc5", path = "../../client/informant" }
-sc-service = { version = "0.8.0-rc5", path = "../../client/service", default-features = false }
-sc-network = { path = "../../client/network", version = "0.8.0-rc5"}
-sc-chain-spec = { path = "../../client/chain-spec", version = "2.0.0-rc5"}
+sp-database = { version = "2.0.0-rc6", path = "../../primitives/database" }
+sc-informant = { version = "0.8.0-rc6", path = "../../client/informant" }
+sc-service = { version = "0.8.0-rc6", path = "../../client/service", default-features = false }
+sc-network = { path = "../../client/network", version = "0.8.0-rc6"}
+sc-chain-spec = { path = "../../client/chain-spec", version = "2.0.0-rc6"}
 
 # Imported just for the `wasm-bindgen` feature
 rand6 = { package = "rand", version = "0.6", features = ["wasm-bindgen"] }
diff --git a/substrate/utils/browser/README.md b/substrate/utils/browser/README.md
new file mode 100644
index 00000000000..9718db58b37
--- /dev/null
+++ b/substrate/utils/browser/README.md
@@ -0,0 +1 @@
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/utils/build-script-utils/Cargo.toml b/substrate/utils/build-script-utils/Cargo.toml
index ecf15503c54..383f38bcb0b 100644
--- a/substrate/utils/build-script-utils/Cargo.toml
+++ b/substrate/utils/build-script-utils/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-build-script-utils"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/utils/build-script-utils/README.md b/substrate/utils/build-script-utils/README.md
new file mode 100644
index 00000000000..1c184f67326
--- /dev/null
+++ b/substrate/utils/build-script-utils/README.md
@@ -0,0 +1,3 @@
+Crate with utility functions for `build.rs` scripts.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/utils/fork-tree/Cargo.toml b/substrate/utils/fork-tree/Cargo.toml
index 30a38545980..b02fee519df 100644
--- a/substrate/utils/fork-tree/Cargo.toml
+++ b/substrate/utils/fork-tree/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "fork-tree"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
diff --git a/substrate/utils/fork-tree/README.md b/substrate/utils/fork-tree/README.md
new file mode 100644
index 00000000000..fef7db57f68
--- /dev/null
+++ b/substrate/utils/fork-tree/README.md
@@ -0,0 +1,4 @@
+Utility library for managing tree-like ordered data with logic for pruning
+the tree while finalizing nodes.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/utils/frame/benchmarking-cli/Cargo.toml b/substrate/utils/frame/benchmarking-cli/Cargo.toml
index c34404575e5..0ecb3b883e8 100644
--- a/substrate/utils/frame/benchmarking-cli/Cargo.toml
+++ b/substrate/utils/frame/benchmarking-cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "frame-benchmarking-cli"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,15 +12,15 @@ description = "CLI for benchmarking FRAME"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-frame-benchmarking = { version = "2.0.0-rc5", path = "../../../frame/benchmarking" }
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sc-service = { version = "0.8.0-rc5", default-features = false, path = "../../../client/service" }
-sc-cli = { version = "0.8.0-rc5", path = "../../../client/cli" }
-sc-client-db = { version = "0.8.0-rc5", path = "../../../client/db" }
-sc-executor = { version = "0.8.0-rc5", path = "../../../client/executor" }
-sp-externalities = { version = "0.8.0-rc5", path = "../../../primitives/externalities" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
-sp-state-machine = { version = "0.8.0-rc5", path = "../../../primitives/state-machine" }
+frame-benchmarking = { version = "2.0.0-rc6", path = "../../../frame/benchmarking" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sc-service = { version = "0.8.0-rc6", default-features = false, path = "../../../client/service" }
+sc-cli = { version = "0.8.0-rc6", path = "../../../client/cli" }
+sc-client-db = { version = "0.8.0-rc6", path = "../../../client/db" }
+sc-executor = { version = "0.8.0-rc6", path = "../../../client/executor" }
+sp-externalities = { version = "0.8.0-rc6", path = "../../../primitives/externalities" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
+sp-state-machine = { version = "0.8.0-rc6", path = "../../../primitives/state-machine" }
 structopt = "0.3.8"
 codec = { version = "1.3.1", package = "parity-scale-codec" }
 
diff --git a/substrate/utils/frame/benchmarking-cli/README.md b/substrate/utils/frame/benchmarking-cli/README.md
new file mode 100644
index 00000000000..9718db58b37
--- /dev/null
+++ b/substrate/utils/frame/benchmarking-cli/README.md
@@ -0,0 +1 @@
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/utils/frame/frame-utilities-cli/Cargo.toml b/substrate/utils/frame/frame-utilities-cli/Cargo.toml
index 913297819c0..5be62eff0ab 100644
--- a/substrate/utils/frame/frame-utilities-cli/Cargo.toml
+++ b/substrate/utils/frame/frame-utilities-cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-frame-cli"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -10,11 +10,11 @@ description = "cli interface for FRAME"
 documentation = "https://docs.rs/substrate-frame-cli"
 
 [dependencies]
-sp-core = { version = "2.0.0-rc5", path = "../../../primitives/core" }
-sc-cli = { version = "0.8.0-rc5", path = "../../../client/cli" }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../primitives/runtime" }
+sp-core = { version = "2.0.0-rc6", path = "../../../primitives/core" }
+sc-cli = { version = "0.8.0-rc6", path = "../../../client/cli" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../primitives/runtime" }
 structopt = "0.3.8"
-frame-system = { version = "2.0.0-rc5", path = "../../../frame/system" }
+frame-system = { version = "2.0.0-rc6", path = "../../../frame/system" }
 
 [dev-dependencies]
 
diff --git a/substrate/utils/frame/frame-utilities-cli/README.md b/substrate/utils/frame/frame-utilities-cli/README.md
new file mode 100644
index 00000000000..b1e4f869af7
--- /dev/null
+++ b/substrate/utils/frame/frame-utilities-cli/README.md
@@ -0,0 +1,3 @@
+frame-system CLI utilities
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/utils/frame/rpc/support/Cargo.toml b/substrate/utils/frame/rpc/support/Cargo.toml
index d5f34fe2b2d..784fe90cdf3 100644
--- a/substrate/utils/frame/rpc/support/Cargo.toml
+++ b/substrate/utils/frame/rpc/support/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-frame-rpc-support"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>", "Andrew Dirksen <andrew@dirksen.com>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -17,10 +17,10 @@ jsonrpc-client-transports = { version = "14.2.0", default-features = false, feat
 jsonrpc-core = "14.2.0"
 codec = { package = "parity-scale-codec", version = "1.3.1" }
 serde = "1"
-frame-support = { version = "2.0.0-rc5", path = "../../../../frame/support" }
-sp-storage = { version = "2.0.0-rc5", path = "../../../../primitives/storage" }
-sc-rpc-api = { version = "0.8.0-rc5", path = "../../../../client/rpc-api" }
+frame-support = { version = "2.0.0-rc6", path = "../../../../frame/support" }
+sp-storage = { version = "2.0.0-rc6", path = "../../../../primitives/storage" }
+sc-rpc-api = { version = "0.8.0-rc6", path = "../../../../client/rpc-api" }
 
 [dev-dependencies]
-frame-system = { version = "2.0.0-rc5", path = "../../../../frame/system" }
+frame-system = { version = "2.0.0-rc6", path = "../../../../frame/system" }
 tokio = "0.2"
diff --git a/substrate/utils/frame/rpc/support/README.md b/substrate/utils/frame/rpc/support/README.md
new file mode 100644
index 00000000000..ca575061293
--- /dev/null
+++ b/substrate/utils/frame/rpc/support/README.md
@@ -0,0 +1,4 @@
+Combines [sc_rpc_api::state::StateClient] with [frame_support::storage::generator] traits
+to provide strongly typed chain state queries over rpc.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/utils/frame/rpc/system/Cargo.toml b/substrate/utils/frame/rpc/system/Cargo.toml
index 33a949fddd0..0f1e27efc70 100644
--- a/substrate/utils/frame/rpc/system/Cargo.toml
+++ b/substrate/utils/frame/rpc/system/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "substrate-frame-rpc-system"
-version = "2.0.0-rc5"
+version = "2.0.0-rc6"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 license = "Apache-2.0"
@@ -12,7 +12,7 @@ description = "FRAME's system exposed over Substrate RPC"
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
-sc-client-api = { version = "2.0.0-rc5", path = "../../../../client/api" }
+sc-client-api = { version = "2.0.0-rc6", path = "../../../../client/api" }
 codec = { package = "parity-scale-codec", version = "1.3.1" }
 futures = { version = "0.3.4", features = ["compat"] }
 jsonrpc-core = "14.2.0"
@@ -20,16 +20,16 @@ jsonrpc-core-client = "14.2.0"
 jsonrpc-derive = "14.2.1"
 log = "0.4.8"
 serde = { version = "1.0.101", features = ["derive"] }
-sp-runtime = { version = "2.0.0-rc5", path = "../../../../primitives/runtime" }
-sp-api = { version = "2.0.0-rc5", path = "../../../../primitives/api" }
-frame-system-rpc-runtime-api = { version = "2.0.0-rc5", path = "../../../../frame/system/rpc/runtime-api" }
-sp-core = { version = "2.0.0-rc5", path = "../../../../primitives/core" }
-sp-blockchain = { version = "2.0.0-rc5", path = "../../../../primitives/blockchain" }
-sp-transaction-pool = { version = "2.0.0-rc5", path = "../../../../primitives/transaction-pool" }
-sp-block-builder = { version = "2.0.0-rc5", path = "../../../../primitives/block-builder" }
-sc-rpc-api = { version = "0.8.0-rc5", path = "../../../../client/rpc-api" }
+sp-runtime = { version = "2.0.0-rc6", path = "../../../../primitives/runtime" }
+sp-api = { version = "2.0.0-rc6", path = "../../../../primitives/api" }
+frame-system-rpc-runtime-api = { version = "2.0.0-rc6", path = "../../../../frame/system/rpc/runtime-api" }
+sp-core = { version = "2.0.0-rc6", path = "../../../../primitives/core" }
+sp-blockchain = { version = "2.0.0-rc6", path = "../../../../primitives/blockchain" }
+sp-transaction-pool = { version = "2.0.0-rc6", path = "../../../../primitives/transaction-pool" }
+sp-block-builder = { version = "2.0.0-rc6", path = "../../../../primitives/block-builder" }
+sc-rpc-api = { version = "0.8.0-rc6", path = "../../../../client/rpc-api" }
 
 [dev-dependencies]
-substrate-test-runtime-client = { version = "2.0.0-rc5", path = "../../../../test-utils/runtime/client" }
+substrate-test-runtime-client = { version = "2.0.0-rc6", path = "../../../../test-utils/runtime/client" }
 env_logger = "0.7.0"
-sc-transaction-pool = { version = "2.0.0-rc5", path = "../../../../client/transaction-pool" }
+sc-transaction-pool = { version = "2.0.0-rc6", path = "../../../../client/transaction-pool" }
diff --git a/substrate/utils/frame/rpc/system/README.md b/substrate/utils/frame/rpc/system/README.md
new file mode 100644
index 00000000000..38986983d93
--- /dev/null
+++ b/substrate/utils/frame/rpc/system/README.md
@@ -0,0 +1,3 @@
+System FRAME specific RPC methods.
+
+License: Apache-2.0
\ No newline at end of file
diff --git a/substrate/utils/prometheus/Cargo.toml b/substrate/utils/prometheus/Cargo.toml
index 805ea19cdc6..4ed4575ccf7 100644
--- a/substrate/utils/prometheus/Cargo.toml
+++ b/substrate/utils/prometheus/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 description = "Endpoint to expose Prometheus metrics"
 name = "substrate-prometheus-endpoint"
-version = "0.8.0-rc5"
+version = "0.8.0-rc6"
 license = "Apache-2.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
-- 
GitLab