PROJET AUTOBLOG


mart-e

Site original : mart-e

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

L’état du libre dans les téléphones – 2020

mercredi 25 mars 2020 à 16:27

En 2012, j’écrivais un article « L’état du libre dans les téléphones » . On était encore à l’époque où Apple dominait le marché des smartphones et Mozilla présentait feu-Boot2Gecko. C’était un beau bordel avec une série d’acteurs qui essayaient de rattraper le train en marche après s’être rendu compte du potentiel des smartphones. Je concluais l’article par un triste :

Je pense qu’aujourd’hui, il n’y a pas d’alternative suffisamment mature à Android et il est donc toujours le meilleur calcul.

Mais 8 ans plus tard, la situation est sûrement meilleure non ? N’est-ce pas ? …

La quête d’un OS libre pour téléphone

De mon article de 2012, la plupart des projets expérimentaux sont morts ou en voie de garage. Plus de Firefox OS, plus de Meego, Tizen relégué aux montres de Samsung et WebOS sur les frigos de LG. Faisons un rapide tour du paysage des OS +/- libres pour téléphone en 2020.

Android

Android étant maintenant ultra-majoritaire avec 70-80% de part de marché, la bonne nouvelle est que Linux s’est enfin imposé comme noyau sur la majorité des appareils dans le monde ! Cependant, un noyau libre ne sert à rien si l’enrobage est rance. Android a également attrapé les travers d’Apple. Le Play Store est toujours plus cadenassé, plus aucune application préinstallée n’est open source, surveillance à gogo. Le Don’t Evil était encore un slogan en 2012 mais n’est aujourd’hui plus qu’un lointain souvenir.

Comme Framasoft le dit si bien, il est temps de se dégoogliser !

LineageOS

LineageOS est le fork de CyanogenMod, lui-même fork d’Android. Malgré une histoire un peu difficile suite à la fermeture de CyanogenMod par manque de rentabilité en 2016, LineageOS continue son bout de chemin. Il reste, aujourd’hui, la meilleure alternative si on veut un Android sans la dépendance à Google sur un téléphone grand public ou maintenir à jour un téléphone dont le constructeur aura lâchement abandonné le support après 4 mois.

Après 6 mois d’utilisation, en lançant 3 applications en parallèle

/e/ et Replicant

Choisir un nom impossible à chercher sur un moteur de recherche est sans doute une volonté pour un projet se voulant respectueux de la vie privée… /e/ est un dérivé d’Android (ou de LineageOS plus exactement) se focalisant sur la vie privée et l’open source. La plupart des services Made in Google ont été remplacés par des alternatives libres (CardDAV pour la synchronisation des contacts, etc.). Il est même possible d’acheter un téléphone reconditionné avec /e/ préinstallé.

Replicant se base également sur LineageOS pour offrir une version sans aucun composant propriétaire. Il est, entre autres, supporté par la Free Software Foundation qui les héberge. Alors que /e/ est encore en développement actif, je parlais déjà de Replicant il y a 8 ans. Si /e/ se veut une solution clef en main fonctionnant avec le plus d’appareils possibles, Replicant ne supporte aucun driver non-libre, ce qui rend la liste d’appareils supportés beaucoup plus restreinte.

Notez qu’il existe toujours une myriade d’autres projets +/- libres avec +/- d’appareils compatibles.

Sailfish OS

Sailfish OS est le système développé par la société finlandaise Jolla. Il utilise Mer Core comme base. C’est-à-dire que Mer sert de middleware entre le matériel et l’OS. Si votre appareil supporte Mer, vous pourrez faire tourner Sailfish OS. Je ne dis pas que ça sera facile mais vous ne devrez pas écrire de driver…

Si Sailfish OS met en avant son coté alternatif et son esprit open source, le complètement libre ne semble pas non plus au rendez-vous. Le modèle est assez similaire à celui d’Android : la société Jolla assemble les composants libres, y ajoute son interface et quelques composants propriétaires (comme par exemple une couche de compatibilité permettant de faire tourner les applications Android sur Sailfish OS). Si elle a produit des téléphones à une époque, Jolla essaye pour l’instant de vendre son OS pour les appareils compatibles (des Sony Xperia). Il existe une série d’appareils alternatifs avec des ports +/- fonctionnels.

