# Nouveau tutoriel de développement

**URL:** https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570
**Category:** Duniter-v1
**Created:** [6 November 2017 17:36 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570 "2017-11-06T17:36:51Z")
**Posts on this page:** 16
**Page:** 1

<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: [6 November 2017 17:36 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/1 "2017-11-06T17:36:51Z")

</div>

Petite publicité pour le **[Nouveau tutoriel de développement Duniter](https://duniter.org/fr/wiki/duniter/tutoriel-dev/)** que je suis en train de terminer.

Il s’agit d’un tutoriel d’introduction tout neuf et qui repose cette fois sur des logiciels libres (contrairement à l’ancien tutoriel qui comportait un logiciel privateur et freinait fatalement la contribution).

Également, le tutoriel comportement plusieurs graphiques qui aideront certainement à y voir plus clair dans l’architecture.

Les chapitres :

- [1. Présentation générale et philosophie du projet](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-1-presentation)
- [2. Installation des outils](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-2-outils)
- [3. Récupération du code source](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-3-source)
- [4. Démarrage](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-4-demarrage)
- [5. Architecture de Duniter](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-5-architecture)
- [6. Éléments de code](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-6-code)
- [7. La base de données](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-7-bdd)
- [8. Les addons C/C++](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-8-addons) (en cours)

> Je réaliserai les chapitres 7 et 8 plus tard, car je suis assez las d’écrire tout cela et je manque de temps. Mais ça va venir au fur et à mesure 🙂

Voilà, n’hésitez pas à me faire quelques retours, et si vous en avez la possibilité, contribuez directement en modifiant ce tutoriel ! (il y a un bouton dans la barre latérale droite « Modifier la page »)

Happy coding!

---

<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: [7 November 2017 14:10 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/2 "2017-11-07T14:10:14Z")

</div>

5 posts were split to a new topic: [Site duniter.org : logos de réseaux privateurs](https://forum.duniter.org/t/site-duniter-org-logos-de-reseaux-privateurs/3577)

---

<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: [7 November 2017 14:10 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/6 "2017-11-07T14:10:51Z")

</div>

A post was merged into an existing topic: [Site duniter.org : logos de réseaux privateurs](https://forum.duniter.org/t/site-duniter-org-logos-de-reseaux-privateurs/3577)

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [7 November 2017 11:47 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/7 "2017-11-07T11:47:32Z")

</div>

C’est magistral ! Il y a même des diagrammes plantuml ! 🤩

---

<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: [7 November 2017 14:18 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/8 "2017-11-07T14:18:24Z")

</div>

Hop, publication du Chapitre 7 : base de données. cc @gerard94 qui demande cette description depuis les RML8 🙂

À travers cette rédaction, j’ai pu m’apercevoir qu’il y avait des champs totalement obsolètes. J’ai donc ajouté un [ticket#1183](https://github.com/duniter/duniter/issues/1183) pour tracer cela.

---

<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: [7 November 2017 16:16 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/9 "2017-11-07T16:16:20Z")

</div>

> [@cgeek](#):
>
> À travers cette rédaction, j’ai pu m’apercevoir qu’il y avait des champs totalement obsolètes. J’ai donc ajouté un ticket#1183 pour tracer cela.

Il faudra que je vérifie entièrement le code de g1-monit car il est possible que j’utilise un de ses champs obsolètes dans mon module.

---

<div class="post-metadata">

### Author: ![gerard94](https://forum.duniter.org/user_avatar/forum.duniter.org/gerard94/32/58_2.png) [@gerard94](https://forum.duniter.org/u/gerard94)
#### Post date: [7 November 2017 22:55 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/10 "2017-11-07T22:55:05Z")

</div>

Enfin ! Je vais lire cette partie avec délectation. Il y aura peut-être un peu de code à modifier dans WotWizard selon ce que je vais découvrir.  
Merci.

> [@cgeek](#):
>
> j’ai pu m’apercevoir qu’il y avait des champs totalement obsolètes

Je m’en doutais un peu.

---

<div class="post-metadata">

### Author: ![fbuland](https://forum.duniter.org/user_avatar/forum.duniter.org/fbuland/32/1330_2.png) [@fbuland](https://forum.duniter.org/u/fbuland)
#### Post date: [9 November 2017 21:38 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/11 "2017-11-09T21:38:24Z")

</div>

J’essaie de suivre le tutoriel de @cgeek.  
Je bloque à l’étape 3, avec la commande yarn :  
franck@franck-why:~/duniter$ **yarn**  
yarn install v1.3.2  
[1/5] Validating package.json…  
[2/5] Resolving packages…  
[3/5] Fetching packages…  
[4/5] Linking dependencies…  
warning “ddos \> response \> bl@0.7.0” has unmet peer dependency “stream-browserify@\*”.  
[5/5] Building fresh packages…  
[1/5] ⠈ heapdump: gyp info ok  
[2/5] ⠁ naclb: node-pre-gyp info ok  
[3/5] ⠁ scryptb: info ok  
**[4/5] ⠁ sqlite3: ^**  
**error /home/franck/duniter/node\_modules/sqlite3: Command failed.**  
**Exit code: 1**  
Command: node-pre-gyp install --fallback-to-build  
Arguments:  
Directory: /home/franck/duniter/node\_modules/sqlite3  
Output:  
node-pre-gyp info it worked if it ends with ok  
node-pre-gyp info using node-pre-gyp@0.6.34  
node-pre-gyp info using node@9.1.0 | linux | x64  
node-pre-gyp info check checked for “/home/franck/duniter/node\_modules/sqlite3/lib/binding/node-v59-linux-x64/node\_sqlite3.node” (not found)  
node-pre-gyp http GET [https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.4/node-v59-linux-x64.tar.gz](https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.4/node-v59-linux-x64.tar.gz)  
node-pre-gyp http 403 [https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.4/node-v59-linux-x64.tar.gz](https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.4/node-v59-linux-x64.tar.gz)  
node-pre-gyp ERR! Tried to download(403): [https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.4/node-v59-linux-x64.tar.gz](https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.4/node-v59-linux-x64.tar.gz)  
**node-pre-gyp ERR! Pre-built binaries not found for sqlite3@3.1.4 and node@9.1.0 (node-v59 ABI) (falling back to source compile with node-gyp)**  
**node-pre-gyp http 403 status code downloading tarball [https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.4/node-v59-linux-x64.tar.gz](https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.4/node-v59-linux-x64.tar.gz)**  
…

Version de node (v9.1.0) trop récente ?

---

<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: [9 November 2017 22:29 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/12 "2017-11-09T22:29:32Z")

</div>

> [@fbuland](#):
>
> Version de node (v9.1.0) trop récente ?

Oui il faut que tu installe node 6 :

```
nvm install 6
nvm use 6

```

Et pour éviter d’avoir a faire nvm use 6 a chaque fois désinstalle 9 :

```
nvm uninstall 9

```

---

<div class="post-metadata">

### Author: ![fbuland](https://forum.duniter.org/user_avatar/forum.duniter.org/fbuland/32/1330_2.png) [@fbuland](https://forum.duniter.org/u/fbuland)
#### Post date: [10 November 2017 08:23 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/13 "2017-11-10T08:23:14Z")

</div>

Merci @elois, ça marche bien avec node6.  
Je ne me suis pas méfié comme @cgeek indique dans son tutoriel [https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-2-outils/](https://duniter.org/fr/wiki/duniter/tutoriel-dev/chapitre-2-outils/)

> NodeJS v6 ou supérieur

---

<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: [12 November 2017 16:00 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/14 "2017-11-12T16:00:20Z")

</div>

J’ai corrigé dans le projet afin d’avoir le message d’erreur au plus tôt :

```json
"engines": {
  "node": ">=6 <9",
  "npm": ">=3.10"
}

```

Donc si l’on teste avec Node v9 :

```
$ yarn
yarn install v1.3.2
[1/5] Validating package.json...
error duniter@1.6.13: The engine "node" is incompatible with this module. Expected version ">=6 <9".

```

J’ai mis à jour le tutoriel également pour prévenir que seules les versions 6, 7 ou 8 de NodeJS sont supportées.

---

<div class="post-metadata">

### Author: ![gerard94](https://forum.duniter.org/user_avatar/forum.duniter.org/gerard94/32/58_2.png) [@gerard94](https://forum.duniter.org/u/gerard94)
#### Post date: [21 November 2017 12:24 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/15 "2017-11-21T12:24:36Z")

</div>

> Table idty
> 
> revoked (BOOLEAN NOT NULL)  
> Indique si l’identité possède déjà une révocation attachée.
> 
> revocation\_sig (VARCHAR(100) NULL)  
> Signature de révocation. Champ à null si pas de révocation attachée.

Je trouve pourtant des champs “revocation\_sig” non null (et non vide) avec “revoked” = 0.

---

<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: [21 November 2017 13:00 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/16 "2017-11-21T13:00:35Z")

</div>

Ça semble être une erreur : j’ai fait une vérification et ce champ `idty.revoked` ne semble plus du tout utilisé, c’est un champ historique.

Il est encore mis à jour dans le code, mais son utilité est nulle étant donné que les champs `idty.revocation_sig`, `m_index.revoked_on` et `m_index.revocation` font parfaitement le travail.

---

<div class="post-metadata">

### Author: ![gerard94](https://forum.duniter.org/user_avatar/forum.duniter.org/gerard94/32/58_2.png) [@gerard94](https://forum.duniter.org/u/gerard94)
#### Post date: [21 November 2017 13:53 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/17 "2017-11-21T13:53:30Z")

</div>

> [@cgeek](#):
>
> Il est encore mis à jour dans le code

Pourtant, il semble toujours être à zéro (au moins pendant mes périodes d’observation), et, en tout cas, décorrélé du champ revocation\_sig.

---

<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: [21 November 2017 14:13 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/18 "2017-11-21T14:13:04Z")

</div>

Oui il semble être toujours à zéro, car il est mis à `1` pendant quelques secondes avant que la ligne entière ne soit supprimée.

De fait on ne constate que la valeur zéro, d’où la conclusion que ce champ n’est plus utilisé.

---

<div class="post-metadata">

### Author: ![thierucoin](https://forum.duniter.org/letter_avatar/thierucoin/32/5_5575768a8748004e209b776fc1b2916d.png) [@thierucoin](https://forum.duniter.org/u/thierucoin)
#### Post date: [26 October 2018 11:00 UTC](https://forum.duniter.org/t/nouveau-tutoriel-de-developpement/3570/19 "2018-10-26T11:00:46Z")

</div>

Bonsoir  
J’ai enfin pu installer duniter pour le dev mais je call au niveau “yarn test”  
voici une capture d’ecran.

 ![image](https://forum.duniter.org/uploads/default/original/2X/2/230ab13e9e739bf977cc57ee9b61f4d210e388c0.png) .  
node v8.12.0 est installe.  
Que devrais je faire.

Merci
