Lun. Set 16th, 2024

Butto le basi per la creazione di un social sicuro e non censurabile. Quanto di seguito scritto è da considerarsi una bozza iniziale che andrebbe ovviamente ampliata e dettagliata. Spero che possa trovare l’interesse di qualcuno, individuo o comunità digitale, che abbia la possibilità di svilupparlo.

DESCRIZIONE:

La logica è che ciascuno può inserire il proprio blog o il proprio sito nel network e utilizzando un codice comune per fare parte di un sistema di scambio unico. Chi non ha un sito potrà utilizzare un account free ad esempio Blogger di Google, o partecipare come utente semplice tramite PC o smartphone.

Il funzionamento è il linea di principio il seguente. Ciascuno installa nel proprio blog o sito un codice, verosimilmente in php, che crea uno spazio nella pagina del sito per interagire con gli altri affiliati al network. Gli utenti che si loggano o si registrano in uno qualsiasi di questi blog potranno navigare tra tutti i blog in modo trasparente senza accorgersi neanche di non essere sempre nello stesso sito. Le informazioni degli account, come post, amicizie, like, ecc., vengono sincronizzate in tempo reale tra i blog man mano che cambiano. Le informazioni da condividere saranno solo in pratica solo quelle relative agli account stessi ad alle attività di ogni account (ad esempio appartenenza a gruppi, pagine seguite etc.) il resto rimane nei singoli blog. In definitiva il post in se rimane nel blog o nel sito che lo ha pubblicato, chi lo condivide riporta solo un link al post originale.

Le prerogative che lo renderebbero un social network libero e non censurabile sono le seguenti:

  1. essere open source
  2. non si appoggia ad un server proprietario
  3. deve essere installabile con apk o eseguibile, scaricabili dal sito degli sviluppatori e da ogni affiliato al network
  4. auspicabilmente, ma non essenziale, deve lavorare su VPN

Prima di dire che non è fattibile, soprattutto a chi è esperto in materia, vi prego di leggere tutto. Se conoscete emule avete già una base da cui partire, ma e-Mule i server li usa. Vediamo quindi come strutturare il social.

1 – Il primo punto è facilmente risolvibile, gli sviluppatori lo devono distribuire in GPL. La struttura di base deve essere semplice e solida, e deve esserci sempre la volontà di mantenere la compatibilità a ritroso, questo per permettere lo sviluppo e l’uso diffuso anche se dovesse mancare la sorgente principale del codice.

2 – Il secondo punto è quello che più di tutti potrebbe risultare rivoluzionario, ovvero la mancanza di un server. Il server normalmente serve a contenere sia i contenuti del social come testi, audio, video, immagini, sia i dati degli utenti, degli account, etc.

 Vediamo come gestire le due cose:

2.1 – Premesso che la condivisione di un post consiste in un link al sito o blog in cui è stato pubblicato il post stesso, per impedirne però la perdita in caso di chiusura di uno dei siti o dei blog associati, ne è necessaria la condivisione fisica. I post ed i relativi contenuti multimediali devono quindi anche essere memorizzati in modo condiviso. Per questa funzionalità possono essere gestiti come su e-Mule. Quando ciascuno carica un contenuto diventa temporaneamente il server per quel contenuto, dopo che altri utenti lo scaricano diventano essi stessi server quel contenuto, in questo modo i nuovi download verranno ripartiti tra più utenti. L’algoritmo, contenuto nelle app e negli eseguibili del socia, deve limitare il download da ciascun utente in modo da non sovraccaricarne la banda. Per non sovraccaricare la memoria degli utenti con troppi contenuti, ogni contenuto ha un proprio ID e riporta un numero progressivo di download effettuati, quando i download superano un numero prestabilito, ad esempio 1000, tale contenuto vien cancellato dai primi che lo hanno scaricato (salvo copia locale volontariamente effettuata dall’utente). In questo modo i contenuti saranno replicati un numero finito di volte sul network e sempre dagli ultimi utenti che lo hanno visualizzato. Questa gestione di per se richiede molta memoria e non è semplicissima ma è fattibile nella struttura di questo sistema. Dovranno esistere delle tabelle in cui viene riportato ed aggiornato il numero di download di ciascun contenuto, le app interrogano le tabelle per i contenuti dell’utente periodicamente. Come in un database le tabelle che contengono queste informazioni sono parzializzate, indicizzate e distribuite su un certo numero di utenti, ciascun contenuto multimediale conterrà anche ID della tabella in cui è stato inserito.

2.2 –  I dati degli utenti, oltre che i dati relativi a gruppi social, canali etc. devono essere invece condivisi da tutti, non possono risiedere su un social, per cui devono stare nei dispositivi degli utenti. Come si può fare? Vediamo le soluzioni da mettere in atto:

2.2.1 – Degli account degli utenti gli unici dati da condividere sono quelli relativi a user name e password, e riguardo a gruppi e canali di goni utente, le altre informazioni saranno in locale nel dispositivo dell’utente. I dati quindi saranno in quantità limitata anche se su un grande numero di utenti diventano tanti mega, ma questo lo discutiamo al punto successivo. Se un utente utilizza più dispositivi verrà fatta una sincronizzazione. Chiaramente non esiste chi garantisce su user e password in assenza di server e provider di alcun tipo e con codice open source. Quello che si può fare è generare un codice random in fase di installazione dell’app o dell’eseguibile, l’account viene associato al codice generato (previa verifica di esistenza di codice uguale già in uso). A quel punto per usare più dispositivi le installazioni successive devono ereditare il codice previa autenticazione su altro dispositivo già abilitato.

