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