Blockchain et nebule

C’est une première réflexion sur la blockchain et une implémentation avec les mécanismes de liens mis en place par nebule.

La, ou plutôt, les blockchains sont en plein essor et représentent non seulement un avenir proche pour échanger de l’argent mais aussi un avenir pour tout ce qui aujourd’hui nécessite un tiers de confiance. Les tiers de confiances peuvent être imposés ou choisis. Une blockchain permet de ne plus déprendre d’un tiers de confiance mais en conservant certains rôles remplis par un tiers de confiance. On ne se contente pas de remplacer le tiers de confiance, on sécurise même ses rôles en réduisant (voir supprimant) tous les abus de position dû à la place privilégiée du tiers de confiance.

La blockchain permet une validation globale et expose toutes les transactions à la vue de tous. Cette notion de globale implique en fait un réseau global : l’Internet.
Cette nécessité de la présence de l’Internet est potentiellement problématique. Rien ne permet d’affirmer que l’Internet survivra à moyen terme. Une fragmentation peut survenir brusquement. Et si l’Internet se retrouve fragmenté, il sera très difficile, sinon impossible, de le réunifier de nouveau. La gestion de l’information tel qu’elle est portée par nebule permet de survivre à un isolement des réseaux, l’ensemble est résilient à une fragmentation de l’Internet… même si ce ne sera pas aussi facile, rapide et fluide qu’aujourd’hui.

La blockchain permet de graver une information. L’information est une transaction financière, une transmission d’un bien réel ou virtuel. Cela veut dire une impossibilité d’annuler une opération, une transaction.
Avec nebule, les liens qui peuvent matérialiser une transaction peuvent être annulés soit par l’entité qui les émet, soit par soi-même. Si cette propriété de suppression de lien est problématique, il faudra définir un nouveau type de lien non annulable. Mais il est peut-être possible de trouver un processus présentant le même résultat tout en utilisant des liens annulables. Et il faut que celui-ci soit capable de fonctionner de façon globale tout en étant résilient à une fragmentation partielle ou forte du réseau.

Chargement de liens

Les applications génèrent par elles-même les liens dont elles ont besoin pour répondre aux usages des utilisateurs.

Il est possible de transmettre des liens qui ne peuvent être générés localement. C’est le cas des mises à jours d’applications.
Pour cela, il existe deux méthodes et deux moyens. Le code correspondant à été ré-écrit dans la bibliothèque nebule.

Pour qu’un lien soit traité, il faut que les trois soit validées :

  1. permitWrite : permet d’écrire des objets ou des liens.
  2. permitWriteLink : permet d’écrire des liens.
  3. permitUploadLink : permet de charger des liens.

Les deux méthodes sont :

  • le transfert d’un lien individuel ;
  • le transfert d’un fichier contenant (potentiellement) plusieurs liens.

Les deux moyens sont deux possibilités de transmettre les liens :

  • via l’application upload directement ;
  • via le module module_upload de l’application sylabe.

Lors du chargement d’un lien, quelque soit la méthode ou le moyen, le lien est d’abord vérifié structurellement.
Ensuite la vérification de la signature du lien et de son signataire répond à un processus plus complexe dépendant de deux options et de l’état de connexion d’une entité :

  1. permitPublicUploadLink : permet de charger des liens signés sans qu’une entité en cours ne soit déverrouillée, quelque soit le signataire.
  2. permitPublicUploadCodeMasterLink : permet de charger des liens signés par le maître du code (bachue) sans qu’une entité en cours ne soit déverrouillée.
  3. $this->_unlocked : variable qui donne l’état de déverrouillage de l’entité en cours d’utilisation, càd qu’une entité est connectée.

Si l’entité locale est déverrouillée, le transfert d’un lien devient une action légitime de l’entité. Tous les liens signés sont écrits si ils sont valides (structure et signature). Tous lien non signé est ré-écrit et signé par l’entité en cours; puis écrit.

Cette ré-écriture de lien est une ré-appropriation du lien. Est-ce que cette ré-appropriation peut poser problème ?

Bonne année 2018

Une nouvelle année signifie la mise à jour de toutes les dates à côté des licences… que ce soit dans les différents code mais aussi des sites web statiques et des blogs.

Aucune publication de code n’a été faite depuis le 8 mai 2017. Les différentes applications sont toujours en cours de ré-écriture avec la nouvelle partie graphique intégrée à la bibliothèque nebule. Et elles rejoignent progressivement la mise en pratique de la Réflexion sur l’évolution de l’interface web pour nebule. Cependant une publication en cours de migration avec des modifications partielles serait catastrophique pour l’utilisabilité des applications.

Cette focalisation à temps plein sur l’évolution de l’interface est bénéfique à la qualité de l’affichage des applications et à leur utilisabilité. Mais elle est temporaire, pendant ce temps il n’y a de travail ni sur le fond ni sur la théorie et les problématiques spécifiques à nebule.