anchorage_layer_simple/fixKnowledge/dashboard-anchor-count-not-updated.md
ncantu 46bf9676a0 Install and enable all missing systemd services
**Motivations:**
- Ensure all application directories have systemd services enabled at boot
- Complete service installation for api-relay, filigrane-api, and clamav-api
- Fix dependencies and import issues preventing clamav-api from starting

**Root causes:**
- Three services (api-relay, filigrane-api, clamav-api) had service files but were not installed in systemd
- api-clamav had incorrect node-clamav version (0.12.1) that doesn't exist
- api-clamav dependencies were not installed (node_modules missing)
- ES module import syntax incompatible with CommonJS node-clamav package

**Correctifs:**
- Installed api-relay.service, filigrane-api.service, and clamav-api.service in /etc/systemd/system/
- Enabled all three services for automatic startup at boot
- Updated api-clamav/package.json: changed node-clamav version from ^0.12.1 to ^1.0.11
- Installed npm dependencies for api-clamav
- Fixed ES module import in api-clamav/src/routes/scan.js to use CommonJS-compatible syntax

**Evolutions:**
- All 7 application services now have systemd services enabled at boot
- Complete service coverage: anchorage-api, faucet-api, signet-dashboard, userwallet, api-relay, filigrane-api, clamav-api
- All services verified active and listening on their respective ports

**Pages affectées:**
- api-clamav/package.json
- api-clamav/src/routes/scan.js
- api-clamav/node_modules/ (new)
- api-clamav/package-lock.json (new)
- /etc/systemd/system/api-relay.service (new)
- /etc/systemd/system/filigrane-api.service (new)
- /etc/systemd/system/clamav-api.service (new)
2026-01-26 12:56:11 +01:00

3.9 KiB

Dashboard - Nombre d'ancrage non à jour

Date: 2026-01-26
Auteur: Équipe 4NK

Problème

Le nombre d'ancrage affiché dans le dashboard ne se mettait pas à jour automatiquement. Le compteur restait figé même après la création de nouveaux ancrages.

Impacts

  • Utilisateur: Le nombre d'ancrage affiché dans le dashboard ne reflète pas la réalité
  • Fiabilité: Les statistiques affichées sont obsolètes et peuvent induire en erreur
  • Expérience utilisateur: Confusion sur l'état réel du système d'ancrage

Root causes

La méthode getAnchorCount() dans bitcoin-rpc.js lisait directement le fichier hash_list.txt sans vérifier s'il était à jour. Le fichier hash_list.txt n'est mis à jour que lorsque getHashList() est appelée, ce qui n'arrive que lors de l'accès à l'endpoint /api/hash/list. Le dashboard appelle uniquement /api/anchor/count qui utilise getAnchorCount(), sans déclencher la mise à jour du fichier.

Cause racine: getAnchorCount() ne vérifiait pas la présence de nouveaux blocs avant de compter les ancrages depuis le fichier.

Correctifs

Modification de la méthode getAnchorCount() dans signet-dashboard/src/bitcoin-rpc.js pour :

  1. Vérifier la présence de nouveaux blocs : Comparer la hauteur du cache (hash_list_cache.txt) avec la hauteur actuelle de la blockchain
  2. Mettre à jour le fichier si nécessaire : Appeler getHashList() pour mettre à jour hash_list.txt avant de compter si de nouveaux blocs sont détectés
  3. Gérer les erreurs : En cas d'erreur lors de la vérification ou de la mise à jour, continuer avec le fichier existant pour éviter de bloquer l'affichage

La méthode vérifie maintenant rapidement s'il y a de nouveaux blocs à traiter et met à jour le fichier hash_list.txt de manière synchrone avant de compter les ancrages, garantissant que le nombre affiché est toujours à jour.

Modifications

Fichiers modifiés

  • signet-dashboard/src/bitcoin-rpc.js : Modification de la méthode getAnchorCount() pour vérifier et mettre à jour hash_list.txt si nécessaire

Détails techniques

  • Ajout d'une vérification de la hauteur de bloc via getBlockchainInfo()
  • Comparaison avec le cache hash_list_cache.txt pour détecter de nouveaux blocs
  • Appel conditionnel à getHashList() pour mettre à jour le fichier avant le comptage
  • Gestion des erreurs pour éviter de bloquer l'affichage en cas de problème

Modalités de déploiement

  1. Redémarrer le service dashboard :

    sudo systemctl restart signet-dashboard
    
  2. Vérifier les logs pour s'assurer qu'il n'y a pas d'erreurs :

    sudo journalctl -u signet-dashboard -f
    
  3. Tester le dashboard : Accéder au dashboard et vérifier que le nombre d'ancrage se met à jour correctement après la création d'un nouvel ancrage

Modalités d'analyse

Vérification du problème

  1. Vérifier le nombre d'ancrage dans le dashboard : Comparer avec le nombre réel d'ancrages dans hash_list.txt
  2. Vérifier la hauteur du cache : Comparer la hauteur dans hash_list_cache.txt avec la hauteur actuelle de la blockchain
  3. Vérifier les logs : Chercher les messages de debug concernant la mise à jour de la liste de hash

Commandes de diagnostic

# Vérifier le nombre d'ancrages dans le fichier
wc -l hash_list.txt

# Vérifier la hauteur du cache
cat hash_list_cache.txt

# Vérifier la hauteur actuelle de la blockchain
bitcoin-cli getblockchaininfo | grep blocks

# Vérifier les logs du dashboard
sudo journalctl -u signet-dashboard | grep -i "anchor count\|hash list"

Indicateurs de succès

  • Le nombre d'ancrage dans le dashboard correspond au nombre de lignes dans hash_list.txt
  • Le nombre se met à jour automatiquement après la création d'un nouvel ancrage
  • Les logs montrent des messages de debug indiquant la mise à jour de la liste de hash avant le comptage