O Potencial da Federação

Recentemente me envolvi em uma discussão com um amigo sobre redes descentralizadas e o tal chamado fediverso. O Fediverse (em inglês) é a junção de federated e universe, ou seja universo federado. E é basicamente uma rede de aplicações descentralizadas que são interoperáveis, através de um (ou vários) protocolos padronizados.

A questão das redes descentralizadas

A discussão sobre redes descentralizadas é algo que volta e meia reaparece e ela posa uma questão muito importante sendo ela a seguinte pergunt nossas informações sob a autoridade de certas entidades da qual podem não se alinhar com nossos interesses e objetivos"**. Mais fundamentalmente, como previnimos que os nossos dados, sejam em certa medida, privados de nós mesmos.

Programas, protocolos, formatos padronizados e federação, uma breve explicação

Um programa de computador trabalha com a premissa básica de entrada e saida ou (Input/Output - IO), ou seja, um usuário entra com informação/dados, o programa mastiga e cospe informação na outra ponta.

A questão que se levanta logo em seguida é, qual é o formato desse dado?. Como garantir que esse dado seja replicável de forma ao programa poder servir também em outros lugares, em outras máquinas, em outros espaços. Justamente por isso existem formatos de dados e protocolos/padronização.

Esses protocolos e formatos definem como que se estrutura uma determinada informação, e permite a replicabilidade da mesma. E o processo que se determina esse dado, se chama de padronização, geralmente por uma entidade pública. A interoperabilidade ou a adoção de programas à um determinado padrão ou protocolo os permite entrar dentro de uma federação.

E por fim, esses protocolos e padrões, são apenas específicações, não entram muito a fundo na implementação. A entidade mais importante a respeito disso é a IETF (Internet Engineering Task Force - Força Tarefa de Engenharia de Internet), onde são publicados os RFCs (Request For Comments - Pedidos de Comentários) que moldaram coisas como a internet, formatos de dados e protocolos de comunicação como o Email. Outra entidade importante é o OpenGroup/IEEE, que trouxe a vida o POSIX (padrões de interoperabilidade entre sistemas Unix).

Federação

Como mencionei antes, a federação é o processo de um programa adotar um padrão ou permitir a interoperabilidade entre protocolos/padrões. A principal característica é de que o sistema “conversa” em uma língua comum. Essa “língua” (protocolo) é aberto e desenvolvido com a ajuda da comunidade, o que acaba por gerar certos acordos e convenções sociais.

Acho que um aspecto importante é que num sistema de servidores federados, o controle e administração é exercido por entidades soberanas e independentes, mas que conseguem se comunicar entre si.

Fediverso

Nesse cenário, surge o chamado Fediverso. Diversos programas surgem com a ideia de aderir a um protocolo padrão e apontando para as redes descentralizadas. Acredito que o exemplo de maior sucesso disso, seja o Mastodon, que seria quase como um clone da experiência do Twitter, mas existem outros como o Pixelfed (quase como um instagram), diaspora (como um Facebook), PeerTube (similar ao YouTube) e outros.

Diversas instâncias do Mastodon e de outras redes que eu mencionei (isto é, servidores) surgiram nos ultimos anos conforme as pessoas começaram a perceber de forma mais evidente como esses grandes monopólios realmente funcionam. Cada instância funciona de forma soberana e autogestionária, ou seja seus usuários compartilham um senso de comunidade e vizinhança, e geralmente se agrupam em instâncias que compartilham um assunto em comum, mas não estão restritas a somente a conversar com os usuários daquela instância afinal por estarem falando em um idioma “comum” - isto é, um protocolo federado - elas podem interagir com outras instâncias.

Os programas federados tendem a ser leves, justamente com a intenção de permitir que administrar uma instância seja um processo descomplicado e simples e não sobrecarregue os usuários e os administradores1, além de tentar baratear os custos da hospedagem desse servidor2, por isso é natural que essas instâncias também acabem por ter um numero limitado de usuários e que acabam muitas vezes contribuindo financeiramente com as despesas de manter o servidor.

Essas instâncias pequenas e geralmente com um numero de usuários relativamente limitado, ajudam a evitar problemas como SPAM e lidarem com usuários abusivos, conteúdo de extrema-direita, etc. Um ponto importante também, é que como cada instância é soberana, ela pode decidir com quais outras instâncias do fediverso ela vai federar - ver e interagir.

Essas redes federadas tem sido bem abraçadas pela comunidade, justamente por serem moldadas a centrar nos interesses do usuário, pensando em como resolver questões que interessam aos usuários da plataforma. A mesma lógica por trás do software livre se aplica aqui, não tem nada desnecessário e oculto, nada que serve aos interesses secretos de uma empresa, não existe espaço para anúncios e rastreamento, tornando mais difícil a penetração de corporações e coisas do gênero.

A federação é um dos melhores exemplos de autogestão, bem comum e aplicação dos conceitos do movimento software livre, como liberdade e respeito dos usuários. Programas democráticos e que colocam o controle na mão dos usuários deve estar na ordem do dia de qualquer entusiasta de tecnologia, programador e ativista.


  1. Inclusive, o Mastodon (similar ao Twitter) inicialmente foi desenvolvido por uma pessoa só. E consegue resolver problemas e ter a eficiência de uma plataforma bilionária com menos de 1/5 dos recursos. ↩︎

  2. Migrating to the RPi ↩︎