Mise à l’échelle efficace de Walrus Aggregator avec Caddy et Cloudflare

Si vous exécutez un Walrus Aggregator pour gérer des requêtes intensives de téléchargement de blobs, la latence et l’évolutivité sont essentielles. Ce guide vous montre comment configurer votre environnement avec Docker, Caddy et Cloudflare pour réduire la latence jusqu’à 10 fois, sans frais additionnels.
Ce tutoriel s’adresse aux utilisateurs ayant des connaissances techniques sur Linux, Docker et les serveurs web.
Pourquoi cette configuration ?
La configuration par défaut de l’Aggregator fonctionne, mais elle n’est pas optimisée pour un volume élevé de téléchargements. Avec quelques ajustements :
- Nous contenons l’Aggregator pour faciliter les mises à jour et renforcer la sécurité.
- Nous utilisons Caddy comme reverse proxy pour gérer les certificats SSL.
- Nous tirons parti de la couche de cache gratuite de Cloudflare pour améliorer considérablement les performances lors des requêtes répétées.
1. Exécution de l’Aggregator avec Docker
Pour des raisons de déploiement, de sécurité et de maintenance, nous recommandons d’exécuter Walrus Aggregator dans un conteneur Docker.
Utiliser Docker permet de :
- Isoler le service du système hôte.
- Éviter d’exposer directement l’Aggregator à Internet.
- Mettre à jour facilement la version sans longs temps d’arrêt.
Voici un exemple fonctionnel de docker-compose.yaml pour le réseau testnet. Notez que le port de l’Aggregator est uniquement exposé en local (localhost), ce qui empêche tout accès direct depuis l’extérieur, Caddy étant l’unique intermédiaire.
services:
walrus-aggregator:
image: mysten/walrus-service:testnet-v1.22.1
container_name: walrus-aggregator
restart: always
environment:
- RUST_BACKTRACE=1
- RUST_LOG=info
ports:
- "127.0.0.1:9000:9000"
- "127.0.0.1:27182:27182"
volumes:
- ./config:/opt/walrus/config
docker-compose.yaml
system_object: 0x6c2547cbbc38025cf3adac45f63cb0a8d12ecf777cdc75a4971612bf97fdf6af
staking_object: 0xbe46180321c30aab2f8b3501e24048377287fa708018a5b7c2792b35fe339ee3
config/client_config.yaml
Tu peux trouver les dernières versions de l’image Docker ici.
2. Configuration de Caddy comme Reverse Proxy
Caddy est un serveur web moderne et convivial avec prise en charge native du HTTPS. C’est une excellente alternative à Nginx si vous recherchez la simplicité. Tout comme l’Agrégateur, nous recommandons d’exécuter Caddy dans Docker pour maintenir une configuration homogène.
Voici comment l’exécuter avec Docker et une configuration de base via un fichier Caddyfile.
Docker Compose
caddy:
image: caddy:v2.10.0
restart: always
container_name: caddy
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile
- ./caddy/site:/srv
- ./caddy/caddy_data:/data
- ./caddy/caddy_config:/config
- ./caddy/cache:/data/cache
network_mode: host
docker-compose.yaml
Caddyfile
walrus-testnet-aggregator.stakely.io { reverse_proxy 127.0.0.1:9000 header { Access-Control-Allow-Origin * Access-Control-Allow-Headers * } @cors_preflight method OPTIONS respond @cors_preflight 204 }
caddy/Caddyfile
Caddy émettra automatiquement des certificats SSL via Let’s Encrypt. De plus, certains en-têtes CORS sont ajoutés, ce qui est utile pour utiliser l’Agrégateur Walrus dans des applications frontend.
Veuillez noter que Caddy fonctionne en utilisant le réseau de l’hôte, vous devrez donc ouvrir manuellement les ports 80 et 443 dans votre firewall :
sudo ufw allow 80
sudo ufw allow 443
3. Optimisation avec Cloudflare
Une fois votre Aggregator configuré avec Caddy et lié à un domaine public, vous pouvez activer le cache de Cloudflare pour servir les blobs plus rapidement. Pour cela, assurez-vous que l’option proxy (le petit nuage) est activée dans la section DNS de votre domaine.
Configuration du cache
Dans le panneau Cloudflare, accédez à Caching > Cache Rules → New Rule.
Définissez une règle incluant la configuration montrée dans la capture suivante :


Cette fonctionnalité de Cloudflare est disponible gratuitement pour tous les utilisateurs.
Optionnel : activer le Tiered Cache
Vous pouvez aussi activer la fonctionnalité gratuite Tiered Cache dans le panneau Cloudflare pour améliorer encore plus les performances globales.
Impact sur les performances
Une fois configuré :
- Le premier téléchargement d’un blob dans une région sera toujours servi par votre serveur.
- Les requêtes suivantes seront servies depuis le cache Cloudflare jusqu’à expiration, avec une latence jusqu’à 10 fois inférieure.
Avec cette architecture combinée — Aggregator sécurisé et contenu dans Docker, reverse proxy léger et automatique avec Caddy, et cache global gratuit de Cloudflare — vous pouvez faire évoluer les téléchargements de blobs sans augmenter vos coûts ni compromettre la latence.
Des questions ou envie de nous faire part de votre cas ? Écrivez-nous sur notre canal Telegram.