Le blog de lili, édition 2022

cette année sera cool, promis ! :^)

Retour à l'accueil


Salut à tous, vous retrouverez ici mes billets de l'année 2022. Pour voir les billets toutes dates confondues, cliquez ici

Soudures pour prise jack d'un casque Y250CPX(-B) sur casque BeyerDynamics DT770 Pro

[lienbillet seul]

Bonjour,

J'ai récemment accidentellement cassé la prise jack sur un casque Beyer Dynamic DT7770 Pro. Bien heuresement, j'avais une prise jack d'un ancien micro casque, un Thrustmaster Y25OCPX, qui traînait dans les parages. Voici les soudures que j'ai faites avec quelques annotations:
Photo montrant àgauche le cable d'un casque BeyerDynamics DT770 Pro soudé avec le câble jack d'un casque Thrustmaster Y250CPX sur la droite.

Sous format texte, le câblage donne ceci avec le casque BeyerDynamics à gauche et le Thurtmaster à droite:

À noter: le fil de microphone blanc côté Thrustmaster est inutile et peut-être coupé. C'est aussi la raison qu'il n'a pas de correspondance côté casque Beyer Dynamics (le X rouge).

Après ceci soudé, le stéréo devrait marcher sans aucun problème. N'oubliez pas de protéger vos câbles après soudure. mar., 08 févr. 2022 00:37:53 +0100

Quelques astuces pour mettre un site sur IPFS.

[lienbillet seul]

Bonjour à tous,

J'ai mis la main sur un nom de domaine .ETH car le concept d'un système de nom de domaine sur la blockchain m'intéressait et il se trouve que le service en question permet de faire pointer l'adresse .eth vers du contenu IPFS. Un cocktail bien corsé pour construire des sites statiques plus résistant à la censure ! Dans ce qui va suivre, je vais addresser les difficultés et les réponses que j'ai trouvé pour mettre mon contenu sur IPFS.

Les ports à ouvrir

J'ai téléchargé l'implémentation en Go de IPFS et commencé à suivre ce guide pour publier le site web ici présent sur IPFS. La manipulation peut se résumer comme ceci:

systemctl enable --user --now ipfs # activation du service ipfs au démaragge pour l'utilisateur
ipfs init # initialisation fichier de config IPFS
cd /srv/www/blog
ipfs add -r .
> [...output...]
> added QmQjEXGdrWbp4eu6hsN4wwVjvkeGurmUxoXBoY5J2QvEk9 partage.les-miquelots.net
# noter la dernière valeur de la commande `ipfs add -r` du dessus, c'est le hash du répertoire contenant les autres fichiers de notre site sur ipfs.
# vous pouvez la récupérer APRÈS ajout en ajoutant les paramètres '-n -q' à la commande `ipfs add -r`, seul les hashs seront listés.
ipfs name publish QmQjEXGdrWbp4eu6hsN4wwVjvkeGurmUxoXBoY5J2QvEk9
> Publishing to /ipfs/QmQjEXGdrWbp4eu6hsN4wwVjvkeGurmUxoXBoY5J2QvEk9...
Published to k51qzi5uqu5di7tiomn1hejxpswnctdg6m0p6ywk044nv22nk34bapve8ji6xe: /ipfs/QmQjEXGdrWbp4eu6hsN4wwVjvkeGurmUxoXBoY5J2QvEk9

"Super" me suis-je dis, "je vais pouvoir y accéder dans un navigateur via la clé d'installation IPFS du répertoire (celle qui commence par k51qzi...) et une passerelle ipfs...". Mais non, je fus accueilli par l'erreur suivante: Error: context deadline exceeded.

Il se trouve qu'il faut ouvrir le(s) port(s) correspondant à une valeur trouvé dans le fichier de configuration d'IPFS, Addresses.Swarm:

ipfs config Addresses.Swarm
>[
>    "/ip4/0.0.0.0/tcp/4001",
>    "/ip6/::/tcp/4001",
>    "/ip4/0.0.0.0/udp/4001/quic",
>    "/ip6/::/udp/4001/quic"
>]

Ce qui nous intéresse ici est la valeur après le type du protocole de communication: dans notre mon cas c'est 4001 (votre valeur peut différer). Ouvrons ce port dans le pare-feu:

ufw allow 4001

J'ai ensuite réajouté mon site web dans IPFS via ipfs add -r et ipfs name publish ... puis retenter le chargement via ipns, et ça a marché.

