10 KiB
Guide de la Communauté - sdk_client
🌟 Bienvenue dans la Communauté sdk_client !
Ce guide vous accompagne dans votre participation à la communauté open source de sdk_client, une infrastructure complète pour les paiements silencieux Bitcoin.
🎯 À Propos de sdk_client
Qu'est-ce que sdk_client ?
sdk_client est une infrastructure Docker complète qui permet de déployer et gérer facilement un écosystème Bitcoin complet incluant :
- Bitcoin Core : Nœud Bitcoin avec support signet
- Blindbit : Service de filtres pour les paiements silencieux
- SDK Relay : Système de relais avec synchronisation mesh
- Tor : Proxy anonyme pour la confidentialité
Pourquoi les Paiements Silencieux ?
Les paiements silencieux (Silent Payments) sont une innovation Bitcoin qui améliore la confidentialité en permettant de créer des adresses uniques pour chaque transaction, sans révéler de liens entre les paiements.
🤝 Comment Contribuer
Niveaux de Contribution
🟢 Débutant
- Documentation : Améliorer les guides, corriger les fautes
- Tests : Ajouter des tests, signaler des bugs
- Support : Aider les autres utilisateurs
- Traduction : Traduire la documentation
🟡 Intermédiaire
- Fonctionnalités : Implémenter de nouvelles fonctionnalités
- Optimisations : Améliorer les performances
- Tests avancés : Tests d'intégration et de performance
- Outils : Créer des scripts et outils
🔴 Avancé
- Architecture : Améliorer l'architecture du système
- Sécurité : Audits de sécurité, améliorations
- Core features : Fonctionnalités principales
- Mentorat : Guider les nouveaux contributeurs
Premiers Pas
1. Fork et Clone
# Fork le repository sur Gitea
# Puis clonez votre fork
git clone https://git.4nkweb.com/votre-username/4NK_node.git
cd 4NK_node
# Ajoutez l'upstream
git remote add upstream https://git.4nkweb.com/4nk/4NK_node.git
2. Installation Locale
# Installez l'infrastructure
./restart_4nk_node.sh
# Vérifiez que tout fonctionne
docker ps
3. Exploration
# Explorez la documentation
ls docs/
cat docs/INDEX.md
# Exécutez les tests
./tests/run_all_tests.sh
📚 Ressources d'Apprentissage
Documentation Essentielle
Pour Commencer
- Guide d'Installation - Installation complète
- Guide d'Utilisation - Utilisation quotidienne
- Guide de Configuration - Configuration avancée
Pour Développer
- Architecture Technique - Architecture détaillée
- API Reference - Documentation des APIs
- Guide de Tests - Tests et validation
Pour Contribuer
- Guide de Contribution - Processus de contribution
- Code de Conduite - Règles de la communauté
- Politique de Sécurité - Signalement de vulnérabilités
Ressources Externes
Bitcoin et Paiements Silencieux
- Bitcoin.org - Documentation Bitcoin officielle
- BIP 352 - Spécification des paiements silencieux
- Bitcoin Core Documentation - Documentation Bitcoin Core
Technologies Utilisées
- Docker Documentation - Guide Docker
- Rust Book - Guide Rust
- WebSocket RFC - Spécification WebSocket
🛠️ Environnement de Développement
Prérequis
Système
# Ubuntu/Debian
sudo apt update
sudo apt install docker.io docker-compose git curl
# CentOS/RHEL
sudo yum install docker docker-compose git curl
# macOS
brew install docker docker-compose git curl
Développement
# Rust (pour sdk_relay)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Python (pour les tests)
sudo apt install python3 python3-pip
pip3 install websockets requests
Configuration de Développement
Variables d'Environnement
# Configuration de développement
export RUST_LOG=debug
export ENABLE_SYNC_TEST=1
export BITCOIN_NETWORK=signet
Outils de Développement
# Linting et formatting
cargo clippy
cargo fmt
# Tests
cargo test
./tests/run_all_tests.sh
# Build
cargo build --release
🐛 Signaler un Bug
Avant de Signaler
- Vérifiez la documentation - La solution pourrait déjà être documentée
- Recherchez les issues existantes - Le bug pourrait déjà être signalé
- Testez sur la dernière version - Le bug pourrait déjà être corrigé
Template de Bug Report
Utilisez le template fourni dans Gitea ou suivez cette structure :
## Description du Bug
Description claire et concise du problème.
## Étapes pour Reproduire
1. Aller à '...'
2. Cliquer sur '...'
3. Faire défiler jusqu'à '...'
4. Voir l'erreur
## Comportement Attendu
Description de ce qui devrait se passer.
## Comportement Actuel
Description de ce qui se passe actuellement.
## Informations Système
- OS: [ex: Ubuntu 20.04]
- Docker: [ex: 20.10.0]
- Version: [ex: v1.0.0]
## Logs
Logs pertinents ici
💡 Proposer une Fonctionnalité
Avant de Proposer
- Vérifiez la roadmap - La fonctionnalité pourrait déjà être planifiée
- Discutez avec la communauté - Utilisez les discussions Gitea
- Préparez un prototype - Montrez que c'est faisable
Template de Feature Request
## Résumé
Description claire et concise de la fonctionnalité souhaitée.
## Motivation
Pourquoi cette fonctionnalité est-elle nécessaire ?
## Proposition
Description détaillée de la fonctionnalité proposée.
## Alternatives Considérées
Autres solutions envisagées.
## Exemples d'Utilisation
Comment cette fonctionnalité serait-elle utilisée ?
🔄 Processus de Contribution
Workflow Git
1. Créer une Branche
# Depuis la branche main
git checkout main
git pull upstream main
# Créer une branche pour votre contribution
git checkout -b feature/nom-de-votre-feature
# ou
git checkout -b fix/nom-du-bug
2. Développer
# Développez votre fonctionnalité
# Ajoutez des tests
# Mettez à jour la documentation
# Commitez régulièrement
git add .
git commit -m "feat: ajouter nouvelle fonctionnalité"
3. Tester
# Exécutez les tests
./tests/run_all_tests.sh
# Vérifiez le code
cargo clippy
cargo fmt --check
4. Soumettre
# Poussez vers votre fork
git push origin feature/nom-de-votre-feature
# Créez une Pull Request sur Gitea
Standards de Code
Messages de Commit
Utilisez le format conventionnel :
feat(sdk_relay): add new sync type for metrics
fix(bitcoin): resolve connection timeout issue
docs(api): update WebSocket message format
test(integration): add multi-relay sync tests
Code Style
- Rust : Suivez les conventions Rust (rustfmt, clippy)
- Bash : Utilisez shellcheck pour les scripts
- Python : Suivez PEP 8
- Markdown : Utilisez un linter markdown
🏷️ Labels et Milestones
Labels Utilisés
Type
bug
- Problèmes et bugsenhancement
- Nouvelles fonctionnalitésdocumentation
- Amélioration de la documentationgood first issue
- Pour les nouveaux contributeurshelp wanted
- Besoin d'aide
Priorité
priority: high
- Priorité élevéepriority: medium
- Priorité moyennepriority: low
- Priorité basse
Statut
status: blocked
- Bloquéstatus: in progress
- En coursstatus: ready for review
- Prêt pour review
Milestones
- v1.0.0 - Version stable initiale
- v1.1.0 - Améliorations et corrections
- v2.0.0 - Nouvelles fonctionnalités majeures
🎉 Reconnaissance
Hall of Fame
Les contributeurs significatifs seront reconnus dans :
- README.md - Liste des contributeurs
- CHANGELOG.md - Mentions dans les releases
- Documentation - Crédits dans les guides
- Site web - Page dédiée aux contributeurs
Badges et Certifications
- Contributeur Bronze : 1-5 contributions
- Contributeur Argent : 6-20 contributions
- Contributeur Or : 21+ contributions
- Maintainer : Responsabilités de maintenance
🆘 Besoin d'Aide ?
Canaux de Support
Issues Gitea
- Bugs : Issues
- Fonctionnalités : Feature Requests
Discussions
- Questions générales : Discussions
- Aide technique : Support
Contact Direct
- Email : support@4nkweb.com
- Sécurité : security@4nkweb.com
FAQ
Questions Fréquentes
Q: Comment installer sdk_client ? A: Suivez le Guide d'Installation
Q: Comment contribuer au code ? A: Consultez le Guide de Contribution
Q: Comment signaler un bug de sécurité ? A: Contactez security@4nkweb.com (NE PAS créer d'issue publique)
Q: Comment proposer une nouvelle fonctionnalité ?
A: Créez une issue avec le label enhancement
🚀 Projets Futurs
Roadmap Communautaire
Court Terme (1-3 mois)
- Interface utilisateur web
- Support de nouveaux réseaux Bitcoin
- Amélioration de la documentation
- Tests de performance
Moyen Terme (3-6 mois)
- Support Lightning Network
- API REST complète
- Monitoring avancé
- Déploiement cloud
Long Terme (6-12 mois)
- Écosystème complet
- Marketplace d'extensions
- Support multi-blockchains
- IA et automatisation
Idées de Contribution
Fonctionnalités Populaires
- Interface graphique pour la gestion
- Intégration avec des wallets populaires
- Support de nouveaux types de paiements
- Outils de monitoring avancés
Améliorations Techniques
- Optimisation des performances
- Amélioration de la sécurité
- Support de nouvelles plateformes
- Tests automatisés avancés
Merci de faire partie de la communauté sdk_client ! Votre contribution aide à construire l'avenir des paiements Bitcoin privés et sécurisés. 🌟