diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index 9c2511c0391e2280d72865111bd4e12c9395a539..76a1a543d2ceab5ea84307d3fe2e506b4803eea2 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -1172,7 +1172,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 [[package]]
 name = "fork-tree"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -1180,7 +1180,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1197,7 +1197,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "parity-scale-codec",
@@ -1215,7 +1215,7 @@ dependencies = [
 [[package]]
 name = "frame-executive"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1230,7 +1230,7 @@ dependencies = [
 [[package]]
 name = "frame-metadata"
 version = "11.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -1241,7 +1241,7 @@ dependencies = [
 [[package]]
 name = "frame-support"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "bitmask",
  "frame-metadata",
@@ -1266,7 +1266,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support-procedural-tools",
  "proc-macro2 1.0.18",
@@ -1277,7 +1277,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate",
@@ -1289,7 +1289,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "proc-macro2 1.0.18",
  "quote 1.0.7",
@@ -1299,7 +1299,7 @@ dependencies = [
 [[package]]
 name = "frame-system"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "impl-trait-for-tuples",
@@ -1315,7 +1315,7 @@ dependencies = [
 [[package]]
 name = "frame-system-benchmarking"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -1329,7 +1329,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -2237,7 +2237,7 @@ dependencies = [
 
 [[package]]
 name = "kusama-runtime"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "bitvec",
  "frame-benchmarking",
@@ -3266,7 +3266,7 @@ dependencies = [
 [[package]]
 name = "pallet-authority-discovery"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3282,7 +3282,7 @@ dependencies = [
 [[package]]
 name = "pallet-authorship"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3297,7 +3297,7 @@ dependencies = [
 [[package]]
 name = "pallet-babe"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3319,7 +3319,7 @@ dependencies = [
 [[package]]
 name = "pallet-balances"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3333,7 +3333,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3349,7 +3349,7 @@ dependencies = [
 [[package]]
 name = "pallet-democracy"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3364,7 +3364,7 @@ dependencies = [
 [[package]]
 name = "pallet-elections-phragmen"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3379,7 +3379,7 @@ dependencies = [
 [[package]]
 name = "pallet-finality-tracker"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3395,7 +3395,7 @@ dependencies = [
 [[package]]
 name = "pallet-grandpa"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3415,7 +3415,7 @@ dependencies = [
 [[package]]
 name = "pallet-identity"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -3431,7 +3431,7 @@ dependencies = [
 [[package]]
 name = "pallet-im-online"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3451,7 +3451,7 @@ dependencies = [
 [[package]]
 name = "pallet-indices"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3467,7 +3467,7 @@ dependencies = [
 [[package]]
 name = "pallet-membership"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3481,7 +3481,7 @@ dependencies = [
 [[package]]
 name = "pallet-multisig"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3496,7 +3496,7 @@ dependencies = [
 [[package]]
 name = "pallet-nicks"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3510,7 +3510,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3525,7 +3525,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences-benchmarking"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3546,7 +3546,7 @@ dependencies = [
 [[package]]
 name = "pallet-proxy"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3561,7 +3561,7 @@ dependencies = [
 [[package]]
 name = "pallet-randomness-collective-flip"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3574,7 +3574,7 @@ dependencies = [
 [[package]]
 name = "pallet-recovery"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "enumflags2",
  "frame-support",
@@ -3589,7 +3589,7 @@ dependencies = [
 [[package]]
 name = "pallet-scheduler"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3604,7 +3604,7 @@ dependencies = [
 [[package]]
 name = "pallet-session"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3624,7 +3624,7 @@ dependencies = [
 [[package]]
 name = "pallet-session-benchmarking"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3638,7 +3638,7 @@ dependencies = [
 [[package]]
 name = "pallet-society"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3652,7 +3652,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3674,7 +3674,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-curve"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -3685,7 +3685,7 @@ dependencies = [
 [[package]]
 name = "pallet-sudo"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3699,7 +3699,7 @@ dependencies = [
 [[package]]
 name = "pallet-timestamp"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3717,7 +3717,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3732,7 +3732,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -3750,7 +3750,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -3763,7 +3763,7 @@ dependencies = [
 [[package]]
 name = "pallet-treasury"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3778,7 +3778,7 @@ dependencies = [
 [[package]]
 name = "pallet-utility"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3794,7 +3794,7 @@ dependencies = [
 [[package]]
 name = "pallet-vesting"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -4119,7 +4119,7 @@ checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e"
 
 [[package]]
 name = "polkadot"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "assert_cmd",
  "futures 0.3.5",
@@ -4133,7 +4133,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-availability-store"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "derive_more 0.99.8",
  "exit-future",
@@ -4159,7 +4159,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-cli"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "frame-benchmarking-cli",
  "futures 0.3.5",
@@ -4184,7 +4184,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-collator"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 2.0.2",
@@ -4212,7 +4212,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-erasure-coding"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "derive_more 0.15.0",
  "parity-scale-codec",
@@ -4224,7 +4224,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-network"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "arrayvec 0.4.12",
  "bytes 0.5.4",
@@ -4252,7 +4252,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-network-test"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "futures 0.3.5",
  "log 0.4.8",
@@ -4309,7 +4309,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-parachain"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "derive_more 0.99.8",
  "log 0.4.8",
@@ -4328,7 +4328,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-primitives"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "bitvec",
  "frame-system",
@@ -4350,7 +4350,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-rpc"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "jsonrpc-core",
  "pallet-transaction-payment-rpc",
@@ -4376,7 +4376,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-runtime"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "bitvec",
  "frame-benchmarking",
@@ -4450,7 +4450,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-runtime-common"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "bitvec",
  "frame-benchmarking",
@@ -4537,7 +4537,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-service"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "env_logger",
  "frame-benchmarking",
@@ -4655,7 +4655,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-statement-table"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "parity-scale-codec",
  "polkadot-primitives",
@@ -4664,7 +4664,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-test-runtime"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "bitvec",
  "frame-executive",
@@ -4741,7 +4741,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-validation"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "bitvec",
  "derive_more 0.14.1",
@@ -5531,7 +5531,7 @@ dependencies = [
 [[package]]
 name = "sc-authority-discovery"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "bytes 0.5.4",
  "derive_more 0.99.8",
@@ -5558,7 +5558,7 @@ dependencies = [
 [[package]]
 name = "sc-basic-authorship"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -5582,7 +5582,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -5598,7 +5598,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "impl-trait-for-tuples",
  "sc-chain-spec-derive",
@@ -5614,7 +5614,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -5625,7 +5625,7 @@ dependencies = [
 [[package]]
 name = "sc-cli"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "ansi_term 0.12.1",
  "atty",
@@ -5665,7 +5665,7 @@ dependencies = [
 [[package]]
 name = "sc-client-api"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "fnv",
@@ -5701,7 +5701,7 @@ dependencies = [
 [[package]]
 name = "sc-client-db"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "blake2-rfc",
  "hash-db",
@@ -5730,7 +5730,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "sc-client-api",
  "sp-blockchain",
@@ -5741,7 +5741,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "fork-tree",
@@ -5783,7 +5783,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "futures 0.3.5",
@@ -5807,7 +5807,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -5820,7 +5820,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-slots"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -5842,7 +5842,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-uncles"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "log 0.4.8",
  "sc-client-api",
@@ -5856,7 +5856,7 @@ dependencies = [
 [[package]]
 name = "sc-executor"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "lazy_static",
@@ -5884,7 +5884,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "log 0.4.8",
@@ -5901,7 +5901,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmi"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "log 0.4.8",
  "parity-scale-codec",
@@ -5916,7 +5916,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "cranelift-codegen",
  "cranelift-wasm",
@@ -5937,7 +5937,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "assert_matches",
  "derive_more 0.99.8",
@@ -5975,7 +5975,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa-rpc"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "finality-grandpa",
@@ -5992,7 +5992,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "ansi_term 0.12.1",
  "futures 0.3.5",
@@ -6011,7 +6011,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "hex",
@@ -6027,7 +6027,7 @@ dependencies = [
 [[package]]
 name = "sc-light"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "hash-db",
  "lazy_static",
@@ -6046,7 +6046,7 @@ dependencies = [
 [[package]]
 name = "sc-network"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "bitflags",
  "bs58",
@@ -6098,7 +6098,7 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -6113,7 +6113,7 @@ dependencies = [
 [[package]]
 name = "sc-network-test"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "env_logger",
  "futures 0.3.5",
@@ -6140,7 +6140,7 @@ dependencies = [
 [[package]]
 name = "sc-offchain"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "bytes 0.5.4",
  "fnv",
@@ -6167,7 +6167,7 @@ dependencies = [
 [[package]]
 name = "sc-peerset"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "libp2p",
@@ -6180,7 +6180,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "log 0.4.8",
  "substrate-prometheus-endpoint",
@@ -6189,7 +6189,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -6221,7 +6221,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "futures 0.3.5",
@@ -6245,7 +6245,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-server"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-http-server",
@@ -6261,7 +6261,7 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "directories",
@@ -6324,7 +6324,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "log 0.4.8",
  "parity-scale-codec",
@@ -6338,7 +6338,7 @@ dependencies = [
 [[package]]
 name = "sc-telemetry"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "bytes 0.5.4",
  "futures 0.3.5",
@@ -6360,7 +6360,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "erased-serde",
  "log 0.4.8",
@@ -6377,7 +6377,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-graph"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "futures 0.3.5",
@@ -6397,7 +6397,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "futures 0.3.5",
@@ -6784,7 +6784,7 @@ dependencies = [
 [[package]]
 name = "sp-allocator"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "log 0.4.8",
@@ -6796,7 +6796,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "hash-db",
  "parity-scale-codec",
@@ -6811,7 +6811,7 @@ dependencies = [
 [[package]]
 name = "sp-api-proc-macro"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "blake2-rfc",
  "proc-macro-crate",
@@ -6823,7 +6823,7 @@ dependencies = [
 [[package]]
 name = "sp-application-crypto"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -6835,7 +6835,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "integer-sqrt",
  "num-traits 0.2.12",
@@ -6848,7 +6848,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -6860,7 +6860,7 @@ dependencies = [
 [[package]]
 name = "sp-authorship"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -6871,7 +6871,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -6883,7 +6883,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "log 0.4.8",
@@ -6899,7 +6899,7 @@ dependencies = [
 [[package]]
 name = "sp-chain-spec"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "serde",
  "serde_json",
@@ -6908,7 +6908,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "futures 0.3.5",
@@ -6926,12 +6926,13 @@ dependencies = [
  "sp-utils",
  "sp-version",
  "substrate-prometheus-endpoint",
+ "wasm-timer",
 ]
 
 [[package]]
 name = "sp-consensus-aura"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -6945,7 +6946,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "merlin",
  "parity-scale-codec",
@@ -6963,7 +6964,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-vrf"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "schnorrkel",
@@ -6975,7 +6976,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "base58",
  "blake2-rfc",
@@ -7017,7 +7018,7 @@ dependencies = [
 [[package]]
 name = "sp-database"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "kvdb",
  "parking_lot 0.10.2",
@@ -7026,7 +7027,7 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "proc-macro2 1.0.18",
  "quote 1.0.7",
@@ -7036,7 +7037,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -7047,7 +7048,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-grandpa"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "finality-grandpa",
  "log 0.4.8",
@@ -7063,7 +7064,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-tracker"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -7073,7 +7074,7 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "parity-scale-codec",
@@ -7085,7 +7086,7 @@ dependencies = [
 [[package]]
 name = "sp-io"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -7106,7 +7107,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -7117,7 +7118,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -7129,7 +7130,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections-compact"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -7140,7 +7141,7 @@ dependencies = [
 [[package]]
 name = "sp-offchain"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -7150,7 +7151,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "backtrace",
  "log 0.4.8",
@@ -7159,7 +7160,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "serde",
  "sp-core",
@@ -7168,7 +7169,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "either",
  "hash256-std-hasher",
@@ -7190,7 +7191,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "primitive-types",
@@ -7205,7 +7206,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "Inflector",
  "proc-macro-crate",
@@ -7217,7 +7218,7 @@ dependencies = [
 [[package]]
 name = "sp-serializer"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "serde",
  "serde_json",
@@ -7226,7 +7227,7 @@ dependencies = [
 [[package]]
 name = "sp-session"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -7239,7 +7240,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -7249,14 +7250,16 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "hash-db",
+ "itertools 0.9.0",
  "log 0.4.8",
  "num-traits 0.2.12",
  "parity-scale-codec",
  "parking_lot 0.10.2",
  "rand 0.7.3",
+ "smallvec 1.4.0",
  "sp-core",
  "sp-externalities",
  "sp-panic-handler",
@@ -7268,12 +7271,12 @@ dependencies = [
 [[package]]
 name = "sp-std"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 
 [[package]]
 name = "sp-storage"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "impl-serde 0.2.3",
  "ref-cast",
@@ -7285,7 +7288,7 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -7299,7 +7302,7 @@ dependencies = [
 [[package]]
 name = "sp-tracing"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "log 0.4.8",
  "rental",
@@ -7309,7 +7312,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "derive_more 0.99.8",
  "futures 0.3.5",
@@ -7325,7 +7328,7 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "hash-db",
  "memory-db",
@@ -7339,7 +7342,7 @@ dependencies = [
 [[package]]
 name = "sp-utils"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "futures-core",
@@ -7351,7 +7354,7 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "impl-serde 0.2.3",
  "parity-scale-codec",
@@ -7363,7 +7366,7 @@ dependencies = [
 [[package]]
 name = "sp-wasm-interface"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -7494,7 +7497,7 @@ dependencies = [
 [[package]]
 name = "substrate-browser-utils"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "chrono",
  "clear_on_drop",
@@ -7521,7 +7524,7 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "platforms",
 ]
@@ -7529,7 +7532,7 @@ dependencies = [
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "frame-system-rpc-runtime-api",
  "futures 0.3.5",
@@ -7552,7 +7555,7 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.8.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "async-std",
  "derive_more 0.99.8",
@@ -7566,7 +7569,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-client"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -7588,7 +7591,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-runtime"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "cfg-if",
  "frame-executive",
@@ -7628,7 +7631,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-runtime-client"
 version = "2.0.0-rc3"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 dependencies = [
  "futures 0.3.5",
  "parity-scale-codec",
@@ -7649,7 +7652,7 @@ dependencies = [
 [[package]]
 name = "substrate-wasm-builder-runner"
 version = "1.0.6"
-source = "git+https://github.com/paritytech/substrate#6f86bdd897ce06c0169dcbd2454dc7587cb8461f"
+source = "git+https://github.com/paritytech/substrate#d17396cebe11dce352aeeaac0b2645354cb2b328"
 
 [[package]]
 name = "substrate-wasm-builder-runner"
@@ -7875,7 +7878,7 @@ dependencies = [
 
 [[package]]
 name = "test-parachain-adder"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "dlmalloc",
  "parity-scale-codec",
@@ -7914,7 +7917,7 @@ dependencies = [
 
 [[package]]
 name = "test-parachain-halt"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -8823,7 +8826,7 @@ dependencies = [
 
 [[package]]
 name = "westend-runtime"
-version = "0.8.11"
+version = "0.8.12"
 dependencies = [
  "bitvec",
  "frame-benchmarking",
diff --git a/polkadot/Cargo.toml b/polkadot/Cargo.toml
index 705262f5a23bf32bee4966b7b1f7a3093ba058ff..f3204924187f93aa889cfbcf40467a1d512d32fb 100644
--- a/polkadot/Cargo.toml
+++ b/polkadot/Cargo.toml
@@ -4,7 +4,7 @@ path = "src/main.rs"
 
 [package]
 name = "polkadot"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
diff --git a/polkadot/availability-store/Cargo.toml b/polkadot/availability-store/Cargo.toml
index 417d600ca4a38204d0bf6b832fc7816819cc3e46..69defcfeb2657de9ea38fdcc73c06d7554f91bcc 100644
--- a/polkadot/availability-store/Cargo.toml
+++ b/polkadot/availability-store/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "polkadot-availability-store"
 description = "Persistent database for parachain data"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
diff --git a/polkadot/cli/Cargo.toml b/polkadot/cli/Cargo.toml
index 5dcaadd57b08fe54f870c1cb20bfa79d95bea2b2..ff67b236c547a586fe52b7861d1e6dd5bb94b52b 100644
--- a/polkadot/cli/Cargo.toml
+++ b/polkadot/cli/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-cli"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Polkadot Relay-chain Client Node"
 edition = "2018"
diff --git a/polkadot/cli/src/command.rs b/polkadot/cli/src/command.rs
index 5e9d78382833682be0b267afd93e9255ba6fd3f3..714e3c2ddacd14f0ab33f20cec42b52459cac8d8 100644
--- a/polkadot/cli/src/command.rs
+++ b/polkadot/cli/src/command.rs
@@ -128,7 +128,6 @@ pub fn run() -> Result<()> {
 							authority_discovery_enabled,
 							6000,
 							grandpa_pause,
-							None,
 						).map(|(s, _, _)| s)
 					},
 					service::KusamaExecutor::native_version().runtime_version
@@ -146,7 +145,6 @@ pub fn run() -> Result<()> {
 							authority_discovery_enabled,
 							6000,
 							grandpa_pause,
-							None,
 						).map(|(s, _, _)| s)
 					},
 					service::WestendExecutor::native_version().runtime_version
@@ -164,7 +162,6 @@ pub fn run() -> Result<()> {
 							authority_discovery_enabled,
 							6000,
 							grandpa_pause,
-							None,
 						).map(|(s, _, _)| s)
 					},
 					service::PolkadotExecutor::native_version().runtime_version
diff --git a/polkadot/collator/Cargo.toml b/polkadot/collator/Cargo.toml
index a183901bb4a4c742129b58e0d755d4037094c20a..2c47f20dbb8f96a2fa1fb50f2b0331011633f225 100644
--- a/polkadot/collator/Cargo.toml
+++ b/polkadot/collator/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-collator"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Collator node implementation"
 edition = "2018"
diff --git a/polkadot/collator/src/lib.rs b/polkadot/collator/src/lib.rs
index 932648f3e1597ff4e7f3d6482d1f20f4a2629a08..063bdb1735c8acfb5037192dd0b98453eea077e2 100644
--- a/polkadot/collator/src/lib.rs
+++ b/polkadot/collator/src/lib.rs
@@ -50,7 +50,7 @@ use std::sync::Arc;
 use std::time::Duration;
 use std::pin::Pin;
 
-use futures::{future, Future, Stream, FutureExt, TryFutureExt, StreamExt, task::Spawn};
+use futures::{future, Future, Stream, FutureExt, StreamExt, task::Spawn};
 use log::warn;
 use sc_client_api::{StateBackend, BlockchainEvents};
 use sp_blockchain::HeaderBackend;
@@ -100,24 +100,17 @@ impl Network for polkadot_network::protocol::Service {
 	}
 }
 
-/// Error to return when the head data was invalid.
-#[derive(Clone, Copy, Debug)]
-pub struct InvalidHead;
-
 /// Collation errors.
 #[derive(Debug)]
 pub enum Error {
 	/// Error on the relay-chain side of things.
 	Polkadot(String),
-	/// Error on the collator side of things.
-	Collator(InvalidHead),
 }
 
 impl fmt::Display for Error {
 	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
 		match *self {
 			Error::Polkadot(ref err) => write!(f, "Polkadot node error: {}", err),
-			Error::Collator(_) => write!(f, "Collator node error: Invalid head data"),
 		}
 	}
 }
@@ -147,7 +140,7 @@ pub trait BuildParachainContext {
 /// This can be implemented through an externally attached service or a stub.
 /// This is expected to be a lightweight, shared type like an Arc.
 pub trait ParachainContext: Clone {
-	type ProduceCandidate: Future<Output = Result<(BlockData, HeadData), InvalidHead>>;
+	type ProduceCandidate: Future<Output = Option<(BlockData, HeadData)>>;
 
 	/// Produce a candidate, given the relay parent hash, the latest ingress queue information
 	/// and the last parachain head.
@@ -167,8 +160,7 @@ pub async fn collate<P>(
 	local_validation_data: LocalValidationData,
 	mut para_context: P,
 	key: Arc<CollatorPair>,
-)
-	-> Result<parachain::Collation, Error>
+) -> Option<parachain::Collation>
 	where
 		P: ParachainContext,
 		P::ProduceCandidate: Send,
@@ -177,7 +169,7 @@ pub async fn collate<P>(
 		relay_parent,
 		global_validation,
 		local_validation_data,
-	).map_err(Error::Collator).await?;
+	).await?;
 
 	let pov_block = PoVBlock {
 		block_data,
@@ -204,7 +196,7 @@ pub async fn collate<P>(
 		pov: pov_block,
 	};
 
-	Ok(collation)
+	Some(collation)
 }
 
 #[cfg(feature = "service-rewr")]
@@ -341,8 +333,13 @@ fn build_collator_service<SP, P, C, R, Extrinsic>(
 					local_validation,
 					parachain_context,
 					key,
-				).map_ok(move |collation| {
-					network.distribute_collation(targets, collation)
+				).map(move |collation| {
+					match collation {
+						Some(collation) => network.distribute_collation(targets, collation),
+						None => log::trace!("Skipping collation as `collate` returned `None`"),
+					}
+
+					Ok(())
 				});
 
 				future::Either::Right(collation_work)
@@ -376,7 +373,6 @@ pub async fn start_collator<P>(
 	para_id: ParaId,
 	key: Arc<CollatorPair>,
 	config: Configuration,
-	informant_prefix: Option<String>,
 ) -> Result<(), polkadot_service::Error>
 where
 	P: 'static + BuildParachainContext,
@@ -397,7 +393,6 @@ where
 			false,
 			6000,
 			None,
-			informant_prefix,
 		)?;
 		let spawn_handle = service.spawn_task_handle();
 		build_collator_service(
@@ -416,7 +411,6 @@ where
 			false,
 			6000,
 			None,
-			informant_prefix,
 		)?;
 		let spawn_handle = service.spawn_task_handle();
 		build_collator_service(
@@ -435,7 +429,6 @@ where
 			false,
 			6000,
 			None,
-			informant_prefix,
 		)?;
 		let spawn_handle = service.spawn_task_handle();
 		build_collator_service(
@@ -470,7 +463,7 @@ mod tests {
 	struct DummyParachainContext;
 
 	impl ParachainContext for DummyParachainContext {
-		type ProduceCandidate = future::Ready<Result<(BlockData, HeadData), InvalidHead>>;
+		type ProduceCandidate = future::Ready<Option<(BlockData, HeadData)>>;
 
 		fn produce_candidate(
 			&mut self,
@@ -479,10 +472,10 @@ mod tests {
 			_local_validation: LocalValidationData,
 		) -> Self::ProduceCandidate {
 			// send messages right back.
-			future::ok((
+			future::ready(Some((
 				BlockData(vec![1, 2, 3, 4, 5,]),
 				HeadData(vec![9, 9, 9]),
-			))
+			)))
 		}
 	}
 
@@ -501,21 +494,20 @@ mod tests {
 		}
 	}
 
-	// Make sure that the future returned by `start_collator` implementes `Send`.
+	// Make sure that the future returned by `start_collator` implements `Send`.
 	#[test]
 	fn start_collator_is_send() {
 		fn check_send<T: Send>(_: T) {}
 
 		let cli = Cli::from_iter(&["-dev"]);
-		let task_executor = Arc::new(|_, _| unimplemented!());
-		let config = cli.create_configuration(&cli.run.base, task_executor).unwrap();
+		let task_executor = |_, _| unimplemented!();
+		let config = cli.create_configuration(&cli.run.base, task_executor.into()).unwrap();
 
 		check_send(start_collator(
 			BuildDummyParachainContext,
 			0.into(),
 			Arc::new(CollatorPair::generate().0),
 			config,
-			None,
 		));
 	}
 }
diff --git a/polkadot/erasure-coding/Cargo.toml b/polkadot/erasure-coding/Cargo.toml
index 8d4aef53086ced562d45d799dbc3bc871883bdab..6368a1787b11d71ce77dfb34e2358c388c03402f 100644
--- a/polkadot/erasure-coding/Cargo.toml
+++ b/polkadot/erasure-coding/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-erasure-coding"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
diff --git a/polkadot/network/Cargo.toml b/polkadot/network/Cargo.toml
index 96546dfbd605d577441242dba97393f4e3e5002a..f3ca97dcdadceb5da30f881b714dcce675a256c5 100644
--- a/polkadot/network/Cargo.toml
+++ b/polkadot/network/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-network"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Polkadot-specific networking protocol"
 edition = "2018"
diff --git a/polkadot/network/test/Cargo.toml b/polkadot/network/test/Cargo.toml
index 4cd342aef04d806dfcac38063af28ee1c0e7fcd9..c8549924ce3a8caec6f3a42ce25494827e955990 100644
--- a/polkadot/network/test/Cargo.toml
+++ b/polkadot/network/test/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-network-test"
-version = "0.8.11"
+version = "0.8.12"
 license = "GPL-3.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
diff --git a/polkadot/node/service/src/lib.rs b/polkadot/node/service/src/lib.rs
index e7fb7c502606b412288eefc77c8b21204b06f61b..620850b3bd641463fea9e02d0702c903d985e89e 100644
--- a/polkadot/node/service/src/lib.rs
+++ b/polkadot/node/service/src/lib.rs
@@ -153,7 +153,7 @@ fn set_prometheus_registry(config: &mut Configuration) -> Result<(), ServiceErro
 /// Use this macro if you don't actually need the full service, but just the builder in order to
 /// be able to perform chain operations.
 macro_rules! new_full_start {
-	($config:expr, $runtime:ty, $executor:ty, $informant_prefix:expr $(,)?) => {{
+	($config:expr, $runtime:ty, $executor:ty) => {{
 		set_prometheus_registry(&mut $config)?;
 
 		let mut import_setup = None;
@@ -162,7 +162,6 @@ macro_rules! new_full_start {
 		let builder = service::ServiceBuilder::new_full::<
 			Block, $runtime, $executor
 		>($config)?
-			.with_informant_prefix($informant_prefix.unwrap_or_default())?
 			.with_select_chain(|_, backend| {
 				Ok(sc_consensus::LongestChain::new(backend.clone()))
 			})?
@@ -308,7 +307,6 @@ macro_rules! new_full {
 		$grandpa_pause:expr,
 		$runtime:ty,
 		$dispatch:ty,
-		$informant_prefix:expr $(,)?
 	) => {{
 		use sc_client_api::ExecutorProvider;
 		use sp_core::traits::BareCryptoStorePtr;
@@ -321,7 +319,7 @@ macro_rules! new_full {
 		let name = $config.network.node_name.clone();
 
 		let (builder, mut import_setup, inherent_data_providers, mut rpc_setup) =
-			new_full_start!($config, $runtime, $dispatch, $informant_prefix);
+			new_full_start!($config, $runtime, $dispatch);
 
 		let service = builder
 			.with_finality_proof_provider(|client, backend| {
@@ -583,7 +581,7 @@ where
 	<Runtime::RuntimeApi as sp_api::ApiExt<Block>>::StateBackend: sp_api::StateBackend<BlakeTwo256>,
 {
 	config.keystore = service::config::KeystoreConfig::InMemory;
-	Ok(new_full_start!(config, Runtime, Dispatch, None).0)
+	Ok(new_full_start!(config, Runtime, Dispatch).0)
 }
 
 /// Create a new Polkadot service for a full node.
@@ -595,7 +593,6 @@ pub fn polkadot_new_full(
 	_authority_discovery_enabled: bool,
 	_slot_duration: u64,
 	grandpa_pause: Option<(u32, u32)>,
-	informant_prefix: Option<String>,
 )
 	-> Result<(
 		impl AbstractService,
@@ -614,7 +611,6 @@ pub fn polkadot_new_full(
 		grandpa_pause,
 		polkadot_runtime::RuntimeApi,
 		PolkadotExecutor,
-		informant_prefix,
 	);
 
 	Ok((service, client, FullNodeHandles))
@@ -629,7 +625,6 @@ pub fn kusama_new_full(
 	_authority_discovery_enabled: bool,
 	_slot_duration: u64,
 	grandpa_pause: Option<(u32, u32)>,
-	informant_prefix: Option<String>,
 ) -> Result<(
 		impl AbstractService,
 		Arc<impl PolkadotClient<
@@ -648,7 +643,6 @@ pub fn kusama_new_full(
 		grandpa_pause,
 		kusama_runtime::RuntimeApi,
 		KusamaExecutor,
-		informant_prefix,
 	);
 
 	Ok((service, client, FullNodeHandles))
@@ -663,7 +657,6 @@ pub fn westend_new_full(
 	_authority_discovery_enabled: bool,
 	_slot_duration: u64,
 	grandpa_pause: Option<(u32, u32)>,
-	informant_prefix: Option<String>,
 )
 	-> Result<(
 		impl AbstractService,
@@ -682,7 +675,6 @@ pub fn westend_new_full(
 		grandpa_pause,
 		westend_runtime::RuntimeApi,
 		WestendExecutor,
-		informant_prefix,
 	);
 
 	Ok((service, client, FullNodeHandles))
diff --git a/polkadot/parachain/Cargo.toml b/polkadot/parachain/Cargo.toml
index 28f7d6ca0d210f41b7780ab84afcb3b9d3a4a2cf..5846105a9375a17b1ec0ec95c7269e12b90e1487 100644
--- a/polkadot/parachain/Cargo.toml
+++ b/polkadot/parachain/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-parachain"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Types and utilities for creating and working with parachains"
 edition = "2018"
diff --git a/polkadot/parachain/src/wasm_executor/mod.rs b/polkadot/parachain/src/wasm_executor/mod.rs
index b0dd127f40ff24ef24f0f04c6f0ceb17cda18c01..2a9c9569be47c389c240e53c29f3c71f731219b8 100644
--- a/polkadot/parachain/src/wasm_executor/mod.rs
+++ b/polkadot/parachain/src/wasm_executor/mod.rs
@@ -276,6 +276,18 @@ impl sp_externalities::Externalities for ValidationExternalities {
 		panic!("storage_append: unsupported feature for parachain validation")
 	}
 
+	fn storage_start_transaction(&mut self) {
+		panic!("storage_start_transaction: unsupported feature for parachain validation")
+	}
+
+	fn storage_rollback_transaction(&mut self) -> Result<(), ()> {
+		panic!("storage_rollback_transaction: unsupported feature for parachain validation")
+	}
+
+	fn storage_commit_transaction(&mut self) -> Result<(), ()> {
+		panic!("storage_commit_transaction: unsupported feature for parachain validation")
+	}
+
 	fn wipe(&mut self) {
 		panic!("wipe: unsupported feature for parachain validation")
 	}
diff --git a/polkadot/parachain/test-parachains/adder/Cargo.toml b/polkadot/parachain/test-parachains/adder/Cargo.toml
index 1856e4d58c587c82f64b929fb5f90fcaaa9acfc1..3a636fca68a8affb94042e5f3294ddfd834acd56 100644
--- a/polkadot/parachain/test-parachains/adder/Cargo.toml
+++ b/polkadot/parachain/test-parachains/adder/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "test-parachain-adder"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Test parachain which adds to a number as its state transition"
 edition = "2018"
diff --git a/polkadot/parachain/test-parachains/adder/collator/src/main.rs b/polkadot/parachain/test-parachains/adder/collator/src/main.rs
index e0a78b17453a69030dece25bc8b7f9df1bc90f90..a32b6e4ca4e19c01e1b855e7716c20b4d33c5bc2 100644
--- a/polkadot/parachain/test-parachains/adder/collator/src/main.rs
+++ b/polkadot/parachain/test-parachains/adder/collator/src/main.rs
@@ -26,11 +26,9 @@ use primitives::{
 	Hash,
 	parachain::{HeadData, BlockData, Id as ParaId, LocalValidationData, GlobalValidationSchedule},
 };
-use collator::{
-	InvalidHead, ParachainContext, Network, BuildParachainContext, Cli, SubstrateCli,
-};
+use collator::{ParachainContext, Network, BuildParachainContext, Cli, SubstrateCli};
 use parking_lot::Mutex;
-use futures::future::{Ready, ok, err, TryFutureExt};
+use futures::future::{Ready, ready, TryFutureExt};
 
 const GENESIS: AdderHead = AdderHead {
 	number: 0,
@@ -55,7 +53,7 @@ struct AdderContext {
 
 /// The parachain context.
 impl ParachainContext for AdderContext {
-	type ProduceCandidate = Ready<Result<(BlockData, HeadData), InvalidHead>>;
+	type ProduceCandidate = Ready<Option<(BlockData, HeadData)>>;
 
 	fn produce_candidate(
 		&mut self,
@@ -64,9 +62,9 @@ impl ParachainContext for AdderContext {
 		local_validation: LocalValidationData,
 	) -> Self::ProduceCandidate
 	{
-		let adder_head = match AdderHead::decode(&mut &local_validation.parent_head.0[..]) {
-			Ok(adder_head) => adder_head,
-			Err(_) => return err(InvalidHead)
+		let adder_head = match AdderHead::decode(&mut &local_validation.parent_head.0[..]).ok() {
+			Some(res) => res,
+			None => return ready(None),
 		};
 
 		let mut db = self.db.lock();
@@ -94,7 +92,7 @@ impl ParachainContext for AdderContext {
 			next_head.number, next_body.state.overflowing_add(next_body.add).0);
 
 		db.insert(next_head.clone(), next_body);
-		ok((encoded_body, encoded_head))
+		ready(Some((encoded_body, encoded_head)))
 	}
 }
 
@@ -141,7 +139,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
 			id,
 			key,
 			config,
-			None,
 		).map_err(|e| e.into())
 	})?;
 
diff --git a/polkadot/parachain/test-parachains/halt/Cargo.toml b/polkadot/parachain/test-parachains/halt/Cargo.toml
index 930b4dc32d3eb5221b3d7b19110a185654da2ef6..cf3fb265554402cd3924812119ed1fa411515952 100644
--- a/polkadot/parachain/test-parachains/halt/Cargo.toml
+++ b/polkadot/parachain/test-parachains/halt/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "test-parachain-halt"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 description = "Test parachain which executes forever"
 edition = "2018"
diff --git a/polkadot/primitives/Cargo.toml b/polkadot/primitives/Cargo.toml
index e318d1cfec1e5697cfc3dbfc528e38c935ea6f44..b38d5cc97d91967a2082708d151db49777a3537e 100644
--- a/polkadot/primitives/Cargo.toml
+++ b/polkadot/primitives/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-primitives"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
diff --git a/polkadot/roadmap/implementors-guide/.gitignore b/polkadot/roadmap/implementors-guide/.gitignore
index 3006b271da6f6c4ae1399a31d3a6b1f5547a976d..ac55c8234c362d417e4ffb085c44d30d3b3bd928 100644
--- a/polkadot/roadmap/implementors-guide/.gitignore
+++ b/polkadot/roadmap/implementors-guide/.gitignore
@@ -1 +1,2 @@
 book/
+*.generated.svg
diff --git a/polkadot/roadmap/implementors-guide/README.md b/polkadot/roadmap/implementors-guide/README.md
index 33bc0a09123e73ff799bd3e9e1a6afe18fdcfb40..909e5055974cf4c8ffd84e6d059937502dd539a2 100644
--- a/polkadot/roadmap/implementors-guide/README.md
+++ b/polkadot/roadmap/implementors-guide/README.md
@@ -3,7 +3,7 @@
 The implementers' guide is compiled from several source files with [mdBook](https://github.com/rust-lang/mdBook). To view it live, locally, from the repo root:
 
 ```sh
-cargo install mdbook mdbook-linkcheck
+cargo install mdbook mdbook-linkcheck mdbook-graphviz
 mdbook serve roadmap/implementors-guide
 open http://localhost:3000
 ```
diff --git a/polkadot/roadmap/implementors-guide/book.toml b/polkadot/roadmap/implementors-guide/book.toml
index dd2ec97902aa7227e5a7e9b9abfe7564a1290ab9..ac2ccdc8ceee474cb454c65ce556b46a67977056 100644
--- a/polkadot/roadmap/implementors-guide/book.toml
+++ b/polkadot/roadmap/implementors-guide/book.toml
@@ -5,5 +5,8 @@ multilingual = false
 src = "src"
 title = "The Polkadot Parachain Host Implementers' Guide"
 
+[preprocessor.graphviz]
+command = "mdbook-graphviz"
+
 [output.html]
 [output.linkcheck]
diff --git a/polkadot/roadmap/implementors-guide/src/architecture.md b/polkadot/roadmap/implementors-guide/src/architecture.md
index d81e6826b0c5da8ab4b0ace1fc589d8b7414fbc8..fabca609c18b4751ffca50be148457e18407705c 100644
--- a/polkadot/roadmap/implementors-guide/src/architecture.md
+++ b/polkadot/roadmap/implementors-guide/src/architecture.md
@@ -2,25 +2,22 @@
 
 Our Parachain Host includes a blockchain known as the relay-chain. A blockchain is a Directed Acyclic Graph (DAG) of state transitions, where every block can be considered to be the head of a linked-list (known as a "chain" or "fork") with a cumulative state which is determined by applying the state transition of each block in turn. All paths through the DAG terminate at the Genesis Block. In fact, the blockchain is a tree, since each block can have only one parent.
 
-```text
-          +----------------+     +----------------+
-          |    Block 4     |     | Block 5        |
-          +----------------+     +----------------+
-                        \           /
-                         V         V
-                      +---------------+
-                      |    Block 3    |
-                      +---------------+
-                              |
-                              V
-                     +----------------+     +----------------+
-                     |    Block 1     |     |   Block 2      |
-                     +----------------+     +----------------+
-                                  \            /
-                                   V          V
-                                +----------------+
-                                |    Genesis     |
-                                +----------------+
+```dot process
+digraph {
+	node [shape=box];
+    genesis [label = Genesis]
+	b1 [label = "Block 1"]
+	b2 [label = "Block 2"]
+	b3 [label = "Block 3"]
+	b4 [label = "Block 4"]
+	b5 [label = "Block 5"]
+
+	b5 -> b3
+	b4 -> b3
+	b3 -> b1
+	b2 -> genesis
+	b1 -> genesis
+}
 ```
 
 A blockchain network is comprised of nodes. These nodes each have a view of many different forks of a blockchain and must decide which forks to follow and what actions to take based on the forks of the chain that they are aware of.
@@ -34,26 +31,16 @@ The first category of questions will be addressed by the Runtime, which defines
 
 The second category of questions addressed by Node-side behavior. Node-side behavior defines all activities that a node undertakes, given its view of the blockchain/block-DAG. Node-side behavior can take into account all or many of the forks of the blockchain, and only conditionally undertake certain activities based on which forks it is aware of, as well as the state of the head of those forks.
 
-```text
+```dot process
+digraph G {
+    Runtime [shape=box]
+    "Node" [shape=box margin=0.5]
+    Transport [shape=rectangle width=5]
+
+    Runtime -> "Node" [dir=both label="Runtime API"]
 
-                     __________________________________
-                    /                                  \
-                    |            Runtime               |
-                    |                                  |
-                    \_________(Runtime API )___________/
-                                |       ^
-                                V       |
-               +----------------------------------------------+
-               |                                              |
-               |                   Node                       |
-               |                                              |
-               |                                              |
-               +----------------------------------------------+
-                                   +  +
-                                   |  |
-               --------------------+  +------------------------
-                                 Transport
-               ------------------------------------------------
+    "Node" -> Transport [penwidth=1]
+}
 
 ```
 
diff --git a/polkadot/roadmap/implementors-guide/src/parachains-overview.md b/polkadot/roadmap/implementors-guide/src/parachains-overview.md
index 43ab974962480b5ac900dc24bb747bcd897ef434..8eff666225296fdaab4e8316f4fbb49338a7b88e 100644
--- a/polkadot/roadmap/implementors-guide/src/parachains-overview.md
+++ b/polkadot/roadmap/implementors-guide/src/parachains-overview.md
@@ -60,61 +60,46 @@ Reiterating the lifecycle of a candidate:
 
 It is also important to take note of the fact that the relay-chain is extended by BABE, which is a forkful algorithm. That means that different block authors can be chosen at the same time, and may not be building on the same block parent. Furthermore, the set of validators is not fixed, nor is the set of parachains. And even with the same set of validators and parachains, the validators' assignments to parachains is flexible. This means that the architecture proposed in the next chapters must deal with the variability and multiplicity of the network state.
 
-```text
-
-   ....... Validator Group 1 ..........
-   .                                  .
-   .         (Validator 4)            .
-   .  (Validator 1) (Validator 2)     .
-   .         (Validator 5)            .
-   .                                  .
-   ..........Building on C  ...........        ........ Validator Group 2 ...........
-            +----------------------+           .                                    .
-            |    Relay Block C     |           .           (Validator 7)            .
-            +----------------------+           .    ( Validator 3) (Validator 6)    .
-                            \                  .                                    .
-                             \                 ......... Building on B  .............
-                              \
-                      +----------------------+
-                      |  Relay Block B       |
-                      +----------------------+
-                              |
-                      +----------------------+
-                      |  Relay Block A       |
-                      +----------------------+
 
+```dot process
+digraph {
+	rca [label = "Relay Block A" shape=rectangle]
+	rcb [label = "Relay Block B" shape=rectangle]
+	rcc [label = "Relay Block C" shape=rectangle]
+
+	vg1 [label =<<b>Validator Group 1</b><br/><br/><font point-size="10">(Validator 4)<br/>(Validator 1) (Validator 2)<br/>(Validator 5)</font>>]
+	vg2 [label =<<b>Validator Group 2</b><br/><br/><font point-size="10">(Validator 7)<br/>(Validator 3) (Validator 6)</font>>]
+
+	rcb -> rca
+	rcc -> rcb
+
+	vg1 -> rcc [label="Building on C" style=dashed arrowhead=none]
+	vg2 -> rcb [label="Building on B" style=dashed arrowhead=none]
+}
 ```
 
 In this example, group 1 has received block C while the others have not due to network asynchrony. Now, a validator from group 2 may be able to build another block on top of B, called C'. Assume that afterwards, some validators become aware of both C and C', while others remain only aware of one.
 
-```text
-   ....... Validator Group 1 ..........      ........ Validator Group 2 ...........
-   .                                  .      .                                    .
-   .  (Validator 4) (Validator 1)     .      .    (Validator 7) (Validator 6)     .
-   .                                  .      .                                    .
-   .......... Building on C  ..........      ......... Building on C' .............
-
-
-   ....... Validator Group 3 ..........
-   .                                  .
-   .   (Validator 2) (Validator 3)    .
-   .        (Validator 5)             .
-   .                                  .
-   ....... Building on C and C' .......
-
-            +----------------------+         +----------------------+
-            |    Relay Block C     |         |    Relay Block C'    |
-            +----------------------+         +----------------------+
-                            \                 /
-                             \               /
-                              \             /
-                      +----------------------+
-                      |  Relay Block B       |
-                      +----------------------+
-                              |
-                      +----------------------+
-                      |  Relay Block A       |
-                      +----------------------+
+```dot process
+digraph {
+	rca [label = "Relay Block A" shape=rectangle]
+	rcb [label = "Relay Block B" shape=rectangle]
+	rcc [label = "Relay Block C" shape=rectangle]
+	rcc_prime [label = "Relay Block C'" shape=rectangle]
+
+	vg1 [label =<<b>Validator Group 1</b><br/><br/><font point-size="10">(Validator 4) (Validator 1)</font>>]
+	vg2 [label =<<b>Validator Group 2</b><br/><br/><font point-size="10">(Validator 7) (Validator 6)</font>>]
+	vg3 [label =<<b>Validator Group 3</b><br/><br/><font point-size="10">(Validator 2) (Validator 3)<br/>(Validator 5)</font>>]
+
+	rcb -> rca
+	rcc -> rcb
+	rcc_prime -> rcb
+
+	vg1 -> rcc [style=dashed arrowhead=none]
+	vg2 -> rcc_prime [style=dashed arrowhead=none]
+	vg3 -> rcc_prime [style=dashed arrowhead=none]
+	vg3 -> rcc [style=dashed arrowhead=none]
+}
 ```
 
 Those validators that are aware of many competing heads must be aware of the work happening on each one. They may contribute to some or a full extent on both. It is possible that due to network asynchrony two forks may grow in parallel for some time, although in the absence of an adversarial network this is unlikely in the case where there are validators who are aware of both chain heads.
diff --git a/polkadot/rpc/Cargo.toml b/polkadot/rpc/Cargo.toml
index a7c6dd33a24582e4ad7dfd55909aded19f12d71a..6826900da75664a3dd90f56c9e6dde769f08dda9 100644
--- a/polkadot/rpc/Cargo.toml
+++ b/polkadot/rpc/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-rpc"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
diff --git a/polkadot/runtime/common/Cargo.toml b/polkadot/runtime/common/Cargo.toml
index e533de8e3755451f8a9f17391469ad93f3d4f69f..4dba004540e0f2821f03401ac269f14c4be8c952 100644
--- a/polkadot/runtime/common/Cargo.toml
+++ b/polkadot/runtime/common/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-runtime-common"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
diff --git a/polkadot/runtime/kusama/Cargo.toml b/polkadot/runtime/kusama/Cargo.toml
index cae1628cce264042795750ea5b6cab2f02648e50..9f599233f0471b3211e29eb6ae915a663c9487c3 100644
--- a/polkadot/runtime/kusama/Cargo.toml
+++ b/polkadot/runtime/kusama/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "kusama-runtime"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
diff --git a/polkadot/runtime/kusama/src/lib.rs b/polkadot/runtime/kusama/src/lib.rs
index f0e5852c0feab6bede7a95f7f841f21d087255b8..7065c918df24b0e802c27b8164b752546d4c0715 100644
--- a/polkadot/runtime/kusama/src/lib.rs
+++ b/polkadot/runtime/kusama/src/lib.rs
@@ -86,7 +86,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
 	spec_name: create_runtime_str!("kusama"),
 	impl_name: create_runtime_str!("parity-kusama"),
 	authoring_version: 2,
-	spec_version: 2011,
+	spec_version: 2012,
 	impl_version: 0,
 	apis: RUNTIME_API_VERSIONS,
 	transaction_version: 1,
@@ -268,11 +268,16 @@ impl session::historical::Trait for Runtime {
 	type FullIdentificationOf = staking::ExposureOf<Runtime>;
 }
 
+// TODO #6469: This shouldn't be static, but a lazily cached value, not built unless needed, and
+// re-built in case input parameters have changed. The `ideal_stake` should be determined by the
+// amount of parachain slots being bid on: this should be around `(75 - 25.min(slots / 4))%`.
 pallet_staking_reward_curve::build! {
 	const REWARD_CURVE: PiecewiseLinear<'static> = curve!(
 		min_inflation: 0_025_000,
 		max_inflation: 0_100_000,
-		ideal_stake: 0_500_000,
+		// 3:2:1 staked : parachains : float.
+		// while there's no parachains, then this is 75% staked : 25% float.
+		ideal_stake: 0_750_000,
 		falloff: 0_050_000,
 		max_piece_count: 40,
 		test_precision: 0_005_000,
@@ -608,7 +613,7 @@ impl<LocalCall> system::offchain::CreateSignedTransaction<LocalCall> for Runtime
 			system::CheckSpecVersion::<Runtime>::new(),
 			system::CheckTxVersion::<Runtime>::new(),
 			system::CheckGenesis::<Runtime>::new(),
-			system::CheckEra::<Runtime>::from(generic::Era::mortal(period, current_block)),
+			system::CheckMortality::<Runtime>::from(generic::Era::mortal(period, current_block)),
 			system::CheckNonce::<Runtime>::from(nonce),
 			system::CheckWeight::<Runtime>::new(),
 			transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
@@ -803,9 +808,50 @@ impl InstanceFilter<Call> for ProxyType {
 	fn filter(&self, c: &Call) -> bool {
 		match self {
 			ProxyType::Any => true,
-			ProxyType::NonTransfer => !matches!(c,
-				Call::Balances(..) | Call::Vesting(vesting::Call::vested_transfer(..))
-					| Call::Indices(indices::Call::transfer(..))
+			ProxyType::NonTransfer => matches!(c,
+				Call::System(..) |
+				Call::Babe(..) |
+				Call::Timestamp(..) |
+				Call::Indices(indices::Call::claim(..)) |
+				Call::Indices(indices::Call::free(..)) |
+				Call::Indices(indices::Call::freeze(..)) |
+				// Specifically omitting Indices `transfer`, `force_transfer`
+				// Specifically omitting the entire Balances pallet
+				Call::Authorship(..) |
+				Call::Staking(..) |
+				Call::Offences(..) |
+				Call::Session(..) |
+				Call::FinalityTracker(..) |
+				Call::Grandpa(..) |
+				Call::ImOnline(..) |
+				Call::AuthorityDiscovery(..) |
+				Call::Democracy(..) |
+				Call::Council(..) |
+				Call::TechnicalCommittee(..) |
+				Call::ElectionsPhragmen(..) |
+				Call::TechnicalMembership(..) |
+				Call::Treasury(..) |
+				Call::Claims(..) |
+				Call::Parachains(..) |
+				Call::Attestations(..) |
+				Call::Slots(..) |
+				Call::Registrar(..) |
+				Call::Utility(..) |
+				Call::Identity(..) |
+				Call::Society(..) |
+				Call::Recovery(recovery::Call::as_recovered(..)) |
+				Call::Recovery(recovery::Call::vouch_recovery(..)) |
+				Call::Recovery(recovery::Call::claim_recovery(..)) |
+				Call::Recovery(recovery::Call::close_recovery(..)) |
+				Call::Recovery(recovery::Call::remove_recovery(..)) |
+				Call::Recovery(recovery::Call::cancel_recovered(..)) |
+				// Specifically omitting Recovery `create_recovery`, `initiate_recovery`
+				Call::Vesting(vesting::Call::vest(..)) |
+				Call::Vesting(vesting::Call::vest_other(..)) |
+				// Specifically omitting Vesting `vested_transfer`, and `force_vested_transfer`
+				Call::Scheduler(..) |
+				Call::Proxy(..) |
+				Call::Multisig(..)
 			),
 			ProxyType::Governance => matches!(c,
 				Call::Democracy(..) | Call::Council(..) | Call::TechnicalCommittee(..)
@@ -928,7 +974,7 @@ pub type SignedExtra = (
 	system::CheckSpecVersion<Runtime>,
 	system::CheckTxVersion<Runtime>,
 	system::CheckGenesis<Runtime>,
-	system::CheckEra<Runtime>,
+	system::CheckMortality<Runtime>,
 	system::CheckNonce<Runtime>,
 	system::CheckWeight<Runtime>,
 	transaction_payment::ChargeTransactionPayment<Runtime>,
diff --git a/polkadot/runtime/polkadot/Cargo.toml b/polkadot/runtime/polkadot/Cargo.toml
index 180e4c8bfea6eec1ee981f9b2d3ef4bab1e85e37..ce3e9efc9302017e67e941b31e08435118ecc504 100644
--- a/polkadot/runtime/polkadot/Cargo.toml
+++ b/polkadot/runtime/polkadot/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-runtime"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
diff --git a/polkadot/runtime/polkadot/src/lib.rs b/polkadot/runtime/polkadot/src/lib.rs
index ba3b90fae506149c633971eb7610f3479f4a897c..6a5772d74aa2de2f6397aa1ff5a18f45cd1343bb 100644
--- a/polkadot/runtime/polkadot/src/lib.rs
+++ b/polkadot/runtime/polkadot/src/lib.rs
@@ -91,7 +91,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
 	spec_name: create_runtime_str!("polkadot"),
 	impl_name: create_runtime_str!("parity-polkadot"),
 	authoring_version: 0,
-	spec_version: 11,
+	spec_version: 12,
 	impl_version: 0,
 	apis: RUNTIME_API_VERSIONS,
 	transaction_version: 0,
@@ -290,11 +290,16 @@ impl session::historical::Trait for Runtime {
 	type FullIdentificationOf = staking::ExposureOf<Runtime>;
 }
 
+// TODO #6469: This shouldn't be static, but a lazily cached value, not built unless needed, and
+// re-built in case input parameters have changed. The `ideal_stake` should be determined by the
+// amount of parachain slots being bid on: this should be around `(75 - 25.min(slots / 4))%`.
 pallet_staking_reward_curve::build! {
 	const REWARD_CURVE: PiecewiseLinear<'static> = curve!(
 		min_inflation: 0_025_000,
 		max_inflation: 0_100_000,
-		ideal_stake: 0_500_000,
+		// 3:2:1 staked : parachains : float.
+		// while there's no parachains, then this is 75% staked : 25% float.
+		ideal_stake: 0_750_000,
 		falloff: 0_050_000,
 		max_piece_count: 40,
 		test_precision: 0_005_000,
@@ -655,7 +660,7 @@ impl<LocalCall> system::offchain::CreateSignedTransaction<LocalCall> for Runtime
 			system::CheckSpecVersion::<Runtime>::new(),
 			system::CheckTxVersion::<Runtime>::new(),
 			system::CheckGenesis::<Runtime>::new(),
-			system::CheckEra::<Runtime>::from(generic::Era::mortal(period, current_block)),
+			system::CheckMortality::<Runtime>::from(generic::Era::mortal(period, current_block)),
 			system::CheckNonce::<Runtime>::from(nonce),
 			system::CheckWeight::<Runtime>::new(),
 			transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
@@ -787,9 +792,43 @@ impl InstanceFilter<Call> for ProxyType {
 	fn filter(&self, c: &Call) -> bool {
 		match self {
 			ProxyType::Any => true,
-			ProxyType::NonTransfer => !matches!(c,
-				Call::Balances(..) | Call::Vesting(vesting::Call::vested_transfer(..))
-					| Call::Indices(indices::Call::transfer(..))
+			ProxyType::NonTransfer => matches!(c,
+				Call::System(..) |
+				Call::Scheduler(..) |
+				Call::Babe(..) |
+				Call::Timestamp(..) |
+				Call::Indices(indices::Call::claim(..)) |
+				Call::Indices(indices::Call::free(..)) |
+				Call::Indices(indices::Call::freeze(..)) |
+				// Specifically omitting Indices `transfer`, `force_transfer`
+				// Specifically omitting the entire Balances pallet
+				Call::Authorship(..) |
+				Call::Staking(..) |
+				Call::Offences(..) |
+				Call::Session(..) |
+				Call::FinalityTracker(..) |
+				Call::Grandpa(..) |
+				Call::ImOnline(..) |
+				Call::AuthorityDiscovery(..) |
+				Call::Democracy(..) |
+				Call::Council(..) |
+				Call::TechnicalCommittee(..) |
+				Call::ElectionsPhragmen(..) |
+				Call::TechnicalMembership(..) |
+				Call::Treasury(..) |
+				Call::Parachains(..) |
+				Call::Attestations(..) |
+				Call::Slots(..) |
+				Call::Registrar(..) |
+				Call::Claims(..) |
+				Call::Vesting(vesting::Call::vest(..)) |
+				Call::Vesting(vesting::Call::vest_other(..)) |
+				// Specifically omitting Vesting `vested_transfer`, and `force_vested_transfer`
+				Call::Utility(..) |
+				// Specifically omitting Sudo pallet
+				Call::Identity(..) |
+				Call::Proxy(..) |
+				Call::Multisig(..)
 			),
 			ProxyType::Governance => matches!(c,
 				Call::Democracy(..) | Call::Council(..) | Call::TechnicalCommittee(..)
@@ -912,7 +951,7 @@ pub type SignedExtra = (
 	system::CheckSpecVersion<Runtime>,
 	system::CheckTxVersion<Runtime>,
 	system::CheckGenesis<Runtime>,
-	system::CheckEra<Runtime>,
+	system::CheckMortality<Runtime>,
 	system::CheckNonce<Runtime>,
 	system::CheckWeight<Runtime>,
 	transaction_payment::ChargeTransactionPayment<Runtime>,
diff --git a/polkadot/runtime/test-runtime/Cargo.toml b/polkadot/runtime/test-runtime/Cargo.toml
index 296b1f7610ccb3f50da4b7a5c2611564415ad0dd..4326e11dffd3d1b40242a8089aef4fc7b5b93bb9 100644
--- a/polkadot/runtime/test-runtime/Cargo.toml
+++ b/polkadot/runtime/test-runtime/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-test-runtime"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
diff --git a/polkadot/runtime/test-runtime/src/lib.rs b/polkadot/runtime/test-runtime/src/lib.rs
index 51b6b4bbdec95731168a53de39a771532ac4bf38..8b79ff22d66db85463ca888df24c1a19de2c0e36 100644
--- a/polkadot/runtime/test-runtime/src/lib.rs
+++ b/polkadot/runtime/test-runtime/src/lib.rs
@@ -401,7 +401,7 @@ impl<LocalCall> system::offchain::CreateSignedTransaction<LocalCall> for Runtime
 			system::CheckSpecVersion::<Runtime>::new(),
 			system::CheckTxVersion::<Runtime>::new(),
 			system::CheckGenesis::<Runtime>::new(),
-			system::CheckEra::<Runtime>::from(generic::Era::mortal(period, current_block)),
+			system::CheckMortality::<Runtime>::from(generic::Era::mortal(period, current_block)),
 			system::CheckNonce::<Runtime>::from(nonce),
 			system::CheckWeight::<Runtime>::new(),
 			transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
@@ -545,7 +545,7 @@ pub type SignedExtra = (
 	system::CheckSpecVersion<Runtime>,
 	system::CheckTxVersion<Runtime>,
 	system::CheckGenesis<Runtime>,
-	system::CheckEra<Runtime>,
+	system::CheckMortality<Runtime>,
 	system::CheckNonce<Runtime>,
 	system::CheckWeight<Runtime>,
 	transaction_payment::ChargeTransactionPayment::<Runtime>,
diff --git a/polkadot/runtime/westend/Cargo.toml b/polkadot/runtime/westend/Cargo.toml
index 18d32a81f11d555ad26749554f9dc89357e639f2..3743d765d3031c1fe54e611fbb68f1e42b08704d 100644
--- a/polkadot/runtime/westend/Cargo.toml
+++ b/polkadot/runtime/westend/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "westend-runtime"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 build = "build.rs"
diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs
index 3844a69139856231ae5a1a96790a6c5a965d7d78..50f1bcb7c46f51dbc581d4d33b2089d32834c998 100644
--- a/polkadot/runtime/westend/src/lib.rs
+++ b/polkadot/runtime/westend/src/lib.rs
@@ -82,7 +82,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
 	spec_name: create_runtime_str!("westend"),
 	impl_name: create_runtime_str!("parity-westend"),
 	authoring_version: 2,
-	spec_version: 31,
+	spec_version: 32,
 	impl_version: 0,
 	apis: RUNTIME_API_VERSIONS,
 	transaction_version: 1,
@@ -443,7 +443,7 @@ impl<LocalCall> system::offchain::CreateSignedTransaction<LocalCall> for Runtime
 			system::CheckSpecVersion::<Runtime>::new(),
 			system::CheckTxVersion::<Runtime>::new(),
 			system::CheckGenesis::<Runtime>::new(),
-			system::CheckEra::<Runtime>::from(generic::Era::mortal(period, current_block)),
+			system::CheckMortality::<Runtime>::from(generic::Era::mortal(period, current_block)),
 			system::CheckNonce::<Runtime>::from(nonce),
 			system::CheckWeight::<Runtime>::new(),
 			transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
@@ -590,8 +590,42 @@ impl InstanceFilter<Call> for ProxyType {
 	fn filter(&self, c: &Call) -> bool {
 		match self {
 			ProxyType::Any => true,
-			ProxyType::NonTransfer => !matches!(c,
-				Call::Balances(..) | Call::Indices(indices::Call::transfer(..))
+			ProxyType::NonTransfer => matches!(c,
+				Call::System(..) |
+				Call::Babe(..) |
+				Call::Timestamp(..) |
+				Call::Indices(indices::Call::claim(..)) |
+				Call::Indices(indices::Call::free(..)) |
+				Call::Indices(indices::Call::freeze(..)) |
+				// Specifically omitting Indices `transfer`, `force_transfer`
+				// Specifically omitting the entire Balances pallet
+				Call::Authorship(..) |
+				Call::Staking(..) |
+				Call::Offences(..) |
+				Call::Session(..) |
+				Call::FinalityTracker(..) |
+				Call::Grandpa(..) |
+				Call::ImOnline(..) |
+				Call::AuthorityDiscovery(..) |
+				Call::Parachains(..) |
+				Call::Attestations(..) |
+				Call::Registrar(..) |
+				Call::Utility(..) |
+				Call::Identity(..) |
+				Call::Recovery(recovery::Call::as_recovered(..)) |
+				Call::Recovery(recovery::Call::vouch_recovery(..)) |
+				Call::Recovery(recovery::Call::claim_recovery(..)) |
+				Call::Recovery(recovery::Call::close_recovery(..)) |
+				Call::Recovery(recovery::Call::remove_recovery(..)) |
+				Call::Recovery(recovery::Call::cancel_recovered(..)) |
+				// Specifically omitting Recovery `create_recovery`, `initiate_recovery`
+				Call::Vesting(vesting::Call::vest(..)) |
+				Call::Vesting(vesting::Call::vest_other(..)) |
+				// Specifically omitting Vesting `vested_transfer`, and `force_vested_transfer`
+				Call::Scheduler(..) |
+				// Specifically omitting Sudo pallet
+				Call::Proxy(..) |
+				Call::Multisig(..)
 			),
 			ProxyType::Staking => matches!(c,
 				Call::Staking(..) | Call::Utility(utility::Call::batch(..))
@@ -701,7 +735,7 @@ pub type SignedExtra = (
 	system::CheckSpecVersion<Runtime>,
 	system::CheckTxVersion<Runtime>,
 	system::CheckGenesis<Runtime>,
-	system::CheckEra<Runtime>,
+	system::CheckMortality<Runtime>,
 	system::CheckNonce<Runtime>,
 	system::CheckWeight<Runtime>,
 	transaction_payment::ChargeTransactionPayment<Runtime>,
diff --git a/polkadot/service/Cargo.toml b/polkadot/service/Cargo.toml
index 95ac10bfa4d507b5f3e09a2c3b1a92acff1d07bd..bdd869da46d57812393f5b750f767bb3e21e3ae5 100644
--- a/polkadot/service/Cargo.toml
+++ b/polkadot/service/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-service"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
diff --git a/polkadot/service/src/lib.rs b/polkadot/service/src/lib.rs
index 0f64f41bf9f0cc78d309d212bd69f752d159a2a3..82e8460437a4df036957f82cae3b9b2a8af356de 100644
--- a/polkadot/service/src/lib.rs
+++ b/polkadot/service/src/lib.rs
@@ -149,7 +149,7 @@ fn set_prometheus_registry(config: &mut Configuration) -> Result<(), ServiceErro
 /// Use this macro if you don't actually need the full service, but just the builder in order to
 /// be able to perform chain operations.
 macro_rules! new_full_start {
-	($config:expr, $runtime:ty, $executor:ty, $informant_prefix:expr $(,)?) => {{
+	($config:expr, $runtime:ty, $executor:ty) => {{
 		set_prometheus_registry(&mut $config)?;
 
 		let mut import_setup = None;
@@ -158,7 +158,6 @@ macro_rules! new_full_start {
 		let builder = service::ServiceBuilder::new_full::<
 			Block, $runtime, $executor
 		>($config)?
-			.with_informant_prefix($informant_prefix.unwrap_or_default())?
 			.with_select_chain(|_, backend| {
 				Ok(sc_consensus::LongestChain::new(backend.clone()))
 			})?
@@ -276,7 +275,6 @@ macro_rules! new_full {
 		$grandpa_pause:expr,
 		$runtime:ty,
 		$dispatch:ty,
-		$informant_prefix:expr $(,)?
 	) => {{
 		use sc_network::Event;
 		use sc_client_api::ExecutorProvider;
@@ -298,7 +296,7 @@ macro_rules! new_full {
 		let slot_duration = $slot_duration;
 
 		let (builder, mut import_setup, inherent_data_providers, mut rpc_setup) =
-			new_full_start!($config, $runtime, $dispatch, $informant_prefix);
+			new_full_start!($config, $runtime, $dispatch);
 
 		let service = builder
 			.with_finality_proof_provider(|client, backend| {
@@ -649,7 +647,7 @@ where
 	<Runtime::RuntimeApi as sp_api::ApiExt<Block>>::StateBackend: sp_api::StateBackend<BlakeTwo256>,
 {
 	config.keystore = service::config::KeystoreConfig::InMemory;
-	Ok(new_full_start!(config, Runtime, Dispatch, None).0)
+	Ok(new_full_start!(config, Runtime, Dispatch).0)
 }
 
 /// Create a new Polkadot service for a full node.
@@ -661,7 +659,6 @@ pub fn polkadot_new_full(
 	authority_discovery_enabled: bool,
 	slot_duration: u64,
 	grandpa_pause: Option<(u32, u32)>,
-	informant_prefix: Option<String>,
 )
 	-> Result<(
 		impl AbstractService,
@@ -682,7 +679,6 @@ pub fn polkadot_new_full(
 		grandpa_pause,
 		polkadot_runtime::RuntimeApi,
 		PolkadotExecutor,
-		informant_prefix,
 	);
 
 	Ok((service, client, handles))
@@ -697,7 +693,6 @@ pub fn kusama_new_full(
 	authority_discovery_enabled: bool,
 	slot_duration: u64,
 	grandpa_pause: Option<(u32, u32)>,
-	informant_prefix: Option<String>,
 ) -> Result<(
 		impl AbstractService,
 		Arc<impl PolkadotClient<
@@ -718,7 +713,6 @@ pub fn kusama_new_full(
 		grandpa_pause,
 		kusama_runtime::RuntimeApi,
 		KusamaExecutor,
-		informant_prefix,
 	);
 
 	Ok((service, client, handles))
@@ -733,7 +727,6 @@ pub fn westend_new_full(
 	authority_discovery_enabled: bool,
 	slot_duration: u64,
 	grandpa_pause: Option<(u32, u32)>,
-	informant_prefix: Option<String>,
 )
 	-> Result<(
 		impl AbstractService,
@@ -754,7 +747,6 @@ pub fn westend_new_full(
 		grandpa_pause,
 		westend_runtime::RuntimeApi,
 		WestendExecutor,
-		informant_prefix,
 	);
 
 	Ok((service, client, handles))
diff --git a/polkadot/statement-table/Cargo.toml b/polkadot/statement-table/Cargo.toml
index 3494d8e2968d755ca7530b7b7c787b29a4b565fb..209397056a4060f2fbb4fecf7d5bd0d7c465cbe8 100644
--- a/polkadot/statement-table/Cargo.toml
+++ b/polkadot/statement-table/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-statement-table"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
diff --git a/polkadot/validation/Cargo.toml b/polkadot/validation/Cargo.toml
index cbd5c7aee490e038d3386d767635d24306408ad3..be07d4ce528df398471ba2abcdddbfb94ea56309 100644
--- a/polkadot/validation/Cargo.toml
+++ b/polkadot/validation/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "polkadot-validation"
-version = "0.8.11"
+version = "0.8.12"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"