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?
like this
reshared this
Poliverso - notizie dal Fediverso ⁂
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 😁
Andrea likes this.
Andrea
in reply to Poliverso - notizie dal Fediverso ⁂ • •Poliverso & Poliversity likes this.
Poliverso & Poliversity reshared this.
Andrea
Unknown parent • •Poliverso & Poliversity likes this.
Poliverso & Poliversity reshared this.
Andrea
Unknown parent • •Poliverso & Poliversity likes this.
Poliverso & Poliversity reshared this.
Andrea
Unknown parent • •@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
Dummy-X 🇮🇹 likes this.
Luca Nucifora
in reply to Andrea • • •Andrea
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..