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
..

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 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.).