**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)
3.9 KiB
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 :
- Vérifier la présence de nouveaux blocs : Comparer la hauteur du cache (
hash_list_cache.txt) avec la hauteur actuelle de la blockchain - Mettre à jour le fichier si nécessaire : Appeler
getHashList()pour mettre à jourhash_list.txtavant de compter si de nouveaux blocs sont détectés - 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éthodegetAnchorCount()pour vérifier et mettre à jourhash_list.txtsi nécessaire
Détails techniques
- Ajout d'une vérification de la hauteur de bloc via
getBlockchainInfo() - Comparaison avec le cache
hash_list_cache.txtpour 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
-
Redémarrer le service dashboard :
sudo systemctl restart signet-dashboard -
Vérifier les logs pour s'assurer qu'il n'y a pas d'erreurs :
sudo journalctl -u signet-dashboard -f -
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
- Vérifier le nombre d'ancrage dans le dashboard : Comparer avec le nombre réel d'ancrages dans
hash_list.txt - Vérifier la hauteur du cache : Comparer la hauteur dans
hash_list_cache.txtavec la hauteur actuelle de la blockchain - Vérifier les logs : Chercher les messages de debug concernant la mise à jour de la liste de hash
Commandes de diagnostic
# 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