-
Notifications
You must be signed in to change notification settings - Fork 249
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
Comments
Do we need this for reliability? This seems to be necessary if:
None are planned on the short term so I would suggest to icebox this for now, focus on reliability |
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. |
@richard-ramos are we using ENR tree as well for store node or not at all? |
No. We use only ENRs and Multiaddresses: |
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:
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
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.
The text was updated successfully, but these errors were encountered: