PySyft
PySyft copied to clipboard
Peer health checks
Description
Please include a summary of the change, the motivation, and any additional context that will help others understand your PR. If it closes one or more open issues, please tag them as described here.
Affected Dependencies
List any dependencies that are required for this change.
- track ping status, ping message and ping timestamp at NodePeer level
- add a utility track peer route healthcheck
- add a network service to find peer
- add an integration test for peers health check
How has this been tested?
- Describe the tests that you ran to verify your changes.
- Provide instructions so we can reproduce.
- List any relevant details for your test configuration.
Checklist
- [ ] I have followed the Contribution Guidelines and Code of Conduct
- [ ] I have commented my code following the OpenMined Styleguide
- [ ] I have labeled this PR with the relevant Type labels
- [ ] My changes are covered by tests
Check out this pull request on
See visual diffs & provide feedback on Jupyter Notebooks.
Powered by ReviewNB
TODO in this PR:
- Integrate
background_tasks
in orchestra
- for
run_peer_health_checks
background task
- What is the ping status of a peer if association request is submitted but not accepted?
- What is the ping status if the association request is accepted?
- If one peer node goes down, what is the ping status (may not be checked with a Python Node. Try starting a server with HTTP connection)
- what is the ping status when a peer is deleted -> create remote client on that node peer -> check peer list -> peer not found
- Since we can get domain health status now with the new peers health check functionalities, we can just grab the online domains from the database and no longer need to check it like currently in
DomainRegistry.online_domains
using aThreadPoolExecutor
Great work @khoaguin and @kiendang !!! Left a few minor comments.