Un stream de plus

Je ne l’ai pas mis dans l’article d’hier, car il a été écrit en fin de journée. Mais le live sur twitch d’hier soir a été particulièrement intéressant. J’en retiens quand même deux points à explorer par la suite.

Le premier est que si il est relativement simple de faire démarrer un Raspberry Pi sur le réseau, que ce soit en PXE TFTP ou en iPXE HTTP, la vraie difficulté est de trouver des binaires à charger qui fonctionnent dans notre contexte. Entre un GRUB sans support HTTP ou très lent avec le TFTP, les difficultés ne manquent pas. Et il y a beaucoup moins de ressources que sur x86 ou x86_64. Bref, le principe fonctionne, les détails et la mise en place pas encore !

Le second point est d’avoir réussi à démarrer une distribution dans une machine virtuelle depuis un Raspberry Pi 4. Et sans installé un outil comme ESXi qui ne fait que ça, simplement avec une distribution courante. Ça ouvre quelques possibilités intéressantes pour d’autres manipulations. Et en plus, je pense qu’un article tutoriel et qu’une vidéo pourraient être facilement montées.

Il n’y a plus qu’à !

Lundi — Bitcoin et les frais de transactions

C’est le début de la semaine, et j’ai toujours beaucoup plus d’énergie le lundi qu’en fin de semaine. Même quand mon week end est quand même partiellement sous le signe du boulot. La matinée et le début d’après midi ont encore été sur la présentation Blockchain. Et ça va continuer pendant une bonne partie du confinement.

Et comme je me dis que pour les curieux, c’est toujours intéressant de savoir comment ça fonctionne, j’ai passé un peu de temps à illustrer le fait que les frais d’une transaction Bitcoin sont proportionnels à la taille de la transaction, et pas à son montant.

Je m’explique. Dans la blockchain Bitcoin, on va avoir plusieurs entités. Je m’intéresse ici juste aux gens qui échangent des jetons (des bitcoins) et aux mineurs. Quand Pierre envoie 10 bitcoins à Marie, il se passe la chose suivante:

  • Pierre crée une transaction de son adresse vers celle de Marie
  • Le logiciel de Pierre va alors envoyer la transaction auprès des nœuds (et donc des mineurs) du réseau Bitcoin
  • Mais la transaction va tomber dans un panier qui contient toutes les transactions qui attendent d’être choisies pour être inscrites et réalisées

Il est important de comprendre que le mineur va être plus ou moins tiré au sort parmi plein de candidats. Et qu’il faut donc inviter chaque mineur potentiel à prendre la transaction de Pierre pour l’écrire dans un bloc. Sinon, elle sera et restera en attente. Comment faire ça ? Hé bien Pierre a mis une fraction de bitcoins en pourboire pour le mineur. Mais comment trouver le montant optimal, pour ne pas trop dépenser, mais inciter suffisamment les mineurs ? Tout est une question de concurrence, mais surtout de taille.

En effet, le mineur va écrire un bloc. Mais le bloc a une taille limité. Il a donc intérêt à choisir les transactions qui lui apporte le plus de frais possibles. Sauf que les transactions ont des tailles très variables. Quelque-soit le montant. Si il veut faire le maximum de bénéfices, il va alors chercher la meilleure combinaison de taille et de frais. Il a plus intérêt à mettre 10 transactions petites avec peu de frais, qu’une seule grosse transaction qui a 5 fois plus de frais.

Mais, qu’est-ce qui fait la taille d’une transaction ? Pour ça, il faut voir le portefeuille Bitcoin de Pierre comme une tirelire. Quand Pierre met une pièce dans la tirelire, on note le montant et la date de son opération. Quand la transaction sera créée, pour Marie, elle va contenir la liste de chaque ajout de Pierre dans sa tirelire.

Par exemple, si Pierre a déposé 0.1 Bitcoin dans la tirelire, tous les jours, pendant un an, il y aura donc 365 dépôts. Et quand il va faire la transaction vers Marie, la transaction va inclure les détails de ses 365 dépôts. Du coup, la transaction sera grosse en taille !

Par contre, si Pierre n’a déposé qu’une seule fois des Bitcoins dans sa tirelire, il n’y aura qu’un seul dépôt. Et la transaction sera plus petite en taille. Même si c’est le même montant.

Au final, pour inciter le mineur à inclure sa transaction dans un bloc, Pierre devra dépenser plus dans le cas de la grosse transaction, que dans le cas de la petite. Car la transaction prendra plus de place dans le bloc, et le mineur devra mettre moins de transactions dans le bloc.

Ce n’est pas tout simple, la blockchain, mais c’est vraiment un ensemble de choses très intéressantes.