# Titolo: Streaming decentralizzato di contenuti audiovisivi

## TODO

* [ ] Scrivere meglio gli use cases nel dettaglio, facendo delle user stories, concretizzando meglio le situazioni nelle quali gli utenti possono trovarsi
* [ ] Stilare e riempire l’elenco dei software che esistono con focus sulle caratteristiche salienti tipo
  * [ ] descrizione del software
  * [ ] funzionalità utente
  * [ ] architettura (protocolli, architettura di rete, decentralizzazione (quanto decentralizzato)
* [ ] Definire i termini/nomenclatura
  * federalizzzazione, decentralizzazione, cosa significa decentralizzato etc
  * proprietario/non proprietario (freemium/totalemtne a pagamento);
  * sistema di categorizzazione (categorizzare cosa ci pice / non ci piace ad esempio del front-end vs backend separatamente e la licenza)



~~Definire una lista dei desideri personale per una piattaforma decentralizzata e fare una analisi delle soluzioni esistenti
se non esiste niente che ci soddisfi scrivere via codice e documentazione "normale" come si potrebbe realizzare con le soluzioni che già ci sono con meccanismi di boostrap decentralizzati per aggirare la relatività della rete (thor, syncting, tahoe laps, ipfs, trackerless torrents, protpcolli p2p, think, wireguard, convidivisione di file, jitsi, mappa delle vicinanze (su effettiva decentralizzazione)~~

[atrent: i punti di domanda lasciali, sono domande a cui dovrai rispondere, li terrei tutti]

## DONE

* [x] Stabilire dei concetti di base

## Punti generali:
* Stabilire dei concetti di base
* Definire degli use cases/user stories e usarli come punto di partenza per fare entrambi i collegamenti alla parte tecnica e tecnocivismo
  * Cittadinanza digitale e tecnocivismo: leggere il libro e spiegare un pò di cosa parla collegandoci a:
  * Web 3.0
  * Possibili difetti del web attuale, "molto centralizzato e molto single-point-of-failure-or-control"
    * c’è bisogno/esigenza davvero di una piattaforma del genere? NON prestazionale MA decentralizzazione, sottrarre il controllo
  * Decentralizzazione: cos'è (quindi per noi il P2P generico) vs sistemi distribuiti classici centralizzati  
    * Cosa implica questa decentralizzazione rapportato a come funziona il web ora
      * Quindi possibilmente riappropriazione dei dati personali
      * "direi anche comportamenti (reificati nei dati, ok)"? sono un attimo confuso su questo punto
      * Sicurezza/crittografia: Mi viene in mente tutto il discorso "never trust a client" che potrebbe essere un problema in un approccio simile, quindi un modo per crittografare questa piattaforma che sia con chiavi pubbliche o simili
        * https://medium.com/@berniedurfee/never-trust-a-client-not-even-your-own-2de342723674
        * https://www.wearenova.co.uk/nova-blog/when-it-comes-to-online-security-why-you-should-never-trust-a-client
        * https://jeffjadulco.com/blog/never-trust-client

Parte tecnica:
* Introduzione su cosa vogliamo trattare nello specifico in nella tesi ovvero streaming di audio/video one to many (multicast?) e one to one (jitsi/bluebutton/etc)
* Definire una lista dei desiseri personale per una piattaforma decentralizzata e fare una analisi delle soluzioni esistenti
  * se non esiste niente che ci soddisfi come si potrebbe realizzare con le soluzioni che già ci sono con meccanismi di boostrap decentralizzati per aggirare la relatività della rete (thor, syncting, tahoe laps, ipfs, trackerless torrents, …)
  * Resilienza di una piattaforma nel passare da decentralizzata a centralizzata in caso di successo
    * quindi resilienza nel volere il controllo dei dati
  * Testing delle piattaforme esistenti e della nostra se ne creiamo una in base a dei criteri da definire, esempio: facilità di utilizzo, indicizzazione, performance dei protocolli (latenza, larghezza di banda, conversione dello stream in stream a qualità inferiore, …)
    * definire un metodo e il più possibile standard per testare le diverse soluzoni software per non invailadare i dati raccolti
* Moderazione dei contenuti come viene fatta? Ha senso moderare in un ambiente decentralizzato? Che problemi possono sorgere da questo? Tipo hate speech, etc
* Conclusione: possibile punto di arrivo finale un twitch più a modi coference-room con interazione tra utenti e streamer?


## Altre domande da tenere in considerazione (for later!)
Facciamo anche un analisi dei sistemi illegali (ovvero  tipo streaming illegale di contenuti DRM)? Esistono leggi che regolano questo ambito (vedi Digital Services Act)

Decidere se trattare la parte del layer di trasporto che infulenza la progettazione del layer app (esempio parte 7 del paper MPEG21)

Magari come inizio avrebbe senso prendere la lista dei protocolli dal PDF del politecnico del 2008/2011 e vedere se esistono ancora oltre ad analizzare quelli nuovi

## Come affrontare la parte bibliografica
come è stato affrontato il sistema di streaming multicast su tcp/ip quindi la storia iniziale

come delegare ad verso la fine della pipeline di connessione tcp/ip la distribuzione per arrivare alla decentralizzazione

single point of failure (come sorgente)

difficile profilare

CDN less and multicast less

## link articoli
* [Il futuro passa dal WEB 3 e NFT - In Evidenza - ANSA.it](https://www.ansa.it/sito/notizie/economia/ofc/in_evidenza/2022/04/05/il-futuro-passa-dal-web-3-e-nft_b495a1ed-0cfc-4ebc-a074-6eeec055ebf9.html)
* [Digital Services Act must go full mile to better protect consumers, not take half-measures](https://www.eubusiness.com/Members/BEUC/digital-services-act-protect-consumers/)
* [Twitch is reportedly looking at ways to make itself worse | PC Gamer](https://www.pcgamer.com/twitch-is-reportedly-looking-at-ways-to-make-itself-worse/?utm_campaign=socialflow&utm_medium=social&utm_source=facebook.com&fbclid=IwAR3ku9H1lx0SSyQemGBmRhp5BTPZSStb-3MuXUpU8w4fYrITjz9ZgVbkj8E)


## link inerenti
* [Tinc (protocol) - Wikipedia](https://en.wikipedia.org/wiki/Tinc_(protocol))
* [tinc](https://www.tinc-vpn.org/)
* [Noise Protocol Framework](https://noiseprotocol.org/)
* [IPFS Powers the Distributed Web](https://ipfs.io/)
* [Create and Multistream Live Video | Restream](https://restream.io/)
* https://en.wikipedia.org/wiki/P2PTV
* https://en.wikipedia.org/wiki/Peercasting
## protocolli e piattaforme streaming p2p (alcuni sono abbandonati)
* https://en.wikipedia.org/wiki/Ace_Stream
* https://en.wikipedia.org/wiki/Tribler
* https://en.wikipedia.org/wiki/PULSE_(P2PTV)
* https://strivecast.com/
* http://imedia.disi.unitn.it/P2PStreamers/grapes.html
* http://imedia.disi.unitn.it/P2PStreamers
* https://dlive.tv/
  * blockchain-based live streaming, molto simile a twitch e la soluzione più completa a primo impatto, anche se sembra sia utilizzata dalla alt-right wing per fare hate-speech quindi rafforza il mio dubbio sulla necessità di trattare anche questo argomento
* http://www.scvi.net/stream/soft.htm
* http://peerstreamer.org/index.html
* https://github.com/novage/p2p-media-loader
* https://github.com/nimigeanu/p2p-live-streaming-platform (basato su media loder sembra)
* https://en.wikipedia.org/wiki/Jitsi
* https://en.wikipedia.org/wiki/BigBlueButton