Specification
When the root key pair changes we need to update anything that depends on this. This change event is propagated through the events system. One of the changes is updating the TLS config the RPC servers are using. Previously this could be done dynamically but now with the WebSocketServer this can only be set when starting it.
This means that the WebSocketServer needs to be restarted when this event happens. This means any active connections are potentially interrupted.
To support this we need to make the following changes.
- When the root keypair is updated we need to restart the
WebSocketServer.
- When restarting the
WebSocketServer we need to gracefully end any active connections.
- We need to propagate an abort signal to the stream handler to signal ending.
- expand the force stop options to allow for forcing connections to end, Signalling connections to end gracefully or just wait for all active connections to end.
- Add a feature to block all new connections so when waiting for connections to end new ones can't start.
Additional context
Tasks
- When the root keypair is updated we need to restart the
WebSocketServer.
- When restarting the
WebSocketServer we need to gracefully end any active connections.
- We need to propagate an abort signal to the stream handler to signal ending.
- expand the force stop options to allow for forcing connections to end, Signalling connections to end gracefully or just wait for all active connections to end.
- Add a feature to block all new connections so when waiting for connections to end new ones can't star
Specification
When the root key pair changes we need to update anything that depends on this. This change event is propagated through the events system. One of the changes is updating the TLS config the RPC servers are using. Previously this could be done dynamically but now with the
WebSocketServerthis can only be set when starting it.This means that the
WebSocketServerneeds to be restarted when this event happens. This means any active connections are potentially interrupted.To support this we need to make the following changes.
WebSocketServer.WebSocketServerwe need to gracefully end any active connections.Additional context
Tasks
WebSocketServer.WebSocketServerwe need to gracefully end any active connections.