Skip to content
Snippets Groups Projects
Commit 223281cc authored by Hugo Trentesaux's avatar Hugo Trentesaux
Browse files

[article] oxydation

parent 7dad0854
No related branches found
No related tags found
No related merge requests found
Pipeline #11162 failed
+++
title = "Duniter version 1.8"
description = "La version 1.8 de Duniter vient de sortir. C'est la première version à intégrer des crates Rust utilisées par nodejs."
date = 2020-06-12
[extra]
thumbnail = "/PELICAN/images/box.svg"
[taxonomies]
authors = [ "elois",]
tags = [ "release",]
category = [ "Moteur blockchain",]
+++
# Duniter version 1.8
{% note(type="warning", display="both", markdown=true) %}
Cet article est une copie du sujet [publié sur le forum](https://forum.duniter.org/t/nouvelle-version-stable-de-duniter-v1-8-0/7377).
{% end %}
## Télécharger Duniter 1.8 variante [Server](https://git.duniter.org/nodes/typescript/duniter/-/releases/v1.8.0) ou [Desktop](https://git.duniter.org/nodes/typescript/duniter/-/releases/v1.8.1)
*L'image docker est disponible sur dockerhub : [duniter/duniter:v1.8.0](https://hub.docker.com/layers/duniter/duniter/v1.8.0/images/sha256-002858836321149dce40598b81425a6aa5120bbfbc879a72152b7841f9741a60)*
{% note(type="warning", display="block", markdown=true) %}
**Cette version nécessite une réinitialisation manuelle de la blockchain**
{% end %}
## Procédure de mise à jour
1. Télécharger et installer la nouvelle version
2. Stopper Duniter
3. Exécuter les commandes suivantes :
rm -rf ~/.config/duniter/duniter_default/data/
rm ~/.config/duniter/duniter_default/wotb.bin
4. Selon votre variante :
a. Desktop: relancer Duniter, vous serez alors obligé de refaire une synchronisation.
b: Server: refaire une synchronisation (duniter sync HOST:PORT).
*Remplacez HOST et PORT par le nom d'hôte et le port du nœud de confiance sur lequel vous souhaitez vous synchroniser.*
## Dois-je installer cette version ?
Oui, elle corrige de nombreuses vulnérabilités de sécurité et apporte une amélioration sensible des performances de la preuve de travail (mécanisme de forgeage des blocs).
@Blacksmith **tous les membres forgerons sont invités à se mettre à jour dès que possible.**
## Quels changements ?
Cette nouvelle version majeure de Duniter cumule beaucoup de petites modifications, dont certaines ont été réalisées il y a plus d'un an déjà (notamment le passage à nodejs v10); elle marque également le commencement d'une [**migration progressive de Duniter en Rust**](https://forum.duniter.org/t/duniteroxyde-oxydation-de-duniter/7075) !
Changements principaux :
- Migration sous nodejs v10 @cgeek et @Moul
- Migration en Rust de module wotb @elois
- Migration en Rust de toutes les fonctionnalités de cryptographie (sauf scrypt) @elois
- Remplacement vielles dépendances qui présentaient des vulnérabilités de sécurité @elois
- Auto-complétion bash @vit
- Amélioration du process de build et allègement des paquets @sveyret
Cette version inclut de très nombreux autres petits changements, je vous invite à lire le CHANGELOG pour plus de détails :
[https://git.duniter.org/nodes/typescript/duniter/-/blob/dev/CHANGELOG.md#v180-12th-march-2020](https://git.duniter.org/nodes/typescript/duniter/-/blob/dev/CHANGELOG.md#v180-12th-march-2020)
\ No newline at end of file
+++
title = "Oxydation de Duniter"
description = "Il est temps de faire un point sur les développements récents réalisés par elois sur Duniter"
date = 2020-12-17
[taxonomies]
authors = ["HugoTrentesaux",]
tags = ["logiciel", ]
category = [ "Technique",]
[extra]
thumbnail = "/PELICAN/images/box.svg"
+++
# Oxydation de Duniter
La publication de la version 1.8 de Duniter apporte de gros changements par rapport aux précédentes avec entre autres l'apparition des premiers modules en Rust ([cf article dédié](@/blog/2020-06-12-duniter-v1.8.md)). C'est le premier pas d'un processus à long terme visant à migrer Duniter en Rust : l'oxydation. Le langage Rust offre en effet des garanties de sécurité et de performances dont l'effet se ressent largement à l'utilisation. Duniter 1.9 est en cours de développement et pousse l'oxydation encore plus loin.
[TOC]
## Pourquoi le mot "oxydation" ?
Oxydation vient de [oxidation](https://wiki.mozilla.org/Oxidation), un mot utilisé par mozilla pour décrire le processus d'intégration de code Rust dans le logiciel Firefox. C'est un jeu de mot avec *rust* qui signifie *rouille*, littéralement l'[oxydation du métal](https://fr.wikipedia.org/wiki/Rouille_(oxyde)).
## Changement d'architecture
Rust facilite une architecture modulaire, elle-même facilitant grandement la maintenance à long terme et la réutilisation du code. Pour des raisons de performance, Duniter utilisait *NaClb* et *Wotb*, des bibliothèques C++ servant respectivement aux fonctions cryptographiques et aux calculs de graphes concernant la toile de confiance. En version 1.8, ces bibliothèques ont été remplacées par leur équivalent Rust déjà développées dans le projet Dunitrust ([site archive](https://dunitrust_website.duniter.io/)). Duniter stockait la blockchain dans une base de données LevelDb qui posait régulièrement des problèmes de corruption de données. La version 1.9 entreprend de se débarasser progressivement de LevelDb et de faciliter le changement d'un système de base de données à un autre grâce à la couche d'abstraction `kv_typed`. Cela permet entre autres de choisir une base de données optimisée en fonction de son contexte d'utilisation : lecture intensive, écriture intensive, ou équilibrée.
![schema](/blog/oxydation_duniter.svg)
## Nouvelles fonctionnalités
### GVA
Une nouvelle fonctionnalité largement attendue est l'apparition de GVA (*GraphQL Verification API*), une nouvelle API client. Cette API permet de réaliser des requêtes simples ou complexes, mais toujours précises, c'est-à-dire que seul ce qui est nécessaire est demandé. Elle gère les souscriptions aux événements, par exemple la modification du nombre de membre ou du solde d'un compte. Vous pouvez voir ci-dessous une vidéo d'introduction pour effectuer des requêtes à travers l'interface web [https://g1.librelois.fr/gva](https://g1.librelois.fr/gva).
{{ peertube(embed="https://tube.p2p.legal/videos/embed/fdf99ccc-4c89-405a-8125-6fc574d78ee9") }}
Cette API va permettre l'émergence de nouveaux clients et l'amélioration de Césium notamment en terme de rapidité.
### Dex
Dex (*Database explorer*) est un utilitaire qui permet d'explorer les bases de données de Duniter lorsque le serveur est éteint.
\ No newline at end of file
// aspect ratio 16/9
.embed
margin: auto
width: 70%
width: 80%
position: relative
padding-top: calc(70% * 9 / 16);
padding-top: calc(80% * 9 / 16);
.embed iframe
border: none
......
This diff is collapsed.
<div class="embed">
<iframe src="{{embed}}" allowfullscreen sandbox="allow-same-origin allow-scripts allow-popups"></iframe>
</div>
\ No newline at end of file
<div class="embed">
<iframe src="https://www.youtube.com/embed/{{id}}" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
<iframe src="https://www.youtube.com/embed/{{id}}" allowfullscreen></iframe>
</div>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment