Install party : devenez forgerons v2!

Si vous pouvez répondre oui à ces 3 questions :

  • j’ai des connaissances d’admin system
  • j’ai une version de debian après 2020
  • Je sais utiliser les lignes de commandes

Venez participer en vrai ou en ligne ce dimanche 9 mars pour devenir forgeron en V2.

Voici le lien pour se connecter en visio : Install party - dimanche 9 mars 13h

Finalement suite à un problème technique sur la diffusion, le live est disponible ici : https://meet.evolix.org/forgeron-install-party.

3 Likes

ORACLE_EXECUTION_INTERVAL: 200 # <--- should be adjusted based on network

En secondes ?

Si ça correspond à l’option de la commande (duniter distance-oracle --help) ça devrait être des secondes.

1 Like

ORACLE_EXECUTION_INTERVAL est passé à la commande sleep dans https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/docker-distance-entrypoint

PAD de l’Install Party du 09/03/2025

1 Like

Une nouvelle Install party est proposée le samedi 29 mars sur Bordeaux de 14h à 18h.

Tous les détails sur le forum monnaie libre : Install party - samedi 29 mars

1 Like

Bonjour à tous,
L’installation de la v1 s’étant révélé chaotique, je suis ravi de découvrir la v2 et son docker, j’ai réussi très rapidement cette fois-ci, bravo pour le travail ! :star_struck:

Voici un exemple de script d’installation semi-automatique que j’ai mis en place, si cela peut servir à accélérer la mise en route de noeuds :

Script brut si certains veulent le tester ? Bien indiquer son pseudo

  • En revanche je n’ai pas réussi à accéder à un visu explorer de Substrate pour voir les transactions en cours, avec mon noeud qui tournait : si quelqu’un connait l’URL / ID à indiquer ?

Pierre @Yolo - Sortie de Banque

2 Likes

bonjour,

j’espère que tout le monde va bien et je remercie vivement toutes les personnes qui ont pu participer à l’événement d’hier

au cours de l’événement d’hier, j’ai été bloqué sur certaines actions avec gCli

est-il possible de générer une version arm64 de gcli svp ?

bonne et belle journée
:sunny: :pray: :sparkles:

Peut-être que notre master gitlab @Moul arriverait à ajouter la création de binaire arm64 dans les releases Gcli ? :slight_smile:

Au pire je peux en créer une à la main depuis une de mes machines Oracle, mais ce n’est pas très pratique :wink:

2 Likes

@solaiye je pense que j’ai enfin réussi à créer un exécutable portable depuis ma machine oracle:

lien

Comme c’est hosté en ligne, bien vérifier le checksum avant de l’exécuter:

# MD5
md5sum gcli     
20e4f85ae584b47dacc70d0bd84484e8  gcli

# Sha256
sha256sum gcli  
0e23cfc55887c1065bc035c679abfc15c4cf42f87417d2f7c31815df095dc993  gcli

bonjour @Nicolas80

merci pour ton aide, quand je clique sur le lien LimeWire, cela retourne cette erreur :
Error
The URL doesn’t have the correct format.

voici l’URL du lien

Effectivement, je ne sais pas pourquoi le lien déconne;

Je viens de ré-uploader (toujours les mêmes checksum à vérifier)
lien

(pour info, le lien devrait être valable 7 jours…)

EDIT: Si on laisse faire le forum avec le résumé du lien, il ne fonctionne pas o_O

bonjour à tous,

j’espère que tout le monde va bien

suite aux dernières recommandations de @Nicolas80, j’ai pu légèrement avancer

j’ai du coup déjà un noeud “mirror” fonctionnel en docker-compose
et je tente d’en ajouter un autre “smith”

les 2 fichiers docker-compose.yml sont sur la même machine et dans le même dossier
et je dois, je suppose, les renommer pour utiliser soit l’un ou soit l’autre (docker-compose.yml / docker-compose-mirror.yml)

à ce niveau, est-il éventuellement possible d’utiliser 2 .yml en même temps ?

suite à un autre conseil de @Nicolas80, je me suis aperçu que la configuration des ports n’était effectivement PAS correcte des 2 côtés car ils rentraient en conflit

j’ai donc changé les 2, ici le “mirror” :

rpc

  • 9945:9944

et ici le “smith” :

rpc

  • 127.0.0.1:9946:9944

ce paramètre reste identique pour les 2 .yml :
DUNITER_CHAIN_NAME=gdev
et seul le nom du noeud change

concernant les paramètres supplémentaires déclarés dans le .yml pour le “smith”, voici ce que j’avais mis eu départ :
DUNITER_PUBLIC_ADDR=/dns/gdev/tcp/30333
DUNITER_LISTEN_ADDR=/ip4/0.0.0.0/tcp/30333

mais je comprends à ce niveau que le paramètre DUNITER_PUBLIC_ADDR
peut aussi bien être déclaré avec un DNS ou avec une adresse IP
mais, étant donné que je n’ai pas de DNS, j’ai tenté avec un qu’on peut retrouver sur le forum, mais cela me renvoi toujours la même erreur

avec ce paramètre :
DUNITER_PUBLIC_ADDR=/dns/gdev/tcp/30333
ces erreurs sont générées :&
duniter-smith-1 | It isn’t safe to expose RPC publicly without a proxy server that filters available set of RPC methods.
duniter-smith-1 | Error: Service(Client(StateDatabase(“Trying to insert block with invalid number”)))

et avec la commande “sudo docker compose logs -f”, cela affiche des lignes puis cela s’arrête

et avec ce paramètre, mêmes erreur (et même si je remplace 0.0.0.0 par l’adresse IP locale ou publique) :
DUNITER_PUBLIC_ADDR=/ip4/0.0.0.0/tcp/30333
duniter-smith-1 | It isn’t safe to expose RPC publicly without a proxy server that filters available set of RPC methods.
duniter-smith-1 | Error: Service(Client(StateDatabase(“Trying to insert block with invalid number”))

avec la commande “sudo docker compose logs -f”, cela affiche des lignes mais cela continu d’afficher des lignes en boucle

j’ai même tenté avec plusieurs DNS différents comme celui-ci par exemple :
DUNITER_PUBLIC_ADDR=/dns/gdev.gyroi.de/tcp/30333

et cela retourne toujours ceci :
duniter-smith-1 | Error: Service(Client(StateDatabase(“Trying to insert block with invalid number”))

je suppose qu’il ne manque pas grand chose, mais je ne comprends pas tout pour le moment…

bonne et belle journée

Pour répondre au début du message, le plus propre si tu veux avoir des containers docker que tu peux lancer en même temps est d’avoir un répertoire dédié à chacun, avec chaque fois le docker-compose dedans.

Et du coup tu vas dans le bon répertoire avant de lancer la commande docker compose.

J’utilise Portainer pour simplifier les démarches avec plusieurs dockers Installer Portainer sur Docker - Aymeric CUCHEROUSSET
et pour le DUNITER_PUBLIC_ADDR, as-tu testé sans le mettre du tout ?

bonjour, je confirme, quelque soit la configuration avec ou sans le paramètre DUNITER_PUBLIC_ADDR, cela renvoi systématiquement la même erreur :

duniter-smith-1 | Error: Service(Client(StateDatabase(“Trying to insert block with invalid number”))

j’ai même tenté en retirant le maximum de paramètre (tout en conservant la différence des ports) et en les ajoutant un à un, et cette même erreur est affichée dans tous les cas

:frowning:

Pour le fait que le “smith” ne veut pas démarrer; vérifie qu’il n’y a pas d’overlap pour les (autres) ports (le “HOST” ne peux utiliser ses ports qu’une seule fois).

Le 2ème port important qui n’est pas mentionné est pour l’accès P2P qui doit être exposé pour tous les types de noeuds (SMITH inclus).

C’est le port 30333 dans le container; et on doit idéalement l’exposer publiquement sur le host (même si libp2p peut s’en sortir sans qu’il soit exposé ??)

exemples en prenant les ports par défaut pour le Mirror et ports +1 pour SMITH:

Mirror

    ports:
      # (Public) RPC access (only for MIRROR nodes)
      # 0.0.0.0 = Public access from HOST
      # 9944 (left one) = HOST port to be used
      # 9944 (right one) = Container port to be used (don't change that one !)
      - 0.0.0.0:9944:9944
      # (Public) P2P access
      # 0.0.0.0 = Public access from HOST
      # 30333 (left one) = HOST port to be used
      # 30333 (right one) = Container port to be used (don't change that one !)
      - 0.0.0.0:30333:30333

Smith/Validator

    ports:
      # (Private) RPC access for SMITH
      # 127.0.0.1 = Localhost only from HOST (not public)
      # 9945 (left one) = HOST port to be used
      # 9944 (right one) = Container port to be used (don't change that one !)
      - 127.0.0.1:9945:9944
      # (Public) P2P access
      # 0.0.0.0 = Public access from HOST
      # 30334 (left one) = HOST port to be used
      # 30333 (right one) = Container port to be used (don't change that one !)
      - 0.0.0.0:30334:30333

@solaiye si tu veux on peut tenter une visio avec partage d’écran

Pour tenter d’aller plus loin; je viens de me refaire un docker-compose minimale pour un noeud smith/validator - sans DNS - et avec l’oracle qui ne démarre pas par défaut (il faut ajouter un “profile”).

Dans le fichier, j’utilise l’IP internet de mon serveur: 130.61.75.29

Mon serveur a une architecture ARM; c’est pour cela que j’ai platform: linux/arm64/v8

services:
  duniter-v2s-validator:
    image: duniter/duniter-v2s-gdev-800:latest
    platform: linux/arm64/v8
    container_name: duniter-v2s-gdev-smith-minimal
    restart: unless-stopped
    ports:
      # Private RPC ! (for SMITH)
      - 127.0.0.1:9946:9944
      # Public P2P using Host port 30335
      - 0.0.0.0:30335:30333
    volumes:
      - data-validator:/var/lib/duniter/
    environment:
      # gdev, gtest or g1
      - DUNITER_CHAIN_NAME=gdev
      - DUNITER_VALIDATOR=true
      - DUNITER_PRUNING_PROFILE=light # <--- stays light
      - DUNITER_NODE_NAME=Nicolas80-smith-de-minimal
      - DUNITER_PUBLIC_ADDR=/ip4/130.61.75.29/tcp/30335/ws
      - DUNITER_LISTEN_ADDR=/ip4/0.0.0.0/tcp/30333/ws

  distance-oracle:
    image: duniter/duniter-v2s-gdev-800:latest
    container_name: distance-oracle
    entrypoint: docker-distance-entrypoint # other entrypoint
    environment:
      ORACLE_RPC_URL: ws://duniter-v2s-gdev-smith-minimal:9944  # container_name from SMITH node above
      ORACLE_RESULT_DIR: /var/lib/duniter/chains/gdev/distance/ # should match network
      ORACLE_EXECUTION_INTERVAL: 200 # <--- should be adjusted based on network
    volumes:
      - data-validator:/var/lib/duniter/  # use same volume
    # The presence of a profile will prevent running this service "by default"
    # Unless specifically activating a profile like
    # $ docker compose --profile oracle up -d
    profiles:
      - oracle

# Reused volume between the 2 containers !
volumes:
  data-validator: null

Et quand je le lance (sans oracle) avec docker compose up -d et que je regarde les logs avec docker compose logs -f :

oracle-niania ➜  duniter-smith-minimal docker compose logs -f
duniter-v2s-gdev-smith-minimal  | Generating node key file '/var/lib/duniter/node.key'...
duniter-v2s-gdev-smith-minimal  | 12D3KooWRZsRbJyR1fB8wcF7qeQbAZ3ALmis7hm5DosiE8vYs49X
duniter-v2s-gdev-smith-minimal  | Node peer ID is '12D3KooWRZsRbJyR1fB8wcF7qeQbAZ3ALmis7hm5DosiE8vYs49X'.
duniter-v2s-gdev-smith-minimal  | Starting duniter with parameters: --name Nicolas80-smith-de-minimal --node-key-file /var/lib/duniter/node.key --public-addr /ip4/130.61.75.29/tcp/30335/ws --listen-addr /ip4/0.0.0.0/tcp/30333/ws --rpc-cors all --rpc-methods Unsafe --validator --blocks-pruning 14400 --chain gdev -d /var/lib/duniter --unsafe-rpc-external
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:35 Duniter
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:35 ✌️  version 0.9.2-unknown
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:35 ❤️   by librelois <c@elo.tf>:tuxmain <tuxmain@zettascript.org>:c-geek <https://forum.duniter.org/u/cgeek>:HugoTrentesaux <https://trentesaux.fr>:bgallois <benjamin@gallois.cc>:Duniter Developers <https://duniter.org>:Axiom-Team Developers <https://axiom-team.fr>, 2021-2025
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:35 📋 Chain specification: ĞDev
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:35 🏷  Node name: Nicolas80-smith-de-minimal
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:35 👤 Role: AUTHORITY
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:35 💾 Database: ParityDb at /var/lib/duniter/chains/gdev/paritydb/full
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:37 🔨 Initializing Genesis block/state (state: 0xea8a…64d2, header-hash: 0xc184…b6c3)
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 👶 Creating empty BABE epoch changes on what appears to be first startup.
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 Local node identity is: 12D3KooWRZsRbJyR1fB8wcF7qeQbAZ3ALmis7hm5DosiE8vYs49X
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 Running litep2p network backend
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 👶 Starting BABE Authorship worker
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 💻 Operating system: linux
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 💻 CPU architecture: aarch64
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 💻 Target environment: gnu
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 💻 Memory: 23980MB
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 💻 Kernel: 6.8.0-1016-oracle
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 💻 Linux distribution: Debian GNU/Linux 11 (bullseye)
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 💻 Virtual machine: no
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 📦 Highest known block at #0
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 Running JSON-RPC server: addr=0.0.0.0:9944,[::]:44053
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 〽️ Prometheus exporter started at 127.0.0.1:9615
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:38 ***** Duniter has fully started *****
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:40 🔍 Discovered new external address for our node: /ip4/130.61.75.29/tcp/30335/ws/p2p/12D3KooWRZsRbJyR1fB8wcF7qeQbAZ3ALmis7hm5DosiE8vYs49X
duniter-v2s-gdev-smith-minimal  | 2025-04-07 16:30:43 ⚙️   Syncing, target=#5962833 (5 peers), best: #1265 (0xea9f…afea), finalized #1024 (0xcb1c…2f76), ⬇ 164.6kiB/s ⬆ 3.2kiB/s
...

On peut voir qu’il a bien découvert une adresse externe P2P (qui commence par ce que j’ai défini dans DUNITER_PUBLIC_ADDR: /ip4/130.61.75.29/tcp/30335/ws/p2p/12D3KooWRZsRbJyR1fB8wcF7qeQbAZ3ALmis7hm5DosiE8vYs49X et qu’il commence à synchroniser…

Edit: Si tu à modifié plusieurs choses dans ton docker compose et que tu veux réessayer de zéro, il est possible de supprimer les volume & network docker associés avec la commande docker compose down -v (attention, cela supprime les données que ce compose avait jusque là, bien vérifier d’être au bon endroit !)

bonsoir,

merci pour tous ces conseils :pray:

j’ai tenté de reproduire au plus proche le contenu du fichier YML proposé, cependant, cela affiche toujours la même chose :frowning:

je note juste que c’est au niveau de cette ligne que cela est provoqué :

duniter-smith-1 | 2025-04-07 19:57:59 :hammer: Initializing Genesis block/state (state: 0xea8a…64d2, header-hash: 0xc184…b6c3)
duniter-smith-1 | Error: Service(Client(StateDatabase(“Trying to insert block with invalid number”)))
duniter-smith-1 exited with code 0
duniter-smith-1 | It isn’t safe to expose RPC publicly without a proxy server that filters available set of RPC methods.

si jamais ceci correspond à un chemin d’accès, alors j’aurais besoin de savoir quelles sont les étapes à suivre pour créer les dossiers et ce qu’il faut mettre dedans, car je n’ai aucun dossier qui correspond à cela sur le serveur
.../tcp/30335/ws/p2p/...

je propose un premier contact sur TELEGRAM : [@solaiye]
pour ensuite pouvoir planifier un créneau

bonne et belle soirée | nuit
:expressionless:

Je pense que l’on a déjà vu cette erreur, cela semble être un soucis pour initialiser le Genesis quand on est en mode “Smith” / “Validator”…

@HugoTrentesaux Je pensais que cela avait été corrigé… Est-ce que ce bug serait uniquement présent pour les serveurs avec architecture ARM ?

Tu peux tenter de changer le setting qui précise que c’est un noeud validator; juste le temps de démarrer et récupérer le genesis (tant que tu ne supprime pas le volume docker associé à ce docker compose; les données resteront présentes)

      - DUNITER_VALIDATOR=false

et lorsque tu vois dans les logs qu’il commence à synchroniser; stopper le serveur, changer la config et redémarrer.