Stratégie de migration ISO

Je ne savais pas dans quelle catégorie ranger ce post, vous pouvez le déplacer si vous voulez.

J’aimerais mettre sur le tapis un sujet qui m’irrite profondément. Mon but n’est pas d’envenimer des tensions actuelles, mais d’exprimer ce qui me dérange profondément au lieu de le garder et que ça continue de salir mes propos.

Je me permets de retransmettre ici quelques passages isolés d’une conversation que nous avons eue avec @kimamila ces derniers jours.
Je ne touche bien sûr pas à ce qui doit rester dans la sphère privée, uniquement à ce qui me semble nécessaire pour alimenter cette discussion.

J’aimerais qu’on s’arrête 5 minutes sur ce bout d’échange.
Tout d’abord j’aimerais éclaircir un point.
Je suis admiratif du travail que @kimamila a fait pour le lancement de la G1. Je l’ai déjà dit mais j’ai vraiment envie de le redire : l’adoption de ce réseau n’aurait probablement pas été la même s’il n’y avait pas eu un outil aussi user friendly que Cesium pour onboarder les gens, avec un rendu moderne (pour l’époque du moins), responsive, web/android/ios, avec des données offchain pour les profils utilisateurs. Ça a été un travail titanesque, surtout quand on met en perspective les limitations de l’API BMA de Duniter v1, le travail sur les pods Cs, tout un écosystème backend, et je ne compte pas gchange qui était initialement intégré à Cesium et qui a été sorti pour devenir indépendant suite aux débats de l’époque.

On s’en rend d’autant plus compte quand on travaille soi-même sur un client de même gabarit : réussir à rejoindre le niveau fonctionnel de l’écosystème Cesium est vraiment long et semé d’embûches.


Pour la suite, je pense qu’il faut persister dans notre volonté de modularité dans les services offchain, et persévérer dans notre veille sur les solutions existantes pouvant coller à notre besoin tout en reposant sur des communautés actives.
Un monde existe en dehors du nôtre, et je pense que ce serait une erreur de vouloir tout refaire nous-mêmes de nouveau au vu du peu de ressources et de temps que nous réussissons à débloquer.

Ainsi, j’aimerais qu’on soit au clair sur ce que nous appelons migration “ISO”.
Selon moi, il y a des fonctionnalités non essentielles et très peu (voire pas du tout) utilisées qui ne sont pas du tout essentielles pour la migration.
Pire encore, je pense qu’il est contre-productif de livrer encore aujourd’hui de nouvelles fonctionnalités à Cesium v1 (les notifications) et de demander derrière une migration ISO comprenant ces nouvelles fonctionnalités.

Plutôt que de lister ce qui me semble essentiel, je vais plutôt lister ce qui ne me semble pas essentiel :

  • Le système de notifications : utile mais bugué, les notifs ne passent jamais en “lu”, et c’est une fonctionnalité qui pourra aisément être ajoutée un peu après la migration. Je pense que les gens pourront s’en passer quelques temps sans trop de problèmes.
  • La messagerie Cesium : pareil, je pense que plus personne ne s’en sert (hormis des spammeurs une fois tous les 2 ou 3 ans), qu’elle manque actuellement cruellement d’intégration UX pour être pratique à utiliser, et surtout que ça n’a rien à faire dans des datapods. Il vaudrait mieux s’emparer/hacker des solutions existantes, standalone, capables d’être utilisées avec nos clés G1, et éventuellement ensuite intégrées aux clients si l’envie en est, mais ce n’est pas nécessaire. En tout cas, en second temps.
  • Les invitations : je pense que les gens pourront s’en passer quelques temps sans trop de problème. D’autant que ça pose justement parfois problème socialement, donc cela nécessite d’être discuté/revu.
  • Notifications email : devront être repensées pour être correctement intégrées dans un système de push notifs robuste, tout en restant décentralisé (le système de services de Cesium allait dans ce sens), avec des solutions que j’ai listées plus haut dans ma citation. Non essentiel.

Je pense que passer du temps à reproduire ça pour la migration v2 est une perte de temps. Là, les devs de Cesium devraient se focus sur la stabilisation des fonctionnalités essentielles : comme la gestion complète des comptes membres, l’intégration des requêtes squid manquantes (historiques des DUs, etc.).

