From c7e729e07b354cfc7ad22819a0257a0afd3cf1ce Mon Sep 17 00:00:00 2001
From: Ashley <ashley.ruglys@gmail.com>
Date: Thu, 15 Oct 2020 12:28:00 +0200
Subject: [PATCH] Companion PR for 'Add missing fields to the light sync state
 #7225' (#1801)

* Add sync_state_items

* Add SyncStateRpc

* "Update Substrate"

Co-authored-by: parity-processbot <>
---
 polkadot/Cargo.lock              | 302 +++++++++++++++++--------------
 polkadot/cli/src/cli.rs          |   3 -
 polkadot/cli/src/command.rs      |  38 ----
 polkadot/node/service/src/lib.rs |   2 +
 polkadot/rpc/Cargo.toml          |   2 +
 polkadot/rpc/src/lib.rs          |  25 ++-
 6 files changed, 188 insertions(+), 184 deletions(-)

diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index 385e3312d28..a319ae81667 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -1429,7 +1429,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 [[package]]
 name = "fork-tree"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -1437,7 +1437,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1455,7 +1455,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "chrono",
  "frame-benchmarking",
@@ -1475,7 +1475,7 @@ dependencies = [
 [[package]]
 name = "frame-executive"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -1491,7 +1491,7 @@ dependencies = [
 [[package]]
 name = "frame-metadata"
 version = "12.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -1502,7 +1502,7 @@ dependencies = [
 [[package]]
 name = "frame-support"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "bitmask",
  "frame-metadata",
@@ -1527,7 +1527,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support-procedural-tools",
  "proc-macro2 1.0.18",
@@ -1538,7 +1538,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate",
@@ -1550,7 +1550,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "proc-macro2 1.0.18",
  "quote 1.0.7",
@@ -1560,7 +1560,7 @@ dependencies = [
 [[package]]
 name = "frame-system"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "impl-trait-for-tuples",
@@ -1576,7 +1576,7 @@ dependencies = [
 [[package]]
 name = "frame-system-benchmarking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -1590,7 +1590,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -3758,7 +3758,7 @@ dependencies = [
 [[package]]
 name = "pallet-authority-discovery"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3774,7 +3774,7 @@ dependencies = [
 [[package]]
 name = "pallet-authorship"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3789,7 +3789,7 @@ dependencies = [
 [[package]]
 name = "pallet-babe"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3814,7 +3814,7 @@ dependencies = [
 [[package]]
 name = "pallet-balances"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3828,7 +3828,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3844,7 +3844,7 @@ dependencies = [
 [[package]]
 name = "pallet-democracy"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3859,7 +3859,7 @@ dependencies = [
 [[package]]
 name = "pallet-elections-phragmen"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3874,7 +3874,7 @@ dependencies = [
 [[package]]
 name = "pallet-finality-tracker"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3890,7 +3890,7 @@ dependencies = [
 [[package]]
 name = "pallet-grandpa"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3912,7 +3912,7 @@ dependencies = [
 [[package]]
 name = "pallet-identity"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -3928,7 +3928,7 @@ dependencies = [
 [[package]]
 name = "pallet-im-online"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3948,7 +3948,7 @@ dependencies = [
 [[package]]
 name = "pallet-indices"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3965,7 +3965,7 @@ dependencies = [
 [[package]]
 name = "pallet-membership"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -3979,7 +3979,7 @@ dependencies = [
 [[package]]
 name = "pallet-multisig"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -3995,7 +3995,7 @@ dependencies = [
 [[package]]
 name = "pallet-nicks"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4009,7 +4009,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4024,7 +4024,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences-benchmarking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4045,7 +4045,7 @@ dependencies = [
 [[package]]
 name = "pallet-proxy"
 version = "2.0.1"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4061,7 +4061,7 @@ dependencies = [
 [[package]]
 name = "pallet-randomness-collective-flip"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4074,7 +4074,7 @@ dependencies = [
 [[package]]
 name = "pallet-recovery"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "enumflags2",
  "frame-support",
@@ -4089,7 +4089,7 @@ dependencies = [
 [[package]]
 name = "pallet-scheduler"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4104,7 +4104,7 @@ dependencies = [
 [[package]]
 name = "pallet-session"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4124,7 +4124,7 @@ dependencies = [
 [[package]]
 name = "pallet-session-benchmarking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4140,7 +4140,7 @@ dependencies = [
 [[package]]
 name = "pallet-society"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4154,7 +4154,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4176,7 +4176,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-curve"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -4187,7 +4187,7 @@ dependencies = [
 [[package]]
 name = "pallet-sudo"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4201,7 +4201,7 @@ dependencies = [
 [[package]]
 name = "pallet-timestamp"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4219,7 +4219,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -4236,7 +4236,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "jsonrpc-core",
  "jsonrpc-core-client",
@@ -4254,7 +4254,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -4267,7 +4267,7 @@ dependencies = [
 [[package]]
 name = "pallet-treasury"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4282,7 +4282,7 @@ dependencies = [
 [[package]]
 name = "pallet-utility"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -4298,7 +4298,7 @@ dependencies = [
 [[package]]
 name = "pallet-vesting"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -5204,6 +5204,7 @@ dependencies = [
  "pallet-transaction-payment-rpc",
  "parity-scale-codec",
  "polkadot-primitives",
+ "sc-chain-spec",
  "sc-client-api",
  "sc-consensus-babe",
  "sc-consensus-babe-rpc",
@@ -5212,6 +5213,7 @@ dependencies = [
  "sc-finality-grandpa-rpc",
  "sc-keystore",
  "sc-rpc",
+ "sc-sync-state-rpc",
  "sp-api",
  "sp-block-builder",
  "sp-blockchain",
@@ -6462,7 +6464,7 @@ dependencies = [
 [[package]]
 name = "sc-authority-discovery"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "bytes 0.5.6",
  "derive_more 0.99.11",
@@ -6491,7 +6493,7 @@ dependencies = [
 [[package]]
 name = "sc-basic-authorship"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -6515,7 +6517,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -6532,16 +6534,20 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
  "sc-chain-spec-derive",
+ "sc-consensus-babe",
+ "sc-consensus-epochs",
+ "sc-finality-grandpa",
  "sc-network",
  "sc-telemetry",
  "serde",
  "serde_json",
  "sp-chain-spec",
+ "sp-consensus-babe",
  "sp-core",
  "sp-runtime",
 ]
@@ -6549,7 +6555,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -6560,7 +6566,7 @@ dependencies = [
 [[package]]
 name = "sc-cli"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "ansi_term 0.12.1",
  "atty",
@@ -6581,6 +6587,9 @@ dependencies = [
  "regex",
  "rpassword",
  "sc-client-api",
+ "sc-consensus-babe",
+ "sc-consensus-epochs",
+ "sc-finality-grandpa",
  "sc-informant",
  "sc-keystore",
  "sc-network",
@@ -6610,7 +6619,7 @@ dependencies = [
 [[package]]
 name = "sc-client-api"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "fnv",
@@ -6647,7 +6656,7 @@ dependencies = [
 [[package]]
 name = "sc-client-db"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "blake2-rfc",
  "hash-db",
@@ -6677,7 +6686,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "sc-client-api",
  "sp-blockchain",
@@ -6688,7 +6697,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "fork-tree",
@@ -6733,7 +6742,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -6757,7 +6766,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -6770,7 +6779,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-slots"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -6793,7 +6802,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-uncles"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "log 0.4.11",
  "sc-client-api",
@@ -6807,7 +6816,7 @@ dependencies = [
 [[package]]
 name = "sc-executor"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "lazy_static",
@@ -6835,7 +6844,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "log 0.4.11",
@@ -6852,7 +6861,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmi"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "log 0.4.11",
  "parity-scale-codec",
@@ -6867,7 +6876,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "log 0.4.11",
  "parity-scale-codec",
@@ -6885,7 +6894,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "finality-grandpa",
@@ -6923,7 +6932,7 @@ dependencies = [
 [[package]]
 name = "sc-finality-grandpa-rpc"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "finality-grandpa",
@@ -6947,7 +6956,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "ansi_term 0.12.1",
  "futures 0.3.5",
@@ -6965,7 +6974,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -6985,7 +6994,7 @@ dependencies = [
 [[package]]
 name = "sc-light"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "hash-db",
  "lazy_static",
@@ -7004,7 +7013,7 @@ dependencies = [
 [[package]]
 name = "sc-network"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "async-std",
  "async-trait",
@@ -7058,7 +7067,7 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -7073,7 +7082,7 @@ dependencies = [
 [[package]]
 name = "sc-offchain"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "bytes 0.5.6",
  "fnv",
@@ -7100,7 +7109,7 @@ dependencies = [
 [[package]]
 name = "sc-peerset"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "libp2p",
@@ -7113,7 +7122,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "log 0.4.11",
  "substrate-prometheus-endpoint",
@@ -7122,7 +7131,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -7155,7 +7164,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -7179,7 +7188,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-server"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.1.29",
  "jsonrpc-core",
@@ -7197,7 +7206,7 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "directories",
@@ -7260,7 +7269,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "log 0.4.11",
  "parity-scale-codec",
@@ -7271,10 +7280,29 @@ dependencies = [
  "sp-core",
 ]
 
+[[package]]
+name = "sc-sync-state-rpc"
+version = "0.8.0"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
+dependencies = [
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "sc-chain-spec",
+ "sc-client-api",
+ "sc-consensus-babe",
+ "sc-consensus-epochs",
+ "sc-finality-grandpa",
+ "sc-rpc-api",
+ "serde_json",
+ "sp-blockchain",
+ "sp-runtime",
+]
+
 [[package]]
 name = "sc-telemetry"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "futures-timer 3.0.2",
@@ -7295,7 +7323,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "erased-serde",
  "log 0.4.11",
@@ -7314,7 +7342,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-graph"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -7335,7 +7363,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -7521,9 +7549,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.56"
+version = "1.0.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3"
+checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95"
 dependencies = [
  "itoa",
  "ryu",
@@ -7802,7 +7830,7 @@ dependencies = [
 [[package]]
 name = "sp-allocator"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "log 0.4.11",
@@ -7814,7 +7842,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "hash-db",
  "parity-scale-codec",
@@ -7829,7 +7857,7 @@ dependencies = [
 [[package]]
 name = "sp-api-proc-macro"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "blake2-rfc",
  "proc-macro-crate",
@@ -7841,7 +7869,7 @@ dependencies = [
 [[package]]
 name = "sp-application-crypto"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -7853,7 +7881,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "integer-sqrt",
  "num-traits 0.2.12",
@@ -7866,7 +7894,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -7878,7 +7906,7 @@ dependencies = [
 [[package]]
 name = "sp-authorship"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -7889,7 +7917,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -7901,7 +7929,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "log 0.4.11",
@@ -7918,7 +7946,7 @@ dependencies = [
 [[package]]
 name = "sp-chain-spec"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "serde",
  "serde_json",
@@ -7927,7 +7955,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -7953,7 +7981,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "merlin",
  "parity-scale-codec",
@@ -7973,7 +8001,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-slots"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -7982,7 +8010,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-vrf"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "schnorrkel",
@@ -7994,7 +8022,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "base58",
  "blake2-rfc",
@@ -8037,7 +8065,7 @@ dependencies = [
 [[package]]
 name = "sp-database"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "kvdb",
  "parking_lot 0.10.2",
@@ -8046,7 +8074,7 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "proc-macro2 1.0.18",
  "quote 1.0.7",
@@ -8056,7 +8084,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -8067,7 +8095,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-grandpa"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "finality-grandpa",
  "log 0.4.11",
@@ -8084,7 +8112,7 @@ dependencies = [
 [[package]]
 name = "sp-finality-tracker"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sp-inherents",
@@ -8094,7 +8122,7 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "parity-scale-codec",
@@ -8106,7 +8134,7 @@ dependencies = [
 [[package]]
 name = "sp-io"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "hash-db",
@@ -8130,7 +8158,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -8141,7 +8169,7 @@ dependencies = [
 [[package]]
 name = "sp-keystore"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "async-trait",
  "derive_more 0.99.11",
@@ -8157,7 +8185,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "serde",
@@ -8169,7 +8197,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections-compact"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2 1.0.18",
@@ -8180,7 +8208,7 @@ dependencies = [
 [[package]]
 name = "sp-offchain"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -8190,7 +8218,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "backtrace",
  "log 0.4.11",
@@ -8199,7 +8227,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "serde",
  "sp-core",
@@ -8208,7 +8236,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "either",
  "hash256-std-hasher",
@@ -8230,7 +8258,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "primitive-types",
@@ -8246,7 +8274,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "Inflector",
  "proc-macro-crate",
@@ -8258,7 +8286,7 @@ dependencies = [
 [[package]]
 name = "sp-serializer"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "serde",
  "serde_json",
@@ -8267,7 +8295,7 @@ dependencies = [
 [[package]]
 name = "sp-session"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -8280,7 +8308,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "parity-scale-codec",
  "sp-runtime",
@@ -8290,7 +8318,7 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "hash-db",
  "log 0.4.11",
@@ -8311,12 +8339,12 @@ dependencies = [
 [[package]]
 name = "sp-std"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 
 [[package]]
 name = "sp-storage"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -8329,7 +8357,7 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -8343,7 +8371,7 @@ dependencies = [
 [[package]]
 name = "sp-tracing"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "log 0.4.11",
  "parity-scale-codec",
@@ -8356,7 +8384,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "derive_more 0.99.11",
  "futures 0.3.5",
@@ -8371,7 +8399,7 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "hash-db",
  "memory-db",
@@ -8385,7 +8413,7 @@ dependencies = [
 [[package]]
 name = "sp-utils"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "futures-core",
@@ -8397,7 +8425,7 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -8409,7 +8437,7 @@ dependencies = [
 [[package]]
 name = "sp-wasm-interface"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "impl-trait-for-tuples",
  "parity-scale-codec",
@@ -8550,7 +8578,7 @@ dependencies = [
 [[package]]
 name = "substrate-browser-utils"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "chrono",
  "console_error_panic_hook",
@@ -8576,7 +8604,7 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "platforms",
 ]
@@ -8584,7 +8612,7 @@ dependencies = [
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "frame-system-rpc-runtime-api",
  "futures 0.3.5",
@@ -8607,7 +8635,7 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "async-std",
  "derive_more 0.99.11",
@@ -8621,7 +8649,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-client"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.1.29",
  "futures 0.3.5",
@@ -8648,7 +8676,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils"
 version = "2.0.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "futures 0.3.5",
  "substrate-test-utils-derive",
@@ -8658,7 +8686,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils-derive"
 version = "0.8.0"
-source = "git+https://github.com/paritytech/substrate#4db36684b28d583ddaea2cd402db739e17c711eb"
+source = "git+https://github.com/paritytech/substrate#65cc9af9b8df8d36928f6144ee7474cefbd70454"
 dependencies = [
  "proc-macro-crate",
  "quote 1.0.7",
diff --git a/polkadot/cli/src/cli.rs b/polkadot/cli/src/cli.rs
index c837d2b416e..9768f57e1ea 100644
--- a/polkadot/cli/src/cli.rs
+++ b/polkadot/cli/src/cli.rs
@@ -24,9 +24,6 @@ pub enum Subcommand {
 	/// Build a chain specification.
 	BuildSpec(sc_cli::BuildSpecCmd),
 
-	/// Build a chain specification with a light client sync state.
-	BuildSyncSpec(sc_cli::BuildSyncSpecCmd),
-
 	/// Validate blocks.
 	CheckBlock(sc_cli::CheckBlockCmd),
 
diff --git a/polkadot/cli/src/command.rs b/polkadot/cli/src/command.rs
index 5e8579e0810..82f7f8ebf73 100644
--- a/polkadot/cli/src/command.rs
+++ b/polkadot/cli/src/command.rs
@@ -18,7 +18,6 @@ use log::info;
 use service::{IdentifyVariant, self};
 use sc_cli::{SubstrateCli, Result, RuntimeVersion, Role};
 use crate::cli::{Cli, Subcommand};
-use std::sync::Arc;
 
 fn get_exec_name() -> Option<String> {
 	std::env::current_exe()
@@ -158,43 +157,6 @@ pub fn run() -> Result<()> {
 			let runner = cli.create_runner(cmd)?;
 			runner.sync_run(|config| cmd.run(config.chain_spec, config.network))
 		},
-		Some(Subcommand::BuildSyncSpec(cmd)) => {
-			let runner = cli.create_runner(cmd)?;
-			let chain_spec = &runner.config().chain_spec;
-
-			set_default_ss58_version(chain_spec);
-
-			let authority_discovery_disabled = cli.run.authority_discovery_disabled;
-			let grandpa_pause = if cli.run.grandpa_pause.is_empty() {
-				None
-			} else {
-				Some((cli.run.grandpa_pause[0], cli.run.grandpa_pause[1]))
-			};
-
-			if chain_spec.is_kusama() {
-				info!("----------------------------");
-				info!("This chain is not in any way");
-				info!("      endorsed by the       ");
-				info!("     KUSAMA FOUNDATION      ");
-				info!("----------------------------");
-			}
-
-			runner.async_run(|config| {
-				let chain_spec = config.chain_spec.cloned_box();
-				let network_config = config.network.clone();
-				let service::NewFull {
-					task_manager,
-					client,
-					network_status_sinks,
-					..
-				} = service::build_full(
-					config, authority_discovery_disabled, grandpa_pause,
-				)?;
-				let client = Arc::new(client);
-
-				Ok((cmd.run(chain_spec, network_config, client, network_status_sinks), task_manager))
-			})
-		},
 		Some(Subcommand::CheckBlock(cmd)) => {
 			let runner = cli.create_runner(cmd)?;
 			let chain_spec = &runner.config().chain_spec;
diff --git a/polkadot/node/service/src/lib.rs b/polkadot/node/service/src/lib.rs
index 858ab87d38b..37812874cd5 100644
--- a/polkadot/node/service/src/lib.rs
+++ b/polkadot/node/service/src/lib.rs
@@ -234,12 +234,14 @@ fn new_partial<RuntimeApi, Executor>(config: &mut Configuration) -> Result<
 		let keystore = keystore_container.sync_keystore();
 		let transaction_pool = transaction_pool.clone();
 		let select_chain = select_chain.clone();
+		let chain_spec = config.chain_spec.cloned_box();
 
 		move |deny_unsafe, subscription_executor| -> polkadot_rpc::RpcExtension {
 			let deps = polkadot_rpc::FullDeps {
 				client: client.clone(),
 				pool: transaction_pool.clone(),
 				select_chain: select_chain.clone(),
+				chain_spec: chain_spec.cloned_box(),
 				deny_unsafe,
 				babe: polkadot_rpc::BabeDeps {
 					babe_config: babe_config.clone(),
diff --git a/polkadot/rpc/Cargo.toml b/polkadot/rpc/Cargo.toml
index bb24c29bffb..d17a1d6e791 100644
--- a/polkadot/rpc/Cargo.toml
+++ b/polkadot/rpc/Cargo.toml
@@ -14,6 +14,7 @@ sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master
 sp-api = { git = "https://github.com/paritytech/substrate", branch = "master"  }
 sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master"  }
 sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master"  }
+sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master"}
 sc-consensus-babe-rpc = { git = "https://github.com/paritytech/substrate", branch = "master"}
@@ -21,6 +22,7 @@ sc-consensus-epochs = { git = "https://github.com/paritytech/substrate", branch
 sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
 sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master"}
+sc-sync-state-rpc = { git = "https://github.com/paritytech/substrate", branch = "master"}
 txpool-api = { package = "sp-transaction-pool", git = "https://github.com/paritytech/substrate", branch = "master" }
 frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/substrate", branch = "master"  }
 pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
diff --git a/polkadot/rpc/src/lib.rs b/polkadot/rpc/src/lib.rs
index 463bbc16841..2f036563d4b 100644
--- a/polkadot/rpc/src/lib.rs
+++ b/polkadot/rpc/src/lib.rs
@@ -28,9 +28,11 @@ use sp_blockchain::{HeaderBackend, HeaderMetadata, Error as BlockChainError};
 use sp_consensus::SelectChain;
 use sp_consensus_babe::BabeApi;
 use sp_keystore::SyncCryptoStorePtr;
+use sc_client_api::AuxStore;
 use sc_client_api::light::{Fetcher, RemoteBlockchain};
 use sc_consensus_babe::Epoch;
 use sc_finality_grandpa::FinalityProofProvider;
+use sc_sync_state_rpc::{SyncStateRpcApi, SyncStateRpcHandler};
 pub use sc_rpc::{DenyUnsafe, SubscriptionTaskExecutor};
 
 /// A type representing all RPC extensions.
@@ -80,6 +82,8 @@ pub struct FullDeps<C, P, SC, B> {
 	pub pool: Arc<P>,
 	/// The SelectChain Strategy
 	pub select_chain: SC,
+	/// A copy of the chain spec.
+	pub chain_spec: Box<dyn sc_chain_spec::ChainSpec>,
 	/// Whether to deny unsafe calls
 	pub deny_unsafe: DenyUnsafe,
 	/// BABE specific dependencies.
@@ -90,9 +94,8 @@ pub struct FullDeps<C, P, SC, B> {
 
 /// Instantiate all RPC extensions.
 pub fn create_full<C, P, SC, B>(deps: FullDeps<C, P, SC, B>) -> RpcExtension where
-	C: ProvideRuntimeApi<Block>,
-	C: HeaderBackend<Block> + HeaderMetadata<Block, Error=BlockChainError>,
-	C: Send + Sync + 'static,
+	C: ProvideRuntimeApi<Block> + HeaderBackend<Block> + AuxStore +
+		HeaderMetadata<Block, Error=BlockChainError> + Send + Sync + 'static,
 	C::Api: frame_rpc_system::AccountNonceApi<Block, AccountId, Nonce>,
 	C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi<Block, Balance>,
 	C::Api: BabeApi<Block>,
@@ -112,6 +115,7 @@ pub fn create_full<C, P, SC, B>(deps: FullDeps<C, P, SC, B>) -> RpcExtension whe
 		client,
 		pool,
 		select_chain,
+		chain_spec,
 		deny_unsafe,
 		babe,
 		grandpa,
@@ -138,8 +142,8 @@ pub fn create_full<C, P, SC, B>(deps: FullDeps<C, P, SC, B>) -> RpcExtension whe
 	io.extend_with(
 		sc_consensus_babe_rpc::BabeApi::to_delegate(
 			BabeRpcHandler::new(
-				client,
-				shared_epoch_changes,
+				client.clone(),
+				shared_epoch_changes.clone(),
 				keystore,
 				babe_config,
 				select_chain,
@@ -149,13 +153,22 @@ pub fn create_full<C, P, SC, B>(deps: FullDeps<C, P, SC, B>) -> RpcExtension whe
 	);
 	io.extend_with(
 		GrandpaApi::to_delegate(GrandpaRpcHandler::new(
-			shared_authority_set,
+			shared_authority_set.clone(),
 			shared_voter_state,
 			justification_stream,
 			subscription_executor,
 			finality_provider,
 		))
 	);
+	io.extend_with(
+		SyncStateRpcApi::to_delegate(SyncStateRpcHandler::new(
+			chain_spec,
+			client,
+			shared_authority_set,
+			shared_epoch_changes,
+			deny_unsafe,
+		))
+	);
 	io
 }
 
-- 
GitLab