Information sur les constantes

Bonjour @HugoTrentesaux ,

Est ce qu’il serais possible de rajouter sur la documentation sur les constantes qui peuvent être utilisé par Duniter?

Merci d’avance

1 Like

Oui, c’est l’objectif de #283 sur laquelle est @bgallois. En attendant il faut consulter la doc générale pallet par pallet (https://doc-duniter-org.ipns.pagu.re/).

Je suis en train de m’en occuper, cela devrait être fait avant la fin de la semaine.

4 Likes

@zoltounet Pour l’instant, les constantes se trouvent ici, et les storages . Il me reste encore du travail sur le formatting, mais l’essentiel de l’information est déjà en place et normalement correct.

1 Like

Super merci beaucoup !

La MR est fusionnée, et le résultat est également disponible sur le site Duniter | Developer guide, notamment la page Duniter | Runtime constants :wink:

1 Like

Notez que ces constantes ne sont pas toutes les constantes du runtime, mais uniquement celles qui sont exposées dans les métadonnées du runtime, leur valeur peut être récupérée via la requête RPC qui permet d’obtenir les métadonnées du runtime.

Il es recommandé de ne pas saisir ces constantes en dur dans le code de vos logiciels, mais de récupérer leurs valeurs dynamiquement via RPC.

La récupération des métadonnées du runtime se fait en appellant la méthode RPC state_getMetadata(blockHash) ou blockHash est le hash du block contenant le runtime qui vous intéresse (le hash du dernier block si vous voulez les metadonnées du dernier runtime).

C’est ce que font les lib comme polkadotjs sous le capot quand vous instanciez une API avec ces lib.

@HugoTrentesaux je crains que publier la valeur de ces “constantes” accessible dans les metadonnées incite les développeurs à copier ces valeurs en dur dans leur code plutôt qu’a les extraire des metadonnées obtenues dynamiquement via RPC. Ca rajoute également un travail de maintenance pour mettre à jour cette page à chaque runtime upgrade. Je parie qu’un jour cette page sera obsolète et qu’un dev qui copie les valeur aura un problème à cause de ça.


Le code du runtime contiens aussi d’autres constantes qui ne sont pas exposées dans les métadonnées (car ce ne sont pas directement des paramètres de pallet).

La liste des constantes qui ne sont pas exposées dans le métadonnées mériterais, elle, d’être documentée et publiée, car on ne peut pas les récupérer dynamiquement, mais cette liste n’existe pas. Il faut la créée à la main à partir du code, en commençant par ce fichier par exemple: runtime/g1/src/parameters.rs · master · nodes / rust / Duniter v2S · GitLab

2 Likes

Le guide pour développeurs incite à utiliser les constantes via la lib. Par exemple sur cette page https://duniter.org/wiki/duniter-v2/doc/wot/, les constantes sont mentionnées avec constants.*. À terme j’aimerais avoir un lien vers la page de documentation pour chaque constante.

C’est fait automatiquement :

Il reste juste à ajouter la commande gen-doc à la CI parce que pour l’instant elle est lancée manuellement à chaque changement des runtime metadata.

Pour l’instant j’ai concentré les efforts de documentation sur ce qui était nécessaire aux développeurs de clients mais effectivement s’il manque des choses il faudrait compléter la doc.

1 Like