Grandpa validator set handoff justification (#1190)
* core: make block justification optional * runtime: update wasm binaries * core: optionally pass justification on finalize_block * finality-grandpa: add channel to trigger authority set changes this will allow the `BlockImport` to trigger an authority set change when importing a change block that provides a justification (when syncing) * finality-grandpa: move finalize_block to free function * finality-grandpa: add GrandpaOracle for auth set liveness checking this will be used by `BlockImport` to check whether the authority set for a given block is still live, if the authority set isn't live then importing a change block requires a justification. * finality-grandpa: store justification on finalized transition blocks * finality-grandpa: check justification on authority set change blocks * finality-grandpa: poll grandpa liveness oracle every 10 seconds * finality-grandpa: spawn grandpa oracle in service setup * core: support multiple subscriptions per consensus gossip topic * finality-grandpa: create and verify justifications * finality-grandpa: update to local branch of grandpa * finality-grandpa: update to finality-grandpa v0.5.0 * finality-grandpa: move grandpa oracle code * finality-grandpa: fix canonality check * finality-grandpa: clean up error handling * finality-grandpa: fix canonical_at_height * finality-grandpa: fix tests * runtime: update wasm binaries * core: add tests for finalizing block with justification * finality-grandpa: improve validation of justifications * core: remove unused IncompleteJustification block import error * core: test multiple subscribers for same consensus gossip topic * Revert "finality-grandpa: improve validation of justifications" This reverts commit 51eb2c58c2219801e876af6d6c9371bdd9ff2477. * finality-grandpa: fix commit validation * finality-grandpa: fix commit ancestry validation * finality-grandpa: use grandpa v0.5.1 * finality-grandpa: add docs * finality-grandpa: fix failing test * finality-grandpa: only allow a pending authority set change per fork * finality-grandpa: fix validator set transition test
Showing
- substrate/Cargo.lock 3 additions, 3 deletionssubstrate/Cargo.lock
- substrate/core/client/db/src/lib.rs 48 additions, 3 deletionssubstrate/core/client/db/src/lib.rs
- substrate/core/client/src/backend.rs 1 addition, 1 deletionsubstrate/core/client/src/backend.rs
- substrate/core/client/src/client.rs 84 additions, 27 deletionssubstrate/core/client/src/client.rs
- substrate/core/client/src/in_mem.rs 18 additions, 5 deletionssubstrate/core/client/src/in_mem.rs
- substrate/core/client/src/light/backend.rs 1 addition, 1 deletionsubstrate/core/client/src/light/backend.rs
- substrate/core/client/src/light/fetcher.rs 1 addition, 1 deletionsubstrate/core/client/src/light/fetcher.rs
- substrate/core/consensus/aura/src/lib.rs 5 additions, 4 deletionssubstrate/core/consensus/aura/src/lib.rs
- substrate/core/consensus/common/src/block_import.rs 4 additions, 4 deletionssubstrate/core/consensus/common/src/block_import.rs
- substrate/core/consensus/rhd/src/lib.rs 1 addition, 1 deletionsubstrate/core/consensus/rhd/src/lib.rs
- substrate/core/finality-grandpa/Cargo.toml 1 addition, 1 deletionsubstrate/core/finality-grandpa/Cargo.toml
- substrate/core/finality-grandpa/src/authorities.rs 128 additions, 46 deletionssubstrate/core/finality-grandpa/src/authorities.rs
- substrate/core/finality-grandpa/src/communication.rs 1 addition, 1 deletionsubstrate/core/finality-grandpa/src/communication.rs
- substrate/core/finality-grandpa/src/lib.rs 609 additions, 140 deletionssubstrate/core/finality-grandpa/src/lib.rs
- substrate/core/finality-grandpa/src/tests.rs 90 additions, 46 deletionssubstrate/core/finality-grandpa/src/tests.rs
- substrate/core/network/src/consensus_gossip.rs 34 additions, 9 deletionssubstrate/core/network/src/consensus_gossip.rs
- substrate/core/network/src/import_queue.rs 6 additions, 36 deletionssubstrate/core/network/src/import_queue.rs
- substrate/core/network/src/test/mod.rs 1 addition, 1 deletionsubstrate/core/network/src/test/mod.rs
- substrate/core/rpc/src/chain/tests.rs 9 additions, 10 deletionssubstrate/core/rpc/src/chain/tests.rs
- substrate/core/rpc/src/state/tests.rs 3 additions, 3 deletionssubstrate/core/rpc/src/state/tests.rs
Please register or sign in to comment