Salta al contenuto principale


Un protocollo social più decentralizzato di ActivityPub


ActivityPub è un buon protocollo, ma secondo me non perfetto. Resta troppo incentrato sull'avere un server dedicato principale grosso. Ciò si vede nelle sue implementazioni server, con software come Mastodon, Pleroma, e chi più ne ha più ne metta: software relativamente pesanti e difficili da ospitare, cosa che va a peggiorare l'accentramento perché meno gente avrà possibilità di ospitarli e quindi andrà su istanze già presenti.

Non so se esiste già, nel caso fatemelo conoscere, altrimenti probabilmente potrei idearlo io, un protocollo più semplice e molto più decentralizzato, basato su server più stupidi e client più intelligenti.

Rimuovere completamente i server causerebbe una peggiore esperienza utente: ogni client dovrebbe rimanere acceso nel momento in cui gli amici si collegano per scaricare nuovi messaggi, inoltre alcuni provider bloccano le connessioni in entrata. Sarebbe ideale, ma è irrealistico.

Per questo, si sceglie di tenere il minimo indispensabile come server: uno HTTP che serve file statici. Un tale server può essere ospitato ovunque, persino sul router di casa, ma in ogni caso i provider che ne danno di gratuiti online sono tantissimi.

Qui viene il bello: ogni utente ha un server e un dominio o indirizzo IP statico, si identifica con un URL (che può essere la root, oppure una cartella, nel caso si voglia avere altra roba Web sullo stesso dominio).

Il client del social (la app) chiede come login i dati di accesso FTP, SSH, Git, o chissà quali altri sistemi di caricamento di file via Internet, e tutti i contenuti di ogni utente (i messaggi, i file, i like messi, ...) vengono caricati sul server HTTP.

Quando un client vuole aggiornare il feed degli utenti seguiti, scarica un file d'indice (come un feed RSS) da ciascun server, e scarica eventuali nuovi elementi lì segnati.
L'unico potenziale problema qui può sorgere in caso si seguano centinaia e centinaia di utenti, perché la app dovrà scaricare ciascun file ad ogni aggiornamento. Ovviamente, usando un formato di dati efficiente e compresso il problema si riduce, così come si riduce spezzettando l'indice in segmenti, oppure si potrebbero integrare nel protocollo delle liste di aggregazione opzionali (che richiederebbero un server fatto apposta), a cui ciascun utente può passare il proprio elenco di utenti seguiti, e la sua app chiederà le differenze di tutti al server di aggregazione anziché alle centinaia di serve degli utenti.

Per i messaggi privati, si può semplicemente implementare un sistema di cifratura, così che le app possano semplicemente caricare i contenuti privati assieme a quelli pubblici sul server HTTP, e anche se terzi potrebbero scaricarli andando a frugare tra i file dei server altrui, non potranno leggerli.

Che ne pensate?
in reply to Andrea

@Andrea non sono un tecnico, ma L'impressione è che tu voglia far accoppiare RSS con SMTP, in una stanzetta chiusa con una chiave di cifratura...😁 😄 🤣

Il ché, alla fine, non mi sembra neanche una cattiva idea e, comunque, è sempre meglio di hubzilla 😁
in reply to Poliverso - notizie dal Fediverso ⁂

@Poliverso notizie dal fediverso hmmm.. Ora che hai detto SMTP mi ci hai fatto pensare: anche usare direttamente le mail non sarebbe un'idea tremenda. Un po' come DeltaChat, ma fatto a social network, non a messaggistica... Se solo poi non ci fosse il problema di vedere profili e discussioni senza seguirle già. Probabilmente la cosa migliore è con sta roba dei server HTTP.
Questa voce è stata modificata (2 anni fa)
Unknown parent

Andrea
@Max Manyverse lo conoscevo, l'ho riprovato qualche settimana fa e: non è viabile. Troppo complicato, persino io non sono riuscita a far arrivare i miei post ad altre persone che hanno provato a seguirmi. Inoltre pare che su rete mobile dia rogne. Il concetto sì, è simile, ma la specifica del protocollo deve essere diversa per rendere il software effettivamente utilizzabile, anche da chi non ha competenze tecniche.
Questa voce è stata modificata (2 anni fa)
Unknown parent

Andrea
@Thushi io direi che il P2P nudo e crudo da meno problemi su desktop che su mobile. Su dispositivi Android con poca RAM e su dispositivi con ROM marce di Android (quelle degli OEM), le app in background si chiudono spessissimo, e lo so per esperienza personale. Sui dispositivi della mela marsa, le app in background restano sempre freezate e basta. Inoltre le connessioni mobili danno spessissimo problemi con il P2P (anche qui, esperienza personale, con Vodafone, e 3 quando ancora non era Wind3, almeno)
in reply to Andrea

@Andrea ma studiare activitypub e proporre miglioramenti nel senso desiderato?
in reply to Luca Nucifora

@Luca Nucifora eh e come? stai praticamente quasi creando un protocollo da capo così :'/. ActivityPub è troppo incentrato sui server attivi, il massimo che si può fare è ideare qualche integrazione AP in un protocollo come ho pensato il mio. Fosse anche prevedere un sottoprotocollo per i bridge. Anzi, togliamo il forse, è qualcosa da fare.

Comunque, ho anche continuato a cercare, ma nessun protocollo già esistente funziona in modo abbastanza vicino a cosa vorrei io.
Io magari inizio a scrivere qualcosa (documenti, non codice) a riguardo, almeno per descrivere l'idea a linee meno grosse di cosa il mio post di Friendica dice. Magari trovo gente a cui l'idea interessa particolarmente..
Questa voce è stata modificata (2 anni fa)