BP has Processed TX, but Relay has 0 Processed TX

Hey everyone,

Coming in from the coincashew guide and have followed it fairly well IMO. I am running into an issue where the Processed TX is not moving on my relay node, but my BP does have moving TX.

I am not seeing my relay appear on the mainnet topology json

I have my relay setup for port forwarding through the router and am able to see the port when specifying my public ip and rleay port number when using port-checking sites. I have not setup my BP for port forwarding as I was of the understanding that the cardano network model suggested that a BP should only communicate to the relay and that the relay is what should be exposed out to the world.

I am unsure if i’ve missed something in terms of configuration steps… any help would be appreciated and I can provide any other snippets as needed.

My network is such that both relay and bp are on the same network and bp has the following config:

“Producers”: [
“addr”: “”, <— This is relay IP on internal network
“port”: 6000,
“valency”: 1

Relay config consists of the following after successful runs of the topology generator/updater script:

{ “resultcode”: “201”, “networkMagic”: “764824073”, “ipType”:4, “requestedIpVersion”:“4”, “Producers”: [
{ “addr”: “”, “port”: 6000, “valency”: 1 } , <—BP IP on internal network
{ “addr”: “relays-new.cardano-mainnet.iohk.io”, “port”: 3001, “valency”: 2 } ,

… additional addresses are listed here

] }

For relay :

  • check in config file if TraceMempool=true (for tx issue)
  • check the last log messages for topology updater script, which should run once/hour (for IN peers)


You’re a saint @Alexd1985 - setting TraceMempool=true fixed the issue of the 0 TX processing.

Just for my own edification - is TraceMempool meant as a logging property which was omitting intranet transactions or something like that? Or was it actually not processing transactions when it was set to false?

1 Like

just linking similar topic:

Nope, not affecting the functionality of the node, but it can save the memory if the node has not enough

Good to know, and yes @laplasz - that thread is definitely a better representation of the 0 TX issue I was experiencing.

@Alexd1985 With regards to the updater, i have been getting 204s but i am not sure if i’ve set it up correctly. i was a bit confused as to the CNODE_HOSTNAME arg given my network setup… was it supposed to be my relay’s public-facing IP placed there? Or was it supposed to be pointing to my BP’s internal IP? I’d also set the curl to “-4” since it is an IP address and not domain.

CNODE_PORT=6000 # must match your relay node port as set in the startup command
CNODE_HOSTNAME=“” # Should this be my RELAY public IP? or my BP private IP? (Relay public IP: vs. BP private IP:
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 [ “${CNODE_HOSTNAME}” != “CHANGE ME” ]; then

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

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

If the BP and Relay are behind a private network u can use the private IPs to connect them

Ok, so then CNODE_HOSTNAME would be set to - does this mean it will take longer than the usual 4 hours for the mainnet topology to propogate with my public IP of

Nope, it will use same public IP to communicate with other nodes

  • BP <-> Relays - will use private IP (if there are behind same private LAN)
  • Relays <-> public nodes - will use public IP