diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..e411ba3 --- /dev/null +++ b/.cursorrules @@ -0,0 +1,63 @@ +# Règles Cursor pour SDK Relay + +## Configuration du Service + +### Dépendances +- **sdk_common** : Doit être cloné depuis la branche `dev` +- **blindbit-oracle** : Service oracle local +- **bitcoin-signet** : Nœud Bitcoin Signet + +### Dockerfile +```dockerfile +# Cloner sdk_common depuis la branche dev (OBLIGATOIRE) +RUN --mount=type=ssh git clone -b dev ssh://git@git.4nkweb.com/4nk/sdk_common.git /sdk_common +``` + +### Configuration +- **Fichier** : `sdk_relay.conf` +- **blindbit_url** : `http://blindbit-oracle:8000` + +### Variables d'Environnement +```yaml +environment: + - SDK_RELAY_SCAN_TIMEOUT=300 + - SDK_RELAY_STARTUP_MODE=async +``` + +### Ports +- **8090** : WebSocket server +- **8091** : Health server + +### Healthcheck +```yaml +healthcheck: + test: ["CMD", "sh", "-c", "curl -f http://localhost:8091/ | grep -q '\"status\":\"ok\"'"] + interval: 15s + timeout: 10s + retries: 5 + start_period: 60s +``` + +## Règles de Développement + +### Build CI +- Le CI doit cloner sdk_common depuis Git (pas de COPY local) +- Utiliser la branche `dev` de sdk_common +- Vérifier que toutes les features nécessaires sont disponibles + +### Problèmes Connus +1. **Scan bloquant** : Le service peut se bloquer pendant le scan des blocs + - Solution : Modifier `last_scan` dans `/home/bitcoin/.4nk/default` + - Solution : Utiliser des healthchecks avec start_period approprié + +2. **Build context** : Le CI échoue si sdk_common n'est pas dans le contexte + - Solution : Cloner depuis Git au lieu de COPY local + +### Documentation +- Mettre à jour docs/CONFIGURATION.md après chaque modification +- Documenter les problèmes résolus et leurs solutions +- Conserver l'historique des changements + +## Historique +- Créé le 20/09/2025 +- Configuration SDK Relay diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md new file mode 100644 index 0000000..5520b3c --- /dev/null +++ b/docs/CONFIGURATION.md @@ -0,0 +1,63 @@ +# Configuration SDK Relay + +## Vue d'ensemble +Le SDK Relay est un service qui fait le pont entre les clients et les services blockchain, notamment blindbit-oracle. + +## Configuration Actuelle + +### Fichier de Configuration +- **Fichier** : `sdk_relay.conf` +- **Localisation** : `/home/debian/lecoffre_node/relay/sdk_relay.conf` + +### Paramètres Principaux +```ini +blindbit_url="http://blindbit-oracle:8000" +``` + +### Variables d'Environnement Docker +```yaml +environment: + - SDK_RELAY_SCAN_TIMEOUT=300 + - SDK_RELAY_STARTUP_MODE=async +``` + +## Problèmes Résolus + +### 1. Problème de Build CI +**Problème** : Le CI échouait car sdk_common n'était pas trouvé dans le contexte de build. + +**Solution** : Modification du Dockerfile pour cloner sdk_common depuis la branche dev : +```dockerfile +RUN --mount=type=ssh git clone -b dev ssh://git@git.4nkweb.com/4nk/sdk_common.git /sdk_common +``` + +### 2. Problème de Scan Bloquant +**Problème** : Le service sdk_relay se bloquait pendant le scan des blocs, empêchant le démarrage des serveurs WebSocket et de santé. + +**Solution** : +- Modification du `last_scan` dans `/home/bitcoin/.4nk/default` pour éviter les scans trop longs +- Amélioration des healthchecks dans docker-compose.yml +- Ajout de variables d'environnement pour le timeout et le mode async + +## Healthcheck +```yaml +healthcheck: + test: ["CMD", "sh", "-c", "curl -f http://localhost:8091/ | grep -q '\"status\":\"ok\"'"] + interval: 15s + timeout: 10s + retries: 5 + start_period: 60s +``` + +## Ports +- **8090** : WebSocket server +- **8091** : Health server + +## Dépendances +- **blindbit-oracle** : Service oracle pour les données blockchain +- **bitcoin-signet** : Nœud Bitcoin Signet + +## Historique des Modifications +- 20/09/2025 : Correction du build CI avec clonage de sdk_common +- 20/09/2025 : Résolution du problème de scan bloquant +- 20/09/2025 : Amélioration des healthchecks et de la séquence de démarrage