Demande de support cesium-plus-pod v1 (version 1.10.4)

@Maaltir m’a indiqué qu’un utilisateur avait un soucis avec mon noeud cesium-plus: Profil cesium - Césium - Forum Monnaie Libre

Pour le serveur (hosté sur Ubuntu architecture ARM):
g1.data.brussels.ovh

Il y a moins de 2 semaines j’ai mis à jour à la dernière version de l’image cesium-plus-pod de @Pini (j’étais resté en version 1.9.1 depuis tout ce temps).

J’ai également changé pour avoir un NGinx Proxy Manager avec des ProxyHost manuels à la place du nginx & acmecompanion car je voulais pouvoir mapper à la main d’autres choses que du docker vers https avec dns spécifique.

Maintenant:

image: pinidh/cesium-plus-pod:latest  # (la version semble être 1.10.4 actuellement)

Peut-être que la mise à jour nécessitait quelques changements de configuration ou est-ce que j’aurais mal remappé un des ProxyHost ?

Ou peut-être que je devrais mettre à jour la liste des CESIUM_SYNC_HOSTS ?

Je remarque également qu’en faisant la création du nouveau compose.yaml; dockge que j’utilise maintenant à ré-écris la variable d’environnement différemment:

de:

    environment:
      # The other Cesium-plus nodes that we want to syncrhonise with as a space-separated list
      CESIUM_SYNC_HOSTS: "https://g1.data.le-sou.org https://g1.data.mithril.re https://g1.data.pini.fr https://g1.data.presles.fr https://g1.data.e-is.pro"

vers:

    environment:
      CESIUM_SYNC_HOSTS: https://g1.data.le-sou.org https://g1.data.mithril.re
        https://g1.data.pini.fr https://g1.data.presles.fr
        https://g1.data.e-is.pro

J’ai corrigé vers ce format qui semble valide (mais je ne sais pas si le format que dockge avait mis était fonctionnel ou non):

    environment:
      CESIUM_SYNC_HOSTS: >
        https://g1.data.le-sou.org https://g1.data.mithril.re
        https://g1.data.pini.fr https://g1.data.presles.fr
        https://g1.data.e-is.pro

Pour plus d’infos sur ce format, voir " Folded Block Scalar" dans la doc sur yaml

En regardant les logs de démarrage du serveur, je vois qu’il y a 2 peers qu’il ne trouve plus:

cesium-plus-pod-v1  | Cannot connect to peer 'https://g1.data.mithril.re'!
cesium-plus-pod-v1  | Cannot connect to peer 'https://g1.data.presles.fr'!

=> Est-ce que quelqu’un aurait une version mise à jour des noeuds que je pourrais adapter ?

J’ai également trouvé un autre soucis dans les logs:

cesium-plus-pod-v1  | /usr/local/bin/docker-entrypoint: line 61: config/elasticsearch.yml: Permission denied

Je ne sais pas trop pourquoi, mais l’owner et group de ce fichier /opt/cesium-plus-pod/config/elasticsearch.yml était à 1001:1001 alors que le reste était bien à cesium:cesium il est possible que ce soucis existait depuis mon installation originale, car je n’ai rien changé aux volumes docker montés

    volumes:
      - cesium-config:/opt/cesium-plus-pod/config
      - cesium-data:/opt/cesium-plus-pod/data
      - cesium-logs:/opt/cesium-plus-pod/logs
    networks:
      dockge_dockge_net: null
volumes:
  cesium-config: null
  cesium-data: null
  cesium-logs: null

J’ai corrigé vers cesium:cesium en me connectant en root sur le container et je n’ai maintenant plus l’erreur au démarrage.

Du coup, est-ce que quelqu’un qui connais bien cesium-plus pourrait vérifier si mon noeud semble maintenant fonctionner correctement (et éventuellement me fournir une liste mise-à-jour pour les CESIUM_SYNC_HOSTS ou me dire ou la récupérer) ?

