Salut à tous dans le thread Propositions concernant les blocages / ralentissements des transactions lors de gros évènements, il avait été discuté de mettre en place un noeud duniter avec un SANDBOX_SIZE_TRANSACTION plus élevé afin d’améliorer les performances le jour de gros évènements.
Suite à pas mal de tests ces derniers mois, j’ai pu mettre à jour que le problème n’est pas que nécessairement lié aux performances, mais aussi à un mécanisme d’anti-spam de duniter qui si un nombre « important » de requêtes lui arrive se met à répondre moins bien voire à ne pas répondre (ce que nous interprétions comme un problème de performances réseau ou système sans trop savoir ce qui se passait réellement).
J’ai travaillé sur Toulouse à avancer sur plusieurs points:
- Préparer un noeud duniter avec une SANDBOX_TRANSACTION_SIZE=10000 au lieu de 200
- Faire une interconnexion VPN (openvpn) entre le lieu de l’évènement et mon noeud pour que chaque client soit identifié par une adresse ip unique.
- J’avais également travaillé à un projet de Gbillets qui a été pas mal utilisé lors de l’évènement et qui grace au succès qu’il à rencontré à clairement mis en lumière le mécanisme d’antispam (j’y reviendrai).
- Enfin cerise sur le gâteau, j’ai pu croiser Elois et nous avons pu tester en live des changements de paramètre de mon noeud pour affiner les choses.
Comment ça s’est passé:
Globalement, on a pas eu de gros problème de transactions avec Cesium, il semble que la plupart des gens ont pu utiliser leur terminal sans trop de difficulté (par exemple j’ai pas eu vent de transactions échouées qu’il a fallu recommencer à plusieurs reprises).
Le système de Gbillets qui a été utilisé (depuis une machine unique qui faisait l’impression) a rapidement été « blacklisté » par mon noeud duniter (J’observe que ce mécanisme de blacklistage est plus lié à la consultation de la balance répétée de plusieurs comptes différents, qu’à l’envoi de transaction - c’est un sujet qu’il faudra peut-être confirmer et creuser).
Avec le concours d’Elois nous avons pu tester un autre paramètre intéressant: le paramètre whitelist, nous avons pu donc voir qu’il est possible de désactiver ce mécanisme d’antispam pour des « adresses ip de confiance ». Ce paramètre à instantanément réglé le problème de mon distributeur de Gbillets.
Pour la partie duniter je pense qu’on a une « recette » qui semble marcher pas trop mal à condition de fournir aux personnes un noeud à utiliser pour l’évènement afin de garder un minimum de contrôle.
Les seuls soucis restant sont essentiellement des soucis liés à l’interrogation des noeuds data depuis cesium qui ralentissent pas mal lors de la recherche par nom dans l’annuaire, j’ai également observé quelques bugs que je qualifierait de bug de cache sur cesium, qui font clairement paniquer les utilisateurs mais qui finalement n’entravent pas le bon déroulement des transactions.
En conclusion pour les gros évènements (à confirmer pour les prochains):
1- L’augmentation du SANDBOX_TRANSACTION_SIZE permet de fluidifier les transactions est plutôt une bonne idée
2 - Sans aller jusqu’à monter un vpn comme je l’ai fait, identifier l’ip publique du site sur lequel le wifi et fourni et la rajouter en whitelist sur le noeud duniter
En tout cas pour ma part je suis assez satisfait d’avoir pu avancer sur ce sujet et merci Elois pour ton concours sur place qui m’a permis de comprendre un peu mieux ce qu’il se passait.
++