**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.
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 : 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 : 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 : 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 : 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 : 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 : Documentation des fichiers d'environnement
- Variables d'environnement de tous les services
- Fichiers
.envet leur utilisation - Configuration des services systemd
- Ordre de priorité des variables
- Sécurité et bonnes pratiques
-
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 : 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
- Objectif et structure du projet
-
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 : 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
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
sudo docker exec bitcoin-signet-instance bitcoin-cli -datadir=/root/.bitcoin getblockchaininfo
Logs
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
.envet/root/.bitcoin/PRIVKEY.txt
Pour plus de détails, consultez MAINTENANCE.md.