En vert libre, en mauve propriétaire

Ubuntu Touch

Canonical a abandonné l’idée d’un Ubuntu sur smartphone en 2017. Heureusement, une communauté de motivés l’a repris via UBports. Il existe quelques appareils sur lesquels il est possible d’installer un Ubuntu 16.04 (oui ça date un peu) et de profiter d’un véritable Linux avec toute sa flexibilité.

postmarketOS

Lors de la rédaction de cet article, le certificat SSL du site de postmarketOS avait expiré, symptomatique du monde des projets expérimentaux de smartphone libre portés surtout par des volontaires avec peu de moyens. Pourtant, postmarketOS semble toujours bien actif. Avec plus d’une centaine d’appareils compatibles (c’est-à-dire pouvant démarrer l’OS, pour ce qui est du support du Wifi ou Bluetooth, c’est beaucoup plus aléatoire), il y a de quoi s’amuser.

Dans un esprit très Linux, ils proposent un micro-système (10MB) basé sur Alpine Linux sur lequel on installe les packages voulus. Libre à vous de faire tourner les programmes voulus. L’idée de cette approche modulaire est de facilement proposer une image pour de nouveaux appareils et de les maintenir à jour (un gros problème sur les appareils Android avec les téléphones ne recevant plus de mise à jour système après seulement quelques mois).

À la recherche d’un système réellement libre

PureOS/Librem

PureOS est le système développé par la société Purism et vise les appareils Librem, dont le récent téléphone (expérimental) Librem 5. Il se base sur Debian et est un système de type convergence (comme Ubuntu Touch, branchez un clavier et un écran pour transformer le téléphone en PC) avec une interface GNOME.

L’approche de Purisme vise l’open source et la sécurité à tous prix. Composants et logiciels ouverts avec kill switches matériels. ArsTechnica a écrit un article le mois passé à son sujet. C’est encore à l’état de prototype (pas moyen de passer un appel) mais cela vise les hackers voulant tester un appareil réellement libre. La liberté ayant un coût, comptez aujourd’hui 749$ pour un prototype et 1999$ pour le même appareil fabriqué entièrement aux États-Unis (plutôt qu’en Chine). Les livraisons se font par petits batchs tous les quelques mois, un batch étant une amélioration de l’appareil livré précédemment. On n’est pas encore à un appareil utilisable par le grand public mais on s’en approche.

Je peux compiler Gentoo là- dessus ?

PinePhone

Si Purism voulait tout maîtriser, du matériel au logiciel, Pine64 ne produit que le matériel. Après avoir produit le portable PineBook, la montre PineTime, la tablette PineTab et autres, ils s’attaquent au téléphone avec le PinePhone. Beaucoup plus abordable, pour 149$ vous pouvez obtenir la version BraveHeart qui est un smartphone… sans OS. A vous d’installer l’un des ports expérimentaux d’un des systèmes possibles (Ubuntu Touch, Sailfish OS,…). A réserver aux bidouilleurs avertis.

Si vous êtes curieux sur les différences entre Librem 5 et PinePhone en termes de composants, je vous conseille cet article : Yet Another Librem 5 and PinePhone comparison.

Conclusion

Est-ce que la situation est mieux qu’en 2012 ? Oui et non. L’écosystème est on ne peut plus occupé par le duopole Android et iOS qui totalisent 99% du marché. Autant dire qu’aucune alternative n’a percé et, aujourd’hui, je ne m’attends pas à ce qu’une arrive à court terme.

D’un autre coté, les projets de systèmes libres se démocratisent. En 2012, il fallait avoir un Samsung ou HP pour espérer créer un nouvel OS viable (et viable est un grand mot vu le résultat). Aujourd’hui, Purism arrive à lever plus de 2 millions de dollars en 60 jours pour produire un appareil ouvert de A-Z.

Si tous ces projets sont encore très expérimentaux (il suffit de regarder cette vidéo de comparaison de différents OS pour se rendre compte qu’il reste du boulot), ils ont le mérite d’exister. C’est beau de voir qu’il y a des gens qui se donnent du mal pour sortir du merdier dans lequel on se trouve.

En 2030, je prédis SteamOS majoritaire

Et j’utilise quoi alors ?

Une des problématiques que je n’aborde pas dans cet article (se focalisant sur les systèmes d’exploitation) mais essentielle est la couche applicative. A mon grand malheur, me priver aujourd’hui d’applications comme WhatsApp n’est quasi plus possible si je ne veux pas me couper de mon cercle social. Et convaincre mon entourage à passer sur Signal ne réglera pas le problème vu que toutes ces applications populaires ne fonctionnent que sur l’un des deux OS. Le système que l’on utilisera dépendra de ses habitudes et des concessions que l’on est prêt à faire. Dans mon cas, une compatibilité minimale avec les applications Android est encore nécessaire aujourd’hui.

Mais finalement, est-ce que le système d’exploitation est vraiment le seul problème ? A quoi bon avoir un téléphone 100% libre si l’on exploite des ouvriers chinois en épuisant les mines de cobalt pour produire un nouvel appareil tous les 18 mois ? Une société comme FairPhone proposant un téléphone produit de façon éthique et assurant une réparabilité de l’appareil est tout autant essentielle.

A quoi bon avoir un téléphone 100% libre si c’est pour passer son temps sur les applications voleuses d’attention comme savent si bien le faire les réseaux sociaux ? A une époque où l’on prône la déconnexion, pourquoi pas un téléphone avec des choix radicaux comme le Hisense A5 (testé par Ploum) avec son écran e-ink ?

Je n’ai pas de conseil sur ce que vous devriez utiliser si ce n’est de tirer un maximum du téléphone que vous possédez déjà (et de le faire réparer lorsque que l’écran cassera). Lorsque mon téléphone actuel, arrivant bravement sur ses 3 ans, décédera, je verrai quel appareil conviendra à mes besoins. Mes besoins à ce moment-là, en trouvant un équilibre entre liberté logicielle, respect de l’environnement et me permettant de maintenir les liens sociaux. Mais j’espère que ce choix ne se présentera pas trop vite…

Anki et l’apprentissage par répétition espacée

mardi 17 décembre 2019 à 11:49

J’apprends actuellement l’Espagnol (me gustan las manzanas !). Un des outils que j’utilise est Anki.

Anki est un logiciel (libre bien sûr) de flashcards fonctionnant sur le principe de répétition espacée. ¿Qué es eso?

Sexy, non ?

Imaginons que vous voulez devenir un champion de Trivial Pursuit au noël de l’an prochain et enfin battre Tonton Roger, vous avez un an pour mémoriser les 400 cartes du jeux ! À raison de 6 questions par carte, on peut penser que mémoriser 2400 questions/réponses est impossible. La façon naïve serait d’en étudier 10 le premier jour, 20 le deuxième, 30 le troisième,.. et d’espérer ne pas exploser après 2 semaines (ce qui est bien entendu illusoire). La répétition espacée veut prouver que c’est possible via une autre technique :

Exemple :

Je répète : « Sur quel continent vit le kinkajou ? »

Cela peut paraître un peu compliqué mais le logiciel gère pour vous la fréquence des rappels. Au début, les cartes sont rappelées régulièrement et puis de moins en moins souvent (dans 1 jour et puis dans 3, 7, 14, 30,… jours). Tant que l’on se souvient d’un terme, les rappels s’espacent de plus en plus. Si l’on oublie un terme, il retourne en phase d’apprentissage et sera à nouveau demandé fréquemment. De cette façon, on revoit régulièrement les cartes avec lesquelles on a le plus de difficultés et plus rarement, les plus faciles.

Le calcul des rappels se base sur le principe de la courbe de l’oubli qui explique comment une information est oubliée au cours du temps et identifie l’effet des rappels.

Avec le temps, les rappels peuvent être de plus en plus espacés

L’intérêt de l’utilisation d’Anki pour la mémoire à long terme est expliqué en long et en large dans l’article Augmenting Long-term Memory. Si l’on doit ne retenir qu’une chose de cet article (que je vous recommande), ce serait qu’Anki fait en sorte que la mémorisation d’une information devienne un choix.

Pour donner une anecdote, Roger Craig s’est entraîné avec Anki pour mémoriser toutes les questions de Jeopardy (la version américaine de Qui Veut Gagner des Millions) ce qui lui a permis de battre le record de la plus grosse somme gagnée en une partie. Si cet exemple est un peu extrême (le mérite ne revient pas qu’au logiciel), il montre néanmoins la force de la méthode.

Anki est intéressant pour les étudiants qui doivent mémoriser d’énormes quantités d’informations (il y a même des subreddits dédiés, par exemple /r/medicalschoolanki).

Anki est un logiciel très puissant truffé d’options dont vous n’aurez probablement pas besoin (et que je ne connais pas). Vous pouvez intégrer des formules en LaTex, ajouter des images, des sons et modifier le style des cartes avec de l’HTML, CSS et même du JavaScript (non pas que vous devriez…) !

Je suppose que c’est une fonctionnalité…

Pour ceux qui ne savent/veulent pas coder, Anki fonctionne également avec des modules communautaires. Un thème sombre, des jolies stats, un jeu de stratégie intégré ? Il existe des modules pour faire tout cela ! Gardez en tête qu’en important des cartes ou extensions inconnues, vous installez potentiellement du code malveillant. Même si je n’ai jamais entendu parler de ransomware utilisant Anki, c’est techniquement possible…

Le logiciel est compatible avec toute plateforme et smartphone et se synchronise sur les serveurs d’Anki. Pratique pour créer un deck sur un pc et le réviser sur son téléphone. Contrairement au logiciel, le code du serveur est non-libre mais il existe une implémentation non-officielle pour ceux qui ne veulent pas héberger leur decks coquins sur les serveurs d’Anki.

Personnellement, je travaille avec deux decks : un pour l’espagnol et un « fourre-tout » dans lequel j’ajoute des raccourcis clavier (comment sortir de vim), des fonctions python (cf Chasing 10X: How Anki Saved My Software Career); j’ai même importé le répertoire de mon boulot pour ne plus oublier le prénom de mes collègues (je ne sais pas si je dois être fier de celui-là ou pas…).

– Et donc, tu revois ces cartes tous les matins et tu mémoriseras la recette rapidement !
– Je t’ai déjà dit que si tu voulais une tarte, tu peux la faire toi-même

J’approche des 1000 cartes après deux mois d’utilisation et il est assez agréable de voir le nombre de cartes « matures » (le terme utilisé par Anki pour nommer les cartes qu’il considère comme apprises) augmenter au cours des jours.

Mes sessions de rappel Anki ne durent que quelques minutes le matin mais certaines personnes travaillent avec plusieurs énormes decks et passent plus d’une heure à revoir des centaines de cartes tous les jours. La difficulté sera de trier ce qui vaut réellement la peine d’être mémorisé. Certains recommandent d’utiliser l’application dès qu’ils ont un moment de libre (en attendant le bus) mais personnellement, je préfère le faire quand je suis au calme, sans distraction (le matin en buvant mon café par exemple).

Si utiliser un deck écrit par un autre peut vous sembler plus facile, je recommande fortement de créer le vôtre avec les informations que vous désirez mémoriser, cela sera beaucoup plus efficace.

Je compte passer les prochains mois à tester les différentes possibilités qu’Anki offre en terme de personnalisation. J’écrirai éventuellement un article additionnel avec mes trouvailles intéressantes.

Sauver un GnuPG corrompu

vendredi 29 novembre 2019 à 11:25

