Use ed25519 vs sr25519 for v2s clients

J’ai zappé de quoi retourne ce post. En effet, je trouve que ça fait sens de rester en ed25519, car il est possible de le convertir en sr25519 en passant par la seed. L’inverse n’est pas possible il me semble (à vérifier). Je n’arrive pas à accéder à la seed à partir du fichier d’authentification JSON chiffré généré par py-polkadot-sdk pour lequel sr25519 est utilisé.
Passer en sr25519 nous enferme, car il n’est pas possible de revenir à la source : la seed.

>>> from substrateinterface import Keypair
>>> k = Keypair.create_from_mnemonic("clock tomato moment expand derive hospital among spray abandon face pear border")
>>> k
<Keypair (address=5HWcaif99dWLkBSJr9pmwuLhCH1DBwQ7xxaifbcXCfSNoxje)>
>>> k.seed_hex
b'rv\x1c\x1d\x15\x91}\xa8\xe37\xc5\x8cz\x83c6\x89:\x93\x986\xe6\xf4Ux\xa5\xe0,\xc5\xa8\xb7\x82'

À partir du fichier d’authentification JSON chiffré :

k = Keypair.create_from_encrypted_json(auth_file_content, password)
<Keypair (address=5HDikVWZ2xHfqvVVFwex5zmRsH4LuR3KqMgKZYEbCSjStSKw)>
(Pdb) k.seed_hex
# c’est vide

Du coup, d’un point de vue choix de fichier d’authentification, il faudrait rester sur le format (E)WIF et non le JSON chiffré compatible Polkadot.js. py-polkadot-sdk ne gère que sr25519 pour la génération de ce fichier.

2 Likes