Commit 686db001 authored by thomasbromehead's avatar thomasbromehead

Update 2018-06-18-deep-dive-duniter-web-of-trust.md

parent daeed668
......@@ -21,7 +21,7 @@ Before reading this article we recommend getting familiar with the [Ğ1 license]
There are two reasons we need it :
1. To make sure that only one Universal Dividend is produced per member at each specified creation interval -in the Ğ1’s case this interval is set as daily `86 400` seconds-, it is the *monetary parameter* known as `dt`-.
2. To identify the nodes hashing the blocks and assign them each a personalised difficulty. This custom difficulty [proof of work](https://en.wikipedia.org/wiki/Proof-of-work_system) is there to avoid that the blockchain’s validation mechanism becomes too centralised as is the case with many 'non-libre’ cryptocurrencies.
2. To identify the nodes hashing the blocks and assign them each a personalised difficulty. This custom difficulty [proof of work](https://en.wikipedia.org/wiki/Proof-of-work_system) is there to avoid the blockchain’s validation mechanism becoming too centralised as is the case with many 'non-libre’ cryptocurrencies.
> Wait, what’s a ‘monetary parameter’ ?
Every currency implementing Duniter has its own blockchain whose behaviour is dictated by a set of ‘parameters’ -defined in block zero, the so-called genesis block- that can be tweaked to achieve the desired results. At the time of writing this article, the Duniter protocol -aka DUP- has a total of 21 parameters of which 10 are for the WoT alone.
......@@ -64,7 +64,7 @@ It is of the utmost importance that we remain free from any state or corporation
* __Simple graph__ : a graph with no loops and with no multiple edges. That is, each edge connects two distinct endpoints and no two edges have the same endpoints. A simple edge is an edge that is not part of a multiple adjacency -of edges-. In many cases, graphs are assumed to be simple unless specified otherwise. [Wikipedia](https://en.wikipedia.org/wiki/Glossary_of_graph_theory_terms)
* __Directed graph__ : a graph in which the edges have a distinguished direction, from one vertex to another. A directed edge can also be called an path or walk. [Wikipedia](https://en.wikipedia.org/wiki/Glossary_of_graph_theory_terms) Arrow A –> B is therefore different from arrow B –> A.
* __Directed graph__ : a graph in which the edges have a distinguished direction, from one vertex to another. A directed edge can also be called a path or walk. [Wikipedia](https://en.wikipedia.org/wiki/Glossary_of_graph_theory_terms) Arrow A –> B is therefore different from arrow B –> A.
* __Endpoints__: the edge with vertex A –> B has A and B as endpoints, respectively as start and end of the path/walk.
......@@ -76,7 +76,7 @@ It is of the utmost importance that we remain free from any state or corporation
* __In-degree of vertex A__ : number of outbound edges from A.
![visualisation des degrés d'un sommet]({filename}/images/wiki/degrees.jpg)
![degress of a vertex diagram]({filename}/images/wiki/degrees.jpg)
* __Path__ : -aka “walk”- path to follow to get from vertex A to vertex B.
......@@ -111,7 +111,7 @@ If, for whatever reason, A were to lose its member status, the web would crumble
Because our WoT doesn’t have any isolated vertices, each new identity created needs to be pulled into the web with all of the certifications it has received -in the same block-.
This calls for a temporary ‘buffer’ storage space for
**pending** identities and the certifications they’ve received. This storage space is called ‘the pool’ -of Duniter nodes- which could also have called the ‘sandbox’ as that’s the name used in Duniter’s code. I might add that these ‘pools’ also include other documents and metadata not mentioned here.
**pending** identities and the certifications they’ve received. This storage space is called ‘the pool’ -of Duniter nodes- which we could also have called the ‘sandbox’ as that’s the name used in Duniter’s code. I might add that these ‘pools’ also include other documents and metadata not mentioned here.
# Exploring the rules behind a Duniter Web of Trust
......@@ -128,7 +128,7 @@ The Duniter WoTs -one per currency- work with a set of 8 fundamental rules, them
Let’s now define the distance rule :
> **Distance rule** : member A is said to observe this rule if and only if for a subset xPercent % of referent memberàs R there exists a path of length less than or equal to `stepMax` between R and A.**
> **Distance rule** : member A is said to observe this rule if and only if for a subset xPercent % of referent members R there exists a path of length less than or equal to `stepMax` between R and A.**
Referent members only exist so that the distance rule can take effect, they have no special privileges over non-referent members.
In a perfect web, that is one in which each member has certified all members he/she legitimately can, all members would be referent members. However, because the web progressively grows in size and because members die and are replaced by new ones, there are always members at any given time `t` who haven’t yet certified all members they legitimately could. These members would hinder the evolution of the web if they were taken into account in the calculation of the distance rule and the web would effectively stop growing.
......@@ -179,7 +179,7 @@ When a certification is issued by member A, it will be stored in the ‘pool’
## 8. Lifespan of a ‘pending’ active certification (`idtyWindow`)
When a new identity is created, it is stored in the ‘pool’ for a maximum of `idtyWindow` seconds. If the person hasn’t achieved member status by then the certification will simply be cancelled.
When a new identity is created, it is stored in the ‘pool’ for a maximum of `idtyWindow` seconds. If the person hasn’t achieved member status by then, the certification will simply be cancelled.
# Details on some of the WoT’s peculiarities at the genesis block.
......
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