Note de service : still alive, blog mis à jour et on va essayer d’y poster un peu plus en 2020…

Ces derniers jours, j’ai remarqué qu’un processus GnuPG prenait inhabituellement beaucoup de temps et CPU.

htop-gpg

Une commande gpg --list-keys semblait tourner en boucle pendant de longues minutes.

Avec un peu de recherche, je comprends que j’avais importé une clef victime de l’attaque de spam de signature GnuPG annoncée il y a quelques mois.

$ ls -lh ~/.gnupg/pubring.gpg

... 33M ...

Une (ou plusieurs) clef a été signée des centaines de milliers de fois, rendant le système inutilisable. Une attaque simple mais pourtant assez difficile à régler pour des raisons peu rassurantes:

Why Hasn’t It Been Fixed?

There are powerful technical and social factors inhibiting further keyserver development.

The software is Byzantine. The standard keyserver software is called SKS, for « Synchronizing Key Server ». A bright fellow named Yaron Minsky devised a brilliant algorithm that could do reconciliations very quickly. It became the keystone of his Ph.D thesis, and he wrote SKS originally as a proof of concept of his idea. It’s written in an unusual programming language called OCaml, and in a fairly idiosyncratic dialect of it at that. This is of course no problem for a proof of concept meant to support a Ph.D thesis, but for software that’s deployed in the field it makes maintenance quite difficult. Not only do we need to be bright enough to understand an algorithm that’s literally someone’s Ph.D thesis, but we need expertise in obscure programming languages and strange programming customs.
[…]

On utilise donc un proof-of-concept comme serveur de clef GPG et personne ne sait exactement comment il fonctionne. Joie.

gpg –list-keys

Solution

La solution la plus simple serait évidemment de supprimer l’ensemble du répertoire ~/.gnupg et de recommencer. Si, pour de bonnes raisons, cette solution ne vous plaît pas, il nous faudra identifier la ou les clefs problématiques et les supprimer.

Attention, toutes les commandes ci-dessous sont très lentes (une quinzaine de minute chez moi) ! Pensez à prendre un café…

D’abord, identifier la clef problématique :

$ gpg --export | gpg --list-packets | awk -F= -v oldoff=-1 -v keyid=unset '
/^# off=/{ off = $2 + 0 }
/^:public key/{ if (oldoff>-1) { print (off - oldoff) " " keyid }; oldoff = off; keyid = "unset"; }
/keyid:/ {if (keyid == "unset") { keyid = $1; } }
END { print (off - oldoff) " " keyid ; };' | sort -n
...
18420  keyid: D9C4D26D0E604491
19724  keyid: 4A95E75A1354AAF0
15874931  keyid: DB1187B9DD5F693B
15923848  keyid: 4E2C6E8793298290

La (grande) commande bash ci-dessous vous listera vos clefs avec la taille de celles-ci. Les deux dernières avec une taille à 8 chiffres sont les clefs problématiques.

Si l’on veut les garder (au cas où), vous pouvez les exporter en plaintext (ce qui donne un fichier de 21MB pour la clef ci-dessous)

$ gpg -a --export 'DB1187B9DD5F693B' > badkey.asc

Mais, il y a de bonnes chances que vous désiriez plutôt les supprimer.

$ gpg --delete-key 'DB1187B9DD5F693B'
gpg (GnuPG) 2.2.17; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


pub  rsa4096/DB1187B9DD5F693B 2015-01-17 Patrick Brunschwig 

Delete this key from the keyring? (y/N) y
gpg: removing stale lockfile (created by 598252)

Après la suppression des clefs problématiques, tout devrait rentrer dans l’ordre !

Source des commandes : Mitigating Poisoned PGP Certificates (CVE-2019-13050)

Nxt, Ardor et l’évolution des crypto-monnaies

vendredi 14 octobre 2016 à 18:54