2.2.2 – Considerando ora che i dati, per quanto molto ridotti per ciascun utente, diventano troppi per poter essere ospitati su ciascun dispositivo quando gli utenti sono vari milioni, quello che si può fare e parzializzare lo storage di questi dati. Ogni utente mantiene un settore di questi dati, ad esempio quelli relativi a 1000 o 10000 utenti (ed esempio). La navigazione nel social avverrà interrogando altri utenti che mantengono altre parti del database. Per capirci si potrebbe decidere di creare progressivamente delle parzializzazioni, ma nano che gli utenti aumentano, ogni parzializzazione avrà un indice. Quando viene fatta una ricerca nel social si interrogano gli utenti che tengono i dati con i vari indici fino all’ultimo indice che sarà evidente mente quello ancora non pieno (ad esempio che ha ancora 99999 utenti). Ciascuno blocco di dati potrà essere mantenuto da varie migliaia di utenti in modo da velocizzare lo sharing delle informazioni. Se ad esempio si stabilisce che ogni utente mantiene i dati di 10000 account e sufficiente che 5000 utenti (solo a titolo di esempio) mantengano questi dati, gli altri 5000 possono mantenere i dati di altri 10000 utenti. Sembra complesso ma non lo è.

3 – L’app e l’eseguibile devono essere facilmente reperibili, anche se viene chiuso il portale degli sviluppatori. Il download non deve essere solo centralizzato, deve essere possibile per gli utenti già nella rete di fare aderire nuove persone per cui ogni utente deve avere una copia dell’apk dell’’eseguibile e deve poterlo inviare facilmente tramite app stessa. Anche il codice sorgente deve essere recuperabile da ogni utente o comunque da tutti gli utenti che decideranno di scaricarlo. Per garantire l’esistenza del social anche se viene chiuso il sito madre, i primo sito dagli sviluppatori per capirci, la logica di funzionamento deve essere mantenuta nel tempo e mai modificata per poter ricominciare lo sviluppo in fasi successive.

4 – per finire la comunicazione tra gli utenti deve avvenire, se possibile su VPN, anche questa di natura open source. Perché una rete del genere possa funzionare senza un server si deve creare una struttura per cui tutti o parte degli utenti possano gestire l’accesso alla rete di nuovi utenti, e i dati di accesso, ovvero lo stato della rete, deve essere aggiornato nel database condiviso e fornito assieme all’apk o all’eseguibile di installazione. In questo viene in aiuto il fatto che l’apk o l’eseguibile possono essere forniti da qualsiasi utente già in rete che essendo già in rete avrà i dati aggiornati anche sulla VPN. Per quanto si possono trovare varie soluzioni per gestire la comunicazione tra dispositivi, in VPN o meno, una soluzione possibile è che ciascun dispositivo faccia al contempo da server e da client, lo stato della rete sarebbe condiviso continuamente con la parzializzazione discussa ai punti precedenti, per cui in ogni momento ciascuno ha potenzialmente migliaia di server da cui connettersi, se qualcuno ha il telefono spento o ha nel frattempo abbandonato il social, l’accesso può avvenire tramite molti altri.

Chi vuole inserire il proprio sito, blog, forum o altro portale nel network deve inserire un codice php nella pagina interessata. Questo codice, sviluppato in open GPL, visualizzerà un’interfaccia nel sito che permetterà agli utenti di loggarsi  come si fa in qualsiasi social. Dopo il log l’utente navigherà tra i siti del network senza dover ripeter il login. Di fatto l’utente tramite un qualsiasi sito navigherà in un vero e proprio social, avrà un interfaccia fissa ed i contenuti varieranno scaricando di volta in volta la pagina dalla sorgente.

I dati di nuovi account, le configurazioni di ciascun account di ciascun utente saranno aggiornati in tutti i partecipanti nel network. I dati quindi non risiedono su un server ma sono ripetuti ed aggiornati in ogni user nel network. I tati saranno solo di natura testuale, non saranno invece caricati i media relativi all’account, come sfondi o foto, questi resteranno nel PC o nel server dell’utente che li ha caricati. Chi non ha un sito o altro tipo di portale può partecipare con il proprio telefonino o PC.

Riepilogo scopo ed obiettivi:

  • I post e gli articoli del proprio sito, blog o del proprio telefonino per mezzo di interfaccia dedicata, possono essere condivisi sul social
  • Da ciascun sito o blog aderente al socilal si può fare il login e navigare in modo automatico in tutto il network
  • Si possono creare gruppi, pagine e comunità come in qualsiasi social, queste potranno essere gestite dall’area dedicata in ogni portale che partecipa al network
  • Tutte le informazioni del proprio profilo (following, amici, etc.), risiedono nel proprio spazio, compresi media di personalizzazione, sfondi ecc. Le informazioni condivise sono solo quelle necessarie per permettere di trovare e farsi trovare da altri utenti. Ad esempio se creo un gruppo, alcune informazioni di questo gruppo saranno condivise per essere trovabili, ma altre saranno scaricate direttamente dall’utente che ha creato il gruppo.
  • Viene condiviso un identificativo per collegare i partecipanti in automatico come in un normale network
  • Chi ha un sito può installare il software del social ed iniziare a farne parte, chi non ha un sito può usare uno dei servizi gratuiti disponibili in rete per fare siti e blog. Chi non vuole avere ne un sito ne un blog può entrare nel social tramite app, per PC e per smartphone. La differenza tra chi fa parte del network con sito o blog e chi invece vi fa parte solo tramite app è che quest’ultimi non sono direttamente raggiungibili ma saranno visibili sono dopo che l’utente sarà loggato sulla piattaforma, che comunque può restare attiva in background.

Lascia un commento

Translate »
error

Enjoy this blog? Please spread the word :)

Telegram