TopologyUpdater Crontab not running since update

Ultimately I ended up having to copy the updated script from Coin Cashew and reset the crontab, and now pool vet looks right-

The only issues that still plague my pool are a missing “in” peer on my producer and both nodes just show 0/0 in mempool TX.

check this thread

1 Like

As i mentioned above I ended up changing back to the coin cashew topologyUpdater.sh so for now the thread you mentioned won’t apply. Now everything looks good except for the “in” peer category, I feel like it must be a small setting somewhere.

image

Here is a copy of the most up to date version on coin cashew-

#!/bin/bash

shellcheck disable=SC2086,SC2034

USERNAME=$(whoami)

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=$NODE_HOME

CNODE_LOG_DIR=“${CNODE_HOME}/logs”

GENESIS_JSON=“${CNODE_HOME}/${NODE_CONFIG}-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}” = “1097911063” ]] && NETWORK_IDENTIFIER=“–mainnet” || NETWORK_IDENTIFIER=“–testnet-magic ${NWMAGIC}”

export PATH=“${CNODE_BIN}:${PATH}”

export CARDANO_NODE_SOCKET_PATH=“${CNODE_HOME}/db/socket”

blockNo=$(/usr/local/bin/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

You’ll need to have you node running for a few hours for it to show up in the topology.json file which will let other nodes find you when they update their own topology files.

1 Like

You can use the cntools version of topologyUpdater
Make a simple script
touch WrapperScript.sh
set executable chmod +x …
inside you set the required variables with export VARIABLENAME=value
export ANOTHERRVARIABLE=value2
fullpathtoyourcntoolsUpdater/topologyUpdater.sh
In your cron change the command from the updater to your Wrapper.
How to find out which variables you need to export? Start without any, let cron run the script and check for errors. Depending on your setup they’ll be in your email or logs. If I remember there are only 2 variables needed, the path to socket and path to the db.

1 Like

I finally have things up and running the way they should. I did some work with @Alexd1985 last night
here and he was able to help me determine the no “In” peers problem (port issues).

2 Likes

I did run that yesterday when I updated. I just don’t understand why its not running hourly. I am tempted to revert to the previous version and see if it will work

Check the services for topology updater

  • cnode-tu-push.service : pushes a node alive message to Topology Updater API
  • cnode-tu-push.timer : schedules the push service to execute once every hour
  • cnode-tu-fetch.service : fetches a fresh topology file before cnode.service file is started/restarted
  • cnode-tu-restart.service : handles the restart of cardano-node(cnode.sh)
  • cnode-tu-restart.timer : schedules the cardano-node restart service, default every 24h

sudo systemctl status cnode-tu-push.timer

try to execute the script manually first and check whether it went smoothly or not