# Cesium+ Pod \> Nouvelle version v1.5.15 (stable)

**URL:** https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830
**Category:** CS+
**Tags:** cesium
**Created:** [28 January 2020 07:31 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830 "2020-01-28T07:31:11Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [28 January 2020 07:31 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/1 "2020-01-28T07:31:11Z")

</div>

L’équipe de développement de Cesium+ est heureuse de vous annoncer la nouvelle [version 1.5.15](https://github.com/duniter/cesium-plus-pod/releases/tag/cesium-plus-pod-1.5.15) de Cesium+ Pod !

> Cette version a pour objectif principal **la décentralisation** des données Cesium+, grâce à une synchronisation P2P enfin opérationnelle.

## Quelles nouveautés ?

Voici la liste des nouveautés :

### API REST

Voici les nouvelles URL disponibles (nouveaux index ElasticSearch) :

- [/g1/pending/\_search](https://g1.data.duniter.fr/g1/pending/_search?pretty) : permet des recherches sur les demandes d’adhésion comme membre (en cours de validité ou non, donc \*\* y compris au-delà du délai des 2 mois\*\*).  
Un traitement collecte (chaque heure) les nouvelles demandes en attente, en tirant au sort un nœud Duniter de la branche principale. Le but étant d’archiver indépendamment des fork/resync de nœuds, et de l’aboutissement réel (inscription en blockchain) de la demande d’adhésion.  
Cet index pourra servir par les clients (Cesium ou outre) pour avertir l’utilisateur après un fork, et lui proposer un renvoi de sa demande d’adhésion.

- [/wot/pending](https://g1.data.duniter.fr/wot/pending?pretty) : idem que sur l’API BMA, mais en utilisant l’index précédent (pas besoin d’interrogation du noeud Duniter qu’écoute le pod) ;

- [/node/stats](https://g1.data.duniter.fr/node/stats?pretty) : renvoi l’état d’utilisation du Pod (et de son cluster ElasticSearch, si plusieurs pods locaux). Notamment, y est visible le nombre de connexion WebSocketpar par index écouté, c’est à dire la charge de sessions utilisateurs qu’ouvrent des clients comme Cesium.

- [/like/record](https://g1.data.duniter.fr/like/record/_search?pretty) : gestion de compteurs permettant d’envoyer des `like`, `dislike`, ou `abuse` (=signalement avec ou sans demande de modérations) sur n’importe quel document du Pod : un bloc, un profil utilisateur, une page, un commentaire, etc. (en dehors toutefois des messages privés).

### Fonctionnement en réseau P2P

On va enfin pouvoir avoir un réseau de Pod pleinement P2P ! 🙂

- Les Pod publient maintenant une fiche de paires au réseau Duniter. Ils peuvent donc être visibles, comme vous le verrez dans la [nouvelle vue réseau des Pod Cesium+](https://g1.duniter.fr/#/app/network/data) (nécessite Cesium v1.5+)

- A chaque démarrage, une synchro différentielle se fait depuis le réseau. Utile par exemple si vous arrêter votre Pod plusieurs heures ou jours.

- Le réseau des nœuds Duniter et des pod Cesium+ est scanné et actualisé toutes les 5 minutes (à chaque nouveau bloc) pour découvrir les nœuds, leur endpoint/API et leur dernier bloc. Cette indexation sert dans différent traitements du pod, par exemple pour connaître les nœuds Cesium+ lors des synchros de données Cesium+;

- Nouvelles règles anti-spam : contrôle d’intégrité des documents reçus, lorsqu’ils sont liés à d’autre document (par exemple les commentaires doivent pointer vers une page existante, le destinataire d’un message privé doit avoir un profile Cesium+), etc. Après vérification, sont exclus les documents en échec.  
Ces nouvelles règles évitent la propagation de documents invalides.

- Noter bien que le Pods n’utilisent pas de blockchain. Il peut donc exister des différences de nombre de documents indexés, entre les Pod, en fonction de leur historique et des règles de synchro (qui deviendront paramétrables, avec le temps); En revanche, chaque document est signé et ne peut donc pas être falsifier (sans connaître la clef secrète de l’émetteur).

### Optimisation des performances

Il est maintenant possible de lancer **plusieurs pods en parallèle** , sur un même réseau local (ou en VPN), pour former un **cluster ElasticSearch** avec répartition de charge :

- Lorsque plusieurs pods sont sur le même réseau (y compris sur la même machine), ils vont automatiquement répliquer leurs données d’indexation, se répartir la charge des requêtes demandés, etc. Ils communiqueront entre eux via le protocole interne natif à ElasticSearch (par défaut en HTTP, sur le port 9300).

- Les traitements d’indexation (des blocs, des événements, etc.) et d’envoi (emails) ne s’exécute qu’une seule fois, sur le `master node` du cluster ES.  
(Dans les versions précédentes, chaque pod lançait les même traitements redondants, ce qui provoquait des erreurs de double indexation, et beaucoup de charge inutile).

- Le serveur web frontal (Apache, Nginx) peut donc faire du _load balancing_ et _failover_, entre les différents pod locaux.  
Théoriquement, donc, une mise à niveau de Cesium+ Pod ne devrait même plus déclencher d’interruption de service : on arrête un pod (les traitements basculent éventuellement sur le second pod) qu’on met à jour, puis on recommence sur le second, et hop, ni vu ni connu ! 🙂

- Dans les prochaines semaines, la rapidité de [g1.data.duniter.fr](http://g1.data.duniter.fr) sera donc renforcé par l’ajout de pod locaux. De la doc suivra pour expliquer comment configurer tout ça, typiquement sous Nginx.

### Améliorations diverses :

- Quand cela est possible, les notifications envoyées par emails utilisent maintenant le nom des profils Cesium+ (quand il existe) plutôt que la clef publique.

- Les URL de partage (exemple [`/user/profile/<pubkey>/_share`](https://g1.data.duniter.fr/user/profile/38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE/_share)) pour les réseaux sociaux pointent vers une page HTML relookée avec [bootstrap](https://getbootstrap.com/)  
(Cela servira aussi pour change, puisque cette partie du code est réutilisable dans d’autres plugins ES)

- Amélioration des messages de log, notamment à la fin des synchros (affichage d’un comptage des opérations `insert/update/delete` effectuées).

### Corrections diverses

- Toutes les entrées/sorties de la WoT sont maintenant bien indexés (dans [`/user/event`](http://g1.data.duniter.fr/user/event/_search?pretty)). Ceci corrige le bug des DU manquants dans Cesium+, dans l’historique et les graphiques de compte, où il manquait des DU sur certains comptes.

- [`/node/summary`](http://g1.data.duniter.fr/node/summary?pretty) renvoi la bonne version du pod, et non plus celle de Duniter4j (une lib sous-jacente)

- L’index `/docstat/record` a été migré vers un nouvel index [`/document/stats`](http://g1.data.duniter.fr/document/stats/_search?pretty). Pour rappel, cet index stocke le nombre de documents du Pod, actualisé toutes les heures et exploités par [les graphiques de suivi des données](https://g1.duniter.fr/#/app/network/data/stats/g1.data.duniter.fr:443) sur des pod Cesium+ (nécessite Cesium v1.5+).  
Les données de l’ancien index sont bien sûr migrés (dès le démarrage du pod dans la nouvelle version) : vous ne perdez donc pas les stats de votre pod.

## Et après ?

### Décentralisons Cesium+

Vous pouvez maintenant aider en **installant votre propre Pod Cesium+** , puis vérifier que tout fonctionne et que les données se répliquent bien.

> Do you P2P ?

Voici les étapes rapides d’installation (la [doc officielle est ici](https://git.duniter.org/clients/cesium-grp/cesium-plus-pod/blob/master/src/site/markdown/install.md))

- Installez les dépendances : Java JDK (8) et Libsodium;

- Télécharger la dernière version du pod, puis dézippez :

- configurez votre Pod, en éditant le fichier `config/elasticsearch` :

- lancer le pod :

Simple, non ? 🙂

### Prospections

Quelques pistes pour la suite :

- Être indépendant du nœud Duniter sous-jacent, et basculer sur la branche majoritaire.

- Ajouter d’autres URL compatible avec BMA : Les pods sont en effet de plus en plus compatibles avec cette API (/network/peers, /network/peering, /wot/pending, etc.). Donc pourquoi ne pas tenter une implémentation complète ?  
Cela pourrait résoudre les **problèmes de performances** que rencontrent actuellement les nœuds Duniter (notamment sur les requêtes `/wot/requirements` et `/tx/sources`).

- d’autres idées ?

## Contribuer à la contribution

Le travail qui a permis d’aboutir à cette version stable, est estimé à **13 homme-jours** (entre mi-décembre et aujourd’hui).

Comme toujours, vous êtes invité à contribuer à l’effort de développement, par exemple via le compte des développeurs de Duniter.

a+ (et pensez à prendre soin de vous !)

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [29 January 2020 08:25 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/2 "2020-01-29T08:25:59Z")

</div>

Salut @bpresles, as tu possibilité de mettre à jour dans la [dernière version](https://github.com/duniter/cesium-plus-pod/releases) ton Pod ?  
J’ai republié une version 1.5.16

EDIT: en faisant un resync complete (propriété `duniter.p2p.fullResyncAtStartup: true`)

---

<div class="post-metadata">

### Author: ![bpresles](https://forum.duniter.org/user_avatar/forum.duniter.org/bpresles/32/4477_2.png) [@bpresles](https://forum.duniter.org/u/bpresles)
#### Post date: [29 January 2020 10:16 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/3 "2020-01-29T10:16:03Z")

</div>

J’ai mis à jour, la synchronisation (full) est en cours. 🙂

---

<div class="post-metadata">

### Author: ![bpresles](https://forum.duniter.org/user_avatar/forum.duniter.org/bpresles/32/4477_2.png) [@bpresles](https://forum.duniter.org/u/bpresles)
#### Post date: [29 January 2020 13:17 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/4 "2020-01-29T13:17:54Z")

</div>

@kimamila  
Une question par contre, j’ai remarqué que la synchro récupère bien les infos de la blockchain Duniter, mais qu’il n’y a par contre pas de synchro du profil Cesium+ (avatar, adresse, abonnements), ni des messages.

Il y a quelque chose à faire pour que les noeuds Cesium+ soient synchro entre eux sur ces fonctionnalités ?

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [29 January 2020 15:25 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/5 "2020-01-29T15:25:27Z")

</div>

> [@bpresles](#):
>
> Il y a quelque chose à faire pour que les noeuds Cesium+ soient synchro entre eux sur ces fonctionnalités ?

Peux tu me faire passer les logs ? Logiquement, le pod aurait devrait scanner le réseau, et y récupérer les Peer compatible.  
Sinon, tu peux forcer le premier peer en mettant ceci dans ton fichier `/config/elasticsearch.yml` :

```yml
duniter.p2p.includes.endpoints: [
  "ES_CORE_API g1.data.duniter.fr 443",
  "ES_USER_API g1.data.duniter.fr 443",
  "ES_SUBSCRIPTION_API g1.data.duniter.fr 443"
]

```

---

<div class="post-metadata">

### Author: ![bpresles](https://forum.duniter.org/user_avatar/forum.duniter.org/bpresles/32/4477_2.png) [@bpresles](https://forum.duniter.org/u/bpresles)
#### Post date: [29 January 2020 16:45 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/6 "2020-01-29T16:45:44Z")

</div>

J’ai rien dis, en fait cela n’avait pas terminé toutes les synchros, maintenant tout est bon 🙂

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [30 January 2020 15:13 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/7 "2020-01-30T15:13:25Z")

</div>

> [@bpresles](#):
>
> en fait cela n’avait pas terminé toutes les synchros, maintenant tout est bon

Wahoo, c’est beau des pods Cesium+ synchro :

 ![image](https://forum.duniter.org/uploads/default/original/2X/5/5fa4ee46c2132d25f4d175410f08edbf81fb4823.png)

Je suis un peu ému, là 🙂

EDIT: la différence ci dessus, de 1 document, est du sans doute à un problème de validation des signature des profiles JSON, que j’ai eu dans Cesium+ il y a longtemps. Le Pod Cesium+ de [duniter.fr](http://duniter.fr) a toujours la même BDD ElasticSearch depuis le début de la G1.  
Quand on aura vérifié que le réseau est bien stable, je pourrait faire faire un RAZ + synchro, pour nettoyer tout ca 🙂

Je suis trop content !!

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [30 January 2020 15:16 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/8 "2020-01-30T15:16:51Z")

</div>

Dis donc tu commence à avoir pas mal de gens inscrit chez toi aux notifications par email 🙂 As tu bien vérifier que cela fonctionnait ?

---

<div class="post-metadata">

### Author: ![bpresles](https://forum.duniter.org/user_avatar/forum.duniter.org/bpresles/32/4477_2.png) [@bpresles](https://forum.duniter.org/u/bpresles)
#### Post date: [30 January 2020 15:35 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/9 "2020-01-30T15:35:07Z")

</div>

Non, pas vraiment… Je reçois des emails de messages d’information quand le noeud démarre et s’éteint, mais j’avoue que la config email j’ai fais ça rapidement, juste avec un petit postfix local pas vraiment personnalisé.

Y’a un moyen de tester spécifiquement que les notifications fonctionnent ?

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [30 January 2020 16:22 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/10 "2020-01-30T16:22:04Z")

</div>

A priori si tu recois des emails, c’est que ca marche 🙂  
Il te faut paramétrer les propriété de config, pour personnaliser l’objet du mail, par exemple.

Ensuite, dès qu’un évenement (TX, Certification, etc.) arrives sur ton compte, le lendemain tu recois un email.  
Tu peux aussi forcer démarrage, pour les tests.

---

<div class="post-metadata">

### Author: ![bpresles](https://forum.duniter.org/user_avatar/forum.duniter.org/bpresles/32/4477_2.png) [@bpresles](https://forum.duniter.org/u/bpresles)
#### Post date: [30 January 2020 16:35 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/11 "2020-01-30T16:35:41Z")

</div>

Justement, j’ai constaté que je recevais juste les mails “message d’information” concernant la disponibilité du noeud Dunier (ex: “Noeud Duniter [[g1.presles.fr:443](http://g1.presles.fr:443)] à nouveau accessible.”), mais je n’ai jamais reçu de notification pour les TX, certifications… ☹

Cela dit, est-ce lié au “services / abonnement” ? Car je vois que sur mon compte c’est configuré pour être notifié par ton noeud et non par le mien (“prestataire”). Je viens de changer, je vais voir si je reçois des mails de mon noeuds Cesium+ demain 🙂

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [30 January 2020 17:19 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/12 "2020-01-30T17:19:36Z")

</div>

> [@bpresles](#):
>
> Cela dit, est-ce lié au « services / abonnement » ? Car je vois que sur mon compte c’est configuré pour être notifié par ton noeud et non par le mien (« prestataire »).

Oui c’est ça 🙂

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [1 February 2020 11:03 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/13 "2020-02-01T11:03:41Z")

</div>

Voilà une autre conséquence directe de cette version du Pod : la réutilisation pour gchange (cf annonce d’une nouvelle version : [https://forum.monnaie-libre.fr/t/gchange-nouvelle-version-v1-1-2/9345](https://forum.monnaie-libre.fr/t/gchange-nouvelle-version-v1-1-2/9345)) qui exploite la gestion P2P et celle des likes et signalements. 🙂

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [5 February 2020 20:03 UTC](https://forum.duniter.org/t/cesium-pod-nouvelle-version-v1-5-15-stable/6830/14 "2020-02-05T20:03:31Z")

</div>

Salut @bpresles 🙂 Peux tu mettre a jour en 1.5.18 ? Les statistiques sur les documents utilisateurs étaient arretée. Suite un mauvais refactoring. Pas grand chose d’autres sinon.  
a+