Merci d’avance :slight_smile:

1 Like

Je me permets un petit message hors sujet par rapport à ce point :

J’ai l’impression qu’il n’y a personne qui connaît vraiment bien cesium-plus. Et il est probable qu’on ait la même situation si on utilise mon prototype de datapods v2 dont l’architecture est originale, même si elle repose sur des briques connues (ipfs). Ce serait vraiment bien si on trouvait un moyen d’intégrer une solution existante déjà bien implantée (type Nostr) plutôt que de réinventer la roue (en l’occurrence une roue p2p). Ça permettrait de reposer sur une communauté existante plutôt que de reposer sur une infra custom connue par une seule personne. Si des gens qui lisent ça ont des idées, n’hésitez pas à en parler sur Datapods ou R&D.

1 Like

Je remarque autre chose dans les logs; il semblerait que j’ai une requête qui revient toutes les minutes depuis le même serveur et qui est bloquée à chaque fois:

...
cesium-plus-pod-v1  | [2024-11-18 12:56:25,366][WARN ][duniter.security         ] [node] Refused GET request to [/ws/event/user/B3aAp1agRum87AzyBhRY6KgGqh98LSajx1Jd2k6ru4To/fr-FR] from {88.164.224.43} - Not an authorized path
cesium-plus-pod-v1  | [2024-11-18 12:57:26,036][WARN ][duniter.security         ] [node] Refused GET request to [/ws/event/user/B3aAp1agRum87AzyBhRY6KgGqh98LSajx1Jd2k6ru4To/fr-FR] from {88.164.224.43} - Not an authorized path
cesium-plus-pod-v1  | [2024-11-18 12:58:26,722][WARN ][duniter.security         ] [node] Refused GET request to [/ws/event/user/B3aAp1agRum87AzyBhRY6KgGqh98LSajx1Jd2k6ru4To/fr-FR] from {88.164.224.43} - Not an authorized path
...

=> Est-ce que ce serais pour un end-point mal configuré de mon côté, ou bien un autre noeud mal configuré qui tente de contacter mon cesium-plus au lieu d’un duniter ?

