ncantu cad73cb265 UTXO-list: dates/blockTime historiques, récupération frais depuis ancrages, diagnostic Bloc Rewards
**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
2026-01-26 01:59:46 +01:00

77 lines
1.8 KiB
Markdown

# 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
```bash
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
```bash
npm run dev
```
## Build
```bash
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 temporelle
- `POST /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 message
- `POST /signatures` - Publier une signature
### Clés
- `GET /keys/:hash` - Récupérer les clés de déchiffrement pour un message
- `POST /keys` - Publier une clé de déchiffrement
## Architecture
Le relais respecte la séparation stricte :
1. Messages publiés sans signatures ni clés
2. Signatures publiées séparément
3. 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.).