J’ai un avis mitigé sur le bitcoin. Tout avait bien commencé avec un concept de blockchain assez révolutionnaire. Un réseau peer-to-peer permettant des échanges sans qu’aucun tiers de confiance ne soit nécessaire. Une bande d’amateurs de crypto dans un monde post-crise financière se disant qu’ils n’avaient pas besoin de gouvernement ou d’institution pour créer une monnaie.
Et puis, en grandissant, les limites du système sont apparues : une impossibilité d’évoluer (cf le débat sans fin sur les tailles de bloc), une consommation énergétique stupide, une taille de blockchain n’en finissant pas, une centralisation du pouvoir de minage,…

90% du pouvoir de hash bitcoin assis dans le même canapé
90% de la puissance de hash bitcoin assis dans le même canapé

Avec le succès du bitcoin, nombreux sont ceux qui ont tenté de surfer sur la vague. On a d’abord eu tout ceux qui reproduisent le modèle qui fonctionne en modifiant 2, 3 variables (litecoin, dogecoin et autres ersatz de bitcoin). Certaines vont ajouter des fonctionnalités intéressantes (meilleur algorithme de minage, plus d’anonymat, plus rapide,…) mais sans changement révolutionnaire, elles sont souvent sans autre intérêt que spéculatif.

Et puis, on a les altcoins, souvent surnommées « Bitcoin 2.0 », qui vont réellement changer le principe de fonctionnement. On pense par exemple à Ethereum qui a été la cryptocoin du moment et a fait beaucoup parler d’elle lors d’un hack qui a entraîné un fork de la monnaie. En dehors de cette gestion de crise critiquable (mais cela est une autre histoire), on a là un système réellement différent du bitcoin.

Mon but n’est pas de présenter le vaste monde des altcoins mais de parler d’une injustement peu connue : Nxt.

logo-nxt-rond2x

Nxt est sûrement un des systèmes les plus révolutionnaires de cryptocoin. Créé en 2013, c’était un des premiers systèmes à ne pas être un fork du code de bitcoin.

Proof-of-stake

Nxt n’utilise pas le mécanisme de consensus habituel de proof-of-work. Dans bitcoin, la difficulté de minage, l’activité qui sécurise le réseau (et accessoirement récompense avec des bitcoins), augmente continuellement et est responsable d’une consommation électrique à vomir. Ma conscience écologique ne peut soutenir un système déjà aussi énergivore qu’un pays alors qu’il ne concerne encore qu’une niche de la population.

Dans le proof-of-stake, le mécanisme n’est pas celui qui a le plus gros GPU mais celui qui a le plus de richesse. Plus de pièces un utilisateur possède, plus il a de chance de forger (on ne parle plus de miner) le bloc suivant. Forger ne sert plus qu’à valider les transactions en cours et requiert une fraction de l’utilisation du processeur. Pour donner un exemple, je forge via un raspberrypi.

forger

La critique du système est que c’est un pouvoir aux riches permettant aux riches de devenir encore plus riche. Sans défendre un tel système, je tiens à faire remarquer que:

– c’est également le cas avec le bitcoin, seuls les riches peuvent se permettre une ferme de minage consommant des GW pour accumuler encore plus de bitcoins
– une personne riche a peu d’intérêts à attaquer le système : si on a vu des attaques à 51% récemment sur des monnaies PoW basée sur Ethereum (il suffit de louer des machines pendant quelques heures), faire une attaque à 51% sur une monnaie PoS implique d’avoir déjà acheté la moitié des pièces et de faire perdre sa valeur à notre investissement.

Pour l’anecdote, un article critiquant proof-of-stake calcule qu’il faudrait plus de 1000 ans pour que le plus riche possesseur de NXT obtienne plus de 51% via le stake. On a de la marge.

Proof-of-stake n’est certainement pas un système parfait (se pose aussi le complexe problème de la distribution initiale) mais proof-of-work ne me semble simplement pas viable en grandissant.

Plateforme

