**Motivations:** - Ajouter dates manquantes dans hash_list.txt et compléter historique - Compléter blockTime manquants dans utxo_list.txt et compléter historique - Récupérer frais depuis transactions d'ancrage (OP_RETURN) et les stocker - Bouton UI pour déclencher récupération frais - Diagnostic Bloc Rewards (pourquoi ~4700 BTC au lieu de 50 BTC) **Root causes:** - hash_list.txt sans date (format ancien) - utxo_list.txt blockTime souvent vide - Frais absents du fichier (métadonnées OP_RETURN non stockées) - Pas de moyen de récupérer/compléter frais depuis UI **Correctifs:** - hash_list.txt : format étendu avec date (rétrocompatible) - utxo_list.txt : blockTime complété automatiquement lors écritures - fees_list.txt : nouveau fichier pour stocker frais - updateFeesFromAnchors() : récupère frais depuis OP_RETURN ancrages - Endpoint /api/utxo/fees/update pour déclencher récupération - Bouton "Récupérer les frais depuis les ancrages" dans section Frais (spinner) - Scripts batch : complete-hash-list-dates.js, complete-utxo-list-blocktime.js - Script diagnostic : diagnose-bloc-rewards.js (subsidy, coinbase, listunspent) **Evolutions:** - Frais chargés depuis fees_list.txt dans getUtxoList - Complétion automatique dates/blockTime lors écritures futures **Pages affectées:** - signet-dashboard/src/bitcoin-rpc.js - signet-dashboard/src/server.js - signet-dashboard/public/utxo-list.html - scripts/complete-hash-list-dates.js - scripts/complete-utxo-list-blocktime.js - scripts/diagnose-bloc-rewards.js - features/utxo-list-fees-update-and-historical-completion.md
1.8 KiB
1.8 KiB
UserWallet API Relay
Serveur de relais pour le système de login décentralisé UserWallet.
Fonctionnalités
- Stockage des messages chiffrés (sans signatures ni clés)
- Stockage séparé des signatures
- Stockage séparé des clés de déchiffrement
- Relais entre pairs (inter-relay)
- Déduplication par hash
- Endpoints REST pour GET/POST
Installation
npm install
Configuration
Variables d'environnement :
PORT: Port d'écoute (défaut: 3019)HOST: Adresse d'écoute (défaut: 0.0.0.0)STORAGE_PATH: Chemin de stockage (défaut: ./data)PEER_RELAYS: Liste de relais pairs séparés par virgule (ex: http://relay1:3019,http://relay2:3019)
Développement
npm run dev
Build
npm run build
npm start
Endpoints
Health
GET /health- Vérification de santé
Messages
GET /messages?start=<timestamp>&end=<timestamp>&service=<uuid>- Récupérer les messages dans une fenêtre temporellePOST /messages- Publier un message chiffréGET /messages/:hash- Récupérer un message par hash
Signatures
GET /signatures/:hash- Récupérer les signatures pour un messagePOST /signatures- Publier une signature
Clés
GET /keys/:hash- Récupérer les clés de déchiffrement pour un messagePOST /keys- Publier une clé de déchiffrement
Architecture
Le relais respecte la séparation stricte :
- Messages publiés sans signatures ni clés
- Signatures publiées séparément
- Clés publiées séparément
La déduplication par hash évite de relayer deux fois le même message.
Stockage
Par défaut, le stockage est en mémoire avec sauvegarde optionnelle sur disque. En production, utiliser une base de données (SQLite, PostgreSQL, etc.).