đŸ‡«đŸ‡· #4 - DĂ©lĂ©gation Ă  un "pool" ou groupe d'enjeu

Résumé des épisodes précédents :

#1 - Vous avez installé jormungandr et jcli - Voir ici
#2 - Vous avez créé au moins deux adresses de type account- Voir ici
#3 - Vous avez effectué votre premiÚre transaction entre ces deux adresses - Voir ici


Aujourd’hui, le but du TP : dĂ©lĂ©guer vers un groupe d’enjeu, aussi appelĂ© “pool”, les fonds contenus dans une adresse.

Je ne rentrerai plus trop dans les détails commande à commande (entrer ou sortir des dossiers sous linux) et irait donc droit au but . Pour avancer sans encombres, je vous renvoie donc vers les 3 premiers TP !


Dans le terminal, lancer jormungandr et attendre que votre nƓud se synchronise au rĂ©seau testnet. Ouvrir un second terminal pour effectuer la dĂ©lĂ©gation, si jamais le noeud est actif sur le premier terminal.

Naviguer dans vos dossiers jusqu’à atteindre le dossier account1, celui contenant les fichiers addr1, pk1 et sk1.

Avant de commencer, il est important de connaĂźtre la liste des pools afin d’identifier celui vers lequel vous souhaitez dĂ©lĂ©guer vos ADA.

Pour cela :

jcli rest v0 stake-pools get -h http://127.0.0.1:3101/api

Cette commande vous renvoie une liste d’identifiants de pools sans plus d’informations. Voir ci dessous.

- 00c30e95ba85e4ece4a1b4a3b80c57c2e2d050367e7b0a5a8c646fd36735a1ac
- 7ab9cf75901e76b47ff7ed641d54386308dbd41db0065c8d0e9ff59baaf07cbe
- 25a46ca840894ebb337e1256a6d39c7f7b25f3b7bcd9db34ce12dda573bfcf0f
- 842bada798a994c060d0ff296c078b4a3fcfdd5a554a5a8034bfbc1c68cb6444
- c895a237b5cdfa48356ffe8a5a0e2718a578781d53668c1892a7cf60e56a6bb9
...
...
- 63e23cc1b057535151830f1a13c9f75ec81075b627469e13ba872dc3f12dab83

Il en existe aujourd’hui une cinquantaine sur le testnet. Si avoir les identifiants est dĂ©jĂ  pas mal, en savoir un peu plus sur le pool que vous choisirez c’est toujours un peu mieux. ExĂ©cutez la commande ci-dessous :

jcli rest v0 stake get -h http://127.0.0.1:3101/api

Cette commande vous renvoie une liste d’identifiants de pools ET la somme des ADA qui leur ont Ă©tĂ© dĂ©lĂ©guĂ©s. Cette liste ne recense que les pools actifs et non pas la totalitĂ© des pools dĂ©clarĂ©s avec un certificat. Elle est donc, en ce moment, un peu moins fournie que la liste prĂ©sentĂ©e plus haut.

- - 6d8509b50dc9612f6db5f899f2b24d486479b61f158fd7cb9a271553c923018a
- 9999988950
- - c33ab94e9eb40f5792fe980d43bbe3a5747a3dbb8bdebfd3dff592526e85804f
- 0
- - 63e23cc1b057535151830f1a13c9f75ec81075b627469e13ba872dc3f12dab83
- 0
- - 2fa5db57f81c75126b6349f429370e277ed86c351e7e68beda34de41458937f6
- 0
- - 49786e8b516664f38877cbf62a94b02a263a48e577673f3fe7c62dda34271031
- 9999889145
...
...
- - b7b132fdff13b998da3313c93ce36a75e2ca2f52288e95d944c9a6d6ba9042f3
- 609999988950

Comment lire ce rĂ©sultat ? Les lignes vont par deux, la premiĂšre est l’identifiant du pool. La seconde reprĂ©sente la somme des lovelaces dĂ©lĂ©guĂ©s Ă  ce pool. Remarquez que certains sont encore vides bien qu’activĂ©s et reconnus par le protocole.

Une fois le pool choisi, toujours à partir du dossier account1, débutez la procédure.

Créer le certificat de délégation :

jcli certificate new stake-delegation IDENTIFIANT_DU_POOL pk1 cert

pk1 est la clé publique du compte qui délÚgue
cert est le nom du certificat créé.

Signer le certificat :

jcli certificate sign sk1 cert signed_cert

sk1 est la clé secrÚte du compte qui délÚgue
cert est le certificat tout juste créé
signed_cert est le certificat signé

Faire une transaction avec le certificat sur la blockchain :

Beaucoup d’étapes sont similaires Ă  l’épisode #3. Voir ici

jcli transaction new --staging tx

jcli transaction add-account ADDRESSE_DU_COMPTE 11050 --staging tx

Notez les frais de transaction ici. Une certificat coĂ»te 10000 lovelaces. Il existe 1000 lovelaces de frais constants et enfin, il vous en coĂ»te 50 lovelaces pour inclure un “input”. Le coĂ»t total de la dĂ©lĂ©gation est donc de 11050 lovelaces.

Ajouter le certificat signé à la transaction

jcli transaction add-certificate --staging tx signed_cert

jcli transaction finalize --staging tx

jcli transaction id --staging tx

Copier l’identifiant de la transaction dans le presse-papier

Si vous l’avez oubliĂ©, vĂ©rifiez le --account-spending-counter de votre adresse :

jcli rest v0 account get $(cat addr1) get -h http://127.0.0.1:3101/api

jcli transaction make-witness IDENTIFIANT_DE_LA_TRANSACTION --genesis-block-hash adbdd5ede31637f6c9bad5c271eec0bc3d0cb9efb86a5b913bb55cba549d0770 --type account --account-spending-counter COUNTER witness.output sk1

jcli transaction add-witness witness.output --staging tx

jcli transaction seal --staging tx

jcli transaction to-message --staging tx | jcli rest v0 message post -h http://127.0.0.1:8443/api

Vérifiez que la manip a bien fonctionné :

Avant délégation, la commande jcli rest v0 account get $(cat addr1) get -h http://127.0.0.1:3101/api vous renvoyait:

counter: 0
delegation:
[.]
value: 249989986749

AprÚs délégation, la commande jcli rest v0 account get $(cat addr1) get -h http://127.0.0.1:3101/api vous renvoie:

counter: 1
delegation:
pools:
- - da0ed0ed3d82b70598cd277e78975201c3d194d91eed9ed197e2ed6465758477
- 1
value: 249989975699

Notez que vous dĂ©lĂ©guez la totalitĂ© des lovelaces de l’adresse moins les frais de transaction 



Amusez vous bien. C’est tout pour ce soir.
@psychomb