Des de fa ja temps i gràcies a instal·lar diferents tipus de programaris en la banda del servidor, estic observant que, en funció del programari que s’instal·li i del que faci (o no faci) el seu primer usuari, el comportament és força diferent.
Vull centrar-me en com es construeix la federació de cadascun d’ells, com comencen a federar. El que tenia entés és que un servidor federa amb un altre servidor (servidor remot) quan un usuari local comença a seguir un dels seus usuaris. A partir d’aquest moment diem que els dos servidors, local i remot, ja “federen”. Totes les publicacions del usuari remot seguit aniran a parar la línia de temps del usuari local i qualsevol interacció del usuari local amb l’usuari remot serà rebuda per aquest.
En el seu dia vaig copiar i traduir al català aquest diagrama que explica com federa un servidor #Mastodon.
En el gràfic veiem com es comporta un servidor Mastodon, programari responsable de que entengui aquesta com la manera natural i lògica de federar. Fixem-nos en la cantonada de baix a la dreta, “el tut del @usuari mai arribarà al meu servidor”. Recordem-ho.
Em sembla natural que si ningú del servidor local interacciona en absolut amb un tut d’un usuari d’un servidor remot i aquest servidor local no federa encara amb aquest servidor remot (ningú dels usuaris locals hi ha interaccionat mai), en cap cas haurien de federar. Doncs bé, hi ha programaris que es comporten diferent.
Mastodon
Com a part de l’analisi he instal·lat Mastodon en la Raspberry i hi he creat el primer usuari. Per ara no segueix ningú, no el segueix ningú i no ha publicat res de res. Evidentment totes les línies de temps estan buides, no hi ha cap activitat i el servidor no està federant amb cap servidor remot (lògic!).
Podem confirmar que no federa en absolut gràcies a la API de Mastodon, afegim /api/v1/instance/peers
desprès de la seva URL i ens retorna un llistat en format json de tots els servidors que té federats. Quan ho fem ens respon això: [], o sigui, res. El tinc funcionant des de fa 12 hores i segueix així, buid de contingut i aïllat del #fedivers.
La idea és fer un comparativa amb diversos programaris diferents per a veure què passa quan un usuari remot comença a seguir al usuari local que, recordem, no segueix ningú i no ha publicat res de res. En els diferents programaris serà el mateix usuari remot qui començarà a seguir al primer i únic usuari local. L’usuari remot serè jo mateix, des d’el meu compte spla. Fent-ho així no introduim variables indesitjades.
Començem! des de l’usuari remot spla a mastodont.cat faig la cerca del usuari local sol i aillat del fedivers. Veig activitat en el log del nou servidor Mastodon:
L’usuari remot spla encara no ha començat a seguir l’usuari local mamut per tant el servidor local encara no hauria de federar amb mastodont.cat ni amb cap altre. Ho comprovem i veiem que la cerca des d’un servidor remot no fa que federin:
Ara sí, ara spla ja està seguint a mamut. Veiem què ha passat:
Ja ens apareixen mastodont.cat (lògic) i cybre.space (perquè el servidor local on és mamut ha carregat els tuts de spla fixats en el seu perfil i un d’ells fa menció al usuari cassolotl de cybre.space):
I què passa amb masto.donte.com.br, queer.party, pdx.social i fosstodon.org? per què hi son? El motiu és que el programari Mastodon també ha recuperat i mostrat en la línia de temps federada del nou servidor on és l’usuari mamut, uns quants tuts del usuari mencionat per spla, cassolotl, tuts que mencionen usuaris d’aquests altres quatre servidors. El que Mastodon fa és omplir “una mica” la línia de temps federada del nou servidor amb els tuts fixats en el perfil del usuari remot spla i si aquests tuts mencionen usuaris d’altres servidors també en carrega uns quants en la mateixa línia de temps federada.
Si a partir d’aquí no hi ha cap activitat de seguiment nova, així es queda, el nou servidor Mastodon no començarà a federar amb cap altre servidor més.
Segona part: l’usuari local mamut comença a seguir a spla de mastodont.cat. Veiem què passa. De moment, tots els tuts de spla que eren a la federada ja son visibles en la línia de temps Inici de mamut però no hi ha nous servidors federats, segueixen els mateixos:
Els tuts dels usuaris que responguin a spla comencen a apareixer en la federada del servidor local perquè ja son usuaris remots coneguts, però no apareixen les respostes que fan a spla sinó que apareixen els tuts originals que ells facin.
Tercera part: l’usuari local mamut publica el seu primer tut, el inevitable “Hola món!”. No rep cap interacció remota, tot segueix igual:
Quarta part: l’usuari remot spla@mastodont.cat impulsa el “hola món” del usuari local mamut. Aquest és el resultat, moltíssims servidors federats nous! Ara el total de servidors federats ha pujat de cop a 138! A més, el backend ha fet un “backfilling”, ha carregat uns quants tuts fixats en el perfil d’usuaris remots en la línia de temps federada, corresponents a alguns dels nous servidors federats.
Pleroma
Després d’instal·lar Pleroma i crear el primer usuari pl, modifico la configuració per defecte del back-end ja que Pleroma ve de fàbrica amb Allow relay
activat, configuració que pot alterar i molt la prova comparativa que estic fent.
Ho desactivo i segueixo el mateix patró: el primer usuari pl no segueix a ningú, no és seguit per ningú i no ha publicat res. Mirem si hi ha servidors federats, hauria de ser zero.
Correcte, al consultar el mateix endpoint /api/v1/instance/peers
veiem que retorna []
.
Bé, seguim. Des de l’usuari spla de mastodont.cat cerquem l’usuari pl d’aquest Pleroma, però només el cerquem sense començar a seguir-lo. Analitzem el log de nginx:
Mirem si hi ha novetats en la federació del Pleroma. Primera diferència respecte a Mastodon, mastodont.cat ja és a la llista de peers
. Pleroma ja el considera com a servidor federat i això que l’usuari local no és encara seguit per spla de mastodont.cat:
Ara spla ja segueix a pl. Novetats a la federació de Pleroma:
Pleroma no mostra res en la línia de temps Xarxa coneguda
però ha inclòs en la seva federaciò al servidor remot cybre.space
. Recordem que en un del tuts fixats de spla es menciona al usuari de cybre.space cassolotl. Segona diferència, Pleroma no carrega cap tut del usuari cassolotl com si fa Mastodon. Passades 24 hores segueix tot igual, amb els dos servidors federats cybre.space i mastodont.cat.
Segona part: l’usuari local pl comença a seguir spla@mastodont.cat. Veiem què ha passat. Res, no hi ha canvis en el número de servidors federats:
Les publicacions dels usuaris que responguin a spla començen a apareixer en la Xarxa Coneguda (la línia federada a Mastodon) però també hi apareixen totes les respostes que li facin a spla (Mastodon no mostra cap resposta que els usuaris no seguits facin al usuari remot seguit).
Tercera part: l’usuari local pl publica l’inevitable “Hola món!”. No rep cap interacció remota, tot segueix igual:
Quarta part: l’usuari remot spla@mastodont.cat impulsa el “hola món” del usuari local pl. L’augment de servidors federats puja de sobte fins a un total de 143! Una nova diferència amb Mastodon, Pleroma no ha fet “backfilling”, no ha carregat publicacions en la Xarxa Coneguda corresponents a alguns usuaris dels nous dels servidors federats. Cap ni una.
Akkoma
Ara li toca el torn a #Akkoma, un fork de Pleroma. Nova instància creada i el seu i únic usuari, rpi, no segueix ningú, no és seguit per ningú i no ha publicat res. Akkoma no ve de fàbrica amb Allow relay
activat per tant no s’ha de desactivar.
Mirem els peers
que té, en aquestes condicionals inicials no hauria de tenir cap servidor federat:
Començem les proves. Des de l’usuari spla de mastodont.cat cerquem l’usuari rpi d’aquest Akkoma, però només el cerquem sense començar a seguir-lo. Analitzem el log de nginx:
Tornem a mirar si el llistat de servidors federats segueix sent zero:
Hauria de ser zero, no? només s’ha fet una cerca per a veure si aquest servidor Akkoma té un usuari anomenat rpi, no s’el segueix encara. Doncs Akkoma, igual que Pleroma, ja inclou mastodont.cat en la llista de servidors federats tot i que encara no hi ha cap lligam.
Bé, seguim, ara spla@mastodont.cat ja segueix al usuari rpi local. Veiem que ja apareixen publicacions en la Xarxa Coneguda!? Recordem que l’usuari local rpi no està seguint a ningú. Per què rep Akkoma publicacions remotes d’usuaris totalment desconeguts per rpi? A més, son publicacions de dos i tres dies enrere quan aquesta instància Akkoma encara no existia:
Mirem quants servidors federats hi ha ara. 13, ja en té 13:
No fa com Mastodon o Pleroma que carreguen els tuts fixats de spla@mastodont.cat i afegeixen al llistat de servidors federats tots els dels usuaris mencionats en algun d’aquests tuts fixats. El criteri de Akkoma per a afegir servidors no l’entenc. Akkoma fa backfilling
però rar, sembla aleatori.
Si ens fixem en aquesta publicació que Akkoma ha decidit publicar en la Xarxa Coneguda de l’instància local de rpi, veiem que és d’un usuari totalment desconegut per spla@mastodont.cat i no mencionat en cap dels seus tuts fixats. Sí que és un tut fixat en el perfil d’aquest usuari desconegut però, d’on el treu Akkoma?
Segona part: l’usuari local rpi comença a seguir a spla@mastodont.cat. Veiem si hi ha canvis en el número de servidors federats:
Els mateixos 13 servidors d’abans. Les publicacions dels usuaris que responguin a spla començen a apareixer en la Xarxa Coneguda (la línia federada a Mastodon) però també hi apareixen totes les respostes que li facin a spla (Mastodon no mostra cap resposta que els usuaris no seguits facin al usuari remot seguit).
Tercera part: l’usuari local rpi publica l’inevitable “Hola món!”. No rep cap interacció remota, tot segueix igual, els mateixos 13 servidors federats que ja tenia:
Quarta prova: l’usuari remot spla@mastodont.cat impulsa la primera publicació de rpi. Miro els peers
veient que ja federa amb 182 servidors!
Akkoma “federa” molt i ràpid, sense cap criteri que jo entengui. No paren d’arribar publicacions d’usuaris totalment desconeguts a la Xarxa Coneguda… sembla irònic:
Akkoma decideix que son usuaris coneguts quan no ho son en absolut.
Fins aquí aquest exercici que he volgut fer per a intentar entendre el que venia observant des de feia algún temps. Alguna vegada havia publicat que Akkoma, i per tant Pleroma per ser el primer un fork del segon, federaven de manera ilògica. Error meu, ara ja sé que és Akkoma qui fa “coses rares”.
A Akkoma ens podem oblidar totalment del diagram del inici d’aquesta prova.
Contingut extra: ha passat una hora de la finalització d’aquestes proves i Akkoma ja federa amb 645 servidors remots! va afegint servidors a la llista sense cap acció dels usuaris locals:
Segons em diuen, Akkoma obté totes les publicacions fixades en el perfil del primer usuari remot que impulsa la publicació del usuari local però també agafa totes les respostes que han rebut tots aquestes publicacions fixades i va afegint els servidors dels usuaris que han fet aquestes repostes a la llista de servidors federats.