Commit d833996c authored by Éloïs's avatar Éloïs

finalize presentation dup-protocol

parent 4ba4dfca
Pipeline #4955 passed with stages
in 21 seconds
......@@ -12,4 +12,4 @@ Ce dépôt regroupe toutes* les slides des présentations et conférences de lib
* [Présentation de l'écosystème logiciel de la G1](https://librelois.duniter.io/slides/rustkathon2019_1/g1-ecosystem/)
* [Présentation de webassembly](https://librelois.duniter.io/slides/rustkathon2019_1/wasm/)
* [Le protocole DUP (draft)](https://librelois.duniter.io/slides/rustkathon2019_1/dup-protocol/)
\ No newline at end of file
* [Le protocole DUP](https://librelois.duniter.io/slides/rustkathon2019_1/dup-protocol/)
\ No newline at end of file
......@@ -27,14 +27,17 @@ class: dark
## Sommaire
1. [DUBP et DUNP](#dubp-and-dunp)
2. [Les Documents Utilisateur](#user-document)
3. [Réception d'un document](#document-receipt)
4. [Synchronisation](#sync)
5. [Génération d'un block](#block-generate)
6. [Réception d'un block](#block-receipt)
7. [Validation Locale vs Globale](#local-vs-global)
8. [Résolution des Fork](#resolution-fork)
9. [Le Protocole réseau](#dunp)
2. [Etat vs transformation](#state-vs-transformation)
3. [Les Documents Utilisateur](#user-document)
4. [Réception d'un document](#document-receipt)
5. [Synchronisation](#sync)
6. [Génération d'un block](#block-generate)
7. [Réception d'un block](#block-receipt)
8. [Validation Locale vs Globale](#local-vs-global)
9. [Les indexs](#indexs)
10. [les évenements](#events)
11. [Résolution des Fork](#resolution-fork)
12. [Le Protocole réseau](#dunp)
<!-- TODO: parler des sources UTXO ? -->
......@@ -54,6 +57,30 @@ DUNP : Network Protocol (v1) : [spécifications](https://git.duniter.org/nodes/c
---
name: state-vs-transformation
# .center[Etat vs transformation]
La blockchain ne comporte que des transformations d'état
<div class="mermaid">
graph LR
bloc-genesis-->E1..En
E1..En-->E'1..E'n
etat0-->etat1
etat1-->etat2
</div>
Block = transformation = liste d'évenements.
Etat = Indexs -> persistés en base de donnée
Appliquer un bloc = Appliquer les transformatiosn du bloc aux indexs de la monnaie.
=> Les noeuds Duniter/Durs/Juniter utilisent les indexs, pas la blockchain.
---
name: user-document
# .center[Les Documents Utilisateur]
......@@ -167,8 +194,71 @@ name: local-vs-global
### -> Validation Globale
- Vérifie la cohérence d'un bloc validé localement, dans le contexte de l'ensemble de la blockchain.
- Vérifie cohérence d'un bloc validé localement, dans le contexte de l'ensemble de la blockchain.
- S'effectue via l'application de plus de **105 règles** spécifiées [*ici*](https://git.duniter.org/nodes/typescript/duniter/blob/dev/doc/Protocol.md#br_g01-headnumber).
- C'est dans cette phase que les "indexs" entrent en jeux.
---
name: indexs
# .center[les indexs]
- IINDEX : index des identitités
```csv
op, uid, pub, created_on, written_on, member, was_member, kick
```
- MINDEX : index des identitités
```csv
op, pub, created_on, written_on, expired_on, expires_on, revokes_on, chainable_on, type, revoked_on, leaving
```
- CINDEX : index des certifications
```csv
op, issuer, receiver, created_on, written_on, sig, expires_on, chainable_on, replayable_on, expired_on
```
- SINDEX : index des sources de monnaie
```csv
op, tx, identifier, pos, created_on, written_on, amount, base, conditions, consumed
```
---
name: events
# .center[les évenements]
2 types d'évenements :
- Evenements utilisateurs : provoqués par un Document signé.
- Évenements spontannés : provoqués par temps blockchain.
Les événements utilisateurs :
- **identities** : écriture d'une identité -> IINDEX + MINDEX
- **joiners** : entrée d'un membre -> IINDEX + MINDEX
- **actives** : renouvellement d'un membre -> MINDEX
- **leavers** : départ d'un membre -> MINDEX
- **revoked** : révocation d'un membre -> MINDEX
- **certifications** : écriture d'une certification -> CINDEX
- **transactions** : écriture d'une transaction -> SINDEX
Les évenements spontannées :
- **excluded** : exclusion d'un membre -> IINDEX
- **certExpire** : expiration d'une certification -> CINDEX
- **implicitlyRevoked** : révocation d'un membre -> MINDEX
???
3ème cause possible d'un event : provoqué par un autre.
Par exemple l'event 'excluded' est provoqué par les event 'revoked' et 'implicitlyRevoked'.
---
......@@ -265,7 +355,7 @@ name: dunp
- Les nodes avec WS2P Public ont aussi WS2P Privé d'activé.
- Chaque node a un quota de connexions limités (faible en entrée et élevé en sortie).
---
-> [Présentation de WS2Pv2](https://librelois.duniter.io/ws2pv2-rml12/)
---
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment