Pour nous contacter : soyez au rendez-vous sur IRC ! ⋅ Parcourir l'archive musicale Dogmazic ⋅ Notre Blog
Notre Documentation

Meshweb Pseudoradios

3 juil. modifié dans Le p2p
Tenez c'est ma grosse news du week-end dernier mais c'est compliqué à appréhender, ça touche au libre musical mais au niveau technique logicielle, alors j'en parle ici mais si je vous perds en route dites-le moi !

Voilà, le côté libre c'est que non-commercialement même les licences peu libres laissent diffuser et copier ; alors pour un service de radio qui est noncommercial c'est cool, y compris pour proposer du téléchargement ou de l'écoute à la demande…

Alors si on imagine un P2P ou les pairs sont des stations radio, ça va vite de répliquer, au fil de l'écoute et en un clic, un titre libre qu'on aime bien pour le mettre illico en rotation dans sa propre station !

Boh évidemment c'est beaucoup plus simple pour moi si c'est des pseudoradio avec chaque flux propre à chaque auditeur, en listourne alétoire musicale permanente, ça évite de gérer un flux général qui devrait être synchronisé chez tous les auditeurs. Accessoirement, ça les laisse zapper une chanson qui leur plait pas !

Après pour rigoler un coup si les logiciels clients savent avoir un répertoire local privé non diffusé au monde entier pour y ranger ce qu'ils clonent ; bah ça coute rien un bouton magique qui repère dans les metadonnées des morceaux ce qui ressemble à une url de licence libre ou ouverte pour comme ça qu'on pique à gauche à droite y compris chez les pirates, mais qu'ensuite sans fouiller on ne réplique dans sa propre station que du légalement "cleared" !

Bon, level 2 !

Le P2P c'est exigeant, il faut des trackers centralisateurs, il faut des redirections de port dans la BoxFAI via disons une réquète uPnP pour qu'on puisse servir de la donnée vers l'extérieur, bref c'est du boulot…

Boh évidemment c'est beaucoup plus simple pour moi si c'est pas sur le clearnet, sur l'internet ordinaire, mais sur un réseau "de confiance" de surcouche ou les IPs sont en connexion directe et complète. Comme ça n'importe quel pair peut faire tracker, et pas besoin de rediriger un quelconque port.

Quand je dis "beaucoup" c'était la PoC du projet, montrer que les réseaux de surcouche type Yggdrasil avec yggdrasil-network, ou Hyperboria avec Cjdns (le logiciel qui fourni la pile réseau)…

Bah…

Décentraliser quoi que ce soit, avec eux, est super, mais super plus facile !

Donc en février 2024 ça m'a pris deux semaines à temps partiel d'avoir un réseau P2P, un logiciel, et des stations radio en ligne.

En juin de la même année, pour rire, y'a eut l'ajout d'un support pour la vidéo à la demande.

Après ça a plus trop bougé jusque janvier quand ce logiciel, Cjdradio, a gagné rapidement une capacité à gérer, s'il fait tracker, en même temps sur la même instance, Cjdns et Yggdrasil.

Et ce week-end histoire de berner des gens pour qu'ils montent des stations, parce qu'en vrai y'en a que quatre au monde :(, j'ai fait un simple client web, nommé Meshweb Pseudoradios qui ne sait pas servir de musique qu'on aurait, mais uniquement jouer, dans le navigateur.

Bien sûr si on a Ygg, Hype, ou les deux à la maison, qu'il ait une route pour toucher les stations de pseudoradio qui propose effectivement l'audio. Bon en un week-end j'ai pas fait un joli thème de player bien graphique !
Mais c'est en prod ! capture d'écran :



Pour creuser un peu voici quelques infos & liens :

Rejoindre un réseau de surcouche est relativement facilité depuis l'arrivée d'Yggdrasil il y a une huitaine d'années, car sa documentation est simple et surtout, non dispersée. J'ajoute qu'il est pré-compilé dans les dépots logiciels de beaucoup de systèmes d'exploitation, et même, un "exécutable" pré-construit pour Windows existe.

N'oubliez pas un truc, crucial, le truc, à savoir : le principe de tout réseau de surcouche et que toutes les machines de ce réseau sont mises en connexion directe via la création d'une interface réseau "tunnel" qui s'appelera, typiquement, tun0 !

Alors bien sûr tout service disponible qui écoute sur votre machine, vous pouvez vouloir qu'il soit atteignable, ça peut-être souhaitable. Ou non (par exemple si vous avez un répertoire "réseau" partagé dessus avec les photos de famille, vous voulez pas que les autres machines le voient).

OK ça fait peur, mais en fait c'est très simple. Disons que vous avez Windows, dans ce cas quand "tun0" va commencer sa riante existence, le Pare-Feu de Windows va vous demander quel politique lui appliquer, en vous ouvrant immédiatement une fenêtre pour vous demander si ce nouveau réseau est un "réseau domestique" ou "un réseau public". Et donc il n'est pas domestique. Fin de l'histoire !

Si y'a encore quelques linuxiens survivants par ici, votre pare-feu pourrait bien être ufw, et pour être tranquille, il suffit de lui dire "Refuse le traffic entrant sur tun0" avec un simple "ufw deny in on tun0" sans même attraper votre dispositif de pointeur graphique !

