1

I just recently set up a stakepool on the Testnet. I am running v1.32.1 of Cardano-node on both my relay and BP. Each node (relay and BP) are EC2 instances within the same VPC, and both are running the AWS version of Linux. I have also verified that I can reach my relay's IP and port from the internet. But when I run gLiveView on my relay, I only see one incoming peer connection, and both total and pending tx's are at 0. The pool has been up and running for a couple of days now, so I am not sure if I have something misconfigured or if it just takes a bit of time for my relay to be discovered by the network?

gLiveView of my relay node

Also, I set up the topology updater script, and when I run it manually, its successful:

{ "resultcode": "201", "datetime":"2021-12-29 22:45:01", "clientIp": "3.142.120.205", "iptype": 4, "msg": "nice to meet you" }

But when its running in cron, it always errors out:

{ "resultcode": "502", "datetime":"2021-12-29 23:33:03", "clientIp": "3.142.120.205", "msg": "invalid blockNo []" }

How would I go about troubleshooting this?

Linux Info: Linux version 5.10.82-83.359.amzn2.x86_64 (mockbuild@ip-10-0-37-156) (gcc10-gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1), GNU ld version 2.35-21.amzn2.0.1) #1 SMP Tue Nov 30 20:47:14 UTC 2021

Update: I forgot to mention in the original post the ticker I am using is "HLTH". Here is the link to the pool in Cardanoscan: https://testnet.cardanoscan.io/pool/614235f4d6c44cfc46a1ee16c95eb6d10008204c830d056f188e7677 I see now that my ticket isn't showing up, so maybe I have screwed up something with my metadata?

Here is the topologyUpdater.sh script I am using, I got this from the coin cashew tutorial:

#!/bin/bash
# shellcheck disable=SC2086,SC2034

USERNAME=ec2-user
CNODE_PORT=6000 # must match your relay node port as set in the startup command
CNODE_HOSTNAME="CHANGE ME"  # optional. must resolve to the IP you are requesting from
CNODE_BIN="/usr/local/bin"
CNODE_HOME=/home/ec2-user/cardano-src/relay
CNODE_LOG_DIR="${CNODE_HOME}/logs"
GENESIS_JSON="${CNODE_HOME}/testnet-shelley-genesis.json"
NETWORKID=$(jq -r .networkId $GENESIS_JSON)
CNODE_VALENCY=1   # optional for multi-IP hostnames
NWMAGIC=$(jq -r .networkMagic < $GENESIS_JSON)
[[ "${NETWORKID}" = "Mainnet" ]] && HASH_IDENTIFIER="--mainnet" || HASH_IDENTIFIER="--testnet-magic ${NWMAGIC}"
[[ "${NWMAGIC}" = "764824073" ]] && NETWORK_IDENTIFIER="--mainnet" || NETWORK_IDENTIFIER="--testnet-magic ${NWMAGIC}"

export PATH="${CNODE_BIN}:${PATH}"
export CARDANO_NODE_SOCKET_PATH="${CNODE_HOME}/db/socket"

echo Network Identifer: ${NETWORK_IDENTIFIER}
blockNo=$(cardano-cli query tip ${NETWORK_IDENTIFIER} | jq -r .block )

# Note:
# if you run your node in IPv4/IPv6 dual stack network configuration and want announced the
# IPv4 address only please add the -4 parameter to the curl command below  (curl -4 -s ...)
if [ "${CNODE_HOSTNAME}" != "CHANGE ME" ]; then
  T_HOSTNAME="&hostname=${CNODE_HOSTNAME}"
else
  T_HOSTNAME=''
fi

if [ ! -d ${CNODE_LOG_DIR} ]; then
  mkdir -p ${CNODE_LOG_DIR};
fi

curl -s "https://api.clio.one/htopology/v1/?port=${CNODE_PORT}&blockNo=${blockNo}&valency=${CNODE_VALENCY}&magic=${NWMAGIC}${T_HOSTNAME}" | tee -a $CNODE_LOG_DIR/topologyUpdater_lastresult.json

Additionally, here is my Testnet-topology.json file. I decided to try swapping in the IP addresses of each relay, and so I could remember which ones were which I put the DNS name of the relay into the "continent" field.

    {
        "Producers": [{
                "addr": "172.31.25.89",
                "port": 6000,
                "valency": 1
        },
        {
                "addr": "relays-new.cardano-testnet.iohkdev.io",
                "port": 3001,
                "valency": 2
        },
        {
                "addr": "64.225.4.242",
                "port": 3001,
                "valency": 2,
                "continent": "relays.testnet.stakenuts.com",
                "state": "New Jersey"
        },
        {
                "addr": "34.223.107.64",
                "port": 3001,
                "valency": 2,
                "continent": "testnet-relays.onyxstakepool.com",
                "state": "Oregon"
        },
        {
                "addr": "89.162.88.186",
                "valency": 2,
                "port": 9015,
                "valency": 2,
                "continent": "testnet.adanorthpool.com",
                "state": "NO"
        },
        {
                "addr": "202.92.217.26",
                "port": 9710,
                "valency": 2,
                "continent": "testicles.kiwipool.org",
                "state": "NZ"
        }
        ]
}

I followed a mix of the stakepool course tutorial and coin cashew to get this done. If I can't get this figured out I am probably going to tear it back down and then just start with the Guild Operators site and start from the prereqs.sh.

1 Answer 1

0

Seems something wrong with your topology script, you need to fix it. Maybe it has some shortened paths like ./bla.json. It should have access to testnet-shelley-genesis.json file(or maybe it called a bit different in your case) and seems this error hints that script can't access it.

Please post your topology updater script so we can fix it.

Currently when p2p is kind of really early on testnet(and it will work only with 1.33 version), you will need kind of relay on topology updater script.

When everything is fine you should see in logs something like this:

"nice to meet you"
"welcome to the topology"
"glad you're staying with us"
"glad you're staying with us"
"glad you're staying with us"
...
"glad you're staying with us"

So in your case you didn't register properly with topology script and nobody is knowing about your relays. On other hand topologyupdater is kind of optional and after some time(it can be a long time) everybody should know your relay if you registered your pool correctly. So maybe you can share your ticker too? In any case I highly recommend for beginners to use topologyupdater, so start with fixing it.

10
  • Thanks for the reply! Just updated my original post. I also don't see my ticker in Cardanoscan, so maybe its a metadata issue? Dec 31, 2021 at 22:44
  • So there are several issues. Check here: testnet.adatools.io/pools/… 1) 6000 port is not unreachable from outside world. Your relay should be accessible on 600 port from everywhere, check your FW. 2) git.io/JyDWW -- is empty file, so you registered your pool with topology file what do not contain anything
    – os11k
    Jan 1, 2022 at 10:04
  • Regarding topology script, can you run which cardano-cli and post it here?
    – os11k
    Jan 1, 2022 at 10:10
  • without opening FW(6000 port of your relay) no other relays will be able to connect even if topology script is running as it should
    – os11k
    Jan 1, 2022 at 10:13
  • Not sure if it matters, but I used my relay’s private ip, rather than the AWS public ip when I created the pool cert. So I’m also working on fixing that. I’ll come back and comment when i’ve been able to move it forward Jan 1, 2022 at 16:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.