Industrialiser un accès blockchain en service containerisé
Pour la plateforme Share3, passer d'un accès RPC direct, fragile et non maîtrisé, à un service Docker autonome avec cache, protection contre les abus et supervision intégrée.
- Client
- Share3 : produit propre
- Période
- 2024 – aujourd'hui
- Secteur
- Blockchain / Infrastructure
Architecture & industrialisation
3
réseaux servis (mainnet, devnet, testnet)
30 s
intervalle de contrôle de santé
auto
redémarrage et rotation des logs
Le problème de départ
Interroger une blockchain directement depuis une application pose trois problèmes concrets : les endpoints publics sont limités en débit et tombent sans prévenir, les mêmes requêtes sont refaites en boucle inutilement, et aucun garde-fou n'empêche une application boguée de saturer l'accès. Sans couche intermédiaire, chaque application doit réinventer ces protections.
L'approche retenue
Placer un proxy entre les applications et le réseau, puis l'industrialiser : le rendre autonome, supervisé, redémarrable et déployable en une commande, bref, le traiter comme un composant d'infrastructure et non comme un script.
Ce que j'ai mis en place
- Un proxy RPC complet avec cache des requêtes fréquentes pour absorber la charge répétitive
- Une limitation de débit par IP et un support de clés API pour maîtriser les usages
- Le regroupement de requêtes (batch) pour réduire le nombre d'allers-retours réseau
- Une containerisation Docker avec politique de redémarrage automatique
- Un contrôle de santé (healthcheck) toutes les 30 secondes sur un endpoint dédié
- Une rotation des logs bornée (3 fichiers de 10 Mo) pour éviter la saturation disque
- Un réseau Docker isolé et un tableau de bord web de supervision
- Un client JavaScript prêt à l'emploi pour les applications consommatrices
Les résultats
- Un point d'accès unique et stable pour toutes les applications, au lieu d'appels directs dispersés
- Charge réseau réduite grâce au cache et au regroupement de requêtes
- Protection contre la saturation accidentelle par une application défaillante
- Service auto-réparant : détection de panne et redémarrage sans intervention
- Déploiement reproductible en une commande, sur n'importe quel serveur
Stack technique
- Docker
- Docker Compose
- Node.js
- JSON-RPC
- Solana
- Nginx
- Healthchecks