sdk_relay
Description
sdk_relay
est un service Rust qui relaye des messages et événements autour de Bitcoin en s’adossant à:
- RPC Bitcoin Core (lecture chaîne, mempool, transactions, PSBT)
- ZMQ de Bitcoin Core (sujets
rawtx
,hashblock
) - Blindbit (scan filtré BIP158 via
sdk_common
) - WebSocket (serveur « fanout » et diffusion contrôlée)
Fonctionnalités
- Serveur WebSocket configurable (
ws_url
) - Endpoint de santé HTTP (
/health
sur port 8091) - Gestion d’état locale dans
~/<data_dir>
(par défaut.4nk
) - Diffusion des messages réseau
sdk_common
(Handshake, NewTx, Commit, Cipher, etc.) - Persistance de portefeuille Silent Payments et des processus/membres
Configuration
Créer un fichier de configuration et le fournir via --config
(voir docs/ANALYSE.md
):
core_url
,core_wallet?
,ws_url
,wallet_name
,network
,blindbit_url
,zmq_url
,data_dir
,bootstrap_url?
,bootstrap_faucet
Build
Pré-requis: Rust stable. Compilation locale simple:
cargo build
Compilation par conteneur: voir Dockerfile
(multi‑étapes; binaire sdk_relay
).
Exécution
Le binaire expose:
- WebSocket sur
ws_url
(ex.:0.0.0.0:8090
) /health
sur8091
renvoyant{"status":"ok"}
Tests
- Tests réseau:
tests/ws_connect.rs
(nécessite un service en écoute surSDK_RELAY_WS_URL
ouws://localhost:8090
) - Vérification santé:
tests/health_check.sh
Documentation
Voir docs/ANALYSE.md
(architecture) et docs/VALIDATION.md
(parcours de validation et dépannage).
Licence et contributions
Voir LICENSE
, CONTRIBUTING.md
, CODE_OF_CONDUCT.md
.
Journal de changements
Voir CHANGELOG.md
.
Documentation centralisée
- Voir
/home/debian/4NK_env/docs/sdk_relay/
Intégration dans l’environnement 4NK
Ce service s’intègre à l’architecture 4NK en tant que relais WebSocket et composant de synchronisation. Les URL publiques, domaines et hôtes doivent être fournis via la configuration et les variables d’environnement (pas de valeurs codées en dur). Référez‑vous aux documents centraux pour le contexte global et le déploiement:
docs/DEEP_ARCHITECTURE_ANALYSIS.md
docs/TECHNICAL_REFERENCE.md
docs/DEPLOYMENT_GUIDE.md