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

93 lines
4.3 KiB
Markdown

# 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** :
```bash
sudo systemctl restart signet-dashboard
```
2. **Vérifier les logs** pour s'assurer qu'il n'y a pas d'erreurs :
```bash
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
```bash
# 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