diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index 3b4fc29f1d0f4baacd8146812bb911db2dbfb9ad..cd13dace8ead19c3d283abff8bf491fd15034493 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -1337,7 +1337,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
 ]
 
 [[package]]
@@ -1435,7 +1435,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b"
 dependencies = [
  "either",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 2.0.2",
  "log",
  "num-traits 0.2.12",
@@ -1712,9 +1712,9 @@ checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
 
 [[package]]
 name = "futures"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90fa4cc29d25b0687b8570b0da86eac698dcb525110ad8b938fe6712baa711ec"
+checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1727,9 +1727,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31ebc390c6913de330e418add60e1a7e5af4cb5ec600d19111b339cafcdcc027"
+checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1737,9 +1737,9 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "089bd0baf024d3216916546338fffe4fc8dfffdd901e33c278abb091e0d52111"
+checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65"
 
 [[package]]
 name = "futures-cpupool"
@@ -1758,7 +1758,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9"
 dependencies = [
  "futures 0.1.29",
- "futures 0.3.11",
+ "futures 0.3.12",
  "lazy_static",
  "log",
  "parking_lot 0.9.0",
@@ -1769,9 +1769,9 @@ dependencies = [
 
 [[package]]
 name = "futures-executor"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0cb59f15119671c94cd9cc543dc9a50b8d5edc468b4ff5f0bb8567f66c6b48a"
+checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1781,9 +1781,9 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3868967e4e5ab86614e2176c99949eeef6cbcacaee737765f6ae693988273997"
+checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500"
 
 [[package]]
 name = "futures-lite"
@@ -1802,9 +1802,9 @@ dependencies = [
 
 [[package]]
 name = "futures-macro"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95778720c3ee3c179cd0d8fd5a0f9b40aa7d745c080f86a8f8bed33c4fd89758"
+checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd"
 dependencies = [
  "proc-macro-hack",
  "proc-macro2 1.0.24",
@@ -1825,15 +1825,15 @@ dependencies = [
 
 [[package]]
 name = "futures-sink"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4e0f6be0ec0357772fd58fb751958dd600bd0b3edfd429e77793e4282831360"
+checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6"
 
 [[package]]
 name = "futures-task"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "868090f28a925db6cb7462938c51d807546e298fb314088239f0e52fb4338b96"
+checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86"
 dependencies = [
  "once_cell",
 ]
@@ -1856,9 +1856,9 @@ dependencies = [
 
 [[package]]
 name = "futures-util"
-version = "0.3.11"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cad5e82786df758d407932aded1235e24d8e2eb438b6adafd37930c2462fb5d1"
+checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b"
 dependencies = [
  "futures 0.1.29",
  "futures-channel",
@@ -2340,7 +2340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "16d7c5e361e6b05c882b4847dd98992534cebc6fcde7f4bc98225bcf10fd6d0d"
 dependencies = [
  "async-io",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-lite",
  "if-addrs",
  "ipnet",
@@ -2435,7 +2435,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 2.0.2",
 ]
 
@@ -2783,7 +2783,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f7bfe11b3202691673766b1224c432996f6b8047db17ceb743675bef3404e714"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "js-sys",
  "kvdb",
  "kvdb-memorydb",
@@ -2843,7 +2843,7 @@ checksum = "d5133112ce42be9482f6a87be92a605dd6bbc9e93c297aee77d172ff06908f3a"
 dependencies = [
  "atomic",
  "bytes 1.0.1",
- "futures 0.3.11",
+ "futures 0.3.12",
  "lazy_static",
  "libp2p-core",
  "libp2p-core-derive",
@@ -2884,7 +2884,7 @@ dependencies = [
  "ed25519-dalek",
  "either",
  "fnv",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "lazy_static",
  "libsecp256k1",
@@ -2924,7 +2924,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "935893c0e5b6ca6ef60d5225aab9182f97c8c5671df2fa9dee8f4ed72a90e6eb"
 dependencies = [
  "flate2",
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
 ]
 
@@ -2934,7 +2934,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5153b6db68fd4baa3b304e377db744dd8fea8ff4e4504509ee636abcde88d3e3"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "log",
 ]
@@ -2947,7 +2947,7 @@ checksum = "b3c63dfa06581b24b1d12bf9815b43689a784424be217d6545c800c7c75a207f"
 dependencies = [
  "cuckoofilter",
  "fnv",
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "libp2p-swarm",
  "log",
@@ -2968,7 +2968,7 @@ dependencies = [
  "byteorder",
  "bytes 1.0.1",
  "fnv",
- "futures 0.3.11",
+ "futures 0.3.12",
  "hex_fmt",
  "libp2p-core",
  "libp2p-swarm",
@@ -2989,7 +2989,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b40fb36a059b7a8cce1514bd8b546fa612e006c9937caa7f5950cb20021fe91e"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "libp2p-swarm",
  "log",
@@ -3010,7 +3010,7 @@ dependencies = [
  "bytes 1.0.1",
  "either",
  "fnv",
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "libp2p-swarm",
  "log",
@@ -3034,7 +3034,7 @@ dependencies = [
  "async-io",
  "data-encoding",
  "dns-parser",
- "futures 0.3.11",
+ "futures 0.3.12",
  "if-watch",
  "lazy_static",
  "libp2p-core",
@@ -3054,7 +3054,7 @@ checksum = "2705dc94b01ab9e3779b42a09bbf3712e637ed213e875c30face247291a85af0"
 dependencies = [
  "asynchronous-codec",
  "bytes 1.0.1",
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "log",
  "nohash-hasher",
@@ -3072,7 +3072,7 @@ checksum = "4aca322b52a0c5136142a7c3971446fb1e9964923a526c9cc6ef3b7c94e57778"
 dependencies = [
  "bytes 1.0.1",
  "curve25519-dalek 3.0.0",
- "futures 0.3.11",
+ "futures 0.3.12",
  "lazy_static",
  "libp2p-core",
  "log",
@@ -3092,7 +3092,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6f3813276d0708c8db0f500d8beda1bda9ad955723b9cb272c41f4727256f73c"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "libp2p-swarm",
  "log",
@@ -3109,7 +3109,7 @@ checksum = "48e8c1ec305c9949351925cdc7196b9570f4330477f5e47fbf5bb340b57e26ed"
 dependencies = [
  "asynchronous-codec",
  "bytes 1.0.1",
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "log",
  "prost",
@@ -3124,7 +3124,7 @@ version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "pin-project 1.0.4",
  "rand 0.7.3",
@@ -3140,7 +3140,7 @@ checksum = "d37637a4b33b5390322ccc068a33897d0aa541daf4fec99f6a7efbf37295346e"
 dependencies = [
  "async-trait",
  "bytes 1.0.1",
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "libp2p-swarm",
  "log",
@@ -3159,7 +3159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "22ea8c69839a0e593c8c6a24282cb234d48ac37be4153183f4914e00f5303e75"
 dependencies = [
  "either",
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "log",
  "rand 0.7.3",
@@ -3175,7 +3175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3dbd3d7076a478ac5a6aca55e74bdc250ac539b95de09b9d09915e0b8d01a6b2"
 dependencies = [
  "async-io",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "if-watch",
  "ipnet",
@@ -3192,7 +3192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "80ac51ce419f60be966e02103c17f67ff5dc4422ba83ba54d251d6c62a4ed487"
 dependencies = [
  "async-std",
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "log",
 ]
@@ -3203,7 +3203,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6149c46cb76935c80bc8be6ec6e3ebd5f5e1679765a255fb34331d54610f15dd"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "js-sys",
  "libp2p-core",
  "parity-send-wrapper",
@@ -3218,7 +3218,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d3b1c6a3431045da8b925ed83384e4c5163e14b990572307fca9c507435d4d22"
 dependencies = [
  "either",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-rustls",
  "libp2p-core",
  "log",
@@ -3235,7 +3235,7 @@ version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "490b8b27fc40fe35212df1b6a3d14bffaa4117cbff956fdc2892168a371102ad"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p-core",
  "parking_lot 0.11.1",
  "thiserror",
@@ -3469,7 +3469,7 @@ name = "metered-channel"
 version = "0.1.0"
 dependencies = [
  "assert_matches",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
 ]
 
@@ -3479,7 +3479,7 @@ version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "rand 0.7.3",
  "thrift",
 ]
@@ -3635,7 +3635,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "10ddc0eb0117736f19d556355464fc87efc8ad98b29e3fd84f02531eb6e90840"
 dependencies = [
  "bytes 1.0.1",
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "pin-project 1.0.4",
  "smallvec 1.6.1",
@@ -4874,7 +4874,7 @@ version = "0.8.27"
 dependencies = [
  "assert_cmd",
  "color-eyre",
- "futures 0.3.11",
+ "futures 0.3.12",
  "nix 0.19.1",
  "parity-util-mem",
  "polkadot-cli",
@@ -4890,7 +4890,7 @@ dependencies = [
  "assert_matches",
  "bitvec",
  "env_logger 0.8.2",
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "maplit",
  "parity-scale-codec",
@@ -4911,7 +4911,7 @@ name = "polkadot-availability-distribution"
 version = "0.1.0"
 dependencies = [
  "assert_matches",
- "futures 0.3.11",
+ "futures 0.3.12",
  "maplit",
  "parity-scale-codec",
  "polkadot-erasure-coding",
@@ -4937,7 +4937,7 @@ version = "0.1.0"
 dependencies = [
  "assert_matches",
  "env_logger 0.8.2",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "log",
  "lru",
@@ -4963,7 +4963,7 @@ name = "polkadot-cli"
 version = "0.8.27"
 dependencies = [
  "frame-benchmarking-cli",
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "polkadot-parachain",
  "polkadot-service",
@@ -4986,7 +4986,7 @@ version = "0.1.0"
 dependencies = [
  "assert_matches",
  "env_logger 0.8.2",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "log",
  "polkadot-node-network-protocol",
@@ -5029,7 +5029,7 @@ version = "0.1.0"
 dependencies = [
  "assert_matches",
  "async-trait",
- "futures 0.3.11",
+ "futures 0.3.12",
  "parity-scale-codec",
  "parking_lot 0.11.1",
  "polkadot-node-network-protocol",
@@ -5049,7 +5049,7 @@ dependencies = [
 name = "polkadot-node-collation-generation"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "polkadot-erasure-coding",
  "polkadot-node-primitives",
  "polkadot-node-subsystem",
@@ -5069,7 +5069,7 @@ dependencies = [
  "assert_matches",
  "bitvec",
  "env_logger 0.8.2",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "kvdb",
  "kvdb-memorydb",
@@ -5097,7 +5097,7 @@ version = "0.1.0"
 dependencies = [
  "assert_matches",
  "bitvec",
- "futures 0.3.11",
+ "futures 0.3.12",
  "polkadot-erasure-coding",
  "polkadot-node-primitives",
  "polkadot-node-subsystem",
@@ -5119,7 +5119,7 @@ dependencies = [
 name = "polkadot-node-core-bitfield-signing"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "polkadot-node-subsystem",
  "polkadot-node-subsystem-util",
  "polkadot-primitives",
@@ -5134,7 +5134,7 @@ dependencies = [
 name = "polkadot-node-core-candidate-selection"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "polkadot-node-subsystem",
  "polkadot-node-subsystem-util",
  "polkadot-primitives",
@@ -5150,7 +5150,7 @@ name = "polkadot-node-core-candidate-validation"
 version = "0.1.0"
 dependencies = [
  "assert_matches",
- "futures 0.3.11",
+ "futures 0.3.12",
  "parity-scale-codec",
  "polkadot-node-primitives",
  "polkadot-node-subsystem",
@@ -5168,7 +5168,7 @@ dependencies = [
 name = "polkadot-node-core-chain-api"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "maplit",
  "polkadot-node-subsystem",
  "polkadot-node-subsystem-test-helpers",
@@ -5184,7 +5184,7 @@ dependencies = [
 name = "polkadot-node-core-proposer"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "polkadot-node-subsystem",
  "polkadot-overseer",
@@ -5208,7 +5208,7 @@ name = "polkadot-node-core-provisioner"
 version = "0.1.0"
 dependencies = [
  "bitvec",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "polkadot-node-subsystem",
  "polkadot-node-subsystem-util",
@@ -5224,7 +5224,7 @@ dependencies = [
 name = "polkadot-node-core-runtime-api"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "polkadot-node-subsystem",
  "polkadot-node-subsystem-test-helpers",
  "polkadot-node-subsystem-util",
@@ -5266,7 +5266,7 @@ dependencies = [
 name = "polkadot-node-primitives"
 version = "0.1.0"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "parity-scale-codec",
  "polkadot-primitives",
  "polkadot-statement-table",
@@ -5283,7 +5283,7 @@ dependencies = [
  "async-std",
  "async-trait",
  "derive_more",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "lazy_static",
  "log",
@@ -5311,7 +5311,7 @@ name = "polkadot-node-subsystem-test-helpers"
 version = "0.1.0"
 dependencies = [
  "async-trait",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "parity-scale-codec",
  "parking_lot 0.11.1",
@@ -5336,7 +5336,7 @@ dependencies = [
  "assert_matches",
  "async-trait",
  "env_logger 0.8.2",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "log",
  "metered-channel",
@@ -5365,7 +5365,7 @@ version = "0.1.0"
 dependencies = [
  "async-trait",
  "femme",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "kv-log-macro",
  "oorandom",
@@ -5385,7 +5385,7 @@ name = "polkadot-parachain"
 version = "0.8.27"
 dependencies = [
  "derive_more",
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "parity-scale-codec",
  "parking_lot 0.11.1",
@@ -5408,7 +5408,7 @@ version = "0.1.0"
 dependencies = [
  "assert_matches",
  "env_logger 0.8.2",
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "polkadot-node-network-protocol",
  "polkadot-node-subsystem",
@@ -5609,7 +5609,7 @@ dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
- "futures 0.3.11",
+ "futures 0.3.12",
  "hex-literal",
  "libsecp256k1",
  "log",
@@ -5657,7 +5657,7 @@ dependencies = [
  "env_logger 0.8.2",
  "frame-benchmarking",
  "frame-system-rpc-runtime-api",
- "futures 0.3.11",
+ "futures 0.3.12",
  "hex-literal",
  "kusama-runtime",
  "pallet-babe",
@@ -5737,7 +5737,7 @@ version = "0.1.0"
 dependencies = [
  "arrayvec 0.5.2",
  "assert_matches",
- "futures 0.3.11",
+ "futures 0.3.12",
  "indexmap",
  "polkadot-node-network-protocol",
  "polkadot-node-primitives",
@@ -5854,7 +5854,7 @@ dependencies = [
  "frame-benchmarking",
  "frame-system",
  "futures 0.1.29",
- "futures 0.3.11",
+ "futures 0.3.12",
  "hex",
  "pallet-balances",
  "pallet-staking",
@@ -6661,7 +6661,7 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "pin-project 0.4.23",
  "static_assertions",
 ]
@@ -6707,7 +6707,7 @@ dependencies = [
  "async-trait",
  "derive_more",
  "either",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "libp2p",
  "log",
@@ -6732,7 +6732,7 @@ name = "sc-basic-authorship"
 version = "0.8.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "log",
  "parity-scale-codec",
@@ -6807,7 +6807,7 @@ dependencies = [
  "atty",
  "chrono",
  "fdlimit",
- "futures 0.3.11",
+ "futures 0.3.12",
  "hex",
  "libp2p",
  "log",
@@ -6860,7 +6860,7 @@ source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da
 dependencies = [
  "derive_more",
  "fnv",
- "futures 0.3.11",
+ "futures 0.3.12",
  "hash-db",
  "kvdb",
  "lazy_static",
@@ -6935,7 +6935,7 @@ source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da
 dependencies = [
  "derive_more",
  "fork-tree",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "log",
  "merlin",
@@ -6979,7 +6979,7 @@ version = "0.8.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
  "derive_more",
- "futures 0.3.11",
+ "futures 0.3.12",
  "jsonrpc-core",
  "jsonrpc-core-client",
  "jsonrpc-derive",
@@ -7015,7 +7015,7 @@ name = "sc-consensus-slots"
 version = "0.8.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "log",
  "parity-scale-codec",
@@ -7136,7 +7136,7 @@ dependencies = [
  "derive_more",
  "finality-grandpa",
  "fork-tree",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "log",
  "parity-scale-codec",
@@ -7172,7 +7172,7 @@ source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da
 dependencies = [
  "derive_more",
  "finality-grandpa",
- "futures 0.3.11",
+ "futures 0.3.12",
  "jsonrpc-core",
  "jsonrpc-core-client",
  "jsonrpc-derive",
@@ -7195,7 +7195,7 @@ version = "0.8.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
  "ansi_term 0.12.1",
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "parity-util-mem",
  "sc-client-api",
@@ -7214,7 +7214,7 @@ source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da
 dependencies = [
  "async-trait",
  "derive_more",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-util",
  "hex",
  "merlin",
@@ -7262,7 +7262,7 @@ dependencies = [
  "erased-serde",
  "fnv",
  "fork-tree",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "hex",
  "ip_network",
@@ -7304,7 +7304,7 @@ name = "sc-network-gossip"
 version = "0.8.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "libp2p",
  "log",
@@ -7322,7 +7322,7 @@ source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da
 dependencies = [
  "bytes 0.5.6",
  "fnv",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "hyper 0.13.9",
  "hyper-rustls",
@@ -7347,7 +7347,7 @@ name = "sc-peerset"
 version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "libp2p",
  "log",
  "serde_json",
@@ -7369,7 +7369,7 @@ name = "sc-rpc"
 version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "hash-db",
  "jsonrpc-core",
  "jsonrpc-pubsub",
@@ -7404,7 +7404,7 @@ version = "0.8.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
  "derive_more",
- "futures 0.3.11",
+ "futures 0.3.12",
  "jsonrpc-core",
  "jsonrpc-core-client",
  "jsonrpc-derive",
@@ -7448,7 +7448,7 @@ dependencies = [
  "directories 3.0.1",
  "exit-future",
  "futures 0.1.29",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "hash-db",
  "jsonrpc-core",
@@ -7544,7 +7544,7 @@ name = "sc-telemetry"
 version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "libp2p",
  "log",
@@ -7590,7 +7590,7 @@ version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
  "derive_more",
- "futures 0.3.11",
+ "futures 0.3.12",
  "linked-hash-map",
  "log",
  "parity-util-mem",
@@ -7611,7 +7611,7 @@ name = "sc-transaction-pool"
 version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-diagnose",
  "intervalier",
  "log",
@@ -8065,7 +8065,7 @@ dependencies = [
  "base64 0.12.3",
  "bytes 0.5.6",
  "flate2",
- "futures 0.3.11",
+ "futures 0.3.12",
  "httparse",
  "log",
  "rand 0.7.3",
@@ -8177,7 +8177,7 @@ name = "sp-blockchain"
 version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "lru",
  "parity-scale-codec",
@@ -8204,7 +8204,7 @@ name = "sp-consensus"
 version = "0.8.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "libp2p",
  "log",
@@ -8276,7 +8276,7 @@ dependencies = [
  "byteorder",
  "dyn-clonable",
  "ed25519-dalek",
- "futures 0.3.11",
+ "futures 0.3.12",
  "hash-db",
  "hash256-std-hasher",
  "hex",
@@ -8374,7 +8374,7 @@ name = "sp-io"
 version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "hash-db",
  "libsecp256k1",
  "log",
@@ -8411,7 +8411,7 @@ source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da
 dependencies = [
  "async-trait",
  "derive_more",
- "futures 0.3.11",
+ "futures 0.3.12",
  "merlin",
  "parity-scale-codec",
  "parking_lot 0.11.1",
@@ -8639,7 +8639,7 @@ version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
  "derive_more",
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "parity-scale-codec",
  "serde",
@@ -8668,7 +8668,7 @@ name = "sp-utils"
 version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-core",
  "futures-timer 3.0.2",
  "lazy_static",
@@ -8849,7 +8849,7 @@ dependencies = [
  "console_error_panic_hook",
  "console_log",
  "futures 0.1.29",
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "getrandom 0.2.1",
  "js-sys",
@@ -8880,7 +8880,7 @@ version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
  "frame-system-rpc-runtime-api",
- "futures 0.3.11",
+ "futures 0.3.12",
  "jsonrpc-core",
  "jsonrpc-core-client",
  "jsonrpc-derive",
@@ -8917,7 +8917,7 @@ version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
  "futures 0.1.29",
- "futures 0.3.11",
+ "futures 0.3.12",
  "hash-db",
  "hex",
  "parity-scale-codec",
@@ -8943,7 +8943,7 @@ name = "substrate-test-utils"
 version = "2.0.1"
 source = "git+https://github.com/paritytech/substrate#7a79f54a5d92cecba1d9c1e4da71df1e8a6ed91b"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "substrate-test-utils-derive",
  "tokio 0.2.21",
 ]
@@ -9072,7 +9072,7 @@ dependencies = [
 name = "test-parachain-adder-collator"
 version = "0.7.26"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "futures-timer 3.0.2",
  "log",
  "parity-scale-codec",
@@ -9962,7 +9962,7 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "js-sys",
  "parking_lot 0.11.1",
  "pin-utils",
@@ -10430,7 +10430,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c"
 dependencies = [
- "futures 0.3.11",
+ "futures 0.3.12",
  "log",
  "nohash-hasher",
  "parking_lot 0.11.1",
diff --git a/polkadot/Cargo.toml b/polkadot/Cargo.toml
index 415b42736f6d673377b1ccc0d64859d3f1362fda..08c0d48598047f85ed1500cc818bfb39bd43d94f 100644
--- a/polkadot/Cargo.toml
+++ b/polkadot/Cargo.toml
@@ -15,7 +15,7 @@ readme = "README.md"
 cli = { package = "polkadot-cli", path = "cli" }
 color-eyre = "0.5.10"
 thiserror = "1.0.23"
-futures = "0.3.11"
+futures = "0.3.12"
 service = { package = "polkadot-service", path = "node/service" }
 parity-util-mem = { version = "*", default-features = false, features = ["jemalloc-global"] }
 
diff --git a/polkadot/cli/Cargo.toml b/polkadot/cli/Cargo.toml
index 50d9a871da611dacee7f045a743f12c218e71473..3246ff51a166ede5ba328d52f2c6838e8f7d0124 100644
--- a/polkadot/cli/Cargo.toml
+++ b/polkadot/cli/Cargo.toml
@@ -19,7 +19,7 @@ thiserror = "1.0.23"
 structopt = { version = "0.3.21", optional = true }
 wasm-bindgen = { version = "0.2.69", optional = true }
 wasm-bindgen-futures = { version = "0.4.19", optional = true }
-futures = "0.3.11"
+futures = "0.3.12"
 
 service = { package = "polkadot-service", path = "../node/service", default-features = false, optional = true }
 polkadot-parachain = { path = "../parachain", optional = true }
diff --git a/polkadot/node/collation-generation/Cargo.toml b/polkadot/node/collation-generation/Cargo.toml
index 6b88e81615d9d8edbb739b0716ff3567fc26ab6b..1a009b7a13336507d6c7aceeef4f75d7b66b7628 100644
--- a/polkadot/node/collation-generation/Cargo.toml
+++ b/polkadot/node/collation-generation/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 polkadot-erasure-coding = { path = "../../erasure-coding" }
diff --git a/polkadot/node/core/av-store/Cargo.toml b/polkadot/node/core/av-store/Cargo.toml
index e22000bb91a1666fce151853bc942e52368118ea..afdb9fe3a3146db2f75776c8a797642a041735e4 100644
--- a/polkadot/node/core/av-store/Cargo.toml
+++ b/polkadot/node/core/av-store/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 futures-timer = "3.0.2"
 kvdb = "0.8.0"
 kvdb-rocksdb = "0.10.0"
diff --git a/polkadot/node/core/backing/Cargo.toml b/polkadot/node/core/backing/Cargo.toml
index fcf4e9b6c4cb01fe3e4279e1ae04aca2a07f37b3..cfc9cc973fa03953bbcadf4b042aecc0f915ee36 100644
--- a/polkadot/node/core/backing/Cargo.toml
+++ b/polkadot/node/core/backing/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" }
 polkadot-primitives = { path = "../../../primitives" }
 polkadot-node-primitives = { path = "../../primitives" }
@@ -23,6 +23,6 @@ sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" }
-futures = { version = "0.3.11", features = ["thread-pool"] }
+futures = { version = "0.3.12", features = ["thread-pool"] }
 assert_matches = "1.4.0"
 polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" }
diff --git a/polkadot/node/core/bitfield-signing/Cargo.toml b/polkadot/node/core/bitfield-signing/Cargo.toml
index f3ccbfae2e8b0a6939074eea5a0eab34770bc3d6..813c3a123a30b0aee5b1c070ede30a2588ec442a 100644
--- a/polkadot/node/core/bitfield-signing/Cargo.toml
+++ b/polkadot/node/core/bitfield-signing/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 polkadot-primitives = { path = "../../../primitives" }
diff --git a/polkadot/node/core/candidate-selection/Cargo.toml b/polkadot/node/core/candidate-selection/Cargo.toml
index c918575401136a44d5abd879a477cd7eb7f800bb..c85a0cef3caf2d52c327bdfed018ee6a2c6543f1 100644
--- a/polkadot/node/core/candidate-selection/Cargo.toml
+++ b/polkadot/node/core/candidate-selection/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 thiserror = "1.0.23"
diff --git a/polkadot/node/core/candidate-validation/Cargo.toml b/polkadot/node/core/candidate-validation/Cargo.toml
index df365157c13116278c50edfa2cd4968ceefb8186..ae90ad9eb2922d6be6331b9726c3125f9fa11d20 100644
--- a/polkadot/node/core/candidate-validation/Cargo.toml
+++ b/polkadot/node/core/candidate-validation/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 
@@ -20,6 +20,6 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" }
 
 [dev-dependencies]
 sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" }
-futures = { version = "0.3.11", features = ["thread-pool"] }
+futures = { version = "0.3.12", features = ["thread-pool"] }
 assert_matches = "1.4.0"
 polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" }
diff --git a/polkadot/node/core/chain-api/Cargo.toml b/polkadot/node/core/chain-api/Cargo.toml
index 162825b250e6624cc0b4dc76d3ac999a7404ada7..cc00e064c5b6a019ca73f4b28140d25ee2350a2d 100644
--- a/polkadot/node/core/chain-api/Cargo.toml
+++ b/polkadot/node/core/chain-api/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" }
@@ -14,7 +14,7 @@ polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsys
 polkadot-node-subsystem-util = { path = "../../subsystem-util" }
 
 [dev-dependencies]
-futures = { version = "0.3.11", features = ["thread-pool"] }
+futures = { version = "0.3.12", features = ["thread-pool"] }
 maplit = "1.0.2"
 polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" }
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
diff --git a/polkadot/node/core/proposer/Cargo.toml b/polkadot/node/core/proposer/Cargo.toml
index 075fd73eddf3bacf48cb212952672645b2cbbf2d..555cd947ae20ea28ab998b3dd250412c75a8ea31 100644
--- a/polkadot/node/core/proposer/Cargo.toml
+++ b/polkadot/node/core/proposer/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 futures-timer = "3.0.2"
 tracing = "0.1.22"
 polkadot-node-subsystem = { path = "../../subsystem" }
diff --git a/polkadot/node/core/provisioner/Cargo.toml b/polkadot/node/core/provisioner/Cargo.toml
index fd3d7caa79d1c743a617ff43a94b4fc5ed56ca0c..92c98d6375c1db2b27e8aec052b81558be3893a2 100644
--- a/polkadot/node/core/provisioner/Cargo.toml
+++ b/polkadot/node/core/provisioner/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2018"
 
 [dependencies]
 bitvec = { version = "0.17.4", default-features = false, features = ["alloc"] }
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 thiserror = "1.0.23"
diff --git a/polkadot/node/core/runtime-api/Cargo.toml b/polkadot/node/core/runtime-api/Cargo.toml
index 7855c38f7ea61d7fd672b4441be54151e4804f57..a7602a5a9ed1f4b45d6813d145b2a6d20c90dbcb 100644
--- a/polkadot/node/core/runtime-api/Cargo.toml
+++ b/polkadot/node/core/runtime-api/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" }
@@ -17,5 +17,5 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" }
 
 [dev-dependencies]
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
-futures = { version = "0.3.11", features = ["thread-pool"] }
+futures = { version = "0.3.12", features = ["thread-pool"] }
 polkadot-node-subsystem-test-helpers = { path = "../../subsystem-test-helpers" }
diff --git a/polkadot/node/metered-channel/Cargo.toml b/polkadot/node/metered-channel/Cargo.toml
index 1b738e313b272ec7f3708c6e17330a815e54c35c..5f654479b096fc3b20e30f4a157cf06b1414b166 100644
--- a/polkadot/node/metered-channel/Cargo.toml
+++ b/polkadot/node/metered-channel/Cargo.toml
@@ -6,9 +6,9 @@ edition = "2018"
 description = "Channels with attached Meters"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 futures-timer = "3.0.2"
 
 [dev-dependencies]
 assert_matches = "1.4.0"
-futures = { version = "0.3.11", features = ["thread-pool"] }
+futures = { version = "0.3.12", features = ["thread-pool"] }
diff --git a/polkadot/node/network/availability-distribution/Cargo.toml b/polkadot/node/network/availability-distribution/Cargo.toml
index 55ae1516891359a6a07517e9c4e95263629a0d96..43d3f379b15a00f41e84680f27c2a4d36dc66a8c 100644
--- a/polkadot/node/network/availability-distribution/Cargo.toml
+++ b/polkadot/node/network/availability-distribution/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 parity-scale-codec = { version = "1.3.6", features = ["std"]  }
diff --git a/polkadot/node/network/availability-recovery/Cargo.toml b/polkadot/node/network/availability-recovery/Cargo.toml
index 2d1e0ad9e6c110562016d7d81eb307c23c69e768..8646dc8063a79f5c1d3a94c6973a9072d3835ea7 100644
--- a/polkadot/node/network/availability-recovery/Cargo.toml
+++ b/polkadot/node/network/availability-recovery/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 lru = "0.6.1"
 rand = "0.7.3"
 thiserror = "1.0.21"
diff --git a/polkadot/node/network/bitfield-distribution/Cargo.toml b/polkadot/node/network/bitfield-distribution/Cargo.toml
index 4304f814ace1e2f2ecf829a9d30cdd539cb38855..e8cda72885a5814314181583f5732266be7b6c29 100644
--- a/polkadot/node/network/bitfield-distribution/Cargo.toml
+++ b/polkadot/node/network/bitfield-distribution/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 parity-scale-codec = { version = "1.3.6", default-features = false, features = ["derive"] }
diff --git a/polkadot/node/network/bridge/Cargo.toml b/polkadot/node/network/bridge/Cargo.toml
index b797e8f60c9453a86a57ed39bbcc146b6c1afeea..1cc0b407c178296ccb4be29c2628b94843584ce3 100644
--- a/polkadot/node/network/bridge/Cargo.toml
+++ b/polkadot/node/network/bridge/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2018"
 
 [dependencies]
 async-trait = "0.1.42"
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 polkadot-primitives = { path = "../../../primitives" }
diff --git a/polkadot/node/network/collator-protocol/Cargo.toml b/polkadot/node/network/collator-protocol/Cargo.toml
index e24ba0054451dc164fc0e471c3b85b4a72569bf9..f392924e96a775d56a85f765fc56e466913c0d2b 100644
--- a/polkadot/node/network/collator-protocol/Cargo.toml
+++ b/polkadot/node/network/collator-protocol/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 thiserror = "1.0.23"
diff --git a/polkadot/node/network/pov-distribution/Cargo.toml b/polkadot/node/network/pov-distribution/Cargo.toml
index 18d8459be217e615411a1a43cda1999b52102d95..33692a1411aab7fbdf9c9e3f498dbadcfc7dc4bb 100644
--- a/polkadot/node/network/pov-distribution/Cargo.toml
+++ b/polkadot/node/network/pov-distribution/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 thiserror = "1.0.23"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
diff --git a/polkadot/node/network/statement-distribution/Cargo.toml b/polkadot/node/network/statement-distribution/Cargo.toml
index 622c63559f59dc49a03c10e42b88142e0734ecf6..53343ace4e3d245d2733bb113af8c7cdef48cae5 100644
--- a/polkadot/node/network/statement-distribution/Cargo.toml
+++ b/polkadot/node/network/statement-distribution/Cargo.toml
@@ -6,7 +6,7 @@ description = "Statement Distribution Subsystem"
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
 polkadot-primitives = { path = "../../../primitives" }
diff --git a/polkadot/node/overseer/Cargo.toml b/polkadot/node/overseer/Cargo.toml
index 2457b7f97ad6d10f63dde55506c115aed6e8f74d..07b5c87dad25143b8d8b78c2fc253e1bfb89f0c7 100644
--- a/polkadot/node/overseer/Cargo.toml
+++ b/polkadot/node/overseer/Cargo.toml
@@ -7,7 +7,7 @@ edition = "2018"
 [dependencies]
 async-trait = "0.1.42"
 client = { package = "sc-client-api", git = "https://github.com/paritytech/substrate", branch = "master" }
-futures = "0.3.11"
+futures = "0.3.12"
 futures-timer = "3.0.2"
 oorandom = "11.1.3"
 polkadot-node-primitives = { package = "polkadot-node-primitives", path = "../primitives" }
@@ -20,7 +20,7 @@ tracing-futures = "0.2.4"
 [dev-dependencies]
 sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
 polkadot-node-network-protocol = { path = "../network/protocol" }
-futures = { version = "0.3.11", features = ["thread-pool"] }
+futures = { version = "0.3.12", features = ["thread-pool"] }
 futures-timer = "3.0.2"
 femme = "2.1.1"
 kv-log-macro = "1.0.7"
diff --git a/polkadot/node/primitives/Cargo.toml b/polkadot/node/primitives/Cargo.toml
index b12efa431175398627eda8f2c56cdbaff53193a9..ecc6f0acebbe12097fd2f269f58ec75780a2f6d8 100644
--- a/polkadot/node/primitives/Cargo.toml
+++ b/polkadot/node/primitives/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2018"
 description = "Primitives types for the Node-side"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 polkadot-primitives = { path = "../../primitives" }
 polkadot-statement-table = { path = "../../statement-table" }
 parity-scale-codec = { version = "1.3.6", default-features = false, features = ["derive"] }
diff --git a/polkadot/node/service/Cargo.toml b/polkadot/node/service/Cargo.toml
index 61a7293fd51af62a92e45cb9102474381e3753ac..de16ea17cf8787715f79eb3404ef6e4ce69cf2c8 100644
--- a/polkadot/node/service/Cargo.toml
+++ b/polkadot/node/service/Cargo.toml
@@ -53,7 +53,7 @@ frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate"
 prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/substrate", branch = "master" }
 
 # External Crates
-futures = "0.3.11"
+futures = "0.3.12"
 hex-literal = "0.3.1"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
diff --git a/polkadot/node/subsystem-test-helpers/Cargo.toml b/polkadot/node/subsystem-test-helpers/Cargo.toml
index ce5f9c2b4a7eeedbf2508ee4c636568067573256..ae0149f8634860caf820629be017e47f99b49685 100644
--- a/polkadot/node/subsystem-test-helpers/Cargo.toml
+++ b/polkadot/node/subsystem-test-helpers/Cargo.toml
@@ -7,7 +7,7 @@ description = "Subsystem traits and message definitions"
 
 [dependencies]
 async-trait = "0.1.42"
-futures = "0.3.11"
+futures = "0.3.12"
 futures-timer = "3.0.2"
 tracing = "0.1.22"
 tracing-futures = "0.2.4"
diff --git a/polkadot/node/subsystem-util/Cargo.toml b/polkadot/node/subsystem-util/Cargo.toml
index 15c2386ef303ad1dbb593a03dd92ce896dacdb65..424f0b20b690d841e872d383630e50fb900c84bf 100644
--- a/polkadot/node/subsystem-util/Cargo.toml
+++ b/polkadot/node/subsystem-util/Cargo.toml
@@ -7,7 +7,7 @@ description = "Subsystem traits and message definitions"
 
 [dependencies]
 async-trait = "0.1.42"
-futures = "0.3.11"
+futures = "0.3.12"
 futures-timer = "3.0.2"
 parity-scale-codec = { version = "1.3.6", default-features = false, features = ["derive"] }
 parking_lot = { version = "0.11.1", optional = true }
@@ -33,7 +33,7 @@ substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate
 assert_matches = "1.4.0"
 async-trait = "0.1.42"
 env_logger = "0.8.2"
-futures = { version = "0.3.11", features = ["thread-pool"] }
+futures = { version = "0.3.12", features = ["thread-pool"] }
 log = "0.4.13"
 parking_lot = "0.11.1"
 polkadot-node-subsystem-test-helpers = { path = "../subsystem-test-helpers" }
diff --git a/polkadot/node/subsystem/Cargo.toml b/polkadot/node/subsystem/Cargo.toml
index d24636344ac102b791d50ceb4175dd77f5374e1e..fc211f5b7af64fef672c7776f2f33f5d24dea093 100644
--- a/polkadot/node/subsystem/Cargo.toml
+++ b/polkadot/node/subsystem/Cargo.toml
@@ -9,7 +9,7 @@ description = "Subsystem traits and message definitions"
 async-std = "1.8.0"
 async-trait = "0.1.42"
 derive_more = "0.99.11"
-futures = "0.3.11"
+futures = "0.3.12"
 futures-timer = "3.0.2"
 mick-jaeger = "0.1.2"
 lazy_static = "1.4"
@@ -33,5 +33,5 @@ log = "0.4.13"
 [dev-dependencies]
 assert_matches = "1.4.0"
 async-trait = "0.1.42"
-futures = { version = "0.3.11", features = ["thread-pool"] }
+futures = { version = "0.3.12", features = ["thread-pool"] }
 polkadot-node-subsystem-test-helpers = { path = "../subsystem-test-helpers" }
diff --git a/polkadot/node/test/service/Cargo.toml b/polkadot/node/test/service/Cargo.toml
index b6532196cd932a687ff57fe033d79b4b2e0510e3..141121f483ecbc188555954d5ef46cd48c39b690 100644
--- a/polkadot/node/test/service/Cargo.toml
+++ b/polkadot/node/test/service/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 
 [dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 futures01 = { package = "futures", version = "0.1.29" }
 hex = "0.4.2"
 tracing = "0.1.22"
diff --git a/polkadot/parachain/test-parachains/adder/collator/Cargo.toml b/polkadot/parachain/test-parachains/adder/collator/Cargo.toml
index 127b26a86909304360fc07cd51ca9a3ab0669599..26b2551ad2770b05182f3fa3a9817350860b4898 100644
--- a/polkadot/parachain/test-parachains/adder/collator/Cargo.toml
+++ b/polkadot/parachain/test-parachains/adder/collator/Cargo.toml
@@ -11,7 +11,7 @@ path = "src/main.rs"
 
 [dependencies]
 parity-scale-codec = { version = "1.3.6", default-features = false, features = ["derive"] }
-futures = "0.3.11"
+futures = "0.3.12"
 futures-timer = "3.0.2"
 log = "0.4.13"
 structopt = "0.3.21"
diff --git a/polkadot/runtime/parachains/Cargo.toml b/polkadot/runtime/parachains/Cargo.toml
index f7bbec01116d931601866bc266f9cd626c606eb4..e6f901c61ca36f95610a19b9342b003f4ffc0b52 100644
--- a/polkadot/runtime/parachains/Cargo.toml
+++ b/polkadot/runtime/parachains/Cargo.toml
@@ -43,7 +43,7 @@ rand = { version = "0.8.2", default-features = false }
 rand_chacha = { version = "0.3.0", default-features = false }
 
 [dev-dependencies]
-futures = "0.3.11"
+futures = "0.3.12"
 hex-literal = "0.3.1"
 keyring = { package = "sp-keyring", git = "https://github.com/paritytech/substrate", branch = "master" }
 sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" }