Et quelques autre types de “[WARN” que j’ai (peu nombreux) sont par exemple:

cesium-plus-pod-v1  | [2024-11-18 07:01:47,677][WARN ][duniter.security         ] [node] Refused GET request to [api.ipify.org:443] from {94.156.166.49} - Not an authorized path
cesium-plus-pod-v1  | [2024-11-18 07:25:54,490][WARN ][duniter.security         ] [node] Refused GET request to [/_cat/indices] from {217.170.197.30} - Not an authorized path
...
cesium-plus-pod-v1  | [2024-11-18 07:36:49,569][WARN ][duniter.p2p.like         ] [node] [g1] [ES_USER_API g1.data.e-is.pro 443] [like/record/AZM-M-ibbJrIcetGeRyS] [WS] Skipping 'like' document with anonymous issuer.. Skipping.
cesium-plus-pod-v1  | [2024-11-18 07:56:53,053][WARN ][duniter.p2p.like         ] [node] [g1] [ES_USER_API g1.data.e-is.pro 443] [like/record/AZM-M-ibbJrIcetGeRyS] Skipping 'like' document with anonymous issuer.. Skipping.
ces
...
cesium-plus-pod-v1  | [2024-11-18 10:58:44,680][WARN ][duniter.security         ] [node] Refused GET request to [/] from {198.235.24.2} - Not an authorized path
cesium-plus-pod-v1  | [2024-11-18 11:07:42,652][WARN ][org.duniter.elasticsearch.http.netty.NettyHttpServerTransport] [node] Caught exception while handling client http traffic, closing connection [id: 0x3a40f4b3, /91.238.181.21:65348 => /172.21.0.7:9200]
cesium-plus-pod-v1  | [2024-11-18 11:07:42,653][WARN ][org.duniter.elasticsearch.http.netty.NettyHttpServerTransport] [node] Caught exception while handling client http traffic, closing connection [id: 0x3a40f4b3, /91.238.181.21:65348 :> /172.21.0.7:9200]

Salut @Nicolas80

Dis moi, est-ce que tu as bien défini tes endpoints (EP) Cs+ dans ton noeud Duniter (je n’ai pas l’impression : https://g1.brussels.ovh/network/peering) ?
Le réseau Cs+ utilise la couche réseau de DUniter pour se découvrir entre Pods.

Tu dois avoir une commande DUniter CLI pour ajouter tes EP Cs+. Par exemple les miens sont visible dans ma fiche de pair : https://g1.e-is.pro/network/peering

Aussi, il faut que ton noeud ES indexe bien une noeud DUniter V1 à jour, sinon sa fiche de pair sera exclus, par exemple dans Cesium (mode expert), car potentiellement sur un fork.

1 Like

@Pini idem, je n’ai pas tes endpoints Cs+ dans ton noeud Duniter v1.
Est-ce toujours https://duniter.pini.fr/network/peering l’adresse de ton noeud Duniter v1 ?

Mon noeud a planté. J’ai beau le redémarrer tous les jours, ça finit toujours par merder assez rapidement. Vivement la v2.

Je relance une synchro.

1 Like

Tu parles de ton noeud duniter ou du pod cesium ?

Mon noeud duniter.

Mon pod Cesium, j’avoue, je ne le suis pas trop. Je ne sais même pas comment vérifier qu’il est en bonne santé.

du peux tester /blockchain/current sur ton noeud Cs+ (j’ai signé l’API BMA de Duniter v1) pour voir le dernier bloc indexé, et vérifié qu’il est sur la branche principale.

2 Likes

J’avoue que lors de mon setup des serveurs V1, je n’ai pas dépassé le stade de la config docker-compose + setup de ma clé dans le GUI :slight_smile:

Est-ce qu’il y a une documentation de référence pour le Duniter CLI; ou bien juste faire un appel avec –help sans doute ?

edit:
Je vois qu’il y a bien une commande pour ajouter un EndPoint; mais quel est le format que l’on doit donner pour pouvoir ajouter un endpoint CS+ à mon DuniterV1 ?

duniter --help
...
  Commands:

    config    Register configuration in database
...
--addep <endpoint>    With `config` command, add given endpoint to the list of endpoints of this node

Je n’ai pas bien compris cette partie… “ES” ?
Dans le docker-compose de mon noeud Duniter V1, j’ai cette config; est-ce que c’est de ça dont tu parles ?

      DUNITER_AUTO_SYNC: "true"
      DUNITER_SYNC_HOST: g1.duniter.org:443

Ou peut-être que tu voulais parler de la configuration du noeud CesiumPlusPod ?
Dedans, je référence mon propre noeud Duniter; et j’ai cette config pour la synchro des CS+ que je n’ai pas adapté depuis longtemps; et je ne sais pas trop ou trouver une bonne liste de noeud pour mettre à jour:

      CESIUM_DUNITER_HOST: g1.brussels.ovh
      CESIUM_DUNITER_PORT: "443"

      # The other Cesium-plus nodes that we want to syncrhonise with as a space-separated list
      CESIUM_SYNC_HOSTS: >
        https://g1.data.pini.fr https://g1.data.cuates.net
        https://g1data.dns1.us https://g1.data.e-is.pro
        https://g1.data.le-sou.org https://g1.data.madeirawonders.com
        https://g1.data.mithril.re https://g1.data.presles.fr

ES (ElasticSearch) = Pod Césium+

Pour ajouter un endpoint à ta fiche de paie Duniter v1, tu peux utiliser la commande –addep

Voici la doc que j’ai trouvé ici : Duniter | Commandes Duniter

Option --addep

Déclare une nouvelle interface de contact réseau inconnue de Duniter.

duniter config --addep “ES_CORE_API g1.data.duniter.fr

Personnellement je n’utilise pas les images docker composé Césium+ Pod. Je ne peux donc pas trop t’aider. Il faut regarder l’image pour comprendre.

1 Like

Est-ce que je devrais également déclarer pour “ES_SUBSCRIPTION_API” et “ES_USER_API” comme c’est le cas sur ton noeud Duniter ?


Par contre, il doit manquer quelque chose; car je ne vois pas mon endpoint ajouté…

# Dans le shell (docker) du noeud Duniter v1
duniter config --addep "ES_CORE_API g1.data.brussels.ovh"
2025-09-17T15:24:12+00:00 - debug: Plugging file system...
2025-09-17T15:24:12+00:00 - debug: Loading conf...
2025-09-17T15:24:12+00:00 - debug: Configuration saved.

Et avec la commande pour voir les données peering sur le même noeud; il n’y a pas de endpoint supplémentaire

curl -i https://g1.brussels.ovh/network/peering

{
  "version": 10,
  "currency": "g1",
  "endpoints": [
    "BMAS g1.brussels.ovh 443"
  ],
...
}

(pour info, j’ai également tenter l’ajout avec le port en plus; même résultat… duniter config --addep "ES_CORE_API g1.data.brussels.ovh 443")

Est-ce qu’il faut faire des commandes “duniter” CLI en plus pour qu’il adapte bien la configuration du noeud associé (qui est le seul dans le docker container de toute manière) ?

Bon ben il est laaaaargement désynchronisé. Y a-t-il une autre solution que de repartir de zéro ?

Oui normalement tu as un propriété du fichier de config, du genre “xxx.blockchain.xxx.reload=true”

Il faut arrêter puis relancer le noeud ES.

Et ensuite, après la resynchronisation, remettre a false :slight_smile:

1 Like

Peux-tu détailler le rôle de ce paramètre de config ? Car quand j’ai configuré cette instance il y a plusieurs mois je ne me rappelle pas y avoir touché.

Le paramètre de blockchain reload va faire une resynchronisation total des blocks, lors du démarrage du noeud Cs+.

Cela doit être un paramètre commenté par défaut, dans le fichier. Car évidemment il ne faut pas le laisser actif.

Pfiouuu, ça y est, mon pod est à nouveau synchronisé. Ça aura mis quelques jours !

3 Likes

Je réutilise ce post pour une question un peut différente; mais toujours en rapport à la configuration de pods Cesium-plus (v1)…

Comment est-ce que l’on va configurer nos serveurs Cesium plus lorsque il n’y aura plus que des serveurs Duniter v2 ?

Pour référence, dans mon docker compose pour cesium plus j’ai ceci dans les variables d’environnement:

      CESIUM_DUNITER_HOST: g1.brussels.ovh
      CESIUM_DUNITER_PORT: "443"

Peut-être que ce sera automatiquement compatible vers les serveurs Duniter V2; mais j’ai un gros doute :slight_smile:


Edit: et pour la partie configuration du compte membre associé au cesium-plus-pod; actuellement la seule manière de le configurer est via ID / MDP:

      CESIUM_DUNITER_SALT: MonID-DuniterV1
      CESIUM_DUNITER_PASSWORD: MonMDP-DuniterV1
1 Like

Bonne question. Déjà ça ne sera pas la même version de Cesium (V2). Je ne sais pas s’il y a une image docker pour cette version, ni comment elle se configure.

On ne va utiliser les pods Cesium+ que pour stocker les profils normalement. Donc la synchronisation avec un node v1 n’est plus utilisée. Il faut juste que le pod puisse se lancer sans node v1 associé. Amha.

[EDIT] on avaiit parlé d’avoir pour le lancement un Pod césium+ officiel et unique pour la V2 pour les profils (et pourquoi pas les pages gchange). En attendant d’avoir une solution de datapods décentralisée. J’ai donc ajouté ce pré requis sur le sujet de la préparation pour le 8 mars.

2 Likes