Mise à jour de la Pool

(English version below)

Bonjour à tous,

Dans la nuit du 20/08/2021 au 21/08/2021, entre 22h30 UTC+2:00 et 6h00 UTC+2:00 à eu lieu la mise en production (par votre administrateur préféré) de la plus grosse mise à jour de la pool depuis son lancement. Voici les détails de la mise à jour :

Vous pouvez désormais vous connecter au site lafermedumineur.fr grâce au lien de login fourni par votre farmer chia-blockchain. Cette authentification, qui permet de prouver que vous êtes bien en possession d’un launcher_id en particulier, permet plusieurs choses :

  • Paramétrer un Alias sur la pool, afin de donner un surnom à votre launcher_id. Cela vous permettra de le retrouver plus facilement par exemple. C’est aussi cet Alias qui sera affiché dans le tableau des leaders.
  • Vous pouvez dés à présent recevoir des notifications de la part de la pool, comme par exemple si votre farmer est down, ou si la pool trouve un block. Vous pouvez recevoir ces notifications par Discord (Voir les messages épinglés dans les channels #chia et #pool-chia-lfdm). Les notifications sont exclusivement par MP. Nous pensons pouvoir faire en sorte que vous puissiez ajouter le bot sur vos serveurs personnels dans les prochaines semaines. Vous pouvez aussi recevoir des notifications via e-mail. Enfin, vous pourrez aussi recevoir des notifications par SMS d’ici une à 2 semaines, le temps de finaliser les systèmes.
  • Ce premier pas dans le système d’authentification de Chia permettra plus tard, si nécessaire, de changer votre montant minimum de paiement, ainsi que l’adresse de paiement par exemple.

Un tutoriel est disponible ici, ainsi qu’avec le bot discord en tapant “!chia tuto website_login”.

Concernant l’alerte de “farmer hors ligne”, la détection se fait en moins de 7 minutes, et vous êtes alerté maximum 4 minutes après cette détection. Vous recevrez un message toutes les 2 heures temps que votre farmer est hors-ligne.

Nous prenons toutes les suggestions d’améliorations de ce système.

Un bot discord fait son apparition, il suffit de le contacter en MP (voir les messages épinglés dans les channels #chia et #pool-chia-lfdm) en lui envoyant “!chia help” et il vous dira toutes les commandes qu’il est capable d’exécuter. Si vous avez des suggestions de commandes, n’hésitez pas.

Ces systèmes et ces mises à jours représentent 3 semaines de travail intensif, ainsi que plus de 4000 lignes de code supplémentaires.

Comment s’est déroulée la mise à jour ?

Pour les plus curieux d’entre vous, je vais vous détailler comment s’est déroulée cette mise à jour, sans aucune interruption de service de la pool. Car oui, c’est aussi ça la pool LFDM, une équipe de passionnés, soucieuse de tous les farmers, peu importe leurs tailles, soucieuse du uptime de la pool, et de votre rémunération.

Afin que vous compreniez mieux les différentes étapes, je vais vous présenter rapidement l’infrastructure de la pool.

Tous les systèmes de la pool (monitoring, serveurs principaux et secours, serveurs base de données, serveurs outils …) sont hébergés derrière CloudFlare. Non pas pour masquer les IPs des serveurs, mais pour avoir un tiers (avec une certaine stabilité) qui puisse gérer une répartition de charge si nécessaire, entre par exemple un serveur principal et un serveur de secours. Si le serveur principal ne répond plus, en moins de 60 secondes CloudFlare redirige toutes les requêtes vers un serveur de secours.

Nous disposons constamment d’un serveur principal (que nous appellerons serveur 1), qui absorbe 100% des requêtes, et d’un serveur de secours (que nous appellerons serveur 2), en attente.

Voici les différentes étapes qui se sont déroulées pendant la nuit :

  • A 00h00 (UTC+2:00), je lance un troisième serveur avec les dernières mises à jour. Un troisième serveur va permettre de respecter la règle de 1 + 1 durant les mises à jour.
  • Vers 1h00 (UTC+2:00), le serveur 3 à fini la totalité de son setup, et je lance des tests complets dessus afin de valider sa configuration.
  • Au alentours de 2h00 (UTC+2:00), les tests sont terminés, tout est prêt pour la mise à jour. A partir de cette heure la, je commence à rediriger doucement la charge vers le troisième serveur, qui deviendra le nouveau serveur principal, jusqu’à une prochaine grosse mise à jour.
  • A 2h30 (UTC+2:00), la répartition est terminée, le serveur 3 absorbe la totalité des requêtes. Je laisse les 3 serveurs tourner dans cette configuration pendant 1 heure, cela permet plusieurs choses : vérifier qu’il n’y a pas de problème sur le nouveau serveur principal, et cela permet au serveur 1 de finir tous ses processus tranquillement (par exemple, le traitement de vos preuves se fait en décalage par rapport au moment où vous les envoyez, mais j’expliquerai ça un autre jour). Pendant ce temps, je met en production toutes les mises à jour qui concernent les Alias, le nouveau système d’authentification, le bot Discord, je nettoie la base de données de tous les tests qui on pu être fait …
  • A 3h30 (UTC+2:00), je met à jour complétement le serveur 2. Pendant ce temps, il y a le serveur 3 qui est en principal, et le serveur 1 qui est en secours.
  • Sur les coups de 4h00 (UTC+2:00), la mise à jour est fini, je relance les processus sur le serveur 2, et je lui envoi 5% des requêtes pour vérifier que tout est ok (les systèmes présents sur ce serveur sont identiques au serveur 3). Je laisse tourner 15-20 minutes et je bois une RedBull. Pendant ce temps, nous avons toujours le serveur 1 qui est allumé et prêt, si jamais l’un des autres serveurs venait à lâcher.
  • A 4h30 (UTC+2:00), tous les signaux sont aux verts, j’éteint et je supprime complétement le serveur 1 (merci le cloud). C’était le serveur qui avait reçu la toute première requête de la pool, il n’a jamais été down en 7 semaines.
  • Il est 5h00 (UTC+2:00), les mises à jours sont terminées, tous les systèmes fonctionnent comme ils devraient. Je commence donc la rédaction de cette article.

Voila comment se passe une bonne mise en production. C’est un processus qui parait fastidieux, mais il permet d’être plus tranquille pendant les changements, car il y a toujours au moins 1 serveur prêt à accepter les connexions si jamais un autre venait à flancher. Cela permet pour vous de n’avoir absolument aucune interruption. J’ai effectué cette opération de nuit, car j’ai aussi touchés aux pages pool stats et farmer stats, et malgré tous les tests qu’on peu effectuer en amont, il peut rester des petits bugs. Pour vous éviter d’être embêté par ça, j’effectue donc ce genre de mise à jour au moment où il y a le moins de personne qui pourraient probablement se connecter.

Pour rappel, c’est pour cela que LFDM à fait appel à nous pour monter la Pool Chia. Outre le fait que le courant passe bien, nous sommes une société (ICO-Elements), spécialisé dans la mise à disposition d’application en haute disponibilité. Nous avons les compétences et les moyens de maintenir un service en ligne 24h sur 24, avec le minimum d’interruption. Rajoutez à ça la passion, une bonne communauté, et vous obtenez la meilleure recette pour une Pool Française.

Pleins de nouvelles mises à jours sont prévus, elles arrivent dans les prochaines semaines !

Jonas, administrateur de la Pool de Chia

this version has been translated automatically by deepl.com

Pool update

Hello to all,

During the night of 20/08/2021 to 21/08/2021, between 22:30 UTC+2:00 and 6:00 UTC+2:00 the biggest update of the pool since its launch was put into production (by your favorite administrator). Here are the details of the update:

You can now connect to the lafermedumineur.fr website thanks to the login link provided by your farmer chia-blockchain. This authentication, which allows you to prove that you are in possession of a particular launcher_id, allows several things:

Set up an Alias on the pool, to give a nickname to your launcher_id. This will allow you to find it more easily for example. It is also this Alias that will be displayed in the leaderboard.
You can now receive notifications from the pool, for example if your farmer is down, or if the pool finds a block. You can receive these notifications via Discord (see the messages pinned in the channels #chia and #pool-chia-lfdm). Notifications are exclusively by PM. We expect to be able to have the bot added to your personal servers in the next few weeks. You can also receive notifications via email. Finally, you will also be able to receive notifications via SMS in the next 1-2 weeks while we finalize the systems.
This first step in Chia’s authentication system will allow later, if necessary, to change your minimum payment amount, as well as the payment address for example.

A tutorial is available here, as well as with the bot discord by typing “!chia tuto website_login”.

Concerning the “farmer offline” alert, the detection is done in less than 7 minutes, and you are alerted maximum 4 minutes after this detection. You will receive a message every 2 hours that your farmer is offline.

We take all the suggestions of improvements of this system.

A discord bot has appeared, you just have to contact it in MP (see the messages pinned in the channels #chia and #pool-chia-lfdm) by sending it “!chia help” and it will tell you all the commands it is able to execute. If you have any suggestions for commands, don’t hesitate.

These systems and updates represent 3 weeks of intensive work, as well as over 4000 lines of additional code.

How did the update go ?

For those of you who are curious, I’m going to tell you how this update went, without any interruption of service from the pool. Because yes, that’s what the LFDM pool is all about, a team of passionate people who care about all farmers, no matter how big or small they are, who care about the pool’s uptime, and who care about your payment.

In order for you to better understand the different steps, I will quickly introduce you to the pool’s infrastructure.

All pool systems (monitoring, main and backup servers, database servers, tool servers …) are hosted behind CloudFlare. Not to hide the IPs of the servers, but to have a third party (with a certain stability) that can handle load balancing if necessary, for example between a main server and a backup server. If the main server stops responding, CloudFlare will redirect all requests to a backup server within 60 seconds.

We always have a main server (which we will call server 1), which absorbs 100% of the requests, and a backup server (which we will call server 2), which is on standby.

Here are the different steps that took place during the night:

  • At 00:00 (UTC+2:00), I launch a third server with the latest updates. A third server will allow to respect the 1 + 1 rule during the update.
  • Around 1h00 (UTC+2:00), the server 3 has finished its setup, and I launch complete tests on it to validate its configuration.
  • Around 2h00 (UTC+2:00), the tests are finished, everything is ready for the update. From this time, I start to redirect the load to the third server, which will become the new main server, until the next big update.
  • At 2:30 am (UTC+2:00), the distribution is finished, server 3 absorbs all the requests. I let the 3 servers run in this configuration for 1 hour, this allows several things: check that there is no problem on the new main server, and it allows server 1 to finish all its processes quietly (for example, the processing of your proofs is done in delay compared to the moment you send them, but I will explain that another day). During this time, I put in production all the updates concerning the Alias, the new authentication system, the Discord bot, I clean the database of all the tests that could have been done …
  • At 3:30 am (UTC+2:00), I update completely the server 2. During this time, there is the server 3 which is in main, and the server 1 which is in backup.
  • On the strokes of 4h00 (UTC+2:00), the update is finished, I restart the processes on server 2, and I send him 5% of the requests to check that everything is ok (the systems present on this server are identical to server 3). I let it run for 15-20 minutes and drink a RedBull. During this time, we still have server 1 on and ready, in case one of the other servers fails.
  • At 4:30 am (UTC+2:00), all signals are green, I turn off and completely delete server 1 (thanks to the cloud). It was the server that received the very first request of the pool, it has never been down in 7 weeks.
  • It’s 5:00 am (UTC+2:00), the updates are finished, all systems are working as they should. So I start writing this article.

This is how a good release goes. It is a process that seems tedious, but it allows to be more quiet during the changes, because there is always at least 1 server ready to accept the connections if ever another one was to fail. This allows you to have absolutely no interruption. I did this operation at night, because I also touched the pool stats and farmer stats pages, and despite all the tests that can be done beforehand, there can still be small bugs. To avoid you to be bothered by that, I make this kind of update when there are less people who could probably connect.

As a reminder, this is why LFDM called us to build the Chia Pool. In addition to the fact that the current is good, we are a company (ICO-Elements), specialized in the provision of application in high availability. We have the skills and the means to maintain a 24 hour online service, with minimum interruption. Add to that passion, a good community, and you get the best recipe for a French Pool.

Lots of new updates are planned, they are coming in the next weeks!

Jonas, Chia Pool Administrator