A profile document is a JSON document. Mandatory fields are:
title: user name (Lastanem, firstname…)
time: submission time, in seconds (UTC unixtime)
issuer: user public key
hash: hash of the JSON document (without fields hash and signature)
signature: signature of the JSON document (without fields hash and signature)
Mais à quoi correspond précisément le hash ?
le document JSON au format texte ?
quel ordre pour les champs ?
avec ou sans espaces ?
Ce n’est pas urgent et je pourrais chercher dans le code, mais c’est important de définir précisément ce qui est signé, de manière à ce que je ne perde pas la vérifiabilité des données en les important dans IPFS (même si je vais les importer sans vérification).
Donc pour répondre à tes questions, en format JSON texte sans esapce (dumps).
Au niveau de l’ordre, il me semble que Cs+ s’en fou et arrive à reconnaitre le hash peu importe l’ordre si j’ai bien compris, mais je ne sais pas comment il fait.
Dans mes datapods j’ai besoin de définir un ordre précis (celui implémenté).
Il n’y a pas de tri des champs, ni de traitement des espaces. C’est le hash du document tel quel, serialisé comme tu veux. Ensuite, les pod CS+ ne doivent pas changer une virgule, un ordre, ou un espace où retour a la ligne.
L’avantage est de ne dépendre d’aucun protocole de formatage particulier. Donc accessible dans librairie JSON particulière.
L’inconvénient est qu’il faut stocker le document tel quel, ce que permet ES en natif. J’ai profité de cela.
Le hash et la signature sont simplement retiré du document serialisé, par regexp, pour faire la vérification