Après ça vous avez la latitude d'ajouter au cas par cas les services que vous souhaitez rendre "ouvert" sur le réseau de surcouche ! Mais la doc d'Yggdrasil mentionne beaucoup concisément que moi cet intéressant point !

https://yggdrasil-network.github.io

Bon sinon vous voudrez peut-être si vous avez Yggdrasil, Cjdns, ou les deux, accéder à la page de l'application web dont ce message est le sujet et écouter un peu de musique. Si vous les avez pas déployés, les liens suivants ne mènent nulle part !

http://[200:abce:8706:ea81:94:fcf4:e379:b988]/meshweb-pseudoradios/ (ygg)
http://[fc71:fa3a:414d:fe82:f465:369b:141a:f8c]/meshweb-pseudoradios/ (cjdns)

(notez que, bonus bonus, ces deux réseaux chiffrant de bout-en-bout toute connexion qui les utilise, une page http via eux est chiffrée dans son transport. C'est pourquoi ce ne sont pas des lien https ; un chiffrement plus haut dans la pile serait redondant et en plus c'est du boulot épargné !)

À part ça si vous voulez vous-même partager de la musique via une station de P2P pour les "meshes", que vous ayez l'un, l'autre, ou les deux, ce sera par ici :

https://github.com/shangril/cjdradio

Bon là j'ai fini mais quand même, pour enfoncer le clou, une intro à ces technologies, en anglais, de notre netlabel Crem Road records, qui en tire bien partie !

https://cremroad.com/hyperboria-yggdrasil

Réponses

  • Si j'ai bien compris - j'ai dû relire plusieurs fois-, c'est un protocole d'échange en p2p de listes de lecture autohébergées. Un peu comme comme un gemini pour l'audio.
    J'ai bon ?
  • oui, exactement, avec les débits résidentiels actuels et la légèreté du mp3, un titre met une fraction de seconde à sortir de chez quelqu'un qui a la fibre ! Alors, on peut écouter une "station" en particulier, en lui demandant régulièrement un titre au hasard, ou, toutes les stations aléatoirement, en choisissant un titre au hasard d'une station au hasard à chaque nouveau titre à jouer.
  • 14 juil. modifié
    Pour répondre aux questions que personne ne se pose à propos des réseaux "techniquement des darknets, mais, pas vraiment de la trempe de ce qu'on met généralement derrière le mot (genre, anonymisation pour faciliter les activités pas légales)" que sont Hyperboria et Yggdrasil, j'ai eu l'occasion d'en reparler hier, voici donc à peine remanié une discussion d'avec un curieux dans un tchat :


    Cjdns a lancé le truc vers 2012 mais de nos jour un réseau quasi identique de cinq ans son cadet, Yggdrasil, est d'avantage utilisé
    il est plus simple à rejoindre pour les gens
    il y a en gros 10 fois plus d'IPs sur Yggdrasil (propulsé par yggdrasil-netwrok) actives que ce qu'il y a sur Hyperboria (propulsé par Cjdns)

    les points clés sont :
    -tout ce qui transite est chiffré de bout en bout
    -chaque machine ayant le logiciel est un "peer" du réseau : pour rejoindre le réseau il faut connaitre un peer ou plusieurs
    -les peers qu'on dit public donnent à tout le monde le mot de passe pour qu'on s'y connecte ; sinon n'importe quel peer peut créer un mot de passe pour un pote
    -sur le réseau local, on peut activer l'autopeering, ainsi sur un même médium réseau les machines s'autodécouvrent et autoconfigurent
    -l'adressage est basé sur la cryptographie ; on commence donc par générer une paire de clé, qui aussi longtemps qu'on la perd pas et qu'elle reste confidentielle, peut aller, au fil des machines successive, faire qu'on garde la même adresse IP (en version IPv6, de la forme abcd:ef01:234:5678:9012:3456:7890:abcd ; 8 blocs de 4 caractères pouvant aller de 0 à 9 et de "a" à "f").
    -corollaire une fois qu'on connait l'IP de quelqu'un, c'est pour toujours sûr que ce sera bien lui à l'autre bout du fil
    -le logiciel crée un périphérique réseau virtuel nommé tun0 ; il faut penser à bloquer le trafic entrant provenant de tun0 : c'est une connexion directe au réseau et n'importe qui sur le réseau peu accéder à un service laissé ouvert dessus
    -corolaire, quand on laisse ouvert un service, bye bye NATing et redirections de port, toutes les machines sont connectées en direct


    On appelle ces réseaux, généralement, des "réseaux de surcouche", j'aime bien les appeler "réseaux de confiance". À cause de leur topologie en maillage on les dit souvent mesh, ou meshglobal (pour faire la distinction d'avec un meshlocal, un réseau séparé du reste du monde qui serait à l'échelle d'un quartier, ce qui est extrêmement faisable grâce à l'autopeering)

Ajouter un commentaire

GrasItaliqueBarréListe ordonnéeListe non ordonnée
Emoji
Image
Aligner à gaucheCentrer le texteAligner à droiteBasculer en code HTMLBasculer en mode plein écranAllumer les lumières
Déplacer image/fichier