client/network: Use request response for light client requests (#7895)
* client/network: Re-enable light_client_handler.rs unit tests * client/network: Add scaffolding for light client using req-resp * client/network: Make it compile * client/network: Rename OutEvent SendRequest * client/network: Restructure light client request client and handler * client/network: Rename light client request client to sender * client/network: Remove light client prepare_request * client/network/src/light: Rework configuration * client/network: Formatting * client/network/light: Remove RequestId * client/network/light: Make request functions methods * client/network/light: Refactor request wrapping * client/network/light: Fix warnings * client/network/light: Serialize request in method * client/network/light: Make returning response a method * client/network/light: Depend on request response to timeout requests * client/network: Fix test compilation * client/network/light: Re-enable connection test * client/network/light: Re-enable timeout test * client/network/light: Re-enable incorrect_response test * client/network/light: Re-enable wrong_response_type test * client/network/light: Re-enable retry_count_failures test * client/network/light: Re-enable issue_request tests * client/network/light: Re-enable send_receive tests * client/network/light: Deduplicate test logic * client/network/light: Remove unused imports * client/network/light: Handle request failure * client/network/light: Move generate_protocol_config * client/network: Fix test compilation * client/network: Rename light client request client to sender * client/network: Handle too-many-requests error * client/network: Update outdated comments * client/network/light: Choose any peer if none has best block defined * .maintain: Replace sentry-node with local-docker-test-network Sentry nodes are deprecated. Thus there is no need for `.maintain/sentry-node` to spin up a sentry node test environment. Instead this commit rewrites the setup to contain two full-connected validators and one light client. With the steps below one can now spin up a local test network with two validators, one light-client, Prometheus and Grafana. - cargo build --release - sudo docker-compose -f .maintain/local-docker-test-network/docker-compose.yml up * client/network/light: Handle oneshot cancellation * client/network/light: Do not reduce retry count on missing peer * client/network/request-response: Assert in debug request id to be unique * client/network/light: Choose same limit as block request protocol * client/network: Report reputation changes via response Allow request response protocol handlers to issue reputation changes, by sending them back along with the response payload. * client/network: Remove resolved TODOs
Showing
- substrate/client/network/src/behaviour.rs 40 additions, 22 deletionssubstrate/client/network/src/behaviour.rs
- substrate/client/network/src/block_request_handler.rs 22 additions, 19 deletionssubstrate/client/network/src/block_request_handler.rs
- substrate/client/network/src/config.rs 8 additions, 0 deletionssubstrate/client/network/src/config.rs
- substrate/client/network/src/gossip/tests.rs 12 additions, 1 deletionsubstrate/client/network/src/gossip/tests.rs
- substrate/client/network/src/lib.rs 1 addition, 1 deletionsubstrate/client/network/src/lib.rs
- substrate/client/network/src/light_client_handler.rs 0 additions, 2061 deletionssubstrate/client/network/src/light_client_handler.rs
- substrate/client/network/src/light_client_requests.rs 334 additions, 0 deletionssubstrate/client/network/src/light_client_requests.rs
- substrate/client/network/src/light_client_requests/handler.rs 399 additions, 0 deletions...trate/client/network/src/light_client_requests/handler.rs
- substrate/client/network/src/light_client_requests/sender.rs 1343 additions, 0 deletionssubstrate/client/network/src/light_client_requests/sender.rs
- substrate/client/network/src/on_demand_layer.rs 10 additions, 10 deletionssubstrate/client/network/src/on_demand_layer.rs
- substrate/client/network/src/request_responses.rs 2 additions, 1 deletionsubstrate/client/network/src/request_responses.rs
- substrate/client/network/src/service.rs 19 additions, 15 deletionssubstrate/client/network/src/service.rs
- substrate/client/network/src/service/tests.rs 12 additions, 1 deletionsubstrate/client/network/src/service/tests.rs
- substrate/client/network/test/src/lib.rs 14 additions, 3 deletionssubstrate/client/network/test/src/lib.rs
- substrate/client/service/src/builder.rs 19 additions, 2 deletionssubstrate/client/service/src/builder.rs
Please register or sign in to comment