Skip to content
  • Robert Klotzner's avatar
    Generic request/response infrastructure for Polkadot (#2352) · 0cb1ccd1
    Robert Klotzner authored
    * 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]>
    0cb1ccd1