Continuer de laisser les devs de Cesium faire ce que bon leur semble, en conscience, c’est aller à l’encontre des intérêts des utilisateurs pour la bonne tenue de la migration v2.
Et ça rajoute une pression inutile au reste des devs de l’écosystème technique, en élargissant constamment la notion de “ISO”.

Et surtout, cela fait des années que certains choix d’architectures ayant été faits côté pods Cs sont remis en question et pour lesquels d’autres voies plus collectives et robustes ont été explorées, mais qui ne sont pas terminées. Vouloir imposer ce mode ISO, c’est précipiter les choses pour refaire les mêmes erreurs qu’en v1, refermer les portes vers d’autres voies plus robustes mais qui prennent plus de temps à se mettre en place.

4 Likes

C’est clair que si on veut sortir la V2 un jour, étant donné les maigres ressources dont on dispose, il va falloir faire des choix ou abandonner la migration et acter la mort de la Ğ1.

Pour l’instant je manque de vision sur ce que j’estime manquer à Cesium pour migrer sereinement en mode MVP, mais je vais me remettre dans le sujet. S’il y a déjà un tel inventaire, je suis preneur.

1 Like

Il y a des issues Cesium.
J’ai une issue attribuée concernant l’historique des DU pour le compte. C’est suite à ça que je m’étais donc remis sur Squid pour ajouter un computed field qui fusionne l’historique des tx et l’historique des DU, pour simplifier la pagination.
Suite à quoi j’ai dégagé Hasura, qui posait problème, pour le remplacer par PostGraphile, et je me suis arrêté là, donc il faut que je me motive à reprendre ce sujet pour boucler la nouvelle version de Squid et traiter cette issue de Cesium.

Sinon je ne sais pas pour le reste, Kimamila doit savoir s’il y a des choses sur le feu côté Cesium, sinon je pense qu’il faut faire le tour de l’app et évaluer ce qui manque d’essentiel.


Sinon il me faut des retours sur mes datapods, est-ce qu’on part là dessus, est-ce que pas. Pour savoir qu’est-ce qu’on intègre dans apps. https://v2s-datapod.p2p.legal (qu’il faudrait juste passer sur graphile au lieu de Hasura du coup. Mais déjà savoir est-ce que tout le monde veut partir sur ça ou pas, je ne vais pas avancer sur cette voie sans retours).

1 Like

Je n’y connais pas grand chose sur la technique.

Mes sentiments :

  • virer la messagerie de césium c’est chaud… des gens n’utilisent que ça et c’est la seule messagerie commune des junistes avec gchange. Sinon ça va être whatsapp et d’autres vomitifs du style, plus signal quicksy deltachat élément jami tox briar etc,

    Y-a-t-il une solution type briar semi-amnésique, un ipfs spécial etc…?

  • je suis pour au niveau perso le grand saut, mais j’ai des doutes au niveau personnes âgées : on pourrait pas tester ?

  • gecko est très différent de césium, les tutos c’est top. Parfois j’ai tatonné et cherché des trucs

  • la modularité je suis pour même en mécanique ,o)

Dans l’optique de ne pas réinventer la roue, pour les profils, je vais utiliser ce qui existe dans tous les clients émail et dans tous les ordiphones : le carnet d’adresses. C’est le standard mondial le plus complet pour les profils.

Le format utilisé est le format vcard. Il est désuet mais répandu et documenté.

Il existe un format jCard, pas parfait mais plus facile à parser.

Avantages :

  • Si le profil existe dans un carnet d’adresses vcard, il suffit de l’importer et de l’attacher à une identité ou un compte.
  • Ce sont les serveurs vCard en ligne qui propagent le profil, pas nous.
  • Les clients des carnets d’adresses sont nombreux et pratiques pour l’édition des profils.
  • Les utilisateurs peuvent facilement échanger les profils, comme ils font d’habitude.

Inconvénients :

  • Pas d’édition de profils dans nos clients sans réinventer un client vCard.

Pour les commentaires, une solution centralisée pour commencer me paraît suffisante. En attendant de finaliser une proposition ipfs comme celle proposée.

