# Discussions autour du sujet "vocabulaire de base pour comprendre Duniter-v2s"

**URL:** https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063
**Category:** Duniter-v2s
**Created:** [27 January 2022 22:02 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063 "2022-01-27T22:02:58Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![jytou](https://forum.duniter.org/user_avatar/forum.duniter.org/jytou/32/664_2.png) [@jytou](https://forum.duniter.org/u/jytou)
#### Post date: [9 June 2022 23:46 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/21 "2022-06-09T23:46:37Z")

</div>

Sauf erreur « Pallet » n’est jamais défini. 🙂 Sinon ça va, ça me semble assez clair. 👍

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [12 June 2022 20:19 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/22 "2022-06-12T20:19:16Z")

</div>

> [@jytou](#):
>
> « Pallet » n’est jamais défini. 🙂

Je viens d’ajouter “Pallet”, ainsi que “Dispatch class” 🙂

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [12 June 2022 21:48 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/23 "2022-06-12T21:48:20Z")

</div>

Tu avais à un moment parlé de la différence entre session et epoch, mais je ne me souviens plus. Epoch n’apparaît pas dans la liste.

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [12 June 2022 22:24 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/24 "2022-06-12T22:24:45Z")

</div>

Je viens de rajouter «&nbsp;Epoch&nbsp;», et de modifier «&nbsp;Session&nbsp;» pour expliquer le lien.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 June 2022 18:20 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/25 "2022-06-13T18:20:44Z")

</div>

Si tu veux bien : pourrais-tu rajouter une phrase sur ce qu’il se passe si jamais aucun bloc primaire ni secondaire n’est émis ? [J’avais posé la question sur le GitHub Substrate](https://github.com/paritytech/substrate/issues/10610), j’ai eu la réponse qu’un bloc pouvait être sauté mais sans comprendre comment la blockchain acceptait une absence de bloc.

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [13 June 2022 18:41 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/26 "2022-06-13T18:41:02Z")

</div>

> [@cgeek](#):
>
> ce qu’il se passe si jamais aucun bloc primaire ni secondaire n’est émis ?

Il ne se passe juste rien, c’est d’ailleurs ce qui est arrivé plusieurs milliers de fois pendant les quelques heures où ton nœud était down. C’est lié à la notion de “Slot”, que je viens d’ajouter 🙂

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [19 August 2022 16:57 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/27 "2022-08-19T16:57:05Z")

</div>

Peut-être qu’il faudrait préciser le vocabulaire «&nbsp;adresse&nbsp;» «&nbsp;pubkey&nbsp;».

De mémoire, une adresse, c’est 2 octets de préfixe, 32 octets de clé publique, et 4 octets de checksum concaténés dans cet ordre. L’adresse au format ss58 est l’encodage en base58 de ces 38 octets.

J’ai l’impression qu’il y a régulièrement des confusions à ce propos et je ne retrouve pas le schéma qu’on avait fait sur un paperboard aux RML16.

[edit]

Je vois

```auto
julia> base58decode(b"5GAT6CJW8yVKwUuQc7sM5Kk9GZVTpbZYk9PfjNXtvnNgAJZ1")
35-element Vector{UInt8}:
 0x2a
 0xb5
 0x52
 0xb2
    ⋮
 0xc4
 0xef
 0x7e
 0x5c

```

soit 35 octets, pas 38. Où est-ce que je me trompe ?

[edit]

ok, donc je résume pour ss58 :

- **préfixe** 1 à 2 octets en fonction de la valeur
- **clé publique** 32 octets
- **checksum** 2 octets

Soit 35 ou 36 octets au total.

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [19 August 2022 17:32 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/28 "2022-08-19T17:32:10Z")

</div>

Une «&nbsp;adresse&nbsp;» c’est «&nbsp;quelque chose qui identifie un compte&nbsp;». C’est un terme générique qui peut désigner des choses différentes selon comment est codé le runtime.

Dans notre cas c’est 32 octets libres.

Le préfixe et le checksum sont des notions inhérentes au format ss58 qui n’existent donc pas au format binaire. Et c’est bien normal car leur existence ne sert qu’à gérer les erreurs de saisie humaine.

Dans le format ss58, le checksum fait 2 octets, et le préfix 1 à 2 octets selon sa valeur. Pour nos réseaux de test le préfix est 42, encodé sur 1 octet, donc nos adresses ss58 encodent 35 octets en base58, ce sera 36 pour la Ğ1v2.

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [3 November 2022 09:52 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/29 "2022-11-03T09:52:20Z")

</div>

Je propose l’ajout de la définition de `ChainSpec`, «&nbsp;[chain specification](https://docs.substrate.io/build/chain-spec/)&nbsp;».

Les chain specification sont un ensemble d’informations décrivant un réseau précis. Elles sont composées de :

- des spécifications du client (nom/id de la monnaie, bootnodes, code substitute…)
- un état genesis (bloc zéro) incluant le runtime initial

Certaines spécifications du client peuvent être modifiées après le lancement du réseau (par ex les bootnodes), alors que le genesis est fixé une fois pour toutes (d’où l’utilisation du hash du genesis comme identifiant de blockchain).

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [3 November 2022 13:46 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/30 "2022-11-03T13:46:56Z")

</div>

> [@HugoTrentesaux](#):
>
> Je propose l’ajout de la définition de `ChainSpec`,

Accordé, je te laisse modifier le post 🙂

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [14 December 2022 13:54 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/31 "2022-12-14T13:54:45Z")

</div>

Je propose l’ajout d’une définition pour `Random ID` suite à la discussion [La solution pour des identicones sécurisées: le random id](https://forum.duniter.org/t/la-solution-pour-des-identicones-securisees-le-random-id/9126)

> Le Random ID est un identifiant unique attribué à un compte par la blockchain. Il rend très coûteux les attaques visant à obtenir un randomid choisi et peut donc servir de graine solide pour un système d’identification visuel (identicon).

Même si en pratique on n’est pas parti pour s’en servir, ça peut être utile de le documenter parce qu’actuellement il est dans le code.

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [14 December 2022 15:13 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/32 "2022-12-14T15:13:48Z")

</div>

> [@Vocabulaire de base pour comprendre Duniter-v2s (lecture fortement recommandée pour tous)](https://forum.duniter.org/t/vocabulaire-de-base-pour-comprendre-duniter-v2s-lecture-fortement-recommandee-pour-tous/9053/1):
>
> Dans duniter-v2s, nous avons pour le moment un seul provider : le solde monétaire.

Donc l’identité n’est pas un provider ? @poka tu savais ?

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [14 December 2022 15:15 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/33 "2022-12-14T15:15:58Z")

</div>

Non, je n’ai pas la notion de Providers pour Substrate, pour moi les provider c’est ce que je dois virer de Gecko pour passer à Rivderpod lol…

(oui c’est qui consomme un consumer, c’est ce qu’il faut chercher pour comprendre ce qui utilise un consumer donc)

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [4 July 2023 20:21 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/34 "2023-07-04T20:21:01Z")

</div>

# Extensions

Parmi les [Externalities](https://forum.duniter.org/t/vocabulaire-de-base-pour-comprendre-duniter-v2s-lecture-fortement-recommandee-pour-tous/9053#externalities-externalits-9), on peut ajouter des Extensions.

Pour l’instant la seule définition parlante que j’ai trouvée : [sp\_externalities - Rust](https://docs.rs/sp-externalities/latest/sp_externalities/) :

> Extensions are for example the keystore or the offchain externalities. These externalities are used to access the node from the runtime via the runtime interfaces.

Autrement dit, les extensions font partie, avec le Storage, des éléments auxquels le Runtime a accès.  
En cherchant dans le code source de Substrate, je tombe principalement sur des extensions du genre :

- offchain workers
- transaction pool

Mais en fait j’ai l’impression que les extensions, ce sont en quelques sortes les “modules” que l’on peut brancher sur le Runtime pour _étendre_ ses capacités, et que l’on peut définir à volonté.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [5 July 2023 17:55 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/35 "2023-07-05T17:55:16Z")

</div>

# Canonicalization

Fait, pour Substrate, de considérer qu’un bloc fait partie de la chaîne principale et participe à constituer l’état courant de la monnaie. Les blocs présents dans des forks ne sont pas canonicalisés.

~~Cependant, un fork peut évoluer en chaîne principale : ses blocs sont alors canonicalisés, et les blocs non finalisés de l’ancienne branche principale sont décanonicalisés et relégués au rang de fork.~~

Par ailleurs :

- les blocs canonicalisés voient leurs modifications apportées au storage inscrits dans le Main Trie, sur disque ;
- les blocs non-canonicalisés voient quant à eux leurs modifications apportées au storage inscrites dans l’Overlay, en mémoire vive (persisté sur disque et rechargé entre 2 redémarrages du nœud).

# Finality

C’est une canonicalisation définitive, irréversible. Un bloc finalisé ne sera jamais annulé, sauf hard-fork.

> Source : [Polkadot Developer Docs](https://docs.substrate.io/learn/state-transitions-and-storage/)

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [15 July 2023 18:36 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/36 "2023-07-15T18:36:04Z")

</div>

J’ai rayé sur mon message précédent une fausse information.  
J’aimerais aussi donner une meilleure définition, ci-dessous.

Si c’est OK pour vous, j’aimerais la pousser officiellement dans le Vocabulaire.

* * *

# Canonicalization

Fait pour le Client de considérer qu’un bloc fait partie de la chaîne principale de façon irréversible (sortie de la fenêtre de fork).

La canonicalisation peut intervenir de deux façon :

- finalisation d’un bloc (via Grandpa par ex., canonicalisation par le Runtime)
- sélection forcée par dépassement de la taille de la fenêtre de fork (canonicalisation par le Client)

Un bloc canonicalisé voit ses modifications au Trie impactées sur le backend, et donc persistées sur disque.

La canonicalisation supprime tous les forks qui ne sont pas basés sur le bloc canonicalisé (et leurs modifications sur le Trie).

# Finality

C’est une canonicalisation par le Runtime.

> Source : [documentation Substrate](https://paritytech.github.io/substrate/master/sc_state_db/index.html#canonicalization)

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [15 July 2023 18:41 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/37 "2023-07-15T18:41:43Z")

</div>

Ajout de [Extensions](https://forum.duniter.org/t/vocabulaire-de-base-pour-comprendre-duniter-v2s-lecture-fortement-recommandee-pour-tous/9053#extensions-9), [Overlay](https://forum.duniter.org/t/vocabulaire-de-base-pour-comprendre-duniter-v2s-lecture-fortement-recommandee-pour-tous/9053#overlay-15) et [Archive node](https://forum.duniter.org/t/vocabulaire-de-base-pour-comprendre-duniter-v2s-lecture-fortement-recommandee-pour-tous/9053#archive-node-nud-archive-2).

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [18 July 2023 08:38 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/38 "2023-07-18T08:38:59Z")

</div>

Merci pour ces nouvelles définitions ! Ils sont étranges d’avoir inventé le mot “canonicalization” plutôt que d’utiliser “canonisation” qui se comprend bien.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [18 July 2023 20:08 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/39 "2023-07-18T20:08:08Z")

</div>

Ajout de [Canonicalization](https://forum.duniter.org/t/vocabulaire-de-base-pour-comprendre-duniter-v2s-lecture-fortement-recommandee-pour-tous/9053#canonicalization-5) et [Finality](https://forum.duniter.org/t/vocabulaire-de-base-pour-comprendre-duniter-v2s-lecture-fortement-recommandee-pour-tous/9053#finality-13).

---

<div class="post-metadata">

### Author: ![flodef](https://forum.duniter.org/user_avatar/forum.duniter.org/flodef/32/8598_2.png) [@flodef](https://forum.duniter.org/u/flodef)
#### Post date: [19 July 2023 07:55 UTC](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063/40 "2023-07-19T07:55:48Z")

</div>

> [@HugoTrentesaux](#):
>
> canonisation

Amen 🤣🤣🤣

[Previous page](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063.md?page=1)

[Next page](https://forum.duniter.org/t/discussions-autour-du-sujet-vocabulaire-de-base-pour-comprendre-duniter-v2s/9063.md?page=3)
