Un nouveau générateur de métainfo BitTorrent
Classified in : Homepage, Auto-hébergement, Debian-FR, Libre, April
Essai de la DHT BitTorrent
Il y a un mois, constatant qu'il manquait un bon logiciel traqueur BitTorrent (bon signifiant « remplissant mes critères arbitraires »), j'envisageai d'écrire un nouveau traqueur. Quelqu'un me fit alors remarquer que je pouvais essayer d'utiliser la table de hachage dynamique ou DHT, une extension BitTorrent qui permet de se passer d'un traqueur, en se reposant sur l'ensemble des clients BitTorrent pour effectuer le travail de traque.
De fait, la DHT pourrait bien être une solution élégante à ce problème, parce qu'elle présente plusieurs avantages :
- elle repose sur les clients BitTorrent eux-mêmes, qui sont bien plus répandus que les traqueurs, et par conséquent plus développés ;
- cette fonctionnalité semble être assez bien adoptée par les logiciels clients BitTorrent usuels ;
- elle existe déjà et semble fonctionner plutôt bien !
J'étais donc parti pour essayer la distribution de torrents sans traqueur en utilisant la DHT. Mais avec BitTorrent, la distribution d'un fichier est amorcée en utilisant des fichiers métainfo, communément appelés « fichiers torrent » ou simplement « torrents » : j'avais donc besoin d'un outil pour générer des fichiers métainfo sans traqueur.
Écriture d'un nouveau générateur de métainfo
Je n'ai pas trouvé de tel outil. Les générateurs que j'ai trouvé n'implémentent pas cette extension et sont codés en C de façon assez complexe, ce dans quoi je ne souhaitais vraiment pas me lancer afin de les compléter. Voici donc gentorrent, un générateur de métainfo BitTorrent écrit en Python 3 et distribué sous licence AGPLv3, ce qui s'est avéré plutôt simple.
Je pense qu'il est assez rapide : il lui faut environ dix secondes pour calculer la métainfo pour un fichier d'un gibioctet. Il implémente toutes les extensions BitTorrent relatives aux fichiers métainfo, comme les torrents sans traqueur, la mise à disposition par HTTP/FTP ou les arbres de Merkle. N'hésitez pas à l'essayer et à m'envoyer des remarques, des critiques ou des suggestion de noms plus sympa.
Maintenant que j'ai un outil pour générer des torrents sans traqueur, je vais essayer la DHT de façon plus extensive et documenter cette façon de publier des fichiers. Si vous êtes intéressé par ce sujet, par exemple si vous maintenez un système de distribution basé sur l'antique BitTornado, restez en ligne.
Une carte touristique libre
Cartographie de Bréhat
Cela fait quelques années que je participe un peu au projet OpenStreetMap. En particulier, j'ai affiné la cartographie de l'île de Bréhat que je connais assez bien. C'est une petite île de Bretagne nord, qui a la particularité d'interdire la circulation automobile : on s'y déplace exclusivement à vélo, à pied, et en tracteur pour les artisans et agriculteurs. Cette caractéristique explique probablement le peu d'intérêt que présente Bréhat pour des éditeurs de cartes informatiques ; en tout cas, OpenStreetMap peut maintenant se targuer d'être la carte la plus précise qui existe pour cette île.
Concrètement, la cartographie de l'île a été effectuée à partir de l'orthophotographie littorale 2000 et du plan cadastral : merci aux Ministères de l'Écologie et du Budget pour cette coopération !
Un blog n'est pas une vitrine générique — et vice-versa
Des blogs et des sites vitrines
Je parle ici de deux types particuliers de sites Web :
- les blogs et sites d'actualité
- ce sont des sites constitués d'articles publiés au fur et à mesure : celui-ci, par exemple ;
- les sites vitrine
- ce sont des sites descriptifs, qui présentent quelque chose, qu'il s'agisse d'une personne, d'une association, d'une entreprise ou d'un projet quelconque.
Ces deux types de sites diffèrent fortement : un blog évolue et est essentiellement chronologique, tandis qu'un site vitrine est essentiellement statique et descriptif. Évidemment, un blog contient parfois quelques pages statiques, et un site descriptif comprend souvent une page d'actualités, mais ce sont là des fonctions mineures.
Read more Un blog n'est pas une vitrine générique — et vice-versa
iptables-restore
Utilisation classique d'iptables
iptables(8)/ip6tables(8) est le principal outil de gestion du pare-feu Netfilter de Linux : c'est une commande qui permet en fait de configurer ce pare-feu en modifiant sa liste de règles. Il est le plus souvent utilisé dans des scripts shell qui effectuent une longue succession d'appels pour définir chaque règle :
# Supprimer les règles existantes ip6tables -f ip6tables -P INPUT DROP ip6tables -P OUTPUT ACCEPT ip6tables -A INPUT -i lo -j ACCEPT ip6tables -A INPUT -p ipv6-icmp -j ACCEPT ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ip6tables -A INPUT -p tcp --dport ssh -j ACCEPT ip6tables -A INPUT -p tcp --dports smtp -j ACCEPT […]
Cette approche souffre de plusieurs défauts :
- en appelant de multiple fois la commande
ip(6)tables
, elle effectue beaucoup de lectures et d'écritures inutiles dans la table de règles de Netfilter ; - si une erreur se produit pendant l'exécution du script, le pare-feu se retrouve dans une configuration à moitié appliquée.
Sonar, un écran de veille qui pingue
Sonar
Parmi les nombreux écrans de veille fournis avec XScreenSaver, sonar(6) affiche en 3D une simulation d'écran de sonar au phosphore. Par défaut, il affiche les positions de quatre MIG et quatre F18. Comme tous les écrans de veille XScreenSaver, il peut être lancé :
- en tant qu'écran de veille ;
- à la main dans une fenêtre :
/usr/lib/xscreensaver/sonar
; - à la main sur le bureau, pour impressionner la galerie :
/usr/lib/xscreensaver/sonar -root
.