Nxt n’a pas pour vocation de devenir une monnaie concurrente au bitcoin. Lorsque l’on utilise le terme crypto-monnaie, les gens ont tendance à l’envisager comme un moyen d’acheter des biens. Cependant, Nxt permet bien plus que cela : en plus de la myriade de fonctionnalités directement inclues dans le client (coinshuffle, intégration shapeshift,…), il se comporte en plateforme pour usages divers :
– une messagerie (chiffrée ou non)
– un système de vote publique
– un magasin en ligne
– un stockage distribué

Si cela ne suffisait pas, il permet la création d’assets et même d’autres crypto-monnaies.

En bref, un asset permet de distribuer des parts (pensez actions ou tickets de concert) que les gens peuvent s’échanger librement tandis qu’une monnaie permet de créer réellement sa monnaie proof-of-stake en quelques clics.

pile de monnaie

Nxt permet de servir de plateforme pour les assets et monnaies naissantes en bénéficiant de la sécurité et robustesse du réseau tout en masquant les difficultés techniques.

Ardor

Toute cela est très bien mais ce n’est pas encore suffisant. Il reste deux points problématiques dans le système actuel:
– en grandissant, la blockchain devient obèse et difficile à manipuler
– les assets et monnaies payent toujours leurs frais de transaction en NXT

La première est commune à toutes les chaînes gagnant un peu de succès. Il est illusoire de vouloir télécharger la blockchain Bitcoin (on approche des 100GB cette année) sur son smartphone par exemple. Et ça ne fait qu’empirer.
Si Nxt atteignait la taille de Bitcoin, le problème se poserait probablement aussi.

La deuxième rend le système moins attractif pour créer sa propre crypto-monnaie puisqu’il force les utilisateurs à continuer d’acheter des Nxt pour les transactions.

Pour régler ces problèmes, l’équipe de développeurs est en train de mettre au point Ardor, une sorte de Nxt 2.0 (un Bitcoin 4.0 donc ?).

Ardor sera une blockchain qui aura pour but de supporter les child chains uniquement. Fini les votes, stockage, messagerie et autres sur Ardor. Toutes ces fonctionnalités restent mais sont déplacées sur les chaînes enfants.

Ardor et les chaînes enfants intégreront un mécanisme de purge pour ne garder que les dernières transactions pour maintenir une taille faible du réseau même en cas de forte croissance. Un système de hash sera intégré pour s’assurer que l’historique n’a pas été altéré.

Traders attendant l’arrivée d'Ardor
Traders attendant l’arrivée d’Ardor

Le deuxième problème est également réglé. Les transactions sur les chaînes enfants seront payées dans la monnaie de celle-ci. Pour supporter le réseau, ces frais de transactions seront reversés aux bundlers, des personnes payant des frais en Ardor pour transmettre les transactions à tout le réseau.

Le principe économique sera donc que, tant que la chaîne enfant aura de la valeur, des bundlers accepteront de payer les frais de transactions en Ardor. Si la valeur du token enfant diminue, les frais devront augmenter pour que le bundler continue de les accepter.

Si tout se passe bien, tout cela sera caché aux yeux des utilisateurs qui ne devront pas se soucier des bundlers ou d’Ardor. Un utilisateur d’une chaîne enfant n’aura même pas besoin de savoir qu’elle fonctionne sur Ardor !

Future

Si après tout ce blabla, vous êtes convaincus d’acheter des NXT, vous vous êtes sans doute rendu compte que le cours du NXT a grandement chuté ces derniers mois. Cela est du à la phase de transition entre Nxt et Ardor.

roadmap

Au stade actuel, Ardor n’est pas encore déployé. Les développeurs de Nxt ont annoncé une feuille de route pour fin 2017 pour prendre le temps de développer la nouvelle solution.
Cette semaine, des tokens de Ardor ont été distribué aux possesseurs de NXT comme un asset. S’il y avait un motif de garder ses NXT, celui-ci vient de tomber et est vu comme un projet sans avenir auprès des traders.

Vu qu’il reste encore un an avant que Ardor ne soit déployé et que Nxt restera parfaitement fonctionnel après cela (la magie des blockchains), il n’y a pas de raison de ne plus l’utiliser. De plus, un prix faible veut dire des frais de transaction faibles ce qui le rend encore plus attractif comme plateforme (et non comme monnaie).

