-
Notifications
You must be signed in to change notification settings - Fork 56
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
Setting up static sharding fleet for Status #1914
Comments
Some questions on the above:
|
Something else to take into account is that status-go currently behaves like this:
We probably should discuss this with status team to design what makes sense for retrieving message history, since I assume that The same applies for peer discovery for shards, (which is an open item for status-go). Should status-go use |
Nope, but setting a shard cluster/index for a community is easy-sh. For now i imagine that setting up any shard index between 128 - 767 in cluster 16 and using that should be fine? |
@jm-clius Perhaps this should go somewhere else? Its more related to deployments and ofc there are some things to figure out, but I don't see this as a research problem? |
I would say there shouldn't really be any complicated logic done her for specific fleets. The heuristic I suggest (for now):
From what I understand, status-go does not yet support filtering the subscribed shards in peer discovery? That would need to be implemented, but shouldn't for now affect how we deploy the fleet - namely a fleet specifically configured to serve (only) the Status community. We could consider using the same fleet for the 1:1/group chat message static shards for now, though we'll likely split this off in future as well. The point is that afaics there would be no need for any fleet-specific configuration if we have a shared discovery layer and a Status node that can filter discovered peers on shard. The assumption is that we'll launch first for some test communities and thereafter only for the Status Internal CC community. We can choose to expand support on this fleet for more shards to make the process simpler, but at no point should anything other than static shards be used (i.e. Status nodes shouldn't be subscribed to the default pubsub topic). We can also increment towards something more sophisticated here (e.g. use the same store nodes for all shards and keep hardcoding these in the interim). |
@alrevuelta yeah, you're right. I've moved it to nwaku for now, as this is a nwaku deployment. I would say that some thinking re infrastructure will form part of research roadmaps (e.g. hammering out how a distributed bootstrap network will look for autosharding), which is why I had this issue in research first. But it's hopefully going to be closed and related tasks open in an infra repo soon. |
@richard-ramos a couple of questions in order to get bootstrapping going in the simplest way possible:
|
|
Will do, thanks!
Will you provide me with a sharded pubsub topic(s) and public key? |
I can provide the private keys via DM on status, just let me know! |
Weekly Update
|
Weekly Update
|
Weekly Update
|
New PRs related to static sharding for Status:
So far, I've been able to get messages going back and forth while using different shards. I defined the following shards:
-- I opened this in status-desktop: status-im/status-desktop#12443 Without it it's currently not possible to choose the shards.test fleet. In status-im/status-desktop#12344 i 'solve' it by hardcoding the fleet name, but it's not a proper solution, but a hack to be able to test the fleet -- Discovery is currently not working. I'm investigating an issue in ENRs on shards.test fleet. While testing this fleet, I found out something weird. The ENRs defined for the bootnodes in https://fleets.status.im for that fleet are the following: "enr/p2p/waku/boot": {
"boot-01.do-ams3.shards.test": "enr:-Ny4QIGdHrr3QQCyGzro0mleJaWdhYI4RJZiDx_Tf0TnSON3NpJP0l7Tk3xfeJqGCkIeEQU1UckwC6muubC4tgB8FZYBgmlkgnY0gmlwhKdjEy-KbXVsdGlhZGRyc68ALTYoYm9vdC0wMS5kby1hbXMzLnNoYXJkcy50ZXN0LnN0YXR1c2ltLm5ldAZ2X4Jyc4sAEAQAIABAAIABAIlzZWNwMjU2azGhAt60bRUEoHNuLlnsM12sU2PIQwBwfLIJ8a_ZPEY2-Rnkg3RjcIJ2X4N1ZHCCIyiFd2FrdTIN",
"boot-01.gc-us-central1-a.shards.test": "enr:-Oa4QLx_yxPWXpA8W9TJkHbbj6hec6RKWgXko7Fx3hIcPd8UUXnhH3SP6e1Jj1mKBgwWmK4d6XbOkQ0eOh93w8xc0MoBgmlkgnY0gmlwhCKHDVeKbXVsdGlhZGRyc7g4ADY2MWJvb3QtMDEuZ2MtdXMtY2VudHJhbDEtYS5zaGFyZHMudGVzdC5zdGF0dXNpbS5uZXQGdl-CcnOLABAEACAAQACAAQCJc2VjcDI1NmsxoQLGOqANDRbJFI6KVhTfYMDmT9c2UOKzebVV1eQr3EzqQ4N0Y3CCdl-DdWRwgiMohXdha3UyDQ",
"boot-01.ac-cn-hongkong-c.shards.test": "enr:-Oa4QNivsUYDIbwqfZmFFi-82umI5pafhfNiqkjojH104FvNIhkPIOlY9fm8G643ZOqvgwhI5SX5ucekJFkolb8Wk7QBgmlkgnY0gmlwhAjaF0yKbXVsdGlhZGRyc7g4ADY2MWJvb3QtMDEuYWMtY24taG9uZ2tvbmctYy5zaGFyZHMudGVzdC5zdGF0dXNpbS5uZXQGdl-CcnOLABAEACAAQACAAQCJc2VjcDI1NmsxoQM_sJtGT5gonA4UUzhn2d7LQY9ztY8loLAaSk1HKVruYIN0Y3CCdl-DdWRwgiMohXdha3UyDQ"
}, and looking at https://enr-viewer.com, i can see that the
and interestingly enough, none of these ENRs have the |
Weekly Update
|
This looks done but will wait for @jm-clius to be back (end of October) before closing just in case we missed something. |
Indeed. As far as I can tell the fleet has been successfully deployed, Postgresql setup and tested and bootstrap DNS entries are available. Any further issues and investigations could be better tracked in new, separate issues. |
Background
This issue tracks the work necessary to set up a static sharding fleet for Status Communities. This forms part of the 10K users epic.
It involves:
Why is this issue not in an infra repo?
Some requirements need to be agreed upon, before opening an issue in the relevant infra repo.
Requirements
I suggest the following configuration:
status.sharding.store
: 5 nodes configured only withrelay
andstore
. These will be the store/historical message providersstatus.sharding.bootstrap
: 5 nodes configured withrelay
,filter
,lightpush
,peer-exchange
. These are the main bootstrap nodes and also provide services to resource-restricted nodes.status.sharding.store
should be configured with a single, shared PostgreSQL backendstatus.sharding.bootstrap
should be set up with trace-level message logs, in order to facilitate future end-to-end message tracing and debugging.Tracking Issue: status-im/infra-status#2
The text was updated successfully, but these errors were encountered: