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 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.


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


shellcheck disable=SC2086,SC2034


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





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}"


blockNo=$(/usr/local/bin/cardano-cli query tip ${NETWORK_IDENTIFIER} | jq -r .block )


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





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

mkdir -p ${CNODE_LOG_DIR};


curl -s “${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
set executable chmod +x …
inside you set the required variables with export VARIABLENAME=value
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).


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-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