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 !
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
.
Nouvelle version du paquet Debian DokuWiki
Je viens de publier une nouvelle version du paquet Debian pour DokuWiki, un moteur de wiki qui utilise une syntaxe assez mnémotechnique, et qui stocke les pages sur de simples fichiers texte plutôt que dans une base de données. Cette version apporte donc enfin une fonctionnalité longtemps attendue : le service de sites multiples, également appelé « élevage » dans le vocabulaire de la communauté DokuWiki.
Étant donné qu'il s'agit d'un changement assez important qui pourrait introduire des problèmes imprévus, j'ai envoyé ce paquet dans la suite experimental de Debian. Il ne sera donc pas installé automatiquement pour les utilisateurs de Debian, même ceux qui suivent la version testing ou unstable.
DokuWiki n'ayant que quelques dépendances faciles à satisfaire, ce paquet expérimental devrait être installable sur n'importe quelle version de Debian, y compris stable et oldstable.
Si vous souhaitez l'installer, vous pouvez au choix :
- télécharger le paquet manuellement, l'installer, puis installer les dépendances :
# wget http://ftp.us.debian.org/debian/pool/main/d/dokuwiki/dokuwiki_0.0.20101107a-4_all.deb # dpkg -i dokuwiki_0.0.20101107a-4_all.deb # apt-get -f install
- ajouter la suite experimental à votre liste de miroirs, puis l'installer :
# echo "deb http://ftp.debian.org/debian experimental main" >> /etc/apt/sources.list # apt-get update # apt-get install dokuwiki/experimental
J'apprécierais maintenant tout rapport sur l'installation, la mise à jour et l'utilisation en site simple ou multiple de cette nouvelle version, afin de pouvoir corriger les problèmes éventuels, pour finalement pouvoir l'envoyer dans Debian unstable.