Gcli version 0.6.0-gtest - Support des adresses "g1...", nouvelle commande "vault vanity"

Les changements résumés en français (voir dans la page de la release pour plus de détails en anglais):

  • Le schéma de la base de données du vault ainsi que le code à été adapté pour permettre d’afficher les adresses SS58 dans le bon format
    • Pour la gtest, les adresses sont maintenant dans le bon format et commencent par “g1”

    • :warning: Comme la base de donnée du vault est adaptée pendant le premier usage de la version 0.6.0; elle ne sera plus compatible avec les versions précédentes par après.

      → Sauvegardez ~/.local/share/gcli/gcli.sqlite si vous prévoyez un retour en arrière.

  • Légère modification de la commande config show qui affiche le réseau Ğune configuré dans le build (non modifiable) - dans ce cas-ci gtest
    gcli config show
    >
    Ğcli config
    (fixed) Ğune network: gtest
    duniter endpoint: wss://archive-rpc.gtest.fr.brussels.ovh
    indexer endpoint: https://squid.gtest.coinduf.eu/v1/graphql
    address: g1PcEKFn1eRCn4h2hRmbuzFASJJZuap4H87KBd9cSHdWzK8LQ
    (Vault: Base[address:g1PcEKFn1eRCn4h2hRmbuzFASJJZuap4H87KBd9cSHdWzK8LQ, g1v1_pub_key:EnFfLNWnonXwxmzipLbbqa1fybSs7xdPoYhmbkMYzR3G, name:Some("Nico80"), crypto_scheme:Some(Ed25519)])
    
  • (beta) Nouvelle commande vault vanity qui permet de tenter de générer des mnémoniques dont l’adresse SS58 contient certains caractères précisés (lancez la commande avec --help pour plus de détails) - peut être très lent dés que l’on dépasse 3-4 caractères recherchés.
    gcli vault vanity --pattern "G1" -n g1 --position end --stop-after 3 
    Running search with 16 threads
    Found vanity mnemonic(s):
    - sock check sudden monitor outer nice truck layer hurdle escape million balcony  (address: g1NTZ1SeyutXnRcsHca4ibY8cKuUEM8pxTLDeqy4BVPAt7PG1)
    - leopard buffalo save patrol foam okay route chuckle vacant lawsuit dumb upset  (address: g1KKH2TYznjQC8Nu9E59YsbAj6yX7SGd3UkDcn5h3VCtpGFG1)
    - teach waste century valley aisle label whisper elder leader loyal list sight  (address: g1P6HoXT9WSWSbBHW1xcN2HazgRnPYDDTDTWsE1SSywaf9YG1)
    

Le lien vers la release (et les détails en anglais):
Edit: remplacement du lien vers 0.6.1 avec fix pour builds Debian

7 Likes

0.6.0 installé sur MacOS sans problème. J’ai gardé mon vault.

1 Like

J’ai remarqué un soucis lié à la mise à jour qui a été faite dans .gitlab-ci.yml pour utiliser rust:1.91.0 comme image de base je pense.

C’est que les fichiers buildés (.deb ou binaire) nécessitent maintenant une version 2.39 de glibc qui n’est pas disponible sur mon vieux server avec Ubuntu 22.04 (ni sur Debian 12 où @BulmAnanaBelle à également eu le soucis)

./gcli 
./gcli: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by ./gcli)

Si on regarde pour Ubuntu, le support est jusque 06/2027. Du coup, est-ce que l’on préférerais garder des builds compatibles avec ces versions plus anciennes des OS ou bien est-ce que l’on se dit que c’est l’occasion pour amener les gens à faire l’upgrade vers les versions plus récentes ?

Edit: J’en profite pour faire la mise à jour du serveur - g1.brussels.ovh et g1.data.brussels.ovh vont avoir un peu de downtime :stuck_out_tongue: (update terminée)

1 Like

Gérer tous les systèmes d’exploitation maintenus me semble plus intéressant pour un projet dont il faut livrer un livrable compilé.

Une idée de l’adaptation à faire dans le .gitlab-ci.yml pour garder la bonne version de Rust et la compatibilité avec Debian 12 / Ubuntu 22.04 ?

1 Like

Construire sur une ancienne version d’OS permet d’être compatible niveau glibc, selon le point 2. de https://stackoverflow.com/a/75264059

Selon le dépôt Docker des images Rust l’image rust:1.91.0 est un alias vers Debian Trixie (13). Mettre le tag bullseye permettra d’avoir la dernière version de rust et une ancienne glibc. Restons sur bullseye qui est EOL mais toujours LTS.

Avant dans la conf de la CI il y avait buster avant ce grand commit, dans lequel aucune raison claire n’a été donnée pour ce bump d’OS (Debian 10 −> 13).

4 Likes

ok donc j’attends la nouvelle version compatible au lieu de tenter de compiler manuellement :wink: Merci @Nicolas80 :folded_hands:

1 Like

Et surtout merci @Moul pour l’adaptation dans .gitlab-ci.yml :slight_smile:

J’ai testé le changement dans des containers Debian 12 et Ubuntu 22.04 et cela fonctione bien (uniquement testé les binaires, mais cela devrait être pareil pour les .deb).

Du coup, nouvelle release 0.6.1

  • Adapté l’image de base utilisée pour les builds Debian afin qu’elle utilise spécifiquement la version bullseye (équivalent Debian 12) plutôt qu’une version plus récente par défaut.
    • Cela corrige les erreurs du type GLIBC_2.39 not found rencontrées sur Debian 12 ou Ubuntu 22.04, où la version plus récente de glibc ne pouvait pas être installée.
1 Like