Pour une messagerie, aucun intérêt pour moi de l’intégrer dans un client. Mieux vaut avoir un client dédié, basé ce qui existe déjà, avec le support de nos clefs ajouté.

1 Like

Pourquoi tout le monde parle de client de messagerie existant sur lequel on pourrait brancher nos clés ? Ça voudrait dire :

  • trouver un système de messagerie ed25519 satisfaisant (modulaire, simple, user-friendly, multiplateformes, décentralisé, sécurisé)
  • le modifier pour permettre l’authentification par mnemonic à la mode Substrate
  • intégrer la TdC, les comptes Duniter et le SS58 dans son interface
  • packager cette version modifiée pour desktop+android+ios

Des volontaires ?

Je n’ai pas trouvé de messagerie existante correspondant parfaitement à nos besoins. Donc si on bricole un tel truc maintenant ça risque d’être du jetable. J’avais commencé à travailler sur un protocole adapté pour du long terme mais le point bloquant était les datapods. Aujourd’hui on est plus pressés.

Pourquoi ne pas juste utiliser Cesium+ pour que ça marche, et ensuite seulement on pourra lancer nos datapods interplanétaires avec une messagerie du turfu ? Il me semble que @kimamila avait dit que Cesium+ pouvait être adapté avec un minimum de modifications (l’indexation des DU). Il n’y a qu’à utiliser l’API dans les clients v2.

1 Like

Oui, d’où mon propos de ne pas se précipiter sur des solutions home made. Prenons le temps de déployer quelque chose de mature le moment venu, après la migration.

Parce que, de ce que je sais, les pods Cesium+ sont entièrement intriqués avec l’indexation de la blockchain g1v1. En l’état, maintenir des nœuds Cs+, c’est embarquer l’indexation g1v1 avec.
Après, on peut rester sur l’unique nœud de Benoit actuellement utilisé et oublier l’aspect décentralisé de cette stack le temps de trouver mieux le moment venu.
La question est : est-ce que l’effort nécessaire pour isoler la partie stockage de données de ces pods vaut la mise en place d’une stack centralisée plus légère et plus simple à maintenir ?


Mais à la réflexion, si @kimamila confirme la faisabilité, l’approche la plus pragmatique serait se rester sur l’unique pod Cs+ actuellement en prod pour la migration, à la condition peut être de mettre en place en système de haute disponibilité. Ceci étant possible étant donnée que ES est une stack master/slave.
Mais sans la partie fédération de pods qui n’a jamais vraiment bien fonctionné et à toujours posé problème côté expérience utilisateur.
Ou alors on reste sur cet unique endpoint le temps nécessaire en espérant qu’il soit bien chouchouté avec @kimamila ?
L’indexation g1v1 ne posera pas de problème après migration sachant que la g1v1 sera totalement coupé ?
Un avis là dessus ?

Perso la messagerie dans césium, je ne trouve pas ça pratique !
Il y a la même messagerie dans Gchange, pour ceux qui y tiennent vraiment.

Je suis partant pour une V2 sans messagerie, on pourra voir ça après le démarrage.
Pour communiquer il y a toujours le forum et les Mails, les gens peuvent s’échanger leur numéro de téléphone…

1 Like

Le point clef, dans mon message initial cité par @poka, n’était pas vraiment la messagerie. Je voulais avant tout expliquer que la solution technique des dapapods doit être suffisamment souple pour que les développeurs puissent y intégrer d’autres données, et pas seulement les profils. Toutes données hors chain dont on peut avoir besoin.

Les notifications me semblent, par exemple, plus importantes. A ce stade, je ne sais pas s’il manquera des évènements ou non dans squid, ou s’il faudra en indexer d’autres…

De même il faudra à mon avis quelque chose pour permettre à l’utilisateur d’avoir des rappels de certifications (promises mais non encore envoyées). A cause de cette fonctionnalité v1 des piscines, qui a été perdue dans le passage de la v2. Par exemple, via une notification, lui indiquer qu’il peut à nouveau faire une certification à telle personne à qui il l’a promise. Le but étant de remplacer les piscines v1 par un notion de piscine locale, ou via une connexion à l’agenda (concept existant sur une smartphone, mais pas toujours en desktop). La question se pose en tous cas.

