**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.
108 lines
3.7 KiB
Markdown
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).
|