**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)
90 lines
3.9 KiB
Markdown
90 lines
3.9 KiB
Markdown
# 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** :
|
|
```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, 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
|
|
|
|
```bash
|
|
# 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
|