Migração no Mastodon: Como a Atividade Move do ActivityPub se Propaga
🔍 WiseChecker

Migração no Mastodon: Como a Atividade Move do ActivityPub se Propaga

Ao migrar sua conta do Mastodon de uma instância para outra, seus seguidores não seguem automaticamente a nova conta. A transferência depende de uma mensagem ActivityPub específica chamada atividade Move. Muitos usuários esperam que a migração seja instantânea, mas o processo envolve um aperto de mão entre servidores que pode levar horas ou até dias para ser concluído. Este artigo explica exatamente como a atividade Move se propaga pelo fediverso, incluindo as etapas técnicas, o tempo e os pontos comuns de falha.

Principais Conclusões: Como a Atividade Move do Mastodon Viaja Entre Servidores

  • Preferências > Conta > Mudar de uma conta diferente: Inicia a atividade Move no servidor antigo, que gera uma mensagem ActivityPub.
  • Servidor antigo envia Move para cada servidor de seguidor: A instância antiga enfileira e entrega a atividade Move para cada servidor que hospeda um de seus seguidores.
  • Servidor do seguidor processa o Move: O servidor receptor valida os aliases, atualiza a relação de seguir e pode enfileirar a nova conta para busca.

Como a Atividade Move do ActivityPub Funciona no Mastodon

O protocolo ActivityPub define uma atividade Move como uma forma de indicar que um ator (sua conta) se mudou para um novo ator (sua nova conta). O Mastodon implementa isso através de um processo de verificação de alias em duas etapas. Antes que a atividade Move seja enviada, você deve primeiro definir um alias na sua conta antiga apontando para a nova conta, e um alias separado na nova conta apontando de volta para a conta antiga. Esse alias bidirecional garante que apenas o proprietário legítimo de ambas as contas possa iniciar a migração.

Uma vez que os aliases estão definidos, a instância antiga do Mastodon gera um documento JSON-LD em conformidade com a especificação ActivityPub. O documento inclui o campo type definido como Move, o object referenciando a conta antiga e o target referenciando a nova conta. O servidor antigo assina este documento com sua chave privada e o envia para cada servidor que possui um de seus seguidores.

A Fila de Entrega

O Mastodon não envia a atividade Move para todos os servidores simultaneamente. Em vez disso, a instância antiga coloca a mensagem em uma fila de entrega. A fila processa as mensagens uma a uma, respeitando limites de taxa e políticas de repetição. Se o servidor de um seguidor estiver temporariamente inacessível, o Mastodon tenta a entrega novamente até cinco vezes com backoff exponencial. O intervalo inicial de repetição é de 30 segundos, dobrando após cada tentativa falha. Após cinco falhas, o servidor descarta a mensagem e registra o erro. Esse mecanismo de fila é a principal razão pela qual as migrações podem levar horas para serem concluídas para contas com muitos seguidores.

Validação no Lado do Servidor

Quando o servidor de um seguidor recebe a atividade Move, ele realiza várias verificações de validação. Primeiro, verifica a assinatura HTTP para confirmar que a mensagem veio do servidor da conta antiga. Segundo, verifica se a propriedade alsoKnownAs da conta antiga contém a URI da nova conta. Terceiro, verifica se a propriedade alsoKnownAs da nova conta contém a URI da conta antiga. Se todas as três verificações passarem, o servidor atualiza a relação de seguir: ele deixa de seguir a conta antiga e passa a seguir a nova conta. Se alguma verificação falhar, o servidor ignora a atividade Move e registra um aviso.

Etapas que a Atividade Move Segue do Início ao Fim

A propagação da atividade Move envolve uma sequência de ações nos servidores antigo e novo. Siga estas etapas para entender o caminho completo que a mensagem percorre.

  1. Definir o alias na conta antiga
    Na sua conta antiga do Mastodon, vá para Preferências > Conta > Mudar de uma conta diferente. Insira o identificador da sua nova conta (por exemplo, @usuario@novoservidor.social). Isso define a propriedade alsoKnownAs na sua conta antiga.
  2. Definir o alias na nova conta
    Faça login na sua nova conta do Mastodon. Vá para Preferências > Conta > Mudar para uma conta diferente. Insira o identificador da sua conta antiga. Isso define a propriedade alsoKnownAs na sua nova conta e completa o alias bidirecional.
  3. Iniciar o Move a partir da conta antiga
    Volte para sua conta antiga. Clique no botão Mover seguidores. O servidor antigo gera a atividade Move e a adiciona à fila de entrega.
  4. Servidor antigo entrega o Move para a caixa de entrada de cada seguidor
    O servidor antigo itera pela sua lista de seguidores. Para cada servidor único, ele envia uma requisição HTTP POST contendo a atividade Move assinada para o endpoint da caixa de entrada desse servidor.
  5. Servidor do seguidor valida e processa
    O servidor receptor verifica as assinaturas e os aliases. Se forem válidos, ele atualiza a relação de seguir. O servidor também busca o perfil público e o avatar da nova conta para armazenar em cache localmente.
  6. Novo servidor recebe solicitações de seguir
    À medida que o servidor de cada seguidor processa o Move, ele envia uma atividade Follow padrão para a nova conta. O servidor da nova conta adiciona o seguidor à lista de seguidores da nova conta.

Pontos Comuns de Falha na Propagação da Atividade Move

Mesmo com a configuração correta de alias, a atividade Move pode falhar ao se propagar para todos os seguidores. Entender esses pontos de falha ajuda a diagnosticar problemas rapidamente.

Servidor do Seguidor Rejeita o Move Devido a Alias Ausente

A falha mais comum é um alias ausente ou incorreto. Se você esquecer de definir o alias na nova conta, o servidor receptor não pode verificar a relação bidirecional. O servidor descarta a atividade Move e o seguidor permanece inscrito na conta antiga. Para corrigir isso, verifique se ambas as contas têm a propriedade alsoKnownAs definida inspecionando a representação JSON de cada conta (adicione .json ao URL do perfil).

Servidor Antigo Não Consegue Alcançar o Servidor de um Seguidor

Se o servidor de um seguidor estiver offline, com limite de taxa ou bloqueando o IP do servidor antigo, a entrega falha. O Mastodon tenta novamente cinco vezes, mas se o servidor permanecer inacessível, o Move não é entregue. O seguidor deve manualmente deixar de seguir a conta antiga e seguir a nova conta. Você pode verificar os logs do servidor antigo para erros de entrega. Administradores de servidor podem ajustar o limite de repetições no arquivo de configuração do Mastodon.

Seguidores Perdidos Após Migração de Conta Entre Instâncias

Se os seguidores parecem ter sido perdidos, verifique se a nova conta não está definida como privada. Uma conta privada exige aprovação manual para cada solicitação de seguir. A atividade Move envia uma atividade Follow padrão, que é enfileirada como uma solicitação pendente. O proprietário da nova conta deve aprovar cada seguidor manualmente. Defina a nova conta como pública durante a janela de migração para automatizar esse processo.

Atividade Move do ActivityPub vs. Re-Seguir Manual: Diferenças de Propagação

Item Atividade Move do ActivityPub Re-Seguir Manual
Iniciação Servidor antigo envia uma única atividade Move Cada seguidor deve pesquisar e seguir a nova conta
Velocidade de propagação Minutos a horas dependendo do tamanho da fila Imediata para cada seguidor que agir
Esforço do seguidor Zero — transferência automática Alto — cada seguidor deve agir manualmente
Confiabilidade Depende do tempo de atividade do servidor e da correção do alias Depende da conscientização do seguidor
Carga no servidor Alta — servidor antigo envia N mensagens Baixa — cada seguidor envia uma atividade Follow

A atividade Move do ActivityPub automatiza a migração de seguidores, mas introduz dependências no lado do servidor. O re-seguir manual dá controle aos seguidores, mas exige esforço. Para contas com mais de 100 seguidores, a atividade Move é o único método prático.

Agora você pode rastrear exatamente como a atividade Move viaja do seu servidor antigo para o servidor de cada seguidor. Após iniciar a migração, verifique os logs do servidor antigo para confirmações de entrega. Para máximo sucesso, mantenha ambas as contas ativas por 48 horas após a mudança. Um próximo passo prático é verificar a propriedade alsoKnownAs em ambas as contas usando a API do Mastodon antes de clicar no botão Mover.