docs: Ajout de la documentation et des règles Cursor
All checks were successful
build-and-push-ext / build_push (push) Successful in 7s

- Ajout de .cursorrules pour les règles de développement
- Ajout de docs/CONFIGURATION.md avec la configuration du service
- Documentation des problèmes connus et solutions
This commit is contained in:
4NK Dev 2025-09-20 10:48:58 +00:00
parent 6586e0bb2f
commit 31db1ff731
2 changed files with 126 additions and 0 deletions

63
.cursorrules Normal file
View File

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

63
docs/CONFIGURATION.md Normal file
View File

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