LetsEncrypt, .well-known et NGINX

mardi 3 novembre 2015 à 13:43

Il y a quelques jours, j’ai eu la bonne surprise de voir ma demande a la beta de Let’s Encrypt être acceptée. A moi l’argent, la gloire et la crypto !

letsencrypt
Pour rappel, letsencrypt est une autorité de certification (CA) qui ne demande aucune validation humaine de leur part. Pas d’envoie de papiers d’identité ou autre preuves. Pour prouver que vous etes bien possesseur du domaine, il suffit que, lors de la génération du certificat, vous placiez un fichier json accessible a une url « mondomaine.com/.well-known/… ».

La procédure de génération est donnée (et risque d’évoluer d’ici la fin de la beta) mais en résumé:

Make sure your web server displays the following content at                                                                                           
http://mart-e.be/.well-known/acme-challenge/abcdef... before continuing:

{"header": ...}

Content-Type header MUST be set to application/jose+json.

If you don't have HTTP server configured, you can run the following
command on the target server (as root):

mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge
cd /tmp/letsencrypt/public_html
echo -n '{"header": ...}' > .well-known/acme-challenge/abcdef...
# run only once per server:
$(command -v python2 || command -v python2.7 || command -v python2.6) -c \
"import BaseHTTPServer, SimpleHTTPServer; \
SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map = {'': 'application/jose+json'}; \
s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); \
s.serve_forever()"
Press ENTER to continue

Super, seulement wordpress ne me laisse pas créer des dossiers arbitraires dans mon dossier contenant le code (et c’est une bonne nouvelle en soit). Pour résoudre cela, un petit bricolage nginx s’imposait.

HTTPS sur un blog, c'est comme un éléphant-mitrailleuse. Ça ne sert pas a grand chose mais c'est cool!
HTTPS sur un blog, c’est comme un éléphant-mitrailleuse. Ça ne sert pas a grand chose mais c’est cool!

Dans la config nginx du blog, ajoutez un bloc location:

Mise à jour: Michel propose une solution plus simple sans s’ennuyer avec un serveur local en python!

server {
       listen 80;
       server_name mart-e.be;
       location ~ /.well-known {
            proxy_pass  http://127.0.0.1:7890;
       }
       
       # reste de la config pour wordpress
}

Où 7890 est un numero de port totalement arbitraire.
Ensuite, suivant +/- les conseils du wizard de letsencrypt

$ mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge
$ cd /tmp/letsencrypt/public_html
$ echo -n '{"header":...}  > .well-known/acme-challenge/abcdef...
$ python -c "import BaseHTTPServer, SimpleHTTPServer; SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map = {'': 'application/jose+json'}; s = BaseHTTPServer.HTTPServer(('', 7890), SimpleHTTPServer.SimpleHTTPRequestHandler); s.serve_forever()"

Notez que j’ai changé le numéro de port de 80 a 7890 dans les paramètres de HTTPServer.

On relance NGINX (nginx -s reload), continue l’exécution du wizard (press ENTER) et victoire !

Press ENTER to continue

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/mart-e.be/fullchain.pem. Your cert will
   expire on 2016-01-26. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.

Vous pouvez tuer la commande python une fois validé et retirer la config nginx (ou commentez, le certificat beta ne vaut que 90 jours).

En bonus, la config nginx qui va bien:

ssl_certificate /etc/letsencrypt/live/mart-e.be/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mart-e.be/privkey.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparams.pem;

Avec le fichier dhparams.pem servant à la génération d’une clef diffie-helman, via la commande openssl dhparam -out dhparam.pem 2048

Mozilla a un super générateur de config. J’ai prit la config moderne, désolé utilisateurs de vieux soft, je décroche ainsi un beau A sur le CryptCheck un peu nazi de Aeris !

CrptCheck

Vous pouvez maintenant accéder a mart-e.be en https !