Specification
With #344 more or less solved we need a way of authenticating when adding forward connections. this includes authenticating the old connections when a bucket fills up. In both cases we can so a pingNode to check if a node is alive. However the current implementation of pingNode is insufficient for the job as it only checks if a node is alive.
NodeManager.pingNode needs to be updated to match the following criteria;
- It needs to establish a proxy connection to the target. if a connection can be established then the target is considered alive. if the connection is established then we can consider it authenticated as well.
- It needs to take an optional address information for checking if direct connections without the nat bashing proceedure can be done. This will be useful for ICE
The NodeManager.setNode needs to be updated to do the following.
- when a bucket is full the oldest node needs to be verified with
pingNode. This is already done, just need to update ping for this. This will need to concurrently check alpha of the oldest connections.
- Needs an optional force parameter to garentee adding the node.
NodeConnectionManager needs to be updated to;
- takes
NodeManager as part of start.
- establishing a connection should trigger
NM.qeueSetNode
NodeManager needs to be updated to;
- startStop asyinc init pattern.
- implement a async queue for adding nodes to the nodeGraph.
After that we need to make sure all instance where we need to add a node just calls NodeManager.setNode. Where this is done still needs to be speced out but this may be outside the scope of this issue. Create a new issue for this?
Additional context
Tasks
Specification
With #344 more or less solved we need a way of authenticating when adding forward connections. this includes authenticating the old connections when a bucket fills up. In both cases we can so a
pingNodeto check if a node is alive. However the current implementation ofpingNodeis insufficient for the job as it only checks if a node is alive.NodeManager.pingNodeneeds to be updated to match the following criteria;The
NodeManager.setNodeneeds to be updated to do the following.pingNode. This is already done, just need to update ping for this. This will need to concurrently check alpha of the oldest connections.NodeConnectionManagerneeds to be updated to;NodeManageras part of start.NM.qeueSetNodeNodeManagerneeds to be updated to;After that we need to make sure all instance where we need to add a node just calls
NodeManager.setNode. Where this is done still needs to be speced out but this may be outside the scope of this issue. Create a new issue for this?Additional context
NodeGraph#344Tasks
NodeManager.pingNodeto match the above specification.NodeManager.setNodeto match the above specification.pk nodes set(with--no-pingand--force) andpk nodes ping