URL: https://linuxfr.org/users/jbar/journaux/thttpgpd-ou-comment-openudc-a-ressuscite-le-bon-vieux-thttpd Title: Thttpgpd, ou comment OpenUDC a ressuscité le bon vieux thttpd. Authors: jbar Date: 2012年11月05日T17:46:57+01:00 License: CC By-SA Tags: openudc, ludd, thttpd, thttpgpd, bitcoin, openpgp et pgp Score: 16 J'aurais pu proposer une dépêche, mais je n'ai aucune idée du temps de validation et encore moins de soigner le style ou la présentation de cette annonce. Dans le cadre du projet [OpenUDC](http://open-udc.org/) - objectif en gros : faire mieux que [bitcoin](http://bitcoin.org/) - j'ai commencé par étudier comment faire, rédiger des spécs, approfondir les technos, jeter plein d'idées initiales, en trouver de nouvelles, re-rédiger [des spécs...](https://github.com/Open-UDC/open-udc/tree/master/docs) ; bref, ça avance sûrement et sans précipitation. Par rapport à bitcoin, nous sommes donc parti sur une architecture à 2 niveaux : des clients légers, pouvant être implémentés sur des systèmes embarqués et non connectés en permanence, et des noeuds en Pair à Pair. Je n'aime pas ré-inventer la roue et, donc, j'utilise un maximum de technos et de software existant et éprouvé. Je regrette un peu de n'avoir pas pris le temps d'étudier pleinement XMPP, mais étant donné que le projet se devait déjà d'utiliser HTTP (pour [HKP](https://github.com/Open-UDC/open-udc/blob/master/docs/draft-shaw-openpgp-hkp-00.txt) ou parce que les navigateurs web sont les interfaces par défaut). Je suis donc parti du bon vieux [thttpd](http://acme.com/software/thttpd/) que j'avais beaucoup utilisé et qui représente un excellent rapport (performance+features)/(lignes de code+fioritures). L'autre grosse techno sur laquelle nous nous basons étant [OpenPGP](http://tools.ietf.org/html/rfc4880), qui offre les meilleurs standards cryptographiques et surtout qui permet, grâce à [la toile de confiance](http://en.wikipedia.org/wiki/Web_of_trust) de pouvoir compter des individus uniques de manière totalement décentralisée (et donc sans passer par quelque chose de vilainement centralisé comme un état ou une entreprise...). Bon bref, tout cela pour dire qu'en rajoutant des fonctionnalités OpenPGP dans un petit serveur http pour réaliser notre futur noeud OpenUDC (ludd pour les intimes), je me suis rendu compte que je faisais un outil pouvant s'avérer aussi pertinent pour tout ce qui est du "cloud" ou du "social network" décentralisé (petite pensée spéciale pour [newebe](http://newebe.org/) notamment). Et donc, j'ai revu la compilation de ludd qui, si l'on ne fait pas --enable-OpenUDC, compilera et installera thttpgpd un thttpd nettoyé, mis à jour, et fourré avec du -lgpgme ou du -lpthread. Bon, tout est encore de l'alpha, mais ceux qui veulent peuvent déjà s'amuser : Je viens de tagguer une version 0.2 disponible ici : https://github.com/Open-UDC/open-udc/tags Vous pouvez voir ludd tourner ici : http://www.domesticserver.org:11371/pks Et le type "multipart/msigned" comme cela : ```bash $ curl -v -H "Accept: multipart/msigned" "http://domesticserver.org:11371/pks/" ``` La TODO liste est très longue (et, le temps que je la rédige entièrement, j'y aurais codé 2 ou 3 trucs...). Mais en gros : - Séparer encore mieux thttpgpd de ludd (sans forker pour autant) - Étudier, mettre en forme, corriger, implémenter les drafts. Notamment : https://github.com/Open-UDC/open-udc/blob/master/docs/HTTP_OpenPGP_Authentication.draft.txt - Apprivoiser le code, augmenter ses perfs et sa sécu (déjà correctes, mais un peu plus de threads ne ferait pas de mal). Bref, ça serait bien que d'autres cerveaux se penchent sur l’intérêt d'un serveur HTTP sachant faire de l'OpenPGP, et y trouvent un mérite à s'investir. Je pense qu'il y a là des trucs sympa à faire, pour un web plus sûr et moins centralisé. Ma priorité perso n'étant pas thttpgpd, mais ludd (ie. OpenUDC). Voili, voulou !