Options pour gérer les commentaires de transaction côté serveur

On déplacera cette discussion ailleurs plus tard, mais c’est intéressant donc je me permet de répondre sur ce sujet.

Moi je ne suis pas en débat j’essai juste de comprendre un peu mieux comment fonctionne le storage substrate.

Mais au delà de ça, il semble y avoir divergence d’opinion entre toi qui préfère stocker les hash de commentaire en blockchain, et cgeek qui préfère simplement les voir figurer en événement. Chaque proposition est argumenté, je laisse les personnes intelligentes trancher sur cette conception. Moi je retourne jouer avec mes prouts.

Je pense qu’il y a confusion ici, Substrate n’identifie pas de donnée “volatiles”. Il y a simplement des données mutables (le runtime storage) et des données imutables (inscrits en bloc).

Là où je pense avoir fait une erreur précédemment, c’est que les événements ne sont pas présents en bloc, mais présent dans le runtime storage. Ce que je comprends mieux en relisant la doc, c’est que les noeuds archives ne contiennent pas juste le body de chaque bloc, mais également l’état du storage de chaque bloc. D’où la présence des événements.

En fait ce que je trouve perturbant c’est que dans ma conception du réseau duniter, les noeuds archives sont des éléments indispensables au bon fonctionnement de ce réseau, car nécessaires au fonctionnement des indexer.

Hors toutes les explications de @cgeek concernant les branches de merkle tree effacés à chaque bloc ne sont pas vrai pour les nœuds archives, qui eux gardent tout, même l’état du storage pour chaque bloc (reprenez moi si je me trompe svp sinon on va pas s’en sortir ^^).
Je trouve la doc Substrate très pauvre sur ces sujets, j’ai beaucoup de mal à trouver des informations détaillés sur ces sujets.

Je ne comprends toujours pas comment un nœud archive peut être reconstitué à partir d’un full node, sachant que ce dernier de contient que les header de blocs, ni le body, ni les états de storage intermédiaires.

La source cité dans le message de vit stipule que les headers permettent de reconstruire l’état de l’ensemble de la blockchain.

Hors :

In Substrate, a block consists of a header and an array of transactions. The header contains the following properties:

  • Block height
  • Parent hash
  • Transaction root
  • State root
  • Digest

Source

Ca fait longtemps que je pose cette question et que je n’ai pas de réponse, je pense que ce serait bien qu’on comprenne ce point.
Si on élimine tous les nœuds archives du réseau, peut on réellement reconstituer un nouveau noeud archive ? Comment ?