Identifier la blockchain/monnaie d'un serveur Duniter V2S

Dans un client, on est amené à autoriser l’ajout de serveur pour une monnaie (en cas de panne sur les serveurs par défaut). C’est le cas dans Tikka.

Mais comment être sûr que le serveur concerne bien la monnaie que le client gère ? A quel paramètre se fier ?

J’ai trouvé la constante system.version du stockage qui renvoie une structure SpVersionRuntimeVersion :

{
  specName: gdev
  implName: gdev
  authoringVersion: 1
  specVersion: 100
  implVersion: 1
  apis: [
      ...
  ]
  transactionVersion: 1
}

Qui me donne le nom de code des specs de la blockchain (specName) , qui me semble être la bonne valeur pour identifier si le serveur concerne bien la monnaie gérée.

Dans le cas de plusieurs monnaies qui implémenteraient Duniter V2S, la distinction se ferait-elle plutôt sur le champ implName ?

Il faut se baser sur specName, car c’est bien le nom du protocole, donc des spécifications.

implName, et ça sert à indiquer le nom de l’implémentation, dans l’absolu on devrait indiquer duniter-gdev et non pas gdev, je vais corriger ça, même si de toute façon il n’y a pas de 2ème implémentation en projet :slight_smile:

4 « J'aime »

Tikka est multi-monnaie (basées sur Duniter V2S). Donc si dans le futur, d’autres monnaies libres implémentent le même protocole, tu me confirmes qu’ils doivent changer le implName ?

Il y a bien l’appel rpc system.chain qui renvoie un nom différent entre la gdev et le docker de développement. Mais c’est une donnée pour les humains, donc pas destinée à être testée dans un code.

Dans l’immédiat j’aurais juste besoin dans Tikka, de proposer et de distinguer entre une blockchain locale et la gdev.

Un message a été scindé en un nouveau sujet : Multi monnaie dans Tikka

Non, un protocole est lié à une monnaie, le protocole (specName), c’est gdev, gtest ou g1.
Une autre monnaie libre doit utiliser un autre protocole, même si elle copie l’un des nôtres il faut changer le nom.

implName, servira uniquement s’il y a dans le futur une autre implémentation du même protocole sur la même monnaie.

1 « J'aime »