Je ne peux pas prévoir à l’avance tous les cas de figure qui seront à traiter dans le client Cesium, dont le but est de simplifier au maximum la vie des usagers. C’est pourquoi il me semble préférable d’avoir une stack souple, extensible avec un nouveau type de donnée ou des traitements qui indexe des nouvelles choses depuis la block chain.

Je ne prétends pas savoir quelle est la bonne solution. Je rappelle juste qu’à l’époque j’avais choisi ES (suite à une discussion avec @vit et @inso) pour sa souplesse (notamment en matière de stockage JSON) et sa capacité à monter en charge.

1 Like

De toute manière, si vous voulez on peut migrer la G1 sans être ISO. En général c’est un choix que l’on fait pour un cas de force majeure. Mais pourquoi pas, si vous y trouvez votre intérêt.
Je pense que la plupart des utilisateurs pourraient entendre cela, dès lors que les fonctionnalités de primaires fonctionnent (création de compte, paiement, certification).

Par exemple, dans Cesium, il s’agirait d’un fonctionnement en “mode dégradé”, indiquant que toutes les fonctionnalités précédentes seront migrées au fur et à mesure, au cours des prochains mois.

Voila qui va détendre plus d’une personne préssées, non ? :slight_smile: Personnellement je ne suis pas (ou plus) pressé du tout, mais qu’importe. J’ai assez de stress ailleurs dans ma vie. Je continue mon chemin avec les priorités qui sont les miennes.

Go Go Go ! :slight_smile:

3 Likes

Oui enfin ça va faire 5 ans, on a pas tout à fait la même notion de “préssé” ^^


@kimamila est-ce que ça te semble pertinent de garder le (seul et unique) pod cs actuellement en prod pour la migration le temps de répondre ça plus tard tranquillement ?
Le pod actuelle peur être stable et maintenu encore un moment ? Même sans réseau v1 fonctionnel ?

@aya tu sais si ce serait jouable de garantir de la haute dispo sur ce pod sachant l’architecture master/slave de ES ? Sans problème de synchro inhérents à la fédération des pods actuels ?

1 Like

Yes aucun pb pour garantir la haute dispo d’un elasticsearch. Je peux me rapprocher de @kimamila pour traiter ce point avec lui.

1 Like

5 ans que le dev sur le coeur de Duniter V2 a commencé, oui. Mais depuis combien de temps est-il prêt vraiment ? Un an ? 2 mois ?
Et combien de temps ont mis les dev sur Duniter v1 déjà ?

Je ne sais pas si c’est pertinent, mais je peux regarder. Le code est propre, donc désactiver des fonctions ne devraient pas être trop compliqué. Les pod sont construits en services, divisés en 3 plugins. Rien de bien sorcier pour un dev Java.

Je le sais bien :slight_smile:
Le uptime est déjà de 100%. c‘est un serveur administré chez nous, surveillé de près :

3 Likes

Pour n’en citer qu’un : il est beaucoup plus motivant et rassurant de développer de petites choses successives et de les distiller aux utilisateurs que de promettre un grand soir, qui est même, à l’inverse, plutôt démotivant et stressant.

Une fois la V2 déployée avec les fonctions primaires, le reste va suivre et donner une dynamique beaucoup plus enthousiasmante aussi bien pour les développeurs que les utilisateurs qui voient plutôt la Ğ1 comme délaissée actuellement.

Je pense que nous pouvons demander aux utilisateur leur contribution à cette migration V2 : leur indulgence et leur patience.

Tant mieux si tu es d’accord avec tout cela, la route est manifestement libre :slight_smile:

6 Likes

@cgeek c’est 100% ce que je pense et répète souvent, merci de souligner ces points, c’est fondamental pour moi. On semble bien d’accord, merci !

2 Likes

Cc c’est qui le sujet “nous” stp?:folded_hands:

Et accessoirement : Quand et comment ? :folded_hands:

Le pourquoi, où, quoi, combien c’est clair pour moi.

C’était une remarque générale, je ne sais pas du tout quand ni qui, quand et comment pour l’instant. Quand j’aurais plus de visibilité je préviendrai :slight_smile:

2 Likes