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.

Poliverso :friendica: reshared this.

in reply to Andrea

@Andrea Salve a tutti! È il mio primo post sul poliverso e spero sia utile. Su f-droid avevo visto un app https://www.manyver.se/ che, non sono un tecnico, fa più o meno le cose che descrivi. Non so se la conosci in caso ignorami tranquillamente

Poliverso :friendica: reshared this.

in reply to Max

@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.
@Max
Questa voce è stata modificata (1 anno fa)

Poliverso :friendica: reshared this.

in reply to Andrea

@Andrea
Activitypub anche a me non piace granché, sto provando a dargli una chance da qualche anno ma ancora non mi convince (perlomeno per quanto riguarda il suo utilizzo come base di un social network).

Secondo me se si vuole andare oltre si dovrebbe puntare al p2p.
Io penso che ormai al giorno d'oggi la "scusante" del "eh ma devi essere sempre online per ricevere" non regge più come una volta, dato che ormai Fdroid ci ha abituato da anni a tenere sempre le app attive in background per ricevere le notifiche in autonomia. Lo facciamo già pure con app di messaggistica centralizzate, non capisco perché tutti sono così restii nel farlo con app decentralizzate o addirittura distruibuite come quelle p2p.
Per quanto riguarda il consumo della batteria io non so se sono fortunato o cosa, ma a me non tirano giù granché le app in background onestamente, ci faccio due giorni con una carica (anche quando provai Briar per qualche settimana, non notai chissà quale calo in tutta onestà).
Probabilmente questo dipende anche dal tipo di utilizzo che se ne fa del proprio dispositivo: io il telefono lo uso praticamente quasi solo per scrivere messaggi a conoscenti AFK, e fare telefonate audio/video agli stessi, ma temo di essere un caso particolare, chi ne fa un uso "normale" (più che normale a me viene da dire compulsivo, sinceramente) è molto più incline a vivere col powerbank in tasca, a prescindere dalle app in background o meno.
Btw, c'è da dire però che un social p2p sfavorirebbe gli utenti desktop, ma tanto ormai sono tutti attaccati al telefono, quindi non credo che sarebbe poi così grave la faccenda (lo dico pure contro il mio interesse). In caso magari puoi pensare di integrare una sincronizzazione dell'account su più dispositivi, potrebbe essere un buon trade-off, forse.

Detto ciò, comunque, questa è solo la mia opinione su cosa piacerebbe virare a me, da semplice utente fruitore. E di social o cose simili ne esistono già, per quel che so, anche se non li ho approfonditi granché ancora.
In ogni caso prima di pensare a qualcosa di nuovo, fossi in te proverei a cercare se esiste già un protocollo idoneo sul quale poter costruire il tuo social, (non mi riferisco esclusivamente a un protocollo distribuito, anche uno decentralizzato se è questo che vuoi), onde evitare situazioni alla xkcd 927. Che poi comunque se ne adotti uno già pluritestato e funzionale, è meglio IMO, (se ti consente di implementarci sopra quello che devi, ovviamente).

Poliverso :friendica: reshared this.

in reply to Thushi

@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)

Poliverso :friendica: reshared this.

Unknown parent

Andrea
@Dummy-X 🇮🇹 Hmmm, forse ha degli aspetti in comune, ma non la vedrei in questo modo.

Innanzitutto, io sto differenziando app e protocollo.

Il protocollo si basa su un sistema di server distribuiti, statici, appartenenti a ciascun singolo utente, e su client che comunicano direttamente con questi server (senza un intermediario in mezzo come un server mail).
Ma qui, alla fine, son tecnicismi..

La "app ufficiale", ossia l'implementazione client di riferimento, io la immagino fatta un po' più come Mastodon. Rapida, dinamica, non necessariamente fatta a forum.. purtroppo ad oggi roba come Google Gruppi la maggior parte della gente non vuole manco capire come si usi xD
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..