Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advanced autoconnection logic #950

Closed
jdknives opened this issue Oct 19, 2021 · 1 comment
Closed

Advanced autoconnection logic #950

jdknives opened this issue Oct 19, 2021 · 1 comment
Labels
enhancement New feature or request

Comments

@jdknives
Copy link
Member

Feature description

We should implement a more resilient and performant autoconnection logic for visors. This should include the ability to detect opportunities to connect to other visors via stcpr or sudph directly and use these one hop routes.

Is your feature request related to a problem? Please describe.

We currently have a very basic autoconnection logic implemented. Upon startup we pull a number of public visors in and connect. This should create a number of transports that makes it easy enough to setup routes through the networkw without having to manually establish transports. The downside is that given the randomised logic behind picking servers to connect to, the routes established to conncet any two visors may be suboptimal and include multiple hops via Skywire where a single hop route would have been possible if further transports were established. sudph or stcpr transports directly to the remote are faster than mutli hop routes in most cases.

Describe alternatives you've considered

Clients could cache the list of available remotes via stcpr and sudph from AR if a route to one of these remotes is requested, they could establish a transport before requesting the route, possibly even circumventing the need to call the route finder and directly call the setup node. Other implementations may be possible.

@jdknives jdknives added enhancement New feature or request question Further information is requested labels Oct 19, 2021
@jdknives
Copy link
Member Author

This could be solved somewhat easily by the visor performing these checks:

  1. If the remote is either available stcpr or sudph, establish the transport to the remote and then continue with the route creation process.

  2. If neither of these direct transports is available, check if automatic transports are currently active. If they are continue with route creation.

  3. If none of the first two checks was successful, establish a dmsg transport and then continue with route creation.

It may be easier to not directly make this module part of the route creation process and instead just perform checks and then call the route creation process separately. This way the UI could call an endpoint for this module and upon it returning, start the route creation.

@jdknives jdknives added v0.6.0 and removed question Further information is requested labels Nov 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant