-
Notifications
You must be signed in to change notification settings - Fork 78
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
Support for moving the domain of an entire server (and all its hosted actors, activities, and objects) #473
Comments
I spontaneously sketched something up on Bluesky in this regard yesterday. Assumptions
Goals / Requirements
My IdeaMoving instance's timeline
When receiving the announcement from 4. or 5.
Note that before the individual object move occurs, independent copies may exist in the new and old location simultaneously, in particular the Actor. As such, the migration is not a pure update but can require merging relations in a database transaction. Where conflicts happen (duplicate likes, …), the new location's data SHOULD always take precedence. The deduplication process does not broadcast activities, for example no Undo is sent when a Like is deduplicated (und the assumption that the moving instance has already done the same). This can largely be mitigated by breadcrumbs as in LOLA Portability (§7.1.8, §7.1.9), but possibly not entirely especially in cases where support for them is added later.
When receiving the Accept from 9.2.
Open questionsHow does the moving instance determine which inboxes have accepted the move, especially in context inboxes that are shared between multiple Actors? Must the change be accepted individually by each associated Actor? This may be prohibitively expensive on large observing instances with a shared inbox. Maybe the moving instance should deliver an activity as both its old and new identity if unsure. Maybe the key-ID can be unified in a backwards-compatible way to partially avoid this issue. Footnotes |
FEP-ef61 solves this problem. |
I don't see how that's applicable to existing instances. |
Existing instances? |
This comment was marked as resolved.
This comment was marked as resolved.
The process of retiring a ccTLD has a transition period of 5 to 10 years (https://www.iana.org/help/cctld-retirement), so we have plenty of time to deploy the solution and migrate existing actors. On that premise, a generic solution like nomadic identity sounds preferable to me. Given that the solution needs to be implemented by remote servers as well, I guess an ad-hoc solution would have trouble motivating remote implementers. |
My thinking is that 5-10 years isn't that long in terms of authoring specifications and getting implementation support, hence raising this now |
One way for this to work, and the way most Web servers handle this in 2024, is using a permanent redirect for all objects on the old domain to the new domain. So, when someone requests This process would be slow; would be subject to pretty aggressive caching on the part of remote servers, and would probably require some careful maintenance of IDs and relationships in the remote server database. This wouldn't work at all for a server going offline without warning. It might be possible to keep a directory or list of mappings for servers that go offline this way, but they'd have to be maintained by someone trusted. We have some other ideas in issue triage, like using a Another option is just sending a As a last resort, there are some cases where control of the actor's private key could be used to assert identity. There's not any easy way to do this; we'd need a lot of infrastructure for it. It's a lot easier to just use a social structure, like, "hey, everybody, example.io is now at example.social" and patch it up at the implementation level. I think at least we need to open up some conversation in a primer page about this. |
Given an event like
.io
potentially being removed, and cases where a ccTLD decided to boot a domain registration due to policy, such as queer.af and afghanistan, we'd need to support "full server migrations" to a new domain name.Currently doing this would require issuing a Move on all the actors on that domain, then Move's on all the objects and activities. This seems incredibly inefficient at a protocol level and likely needs a different mechanism to handle it.
The text was updated successfully, but these errors were encountered: