Initial version of the polite-grandpa networking protocol (#2110)
* Consensus status packet
* Allow for repropagation after status
* More generic gossip
* add a basic view struct and gossip module
* move gossip stuff to the gossip module
* integrate view into gossip
* some reshuffling
* alter rules for keeping one commit at a time in view
* Allow sending addressed messages
* don't cast outgoing votes if we know that we voted before
* Handle one hop messages
* initial run at polite grandpa
* build WASM
* handle neighbor messages
* refactor validator's internals into an Inner struct
* gossip only knows to keep or discard messages. optimize should_send_to
* Periodic rebroadcast
* implement `should_send_to` and message_expired
* track peers' best received commit height
* Pass peer id to topic steam
* kill rebroadcasting network
* Notify about existing peers
* clean up network APIs a bunch
* implement gossip::send_message for direct messages
* refactor network trait
* implement gossip::send_message for direct messages
* get all non set-change tests passing
* treat unknown rebroadcasts as broadcasts
* get all other main tests passing
* remove unimplemented test
* everything compiles
* treat unknown rebroadcasts as broadcasts
* Rebradcast interval
* Apply suggestions from code review
Style
Co-Authored-By:
arkpar <arkady.paronyan@gmail.com>
* Style
* some module docs
* address some grumbles + docs
* allow rebroadcast every few minutes
* send_topic && generic context
* some tests for view change
* more grumbles & tests
* use send_peer
Showing
- substrate/core/finality-grandpa/src/communication.rs 0 additions, 543 deletionssubstrate/core/finality-grandpa/src/communication.rs
- substrate/core/finality-grandpa/src/communication/gossip.rs 1005 additions, 0 deletionssubstrate/core/finality-grandpa/src/communication/gossip.rs
- substrate/core/finality-grandpa/src/communication/mod.rs 561 additions, 0 deletionssubstrate/core/finality-grandpa/src/communication/mod.rs
- substrate/core/finality-grandpa/src/environment.rs 16 additions, 18 deletionssubstrate/core/finality-grandpa/src/environment.rs
- substrate/core/finality-grandpa/src/lib.rs 22 additions, 392 deletionssubstrate/core/finality-grandpa/src/lib.rs
- substrate/core/finality-grandpa/src/tests.rs 33 additions, 61 deletionssubstrate/core/finality-grandpa/src/tests.rs
- substrate/core/network/src/consensus_gossip.rs 335 additions, 220 deletionssubstrate/core/network/src/consensus_gossip.rs
- substrate/core/network/src/protocol.rs 16 additions, 12 deletionssubstrate/core/network/src/protocol.rs
- substrate/core/network/src/service.rs 7 additions, 5 deletionssubstrate/core/network/src/service.rs
- substrate/core/network/src/test/mod.rs 6 additions, 7 deletionssubstrate/core/network/src/test/mod.rs
- substrate/core/test-runtime/wasm/Cargo.lock 33 additions, 21 deletionssubstrate/core/test-runtime/wasm/Cargo.lock
- substrate/node/cli/src/service.rs 1 addition, 1 deletionsubstrate/node/cli/src/service.rs
Please register or sign in to comment