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

UI Setup for country_code for ExitService to modify it on Run-Time #515

Closed
czarte opened this issue Jul 15, 2024 · 2 comments
Closed

UI Setup for country_code for ExitService to modify it on Run-Time #515

czarte opened this issue Jul 15, 2024 · 2 comments

Comments

@czarte
Copy link
Collaborator

czarte commented Jul 15, 2024

We want to create UI Setup which allows UI to set desired country_code for ExitService part of computing Route for users requests. This Setup should be able to set the desired country_code on Run-Time.

Create function to harvest all country codes from neighborhood DB and send them to UI allow user select between them.

masq_lib/src/shared_schema.rs
create fn exit_location_arg()
add .arg(exit_location_arg()) to shared_app.head

This cartd contains other two cards
#469
#468

@czarte czarte transferred this issue from MASQ-Project/Node Jul 15, 2024
@czarte czarte changed the title UI Setup for country_code for ExitService UI Setup for country_code for ExitService to modify it in Run-Time Jul 15, 2024
@czarte czarte changed the title UI Setup for country_code for ExitService to modify it in Run-Time UI Setup for country_code for ExitService to modify it on Run-Time Jul 15, 2024
@czarte
Copy link
Collaborator Author

czarte commented Aug 15, 2024

Data-flow chart of communication between Node and UI about Exit Location. This Exit Location system is non-blocking, so it will always serve the User data, most of the time, from desired country, but in edge case it will fall back to standard routing. This system gives user opportunity to cancel consuming services in case all exit nodes from desired country disconnects from the network.

From Node to UI we will send JSON message on every update of the Neighborhood DB. This message is described in provided figure in this comment. Contains basic information about Nodes and information about wheather the Node serve as Exit Node. This message could be enriched in the future by more informations about the node, that will be desired by UI.

  • public key
  • version
  • country_code
  • exit_service boolean indicates if Node can serve as Exit Node
  • unreachable_hosts

From UI is possible to send message contains objects with arrays of ‘country_codes’ and the priority of particular selection. This priorities of countries are going into routing engine.

  • country_codes - array of objects containing
    • country_codes (array of strings of country_codes)
    • and its priority

After request is served, Node responses to the browser with TLS connection and to the Electron app (UI) is sent third message. This message informs about Proxy services, contains public keys and country_codes of Nodes serving as exit Nodes.

  • array of all established routes, each contains array of public keys of all nodes in particular route

So UI can inform user in edge case, when Exit Node disconnects from the network. This would be probably rare edge case, because if other Node with desired country_code is present in the Patch, will take over the serving Exit Service for current user. Electron app can control weather browser should send the HTTP Request trhu established route.

Image

@kauri-hero kauri-hero transferred this issue from MASQ-Project/MASQ-Node-issues Sep 18, 2024
@dnwiebe dnwiebe closed this as completed by moving to ✅ Done in MASQ Node v2 Oct 29, 2024
@dnwiebe
Copy link
Collaborator

dnwiebe commented Oct 29, 2024

@kauri-hero I moved this card to Done because it's a for-reference-only card. There are no tasks on it; it just contains two other cards that do have tasks and are both in development.

If you think it should go somewhere other than Done, feel free to move it; but I'm pretty sure it's not Awaiting Development.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ Done
Development

No branches or pull requests

2 participants