release: 1.1.1 (latest)
Some checks failed
CI - 4NK_node / Code Quality (push) Failing after 38s
CI - 4NK_node / Unit Tests (push) Failing after 37s
CI - 4NK_node / Integration Tests (push) Successful in 34s
CI - 4NK_node / Security Tests (push) Failing after 33s
CI - 4NK_node / Docker Build & Test (push) Failing after 15s
CI - 4NK_node / Documentation Tests (push) Successful in 11s
CI - 4NK_node / Security Audit (push) Successful in 9s
CI - 4NK_node / Release Guard (push) Has been skipped
CI - 4NK_node / Performance Tests (push) Successful in 36s
CI - 4NK_node / Notify (push) Failing after 2s
Some checks failed
CI - 4NK_node / Code Quality (push) Failing after 38s
CI - 4NK_node / Unit Tests (push) Failing after 37s
CI - 4NK_node / Integration Tests (push) Successful in 34s
CI - 4NK_node / Security Tests (push) Failing after 33s
CI - 4NK_node / Docker Build & Test (push) Failing after 15s
CI - 4NK_node / Documentation Tests (push) Successful in 11s
CI - 4NK_node / Security Audit (push) Successful in 9s
CI - 4NK_node / Release Guard (push) Has been skipped
CI - 4NK_node / Performance Tests (push) Successful in 36s
CI - 4NK_node / Notify (push) Failing after 2s
- signer: endpoint de santé via httpd (9092) exposé en /signer/health - relays: healthcheck assoupli (attente indicateur de démarrage) - docs: ARCHITECTURE/CONFIGURATION/TESTING mis à jour - changelog: entrée 1.1.1
This commit is contained in:
parent
2e65e11ebb
commit
31dedfe282
@ -58,6 +58,15 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||||||
- Correction `EACCES` de build UI via gestion des permissions `ihm_client/dist`
|
- Correction `EACCES` de build UI via gestion des permissions `ihm_client/dist`
|
||||||
- Diagnostic et correction outillage réseau : installation de `netcat-openbsd` sur l’hôte et dans `bitcoin-signet` pour tests SOCKS/TCP
|
- Diagnostic et correction outillage réseau : installation de `netcat-openbsd` sur l’hôte et dans `bitcoin-signet` pour tests SOCKS/TCP
|
||||||
|
|
||||||
|
## [1.1.1] - 2025-08-27
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- `docker-compose.yml` : ajout d’un mini serveur HTTP (busybox httpd) sur `sdk_signer` pour l’endpoint de santé interne 9092, exposé via Nginx en `/signer/health`.
|
||||||
|
- `sdk_relay/healthcheck.sh` : assouplissement du healthcheck (attente d’un indicateur de démarrage) pour éviter les faux négatifs durant la phase de rescan/initialisation.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- `/signer/health` retournait 502 via le reverse proxy ; désormais HTTP 200 avec corps `ok`.
|
||||||
|
|
||||||
## [1.0.0] - 2024-12-19
|
## [1.0.0] - 2024-12-19
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -273,7 +273,8 @@ services:
|
|||||||
entrypoint: >
|
entrypoint: >
|
||||||
/bin/sh -lc "mkdir -p /app/data && chown -R nodejs:nodejs /app/data || true; \
|
/bin/sh -lc "mkdir -p /app/data && chown -R nodejs:nodejs /app/data || true; \
|
||||||
apk add --no-cache busybox-extras >/dev/null 2>&1 || true; \
|
apk add --no-cache busybox-extras >/dev/null 2>&1 || true; \
|
||||||
( while true; do { printf 'HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nContent-Length: 2\r\n\r\nok'; } | nc -l -p 9092 -s 0.0.0.0 -q 1; done ) & \
|
mkdir -p /tmp/health && printf 'ok' > /tmp/health/health; \
|
||||||
|
( /usr/sbin/httpd -f -h /tmp/health -p 9092 ) & \
|
||||||
exec node -r ts-node/register/transpile-only src/index.ts"
|
exec node -r ts-node/register/transpile-only src/index.ts"
|
||||||
networks:
|
networks:
|
||||||
btcnet:
|
btcnet:
|
||||||
|
@ -47,6 +47,7 @@ Un reverse proxy dédié assure désormais l'exposition publique unique de l'inf
|
|||||||
- `/ws/` → `sdk_relay_1` (WebSocket, upgrade)
|
- `/ws/` → `sdk_relay_1` (WebSocket, upgrade)
|
||||||
- `/storage/` → `sdk_storage` (HTTP 8081 via proxy)
|
- `/storage/` → `sdk_storage` (HTTP 8081 via proxy)
|
||||||
- `/signer/ws/` → `sdk_signer` (WebSocket 9090 via proxy)
|
- `/signer/ws/` → `sdk_signer` (WebSocket 9090 via proxy)
|
||||||
|
- `/signer/health` → `sdk_signer` (HTTP 9092 via sidecar httpd pour health)
|
||||||
- Tous les autres services restent strictement internes au réseau Docker `btcnet`
|
- Tous les autres services restent strictement internes au réseau Docker `btcnet`
|
||||||
|
|
||||||
## Composants Principaux
|
## Composants Principaux
|
||||||
@ -93,6 +94,7 @@ Un reverse proxy dédié assure désormais l'exposition publique unique de l'inf
|
|||||||
|
|
||||||
**Caractéristiques :**
|
**Caractéristiques :**
|
||||||
- Port interne : 9090 (WebSocket)
|
- Port interne : 9090 (WebSocket)
|
||||||
|
- Santé : HTTP 9092 (sidecar httpd minimal) exposé via `/signer/health`
|
||||||
- Dépendances : `sdk_relay_1` (URL relay `ws://sdk_relay_1:8090`)
|
- Dépendances : `sdk_relay_1` (URL relay `ws://sdk_relay_1:8090`)
|
||||||
- Publication : via reverse proxy en `/signer/ws/`
|
- Publication : via reverse proxy en `/signer/ws/`
|
||||||
- Persistance : volume `sdk_signer_data` pour la base locale
|
- Persistance : volume `sdk_signer_data` pour la base locale
|
||||||
@ -496,5 +498,3 @@ Client ──── WebSocket ──── SDK Relay ──── Bitcoin Core R
|
|||||||
- **Monitoring :** Prometheus, Grafana
|
- **Monitoring :** Prometheus, Grafana
|
||||||
- **Logging :** ELK Stack
|
- **Logging :** ELK Stack
|
||||||
- **Alerting :** PagerDuty, Slack
|
- **Alerting :** PagerDuty, Slack
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,6 +31,11 @@ RELAY_2_PORTS=8092:8090,8093:8091
|
|||||||
RELAY_3_PORTS=8094:8090,8095:8091
|
RELAY_3_PORTS=8094:8090,8095:8091
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 1.b Santé des services
|
||||||
|
|
||||||
|
- `sdk_signer` expose un endpoint de santé interne HTTP sur le port 9092 (sidecar httpd minimal). Le reverse proxy le publie en `/signer/health`.
|
||||||
|
- Les `sdk_relay_*` utilisent un healthcheck tolérant au démarrage : le processus doit être actif et l’indicateur `/home/bitcoin/.4nk/processes` présent. Les ports 8090/8091 peuvent n’ouvrir qu’après les phases initiales (scan/resync).
|
||||||
|
|
||||||
### 2. Configuration Réseau
|
### 2. Configuration Réseau
|
||||||
|
|
||||||
#### Réseau Docker Personnalisé
|
#### Réseau Docker Personnalisé
|
||||||
@ -792,5 +797,3 @@ docker-compose logs --tail=50
|
|||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ Options disponibles :
|
|||||||
- `test_connectivity.sh` : Test de connectivité des services
|
- `test_connectivity.sh` : Test de connectivité des services
|
||||||
- `test_websocket_messages.py` : Test des messages WebSocket
|
- `test_websocket_messages.py` : Test des messages WebSocket
|
||||||
- `test_storage_proxy.sh` : Test de l’API sdk_storage via le reverse proxy (`/storage/*`)
|
- `test_storage_proxy.sh` : Test de l’API sdk_storage via le reverse proxy (`/storage/*`)
|
||||||
- `test_signer_proxy.sh` : Test de la connectivité sdk_signer (port 9090 + WSS via `/signer/ws/`)
|
- `test_signer_proxy.sh` : Test de la connectivité sdk_signer (port 9090 + WSS via `/signer/ws/` + santé `/signer/health`)
|
||||||
- Tests externes reverse proxy :
|
- Tests externes reverse proxy :
|
||||||
```bash
|
```bash
|
||||||
curl -kI https://<IP_VM>/
|
curl -kI https://<IP_VM>/
|
||||||
@ -336,8 +336,8 @@ Les logs sont conservés sous `tests/logs/signet_sync_*.log`.
|
|||||||
|
|
||||||
#### Vérifier l’ouverture des ports du relais et l’API
|
#### Vérifier l’ouverture des ports du relais et l’API
|
||||||
```bash
|
```bash
|
||||||
# Ports 8090/8091 dans sdk_relay_1
|
# Ports 8090/8091 dans sdk_relay_1 (peuvent s'ouvrir après la phase d'initialisation)
|
||||||
sudo docker exec sdk_relay_1 sh -lc 'ss -lntp 2>/dev/null || netstat -tlnp 2>/dev/null' | grep -E ':8090 |:8091 ' || echo no-listen
|
sudo docker exec sdk_relay_1 sh -lc 'ss -lntp 2>/dev/null || netstat -tlnp 2>/dev/null' | grep -E ':8090 |:8091 ' || echo en-initialisation
|
||||||
|
|
||||||
# Test /api via reverse proxy
|
# Test /api via reverse proxy
|
||||||
curl -k -I https://localhost/api/
|
curl -k -I https://localhost/api/
|
||||||
@ -555,5 +555,3 @@ Pour obtenir de l'aide :
|
|||||||
- Tests d'API REST
|
- Tests d'API REST
|
||||||
- Tests d'interface WebSocket
|
- Tests d'interface WebSocket
|
||||||
- Tests de compatibilité
|
- Tests de compatibilité
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,13 +12,20 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Test 2: Vérifier que le port WebSocket écoute
|
# Test 2: Vérifier que le binaire est prêt (attente gracieuse au démarrage)
|
||||||
echo "🔍 Test 2: Port WebSocket"
|
echo "🔍 Test 2: Démarrage du service"
|
||||||
if netstat -tuln | grep ":8090 " | grep "LISTEN" > /dev/null; then
|
READY_FILE="/home/bitcoin/.4nk/processes"
|
||||||
echo "✅ Port 8090 écoute"
|
for i in 1 2 3 4; do
|
||||||
else
|
if [ -f "$READY_FILE" ]; then
|
||||||
echo "❌ Port 8090 n'écoute pas"
|
echo "✅ Indicateur de démarrage présent ($READY_FILE)"
|
||||||
exit 1
|
break
|
||||||
|
fi
|
||||||
|
echo "⏳ En attente de l'initialisation (tentative $i/4)"
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
if [ ! -f "$READY_FILE" ]; then
|
||||||
|
echo "❌ Indicateur de démarrage absent après délai"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Test 3: Vérifier la connectivité Bitcoin Core
|
# Test 3: Vérifier la connectivité Bitcoin Core
|
||||||
@ -59,6 +66,3 @@ fi
|
|||||||
|
|
||||||
echo "🎯 Tous les tests de santé sont passés !"
|
echo "🎯 Tous les tests de santé sont passés !"
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user