Actions Git de post-réception

Ou dénommés hooks, sont essentiels pour le déploiement d'un site web statique via Git (j'aime bien ce guide sur le sujet). La modification pour intégration avec IPFS est simple, voici à quoi ressemble mon hook post-receive:

#!/bin/sh
WEBDIR="/srv/www/webdir"
GIT_WORK_TREE="$WEBDIR" git checkout -f
chmod 755 -R $WEBDIR
rm -rf $WEBDIR/.git $WEBDIR/.gitignore # ménage des dossiers 
                                       # et fichiers inutiles
                                       # pour le site

ipfs add -r $WEBDIR # ajout du répertoire du site web sur IPFS
IPFS_DIR_HASH="$(ipfs add -r -q -n $WEBDIR | tail -1)" # hash du répertoire sur
                                                       # la dernière ligne, on recup
ipfs name publish $IPFS_DIR_HASH # publication sur ipns

L'attente devrait être en moyenne aux alentours de 30 secondes pour la publication du contenu sur IPFS.

Une bonne configuration par défaut

Après ça je me suis demandais s'il y avait des configurations préfaites selon le contexte d'utilisation d'IPFS. Il se trouve que oui et on peut les appliquer via la ligne de commande. Si vous êtes sur un VPS, ipfs config profile apply server est intéressant: il désactive le balayage du réseau local pour la recherche de noeud IPFS.

Redémarrez votre daemon IPFS après la commande.

Les chemins absolus pour les ressources

Si vous utilisez par exemple https://gateway.ipfs.io/ipfs/QmQjEXGdrWbp4eu6hsN4wwVjvkeGurmUxoXBoY5J2QvEk9 pour accéder à votre site hébergé via IPFS, la déclaration de chemin absolu dans la source HTML de votre site va poser problème: la feuille de style href="/styles.css" pointera vers https://gateway.ipfs.io/styles.css.

À cet effet, je préfère dweb.link parce que cette passerelle dirige vers un sous domaine lors de la résolution de nom des addresses de contenu ipfs: https://dweb.link/ipfs/QmQjEXGdrWbp4eu6hsN4wwVjvkeGurmUxoXBoY5J2QvEk9/ redirigera vers https://bafybeibdqbrggbnn5to7rd2nieobiiklhikjiwcexb5arpziqb7u5khygi.ipfs.dweb.link/ et on n'aura pas de soucis. Celà évite de réécrire tout en chemin relatifs.

Mises à jour du site web et transactions dans la zone ENS

Pour que le nom de domaine en .eth pointe vers notre site hébergé depuis IPFS, il faut lui donner l'adresse du contenu. Si vous avez déjà fait plusieurs mise à jour et publié sur IPFS, vous avez pu voir que le CID change lors du changemnt du contenu du répertoire ou fichier.

Mettre à jour ce contenu dans l'interface de ens.domains coûte de l'ETH avec les coûts du gas qui l'accompagne, puisque on inscrit cette donnée dans la blockchain. Avec les prix du gas actuel et surtout si vous faites des mises à jour fréquentes, vous allez payer bonbon.

Je pense donc que la solution pour contrecarrer le fait qu'on est pas Crésus est d'utiliser IPNS + DNSLink. La démarche est comme suit:


De ce fait, vous n'avez plus qu'à mettre à jour votre zone DNS (de façon automatisée de préférence) hors blockchain afin que votre domaine .eth pointe toujours vers le contenu IPFS le plus récent pour votre site web.

Rafraîchissement du contenu

J'ai remarqué que malgré le fait que ipfs add -r épingle (pin) les fichiers pour les rendre disponible, au bout d'un certain temps, si vous ne refaites pas un ipfs add -r même quand le contenu de votre site ne change pas, il ne sera plus accessible via ipns. L'astuce est donc de refaire un coup de ipfs add -r et pourquoi pas de mettre tout ça dans la crontab de l'utilisateur d'IPFS:

# adaptez le chemin /srv/www/webdir avec le votre

# lancement de la commande d'ajout des fichiers sur IPFS toutes les heures
* */1 * * * /usr/bin/ipfs add -r /srv/www/webdir 


C'est tout ce que j'ai à dire pour l'instant sur le sujet. Hey, c'est d'ailleurs le premier poste de 2022! Bonne année à vous tous! mer., 26 janv. 2022 00:04:54 +0100