Cardano-wallet: Wallet doesn't show meta data re-registered (in case of changing metadata url without changing metadata hash)

Created on 7 Jul 2020  路  10Comments  路  Source: input-output-hk/cardano-wallet

I have done re-registration multiple times hoping that I will be able to register meta data in wallet successfully but wallet back-end running doesn't show meta data information or at least issues while fetching it.

I have exhausted trying all possible options by discussing with the community members. So raising issue here with below details. Kindly help.

Options tried till now.

  1. Removed all spaces in .json
  2. Hosted .json file in web server
  3. Ensured that URL length is less that 64 characters
  4. Did wget and compared with hash used for registration
  5. Ensured that both hashes matching
  6. Deleted block producing DB and did resync with blockchain while starting the wallet back-end and observing logs but there is no log found for meta data issues.

meta-data used for last registration (verified in ledger-state) : https://www.adaglobe.com/adaglobe.json

Shelley version : 1.14.2

| Information | - |
| --- | --- |
| Version | | cardano-wallet-shelley-2020.6.5
| Platform | | Linux
| Installation | https://hydra.iohk.io/build/3315798/download/1/cardano-wallet-shelley-2020.6.5-linux64.tar.gz

Regards
Praveen

All 10 comments

@mestakepool I was just able to re-register metadata of the stake-pool following -> https://github.com/input-output-hk/cardano-tutorials/blob/master/node-setup/080_register_stakepool.md (the only difference is that re-registration does not require deposit, only fees). I see my updated metadata in the wallet.

My metadata -> https://piotr-iohk.github.io/adrestia-qa-board/QAPool1.json
Steps I did:

  • I have changed ticker and name and commited my json file.
  • generated new hash cardano-cli shelley stake-pool metadata-hash --pool-metadata-file ../adrestia-qa-board/public/QAPool1.json
  • generated new certificate with updated hash (also updated pledge)
cardano-cli shelley stake-pool registration-certificate \
--cold-verification-key-file cold.vkey \
--vrf-verification-key-file vrf.vkey \
--pool-pledge 100000000000 \
--pool-cost 0 \
--pool-margin 0.05 \
--pool-reward-account-verification-key-file stake.vkey \
--pool-owner-stake-verification-key-file stake.vkey \
--testnet-magic 42 \
--metadata-url https://piotr-iohk.github.io/adrestia-qa-board/QAPool1.json \
--metadata-hash b4aaf23a91425826edf3e973c7cba65b440995f4228efdd93174184320e7139a \
--out-file pool.cert
  • calculated fees
cardano-cli shelley transaction calculate-min-fee \
--tx-in-count 1 \
--tx-out-count 1 \
--ttl 750000 \
--testnet-magic 42 \
--signing-key-file payment.skey \
--signing-key-file stake.skey \
--signing-key-file cold.skey \
--certificate-file pool.cert \
--certificate-file delegation.cert \
--protocol-params-file protocol.json
  • created and submitted transaction (only fees were required, no deposit needed here)
cardano-cli shelley transaction build-raw \
--tx-in 9f5b74e05e087e42dee55f53b3e4c57db1735241ecf500458f7ce57c781c8486#0 \
--tx-out $(cat payment.addr)+999999246388 \
--ttl 750000 \
--fee 188161 \
--out-file tx.raw \
--certificate-file pool.cert \
--certificate-file delegation.cert


cardano-cli shelley transaction sign \
--tx-body-file tx.raw \
--signing-key-file payment.skey \
--signing-key-file stake.skey \
--signing-key-file cold.skey \
--testnet-magic 42 \
--out-file tx.signed

cardano-cli shelley transaction submit \
--tx-file tx.signed \
--testnet-magic 42

My updated metadata was almost immediately available on my wallet attached to node I used to send those last transaction, and after 2-3 minutes on Daedalus I had running on different machine.

Please note that there was a bug related to re-registration in wallet but it was fixed few days age -> https://github.com/input-output-hk/cardano-wallet/issues/1805

Current wallet master includes that fix. And we will be releasing new increment shortly.

@mestakepool I've just resync with the shelley testnet and your pool just doesn't exist? Or at least, there are no pool registered with such metadata URL. Did you register your pool on chain?

hi,
I did all steps same as mentioned by you. Didn't pay deposit as it is re-registration. I have wallet backend running on my node but it doesn't show any details about my pool. Steps followed by me is mentioned below.

wget https://www.adaglobe.com/adaglobe.json
cardano-cli shelley stake-pool metadata-hash --pool-metadata-file adaglobe.json
5ab7b895eb868fec37d4d22489eb2b2821d969d5a712119c60038ec4122da7c7

