anchorage_layer_simple/fixKnowledge/dashboard-fees-not-displayed-after-update.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

4.3 KiB

Dashboard - Frais non affichés après mise à jour

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

Problème

Après la mise à jour des frais via le bouton "Récupérer les frais depuis les ancrages", le message indique un total de frais (ex: 2667) mais aucune ligne n'apparaît dans le tableau des frais. Le problème se produit même si des frais existent dans fees_list.txt.

Impacts

  • Utilisateur: Les frais ne sont pas visibles dans le tableau après la mise à jour
  • Fiabilité: Les données existent mais ne sont pas affichées
  • Expérience utilisateur: Confusion car le total indique des frais mais le tableau est vide

Root causes

  1. Chargement depuis le fichier texte : La fonction loadUtxoList() charge uniquement depuis /api/utxo/list.txt qui ne contient que les UTXOs (bloc_rewards, ancrages, changes), pas les frais. Les frais sont dans un fichier séparé fees_list.txt.

  2. Rechargement incorrect après mise à jour : Après la mise à jour des frais, la fonction updateFeesFromAnchors() appelait loadUtxoList() qui charge depuis le fichier texte sans les frais, au lieu de loadUtxoListFromRPC() qui charge depuis l'endpoint RPC incluant les frais.

  3. Absence d'endpoint dédié : Il n'existait pas d'endpoint pour charger uniquement les frais depuis fees_list.txt lors du chargement depuis le fichier.

Cause racine: Les frais sont stockés dans un fichier séparé (fees_list.txt) et ne sont pas inclus dans utxo_list.txt, mais le chargement depuis le fichier ne chargeait pas les frais séparément.

Correctifs

  1. Création d'un endpoint dédié : Ajout de /api/utxo/fees dans signet-dashboard/src/server.js pour charger les frais depuis fees_list.txt avec les confirmations mises à jour.

  2. Modification de loadUtxoList() : Ajout d'un appel à /api/utxo/fees après le chargement des UTXOs depuis le fichier texte pour charger les frais séparément.

  3. Modification de updateFeesFromAnchors() : Changement de loadUtxoList() vers loadUtxoListFromRPC() après la mise à jour des frais pour s'assurer que les frais sont affichés.

Modifications

Fichiers modifiés

  • signet-dashboard/src/server.js : Ajout de l'endpoint /api/utxo/fees
  • signet-dashboard/public/utxo-list.html :
    • Modification de loadUtxoList() pour charger les frais séparément
    • Modification de updateFeesFromAnchors() pour recharger avec loadUtxoListFromRPC()

Détails techniques

  • Nouvel endpoint : /api/utxo/fees appelle bitcoinRPC.getUtxoList() qui charge les frais depuis fees_list.txt avec les confirmations mises à jour
  • Chargement asynchrone : Les frais sont chargés en parallèle après le chargement des UTXOs depuis le fichier
  • Gestion des erreurs : En cas d'erreur lors du chargement des frais, l'affichage continue avec les UTXOs chargés

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 à la page UTXO list
    • Cliquer sur "Actualisation Rapide" et vérifier que les frais s'affichent
    • Cliquer sur "Récupérer les frais depuis les ancrages" et vérifier que les frais s'affichent après la mise à jour

Modalités d'analyse

Vérification du problème

  1. Vérifier les frais dans le fichier : cat fees_list.txt | wc -l pour compter le nombre de frais
  2. Vérifier l'endpoint : curl http://localhost:3020/api/utxo/fees pour voir si les frais sont retournés
  3. Vérifier les logs : Chercher les erreurs lors du chargement des frais

Commandes de diagnostic

# Vérifier le nombre de frais dans le fichier
cat fees_list.txt | wc -l

# Tester l'endpoint des frais
curl http://localhost:3020/api/utxo/fees | jq '.count'

# Vérifier les logs du dashboard
sudo journalctl -u signet-dashboard | grep -i "fees\|error"

Indicateurs de succès

  • Les frais s'affichent dans le tableau même lors du chargement depuis le fichier ("Actualisation Rapide")
  • Les frais s'affichent correctement après la mise à jour via "Récupérer les frais depuis les ancrages"
  • Le nombre de frais dans le tableau correspond au nombre dans fees_list.txt
  • Les confirmations des frais sont à jour