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