I did shorten the url with tinyurl, and i typed the command incluiding the tinyurl:
cardano-cli stake-pool metadata-hash --pool-metadata-file <(curl -s -L <https://REPLACE WITH YOUR METADATA_URL>)
error msg:
No such file or directory
Command failed: stake-pool metadata-hash Error: Error validating stake pool metadata: Error in $: not enough input
Why is that ?
Best regards,
I guess wrong or incomplete data inside metadata file… can u share the url?
1 Like
cardano-cli
sometimes fails on file arguments that aren’t really files… in your case, when they’ve been created temporarily by the shell as file descriptors. This issue I posted last year has been pronounced “closed” because they fixed it for a handful of things, although apparently not others:
opened 07:34PM - 26 Jun 22 UTC
closed 11:16AM - 17 Aug 22 UTC
type: bug
user type: external
comp: cardano-cli
**Internal/External** *External*
**Category** CLI syntax, argument processing, … file system interface
Either `cardano-cli` does not block when given a named pipe as an argument for `--signing-key-file` (and possibly other option arguments) or it fails because the named pipe is not recognised as a file.
**Steps to reproduce**
```
$ cardano-cli transaction build \
--mainnet \
--tx-in $(cat payment.utxo) \
--tx-out $(cat wallet.addr)+1000000 \
--change-address $(cat payment.addr) \
--out-file tx.draft
Estimated transaction fee: Lovelace 168185
$ mkfifo /tmp/sign-through-fifo.skey
$ ls -l /tmp/sign-through-fifo.skey
prw-rw-r-- 1 spo spo 0 2022-06-26 18:45 /tmp/sign-through-fifo.skey
$ cardano-cli transaction sign \
--tx-body-file tx.draft \
--signing-key-file /tmp/sign-through-fifo.skey \
--mainnet \
--out-file tx.signed
Command failed: transaction sign Error: Error reading signing key: /tmp/sign-through-fifo.skey: Invalid key.
```
The final command above fails with this error message *immediately*.
**Expected behaviour**
The proper behaviour would be for the `cardano-cli transaction sign` to block until it receives an EOF from reading `/tmp/sign-through-fifo.skey` (after someone or something else has written the key file contents into that file). From https://linux.die.net/man/3/mkfifo -
> Opening a FIFO for reading normally blocks until some other process opens the same FIFO for writing, and vice versa.
**System info (please complete the following information):**
OS Name: Ubuntu 5.4.0-121-generic
OS Version: 20.04 focal
```
cardano-cli 1.34.1 - linux-x86_64 - ghc-8.10
git rev 73f9a746362695dc2cb63ba757fbcabb81733d23
```
**Context & reasoning**
There is an argument, presented here: https://forum.cardano.org/t/cardano-cli-signing-a-transaction-without-directly-accessing-the-skey-file-in-plain-text/103742/11
... that any effort to "secure" `cardano-cli`'s handling of private keys is actually forcing the private keys into files, where as cleartext they are the least secure of all, not to mention subject to many types of remanence of the file system... especially the `ext4` journal which makes files practically impossible to delete.
If security reservations are still maintained by the node developers then we need them to be publicly discussed here (or cited, if this deliberation has already taken place). Until then I propose this is a "bug" since whatever sanity check is being done on the key file argument simply does not recognise the presence of a named pipe.
If you think --pool-metadata-file
is one of the things it should be fixed for, I would recommend posting here and/or trying to relate it to a more specific or general issue (even if you have to post a new issue yourself).
1 Like
good day,
URL: https://tinyurl.com/mtubj63b
best regards,
Ok, and when u check pool metadata file created do u see any inputs inside?
Yes, in the .json there is the pool name and ticker and website, and in the poolMetaDataHash.txt it is a line of random letters.
Best regards,
ok, if the metadata is same with the metadata uploaded then continue with the next step. did u try?
Yes i did the : Find the minimum pool cost.Find the minimum pool cost.
minPoolCost=$(cat $NODE_HOME/params.json | jq -r .minPoolCost)
echo minPoolCost: ${minPoolCost}
And that worked. Now i am going to continue with :
Configuring Multiple Relay Nodes
Update the next operation
cardano-cli stake-pool registration-certificate
to be run on your air-gapped offline machine appropriately. Replace with your proper domain names or IP addresses.
DNS based relays, 1 entry per DNS record
--single-host-pool-relay <relaynode1.myadapoolnamerocks.com> \
--pool-relay-port 6000 \
--single-host-pool-relay <relaynode2.myadapoolnamerocks.com> \
--pool-relay-port 6000 \
I am not sure what to do here?
Best regards,
will u use dns or IP to register the relays?
I will go with IP.
IP based relays, 1 entry per IP addressIP based relays, 1 entry per IP address:
--pool-relay-port 6000 \
--pool-relay-ipv4 <your first relay node public IP address> \
--pool-relay-port 6000 \
--pool-relay-ipv4 <your second relay node public IP address> \
Best regards,
1 Like
Should i type the command on the air-gapped machine?
First & Second relay node, is that bp node and nr node, or do it refer to nr- server with 2 nodes running?
I thinnk i have only one node running on my nr-server for the moment. I would like to have two, on the same server.
Best regards,
relays are the nodes beside the BP
1 Like