anchorage_layer_simple/data/sync-utxos.log
ncantu 8662e9e584 Optimize anchor API performance and fix request abort issues
**Motivations:**
- Anchor API requests were being aborted with 'This operation was aborted' error
- API anchorage had performance issues causing long response times (30-60s)
- Mutex could block indefinitely if a previous request crashed or timed out

**Root causes:**
- No timeout on mutex acquisition, causing indefinite blocking
- Sequential RPC calls (8+ getNewAddress calls) instead of parallel
- Expensive fee calculation making N RPC calls (one per input) instead of using known UTXO amounts
- RPC timeout too short (30s) for slow Bitcoin node operations
- No guarantee of mutex release in error cases

**Correctifs:**
- Added 180s timeout on mutex acquisition with Promise.race() to prevent indefinite blocking
- Parallelized getNewAddress() calls with Promise.all() (9 sequential calls → 1 parallel call)
- Optimized fee calculation to use known UTXO amounts instead of getRawTransaction() per input (saves N RPC calls, up to 20+)
- Increased RPC timeout from 30s to 120s in .env.example
- Added finally block to guarantee mutex release in all cases (success, error, timeout)
- Added timeout and explicit error handling in api-filigrane callAnchorAPI() with AbortController (120s timeout)

**Evolutions:**
- Performance improvement: execution time reduced from ~30-60s to ~10-20s
- RPC calls reduction: from ~15-35 calls to ~8-12 calls per anchor transaction
- Better resilience: mutex cannot block indefinitely anymore
- Improved error messages with explicit timeout/abort information

**Pages affectées:**
- api-anchorage/src/bitcoin-rpc.js: mutex timeout, parallel address generation, optimized fee calculation, finally block
- api-anchorage/.env.example: increased RPC timeout to 120s
- api-filigrane/src/routes/watermark.js: timeout and error handling for anchor API calls
- fixKnowledge/api-filigrane-anchor-request-aborted.md: documentation of issues and fixes
2026-01-28 11:38:43 +01:00

101 lines
3.7 KiB
Plaintext

⏳ Traitement: 200000/225867 UTXOs insérés...
⏳ Traitement: 210000/225867 UTXOs insérés...
⏳ Traitement: 220000/225867 UTXOs insérés...
💾 Mise à jour des UTXOs dépensés...
📊 Résumé:
- UTXOs vérifiés: 61598
- UTXOs toujours disponibles: 61598
- UTXOs dépensés détectés: 0
📈 Statistiques finales:
- Total UTXOs: 68398
- Dépensés: 6800
- Non dépensés: 61598
✅ Synchronisation terminée
🔍 Démarrage de la synchronisation des UTXOs dépensés...
📊 UTXOs à vérifier: 61565
📡 Récupération des UTXOs depuis Bitcoin...
📊 UTXOs disponibles dans Bitcoin: 225882
💾 Création de la table temporaire...
💾 Insertion des UTXOs disponibles par batch...
⏳ Traitement: 10000/225882 UTXOs insérés...
⏳ Traitement: 20000/225882 UTXOs insérés...
⏳ Traitement: 30000/225882 UTXOs insérés...
⏳ Traitement: 40000/225882 UTXOs insérés...
⏳ Traitement: 50000/225882 UTXOs insérés...
⏳ Traitement: 60000/225882 UTXOs insérés...
⏳ Traitement: 70000/225882 UTXOs insérés...
⏳ Traitement: 80000/225882 UTXOs insérés...
⏳ Traitement: 90000/225882 UTXOs insérés...
⏳ Traitement: 100000/225882 UTXOs insérés...
⏳ Traitement: 110000/225882 UTXOs insérés...
⏳ Traitement: 120000/225882 UTXOs insérés...
⏳ Traitement: 130000/225882 UTXOs insérés...
⏳ Traitement: 140000/225882 UTXOs insérés...
⏳ Traitement: 150000/225882 UTXOs insérés...
⏳ Traitement: 160000/225882 UTXOs insérés...
⏳ Traitement: 170000/225882 UTXOs insérés...
⏳ Traitement: 180000/225882 UTXOs insérés...
⏳ Traitement: 190000/225882 UTXOs insérés...
⏳ Traitement: 200000/225882 UTXOs insérés...
⏳ Traitement: 210000/225882 UTXOs insérés...
⏳ Traitement: 220000/225882 UTXOs insérés...
💾 Mise à jour des UTXOs dépensés...
📊 Résumé:
- UTXOs vérifiés: 61565
- UTXOs toujours disponibles: 61565
- UTXOs dépensés détectés: 0
📈 Statistiques finales:
- Total UTXOs: 68398
- Dépensés: 6888
- Non dépensés: 61510
✅ Synchronisation terminée
🔍 Démarrage de la synchronisation des UTXOs dépensés...
📊 UTXOs à vérifier: 49190
📡 Récupération des UTXOs depuis Bitcoin...
📊 UTXOs disponibles dans Bitcoin: 223652
💾 Création de la table temporaire...
💾 Insertion des UTXOs disponibles par batch...
⏳ Traitement: 10000/223652 UTXOs insérés...
⏳ Traitement: 20000/223652 UTXOs insérés...
⏳ Traitement: 30000/223652 UTXOs insérés...
⏳ Traitement: 40000/223652 UTXOs insérés...
⏳ Traitement: 50000/223652 UTXOs insérés...
⏳ Traitement: 60000/223652 UTXOs insérés...
⏳ Traitement: 70000/223652 UTXOs insérés...
⏳ Traitement: 80000/223652 UTXOs insérés...
⏳ Traitement: 90000/223652 UTXOs insérés...
⏳ Traitement: 100000/223652 UTXOs insérés...
⏳ Traitement: 110000/223652 UTXOs insérés...
⏳ Traitement: 120000/223652 UTXOs insérés...
⏳ Traitement: 130000/223652 UTXOs insérés...
⏳ Traitement: 140000/223652 UTXOs insérés...
⏳ Traitement: 150000/223652 UTXOs insérés...
⏳ Traitement: 160000/223652 UTXOs insérés...
⏳ Traitement: 170000/223652 UTXOs insérés...
⏳ Traitement: 180000/223652 UTXOs insérés...
⏳ Traitement: 190000/223652 UTXOs insérés...
⏳ Traitement: 200000/223652 UTXOs insérés...
⏳ Traitement: 210000/223652 UTXOs insérés...
⏳ Traitement: 220000/223652 UTXOs insérés...
💾 Mise à jour des UTXOs dépensés...
📊 Résumé:
- UTXOs vérifiés: 49190
- UTXOs toujours disponibles: 49190
- UTXOs dépensés détectés: 0
📈 Statistiques finales:
- Total UTXOs: 68398
- Dépensés: 19208
- Non dépensés: 49190
✅ Synchronisation terminée