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

Remove hardcoded storenodes from status-go #5171

Open
richard-ramos opened this issue May 15, 2024 · 4 comments
Open

Remove hardcoded storenodes from status-go #5171

richard-ramos opened this issue May 15, 2024 · 4 comments
Labels
status-waku-integ All issues relating to the Status Waku integration.

Comments

@richard-ramos
Copy link
Member

In services/mailservers/fleet.go a list of storenodes is hardcoded, we should come up with a solution that does not involving harcoding the node multiaddresses in the code.

Some stuff to take into account:

  1. Using only a DNS Discovery URL to retrieve the storenodes might not be a good solution: we'd likely need to have the list of storenodes somewhere, for example, either by using multiaddresses with ip Addresses instead of domain names in the node config or via discv5?
    It has happened before that core contributors have had problems with their DNS for some reason, and then the core contributor couldn't retrieve the bootnodes and ended up with 0 peers. If the same situation happened with the storenodes dns discovery url, it would mean that no history nodes would be available for the user

  2. At the moment of writing this issue, status uses an specific list of storenodes, with 30d of history and high availability. We cannot use discv5 and request history from any storenode we find with Discv5 because there is no guarantee that the node will have the message history. If we use discv5, we'd likely have to compare the peerID of the discovered nodes with a list of trusted nodes to make sure we use specific store nodes. Using discover is also problematic because the way status works right now, it will not request history for a period of time that it has already requested the history before, so if we choose a random storenode and we request history for some time interval, and that storenode has no data for that interval, then, the client will no longer attempt to retrieve history for that period of time.

@fryorcraken
Copy link

Do we need this for reliability? This seems to be necessary if:

  • we want to deploy a new fleet
  • we want community owners to self host

None are planned on the short term so I would suggest to icebox this for now, focus on reliability

@jakubgs
Copy link
Member

jakubgs commented Jun 6, 2024

It does in the sense that it allows use to scale up the fleet and the apps should pick that up based on updated ENRTrees, rather than have to release a new application to update the hardcoded list of nodes.

@fryorcraken
Copy link

@richard-ramos are we using ENR tree as well for store node or not at all?

@richard-ramos
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status-waku-integ All issues relating to the Status Waku integration.
Projects
None yet
Development

No branches or pull requests

3 participants