Commit 0cb1ccd1 authored by Robert Klotzner's avatar Robert Klotzner Committed by GitHub
Browse files

Generic request/response infrastructure for Polkadot (#2352)

* Move NetworkBridgeEvent to subsystem::messages.

It is not protocol related at all, it is in fact only part of the
subsystem communication as it gets wrapped into messages of each
subsystem.

* Request/response infrastructure is taking shape.

WIP: Does not compile.

* Multiplexer variant not supported by Rusts type system.

* request_response::request type checks.

* Cleanup.

* Minor fixes for request_response.

* Implement request sending + move multiplexer.

Request multiplexer is moved to bridge, as there the implementation is
more straight forward as we can specialize on `AllMessages` for the
multiplexing target.

Sending of requests is mostly complete, apart from a few `From`
instances. Receiving is also almost done, initializtion needs to be
fixed and the multiplexer needs to be invoked.

* Remove obsolete multiplexer.

* Initialize bridge with multiplexer.

* Finish generic request sending/receiving.

Subsystems are now able to receive and send requests and responses via
the overseer.

* Doc update.

* Fixes.

* Link issue for not yet implemented code.

* Fixes suggested by @ordian

 - thanks!

- start encoding at 0
- don't crash on zero protocols
- don't panic on not yet implemented request handling

* Update node/network/protocol/src/request_response/v1.rs

Use index 0 instead of 1.

Co-authored-by: default avatarAndronik Ordian <[email protected]>

* Update node/network/protocol/src/request_response.rs

Co-authored-by: default avatarAndronik Ordian <[email protected]>

* Fix existing tests.

* Better avoidance of division by zoro errors.

* Doc fixes.

* send_request -> start_request.

* Fix missing renamings.

* Update substrate.

* Pass TryConnect instead of true.

* Actually import `IfDisconnected`.

* Fix wrong import.

* Update node/network/bridge/src/lib.rs

typo

Co-authored-by: default avatarPierre Krieger <[email protected]>

* Update node/network/bridge/src/multiplexer.rs

Remove redundant import.

Co-authored-by: default avatarPierre Krieger <[email protected]>

* Stop doing tracing from within `From` instance.

Thanks for the catch @tomaka

!

* Get rid of redundant import.

* Formatting cleanup.

* Fix tests.

* Add link to issue.

* Clarify comments some more.

* Fix tests.

* Formatting fix.

* tabs

* Fix link

Co-authored-by: default avatarBernhard Schuster <[email protected]>

* Use map_err.

Co-authored-by: default avatarBernhard Schuster <[email protected]>

* Improvements inspired by suggestions by @drahnr.

- Channel size is now determined by function.
- Explicitely scope NetworkService::start_request.

Co-authored-by: default avatarAndronik Ordian <[email protected]>
Co-authored-by: default avatarPierre Krieger <[email protected]>
Co-authored-by: default avatarBernhard Schuster <[email protected]>
parent 41eeb571
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment