paint-brush
Ter uma alça de mastodonte imutávelby@nfrankel
1,334
1,334

Ter uma alça de mastodonte imutável

Nicolas Fränkel4m2022/12/22
Read on Terminal Reader

O Mastodon é diferente do Twitter porque é uma federação de servidores Mastodon, executados de forma independente e conectados. O primeiro problema quando se deseja criar uma conta Mastodon é escolher a instância correta. O processo é baseado na [especificação WebFinger](https://www.rfc-editor.org/rfc/rfc7033)
featured image - Ter uma alça de mastodonte imutável
Nicolas Fränkel HackerNoon profile picture

Ainda não se sabe se o Twitter desmorona, embora alguns sinais sejam reveladores. Aconteça o que acontecer, continuo investindo um pouco no Mastodon. Na semana passada, mostrei como sincronizar o conteúdo de alguém entre o Twitter e o Mastodon.


Esta semana, configurei um identificador Mastodon em meu domínio que redireciona para minha página de perfil: quero explicar como consegui e os problemas que ainda estou tendo.

Mastodonte 101

O Mastodon é diferente do Twitter porque não é centralizado: é uma federação de servidores Mastodon, executados de forma independente e conectados - o Fediverse . Para ser mais preciso, o Fediverso é mais do que nós de mastodonte, mas não vamos tão longe.


O primeiro problema quando se deseja criar uma conta Mastodon é escolher a instância correta. Minha primeira escolha foi mastodon.social , mas estava fechado para novas contas na época. Coloquei meus olhos em mastodon.top sem nenhum motivo, a não ser que estava na lista de propostas e era francês.


A escolha de um servidor não é tão importante, pois você sempre pode mover sua conta para outra instância e manter seus seguidores. Observe que você deixará (e perderá) seu conteúdo no servidor original. Em todos os casos, seu perfil recebe namespace do servidor; assim, seu identificador muda.


Atualmente, sou @[email protected] . Mas talvez eu me junte a meus amigos no foojay.social ou crie meu próprio frankel.social no futuro? Em ambos os casos, precisarei alterar o sufixo do meu identificador.


No entanto, publico meu identificador em muitos sites e não quero esquecer nenhuma atualização ao migrar. Portanto, exijo que o identificador seja imutável .


Mencionei acima que os nós Mastodon pertencem a uma rede chamada Fediverse. Os nós fediversos podem ser conectados através de vários protocolos diferentes . Os nós Mastodon usam ActivityPub . Por baixo, o ActivityPub depende do WebFinger para encontrar a localização correta de uma alça.

WebFinger

Mastodon precisa traduzir @[email protected] para https://mastodon.top/web/@frankel . A tradução deve acontecer em qualquer instância do Mastodon, independentemente de seu domínio. O processo é baseado na especificação WebFinger , também conhecida como RFC 7033:


O WebFinger, conforme descrito no RFC 7033 , é uma especificação que define um método para resolver links para um recurso , dado apenas um URI em um servidor específico. Isso permite que qualquer pessoa procure onde um recurso está localizado sem ter que saber sua localização exata de antemão; por exemplo, por e-mail ou número de telefone. Essa pesquisa é direcionada para o terminal /.well-known/webfinger , e um parâmetro de consulta de resource é passado junto com a pesquisa. O recurso URI usado com Mastodon é o acct: URI conforme descrito em RFC 7565 , com o nome de usuário de um perfil que está hospedado em um determinado domínio.


-- O que é o WebFinger e por que ele é usado?


De acordo com o exposto, ao pesquisar meu perfil, a consulta é a seguinte: https://mastodon.top/.well-known/webfinger?resource=acct:[email protected] . Você pode verificar acessando uma instância do Mastodon em que está conectado, procurando meu identificador e observando o tráfego por meio das ferramentas de desenvolvedor do seu navegador preferido.


A resposta é a seguinte:

 { "subject":"acct:[email protected]", "aliases":[ "https://mastodon.top/@frankel", #1 "https://mastodon.top/users/frankel" #1 ], "links":[ { "rel":"http://webfinger.net/rel/profile-page", #2 "type":"text/html", "href":"https://mastodon.top/@frankel" }, { "rel":"self", "type":"application/activity+json", "href":"https://mastodon.top/users/frankel" }, { "rel":"http://ostatus.org/schema/1.0/subscribe", "template":"https://mastodon.top/authorize_interaction?uri={uri}" } ] }
  1. URL para o perfil
  2. rel para mastodonte

O Cabo Mastodonte Imutável

Deve funcionar se eu retornar a mesma resposta para a mesma consulta em um domínio personalizado. Foi o que fiz: https://blog.frankel.ch/.well-known/webfinger?resource=acct:[email protected] . Como é uma página estática e sou a única conta, não precisamos do parâmetro de consulta: https://blog.frankel.ch/.well-known/webfinger .


Diante disso, posso pesquisar em https://mastodon.top com @[email protected] (ou qualquer identificador @frankel.ch ) e retornar os resultados esperados:




Eu verifiquei em outras instâncias, por exemplo , https://mastodon.social/ , mas não funcionou. A razão é simples. Ao pesquisar na instância em que você está conectado, o XHR é https://mastodon.top/api/v2/search?q=@[email protected]&resolve=true&limit=5 ; quando não, é https://mastodon.top/api/v2/search?q=@[email protected]&resolve=false&limit=5 .


Conclusão: você só pode consultar identificadores na mesma instância quando não estiver autenticado.


A documentação confirma que, se resolve for false , a consulta não tentará usar o WebFinger:


resolve


Boleano. Tentativa de pesquisa do WebFinger? O padrão é falso.


-- Faça uma pesquisa


Conclusão

A teoria por trás do Mastodon e do WebFinger é fascinante. Consegui configurar meu identificador de mastodonte imutável @[email protected] . Esse é o identificador que posso comunicar aos seguidores em potencial: se eu mudar para outro servidor, atualizarei o webfinger com minhas novas coordenadas.


O truque funciona porque sou o único usuário do Mastodon em meu domínio. Se você tiver vários, precisará ir além de uma página estática para retornar um ID diferente, dependendo do parâmetro acct: o resto continua igual.


Ir além:




Originalmente publicado em A Java Geek em 18 de dezembro de 2022


Foto de Shashank Rana no Unsplash