- Création lib/platformCommissions.ts : configuration centralisée des commissions - Articles : 800 sats (700 auteur, 100 plateforme) - Avis : 70 sats (49 lecteur, 21 plateforme) - Sponsoring : 0.046 BTC (0.042 auteur, 0.004 plateforme) - Validation des montants à chaque étape : - Publication : vérification du montant avant publication - Paiement : vérification du montant avant acceptation - Erreurs explicites si montant incorrect - Tracking des commissions sur Nostr : - Tags author_amount et platform_commission dans événements - Interface ContentDeliveryTracking étendue - Traçabilité complète pour audit - Logs structurés avec informations de commission - Documentation complète du système Les commissions sont maintenant systématiques, validées et traçables.
120 lines
3.5 KiB
Markdown
120 lines
3.5 KiB
Markdown
# Système de commissions - Implémentation
|
|
|
|
**Date** : Décembre 2024
|
|
**Auteur** : Équipe 4NK
|
|
|
|
## Objectif
|
|
|
|
Implémenter un système de commissions systématique et incontournable pour garantir que la plateforme reçoit toujours sa commission sur tous les paiements.
|
|
|
|
## Commissions configurées
|
|
|
|
### Articles
|
|
- **Total** : 800 sats
|
|
- **Auteur** : 700 sats
|
|
- **Plateforme** : 100 sats
|
|
|
|
### Avis (rémunération)
|
|
- **Total** : 70 sats
|
|
- **Lecteur** : 49 sats
|
|
- **Plateforme** : 21 sats
|
|
|
|
### Sponsoring
|
|
- **Total** : 0.046 BTC (4,600,000 sats)
|
|
- **Auteur** : 0.042 BTC (4,200,000 sats)
|
|
- **Plateforme** : 0.004 BTC (400,000 sats)
|
|
|
|
## Implémentation
|
|
|
|
### 1. Configuration centralisée
|
|
|
|
**Fichier** : `lib/platformCommissions.ts`
|
|
|
|
- Définit toutes les commissions de manière centralisée
|
|
- Fonctions de calcul et vérification des splits
|
|
- Validation des montants
|
|
|
|
### 2. Validation des montants
|
|
|
|
**Fichiers modifiés** :
|
|
- `lib/articleInvoice.ts` : Vérifie que le montant est 800 sats lors de la création
|
|
- `lib/articlePublisher.ts` : Vérifie le montant avant publication
|
|
- `lib/payment.ts` : Vérifie le montant avant paiement
|
|
|
|
**Garanties** :
|
|
- Impossible de publier un article avec un montant incorrect
|
|
- Impossible de payer un article avec un montant incorrect
|
|
- Erreurs explicites si le montant ne correspond pas
|
|
|
|
### 3. Tracking des commissions
|
|
|
|
**Fichier** : `lib/platformTracking.ts`
|
|
|
|
- Enregistre les commissions dans les événements de tracking
|
|
- Tags `author_amount` et `platform_commission` dans les événements Nostr
|
|
- Permet à la plateforme de vérifier toutes les commissions
|
|
|
|
### 4. Logs et traçabilité
|
|
|
|
**Fichier** : `lib/paymentPolling.ts`
|
|
|
|
- Logs détaillés avec montants de commission
|
|
- Vérification que le split est correct
|
|
- Alertes si le montant ne correspond pas
|
|
|
|
## Garanties d'incontournabilité
|
|
|
|
### 1. Validation à la publication
|
|
- L'auteur ne peut pas publier avec un montant incorrect
|
|
- Le système rejette automatiquement les montants invalides
|
|
|
|
### 2. Validation au paiement
|
|
- Le lecteur ne peut pas payer un montant incorrect
|
|
- Le système vérifie le montant avant d'accepter le paiement
|
|
|
|
### 3. Tracking systématique
|
|
- Tous les paiements sont enregistrés avec les commissions
|
|
- La plateforme peut vérifier tous les paiements via Nostr
|
|
|
|
### 4. Logs structurés
|
|
- Tous les paiements génèrent des logs avec les commissions
|
|
- Facilite l'audit et la vérification
|
|
|
|
## Limitations actuelles
|
|
|
|
### Split automatique Lightning
|
|
|
|
**Problème** : WebLN ne supporte pas BOLT12 avec split automatique.
|
|
|
|
**Solution actuelle** :
|
|
- L'invoice est créée pour le montant total (800 sats)
|
|
- La plateforme reçoit le montant total
|
|
- La plateforme doit ensuite transférer la part de l'auteur (700 sats)
|
|
|
|
**Solution future** :
|
|
- Utiliser un nœud Lightning de la plateforme avec split automatique
|
|
- Utiliser un service de split Lightning (LNURL-pay avec split)
|
|
- Implémenter un système de transfert automatique après paiement
|
|
|
|
### Sponsoring
|
|
|
|
**Statut** : À implémenter
|
|
- Le sponsoring utilise Bitcoin mainnet
|
|
- Nécessite un système de split mainnet
|
|
- Plus complexe que Lightning
|
|
|
|
### Avis
|
|
|
|
**Statut** : À implémenter
|
|
- Même problème que les articles (split Lightning)
|
|
- Nécessite le même système de split
|
|
|
|
## Prochaines étapes
|
|
|
|
1. ✅ Système de commissions configuré
|
|
2. ✅ Validation des montants
|
|
3. ✅ Tracking des commissions
|
|
4. ⏳ Implémenter split automatique Lightning (nécessite nœud Lightning)
|
|
5. ⏳ Implémenter split pour sponsoring
|
|
6. ⏳ Implémenter split pour avis
|