ncantu f9fe0e3419 Website-skeleton partie connectée, contrat en dur, navigate-login; UserWallet pairing-relay-status, redirect; website-data, proxy data, cryptographie, fixKnowledge
**Motivations:**
- Partie connectée du skeleton accessible seulement si pairing satisfait + relais OK, avec page type skeleton (avatar, notifications).
- Éviter « Aucun service disponible » : contrat présent en dur dans la page, transmis à l’iframe ; navigation évidente ou automatique vers login.
- Sécuriser postMessage (origine UserWallet uniquement) ; déployer data sur le proxy et certificat data.certificator.4nkweb.com.
- Vulgariser cryptographie (ECDH, AES-GCM, Schnorr, workflow, collecte signatures) ; documenter correctifs et architecture.

**Root causes:**
- Section connectée affichée sans vérifier pairing/relay ; possibilité de forger pairing-relay-status depuis la console.
- Iframe masquée ou /login chargé avant réception du contrat → graphe vide, redirection vers /services.
- Pas de contrôle d’origine sur les messages reçus ; pas de projet website-data ni config Nginx/certificat pour data.

**Correctifs:**
- Vérification msg.origin === USERWALLET_ORIGIN dans handleMessage (skeleton).
- Si session mais pas pairingRelayStatus : afficher iframe pour réception du statut, message « Vérification du statut… ».
- Contrat envoyé dès load iframe (init iframe.src = USERWALLET_ORIGIN) ; au clic « Se connecter », envoi contract + navigate-login (service, membre).
- UserWallet : écoute navigate-login → navigation /login?service=&membre= ; LoginScreen avec service+membre en URL ne redirige plus vers /services, dispatch E_SELECT_SERVICE / E_SELECT_MEMBER.

**Evolutions:**
- Message pairing-relay-status (iframe → parent) ; canShowConnectedSection exige login + pairing OK + relay OK ; page connectée avec header avatar + icône notifications.
- Skeleton : getLoginContext, sendNavigateLoginToIframe, onIframeLoad, loginRequested/iframeLoaded ; contrat envoyé avec serviceUuid, membreUuid.
- UserWallet : PairingRelayStatusMessage, envoi depuis HomeScreen/LoginScreen ; type navigate-login, handleNavigateLogin dans useChannel.
- Page cryptographie.html (workflow, algorithmes, collecte signatures) ; liens nav, build.
- website-data (Vite, channel, config), start/service/install ; configure-nginx-proxy + Certbot pour data.certificator.4nkweb.com.
- fixKnowledge (postmessage-origin, section-connectee-non-affichee) ; features (partie-connectee-pairing-relay, userwallet-iframe-key-isolation).

**Pages affectées:**
- website-skeleton (index, main, config, serviceContract, cryptographie, technique, membre, contrat, vite.config, README).
- userwallet (HomeScreen, LoginScreen, useChannel, iframeChannel, relay, crypto, iframe, Pairing*, RelaySettings, WordInputGrid, syncUpdateGraph, specs/synthese).
- website-data (nouveau), configure-nginx-proxy, docs DOMAINS_AND_PORTS README, features, fixKnowledge, userwallet features/docs.
2026-01-29 00:55:58 +01:00

108 lines
3.7 KiB
Markdown

# Documentation Bitcoin Signet Custom
Ce dossier contient toute la documentation nécessaire pour la maintenance et l'utilisation du Bitcoin Signet custom.
## Fichiers de Documentation
- **[MAINTENANCE.md](./MAINTENANCE.md)** : Documentation complète de maintenance
- Architecture et structure
- Configuration et variables d'environnement
- Commandes de maintenance
- Gestion du conteneur
- Mining
- Accès RPC et API
- Mise à jour
- Dépannage
- Sauvegarde et restauration
- **[INSTALLATION_NEW_NODE.md](./INSTALLATION_NEW_NODE.md)** : Guide d'installation d'un nouveau nœud
- Installation initiale
- Configuration pour rejoindre une chaîne existante
- Configuration du mining
- Vérification et dépannage
- Partage d'informations avec d'autres nœuds
- **[INTERFACES.md](./INTERFACES.md)** : Documentation des interfaces disponibles
- API REST d'ancrage
- Interface RPC Bitcoin Core
- Interface ligne de commande (CLI)
- Interface ZMQ (ZeroMQ)
- Interface Docker
- Interface de configuration
- Interface de logs
- **[MEMPOOL.md](./MEMPOOL.md)** : Documentation de Mempool (explorateur blockchain)
- Installation et configuration
- Architecture et services
- Utilisation et maintenance
- Dépannage
- Intégration avec l'infrastructure
- **[DOMAINS_AND_PORTS.md](./DOMAINS_AND_PORTS.md)** : Documentation des domaines et ports
- Liste complète des domaines et services
- Ports fixes de toutes les APIs
- Configuration Nginx et routage
- Services systemd
- Architecture réseau
- Certificats SSL/TLS
- **[ENVIRONMENT.md](./ENVIRONMENT.md)** : Documentation des fichiers d'environnement
- Variables d'environnement de tous les services
- Fichiers `.env` et leur utilisation
- Configuration des services systemd
- Ordre de priorité des variables
- Sécurité et bonnes pratiques
- **[DASHBOARD.md](./DASHBOARD.md)** : Documentation du Dashboard
- Pages disponibles et fonctionnalités
- Navigation et structure
- Mise à jour automatique
- API endpoints utilisés
- Maintenance et dépannage
- **[WEBSITE_SKELETON.md](./WEBSITE_SKELETON.md)** : Squelette de site intégrant UserWallet en iframe
- Objectif et structure du projet `website-skeleton/`
- Configuration (origine UserWallet, validateurs)
- Utilisation, messages postMessage, références
- **website-data** (`website-data/`, `features/website-data-architecture.md`) : Iframe data (data.certificator.4nkweb.com), flux site ↔ data (+notifications) ↔ userwallet (relais).
- **[PAIRING_PUBLIC_KEY_ENCODING.md](./PAIRING_PUBLIC_KEY_ENCODING.md)** : Encodage de la clé publique dans les mots BIP32
- Problème identifié (récupération d'un pair par UUID sur un relais)
- Solution implémentée (encodage direct de la clé publique)
- Modifications techniques et impact
- Flux de pairing et migration
## Démarrage Rapide
### Installation
```bash
cd /home/ncantu/Bureau/code/bitcoin
sudo docker build -t bitcoin-signet .
sudo docker run --env-file .env -d --name bitcoin-signet-instance \
-p 38332:38332 -p 38333:38333 -p 28332:28332 -p 28333:28333 -p 28334:28334 \
bitcoin-signet
```
### Vérification
```bash
sudo docker exec bitcoin-signet-instance bitcoin-cli -datadir=/root/.bitcoin getblockchaininfo
```
### Logs
```bash
sudo docker logs -f bitcoin-signet-instance
```
## Informations Importantes
- **Ports** : RPC (38332), P2P (38333), ZMQ (28332-28334)
- **Configuration** : Fichier `.env` à la racine du projet
- **Données** : Stockées dans `/root/.bitcoin/` dans le conteneur
- **Clés** : Générées automatiquement, stockées dans `.env` et `/root/.bitcoin/PRIVKEY.txt`
Pour plus de détails, consultez [MAINTENANCE.md](./MAINTENANCE.md).