anchorage_layer_simple/fixKnowledge/dashboard-fees-date-confirmations-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 - Date et confirmations des frais non à jour

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

Problème

Dans la page UTXO list, section "Frais" (#fees), les colonnes "Date" et "Confirmé" ne sont pas à jour. Les confirmations restent figées à leur valeur d'origine et ne reflètent pas l'état actuel de la blockchain.

Impacts

  • Utilisateur: Les informations affichées sur les frais sont obsolètes
  • Fiabilité: Les confirmations ne reflètent pas l'état réel des transactions
  • Expérience utilisateur: Confusion sur l'état réel des transactions d'ancrage

Root causes

Les frais sont chargés depuis le fichier fees_list.txt qui contient des données statiques (confirmations, blockHeight, blockTime). Lors du chargement, ces valeurs sont lues directement depuis le fichier sans être mises à jour en fonction de la hauteur actuelle de la blockchain.

Cause racine: Les confirmations ne sont pas recalculées lors du chargement des frais depuis le fichier, elles restent à leur valeur d'origine enregistrée dans fees_list.txt.

Correctifs

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

  1. Récupérer la hauteur actuelle de la blockchain : Obtenir la hauteur actuelle via getBlockchainInfo() avant de charger les frais
  2. Recalculer les confirmations : Pour chaque frais chargé depuis le fichier, recalculer les confirmations en fonction de la hauteur actuelle : confirmations = currentHeight - blockHeight + 1
  3. Gérer les erreurs : En cas d'erreur lors de la récupération de la hauteur, utiliser la valeur du fichier comme fallback

Les modifications ont été appliquées dans deux endroits :

  • Lors du chargement depuis le cache (quand needsUpdate est false)
  • Lors du chargement après mise à jour complète (quand needsUpdate est true)

Modifications

Fichiers modifiés

  • signet-dashboard/src/bitcoin-rpc.js : Modification de la méthode getUtxoList() pour mettre à jour les confirmations des frais lors du chargement

Détails techniques

  • Ajout d'un appel à getBlockchainInfo() pour obtenir la hauteur actuelle
  • Recalcul des confirmations pour chaque frais : confirmations = Math.max(0, currentHeight - blockHeight + 1)
  • Fallback sur la valeur du fichier si la hauteur ne peut pas être obtenue
  • Le blockTime n'a pas besoin d'être mis à jour car il ne change pas une fois qu'une transaction est dans un bloc

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, section Frais, et vérifier que les confirmations sont à jour

Modalités d'analyse

Vérification du problème

  1. Vérifier les confirmations dans le dashboard : Comparer avec la hauteur actuelle de la blockchain
  2. Vérifier la hauteur actuelle : bitcoin-cli getblockchaininfo | grep blocks
  3. Vérifier les frais dans le fichier : cat fees_list.txt | head -1 pour voir le format

Commandes de diagnostic

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

# Vérifier un frais dans le fichier
cat fees_list.txt | head -1

# Calculer les confirmations attendues
# Si blockHeight = 1000 et currentHeight = 1500, confirmations = 1500 - 1000 + 1 = 501

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

Indicateurs de succès

  • Les confirmations dans le tableau des frais correspondent à la hauteur actuelle de la blockchain
  • Les confirmations se mettent à jour automatiquement lors du chargement de la page
  • La colonne "Confirmé" affiche correctement ✓ pour les transactions confirmées