Transaction de valeur et transaction de bien

Une transaction dans une monnaie permet la transmission de valeur entre deux entités. Cette transmission est une (ré)attribution de la valeur matérialisée par un jeton ou une partie de jeton. Mais une transaction peut aussi potentiellement porter non sur la valeur d’un jeton mais sur un objet physique attaché à un jeton. Dans ce cas on peut figer dans une cryptomonnaie une transaction de bien. Et si la monnaie permet une transaction contenant de multiples transactions unitaires, on peut avoir dans une même transaction une réattribution de bien simultané à une réattribution de valeur, les deux non répudiables et non séparables.

Modes de transaction

Dans l’article La transaction est un lien, on a abordé le mode de transaction LNS et la possibilité d’en gérer plus sous la forme d’un objet.

Le code ne prend en compte que le mode LNS mais sa structure est déjà faite afin d’intégrer plus facilement d’autres modes.

Les modes prévisibles :

  • LNS : mode par Lien et jeton non sécable. C’est l’unique mode capable de fonctionner aujourd’hui avec un cœur de lien à trois champs.
  • UNS : mode à objet contenant une unique transaction unitaire d’un jeton non sécable.
  • UJP : mode à objet contenant une unique transaction unitaire d’une partie de jeton (sécable).
  • MNS : mode à objet contenant plusieurs transactions unitaires de jetons non sécables.
  • MJP : mode à objet contenant plusieurs transactions unitaires de parties de jetons (sécables).

Le nommage des modes est sous forme de trigramme, c’est une simple convention.

Les types de transactions supportées sont inscrits dans la propriété TRS de la monnaie du jeton.

La transaction est un lien

Après réflexion il est préférable de traiter la transaction dans le code comme un dérivé de lien et non d’objet.

La première raison est assez simple puisque un lien est suffisant pour marquer une transaction si cela ne concerne qu’un jeton entier. C’est le mode de transaction le plus simple et il est développé en ce moment dans la bibliothèque sur le nom LNS (mode par Lien et jeton non sécable).

La seconde, c’est qu’un lien de transaction peut désigner un objet qui porte toutes les transactions unitaires. Dans ce cas on peut traiter simultanément plusieurs jetons et plusieurs parties de jetons. Mais on doit rester dans une seule monnaie.

Champ action du lien – action supplémentaire de transaction

Il était possible de créer une nouvelle action dédiée aux transactions et non annulable, cf l’article Lien de transaction, ce qui aurait nécessité une grosse modification du code de la bibliothèque.

Finalement cette nouvelle action ne sera pas implémentée, il est possible avec la gestion des relations sociales spécifiques à une monnaie de supporter une suppression de transaction par son initiateur mais sans effet de cette suppression si la transaction a déjà été validée par ailleurs.  dans ce cas c’est comme si la transaction marqué par l’utilisateur était une demande de transaction et que celle-ci était validée par une autorité reconnue au niveau de la monnaie.

Bonne année 2020

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.

Gestion de la hiérarchie dans la monnaie et les jetons

Lorsque l’on crée une monnaie, on lui attribue une unique entité autorité AID.

Cet autorité de la monnaie délègue la gestion de la monnaie à une ou plusieurs entités gestionnaires MID.

Les gestionnaires de la monnaie forgent un ou plusieurs sac de jetons PID.

Pour chaque sac de jetons, un gestionnaire de la monnaie délègue la gestion du sac de jetons à une ou plusieurs entités gestionnaires MID.

Les gestionnaires d’un sac de jetons forgent des jetons TID.

Il est possible d’attribuer les rôles à une seule entité.

Forçage de la monnaie dans les jetons

Jusque là dans le code on essayait de retrouver la monnaie lorsque que l’on instanciait un jeton ou un sac de jeton. Ou plutôt on injectait l’identifiant de la monnaie dans l’instance du jeton pour pouvoir récupérer des valeurs héritées essentielles.

Cette méthode pose problème parce qu’il faut justement préalablement connaître la monnaie dans laquelle le jeton est utilisé. Il est théoriquement possible de retrouver la monnaie d’un jeton que l’on souhaite utiliser en exploitant les liens du jeton qui le lie à une monnaie. Mais comme le jeton non forcé affilié à une monnaie peut être associé à plusieurs monnaies, en l’absence de l’indication de la monnaie celle-ci est déduite d’un traitement social sur les liens avec la monnaie. Et donc qui dit traitement social des liens dit aussi possibilité manipulation, et donc problème de confiance.

Pour réaliser une transaction il faudrait préciser un jeton et une monnaie, soit à peut près le lien de rattachement du jeton à la monnaie. Le but est de ne pas utiliser des liens dans les transactions mais des jetons (objets) ou des fractions de jetons (via des liens de sous-parties d’objets).
Donc l’implémentation actuelle ne convient pas.

Pour résoudre ce problème d’implémentation, la monnaie devient un paramètre obligatoirement inscrit dans l’objet du jeton. Et c’est le cas aussi pour le sac de jetons. Ainsi le champs CID doit apparaître dans l’objet du jeton en ligne 3 de la même façon que le champs AID était devenu obligatoire en ligne 3 des objets des monnaies.

Génération de monnaie fonctionnelle

La génération et l’affichage des monnaies, sacs de jetons et jetons sont fonctionnels même si pas encore complètement terminés.

Le travail continue maintenant sur les portefeuilles et les transactions.

Un portefeuille est un dérivé des entités. C’est le portefeuille qui sera l’élément actif des transactions vers d’autres portefeuilles.