cardano-cli shelley stake-pool registration-certificate \
--cold-verification-key-file cold.vkey \
--vrf-verification-key-file vrf.vkey \
--pool-pledge 500000000000 \
--pool-cost 500000000 \
--pool-margin 0.04 \
--pool-reward-account-verification-key-file /opt/cardano/cnode/priv/wallet/payw/stake.vkey \
--pool-owner-stake-verification-key-file /opt/cardano/cnode/priv/wallet/payw/stake.vkey \
--testnet-magic 42 \
--pool-relay-port 4001 \
--pool-relay-ipv4 185.56.89.59 \
--pool-relay-port 4002 \
--pool-relay-ipv4 185.56.89.59 \
--metadata-url https://www.adaglobe.com/adaglobe.json \
--metadata-hash 5ab7b895eb868fec37d4d22489eb2b2821d969d5a712119c60038ec4122da7c7 \
--out-file pool.cert

cardano-cli shelley stake-address delegation-certificate \
--stake-verification-key-file /opt/cardano/cnode/priv/wallet/payw/stake.vkey \
--cold-verification-key-file cold.vkey \
--out-file delegation.cert

cardano-cli shelley transaction calculate-min-fee \
--tx-in-count 1 \
--tx-out-count 1 \
--ttl 1000000 \
--testnet-magic 42 \
--signing-key-file /opt/cardano/cnode/priv/wallet/payw/payment.skey \
--signing-key-file /opt/cardano/cnode/priv/wallet/payw/stake.skey \
--signing-key-file cold.skey \
--certificate-file pool.cert \
--certificate-file delegation.cert \
--protocol-params-file protocol.json

Calculated Fee : 188381

Pool deposit : 500000000 (not needed as already registered)

cardano-cli shelley query utxo \
--address $(cat /opt/cardano/cnode/priv/wallet/payw/base.addr) \
--testnet-magic 42

d054e7ff60a6ed5930fcc8426c07e3283c96e65d2a004f5af914fd21dc3c872e

balance : 1199496629772

expr 1199496629772 - 188381

1199496441391

cardano-cli shelley transaction build-raw \
--tx-in d054e7ff60a6ed5930fcc8426c07e3283c96e65d2a004f5af914fd21dc3c872e#0 \
--tx-out $(cat /opt/cardano/cnode/priv/wallet/payw/base.addr)+1199496441391 \
--ttl 1000000 \
--fee 188381 \
--out-file tx.raw \
--certificate-file pool.cert \
--certificate-file delegation.cert

cardano-cli shelley transaction sign \
--tx-body-file tx.raw \
--signing-key-file /opt/cardano/cnode/priv/wallet/payw/payment.skey \
--signing-key-file /opt/cardano/cnode/priv/wallet/payw/stake.skey \
--signing-key-file cold.skey \
--testnet-magic 42 \
--out-file tx.signed

cardano-cli shelley transaction submit \
--tx-file tx.signed \
--testnet-magic 42

So okay, the logs are filled with:

I supposed this is one of your first registration. Yet, pools metadata attempts are cached based solely on their hash and retried on failure with an increasing delay. I am afraid that this URL is taking all the spots for that pool hash. I think it is worth considering caching based on hash AND url on our end.

My pool is running and produced 48 blocks by now. I did re-registration at least 6-8 times for last 3 days as wallet backend was not showing any log related to my meta data fetch attempts.

The one mentioned above was my first registration but I changed it with correct file name long back.

Do you mean I should create a different hash and try again as this hash was retired on initial failures?

One more thing is that pooltool picked up my hash correctly.

https://pooltool.io/pool/76e9f93e2e5d3b4eca8d0577f6b071a33befaf92bc793220dc3b5c60/delegators

you can check for below pool ID

76e9f93e2e5d3b4eca8d0577f6b071a33befaf92bc793220dc3b5c60

Do you mean I should create a different hash and try again as this hash was retired on initial failures?

That would certainly fix the issue indeed (you could extend your description by a few chars). Although, I believe this could deserve a little fix on our end too.

Thank you for quick update. I will try with a different hash as suggested and will update here.

Fixed in latest master, all mainnet pools with valid registrations are now listed. There was a remaining issue regarding TLS compatibility for some pools servers which has been fixed yesterday.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gitmachtl picture gitmachtl  路  10Comments

paweljakubas picture paweljakubas  路  6Comments

Mercurial picture Mercurial  路  5Comments

KtorZ picture KtorZ  路  11Comments

got3nks picture got3nks  路  9Comments