The Cardano node is synced but Mempool is empty

I’ve trying to monitor the Cardano transaction pool(Mempool) for a while. However, since the node got fully synced five hours ago, I haven’t seen any pending transactions.

Cardano-Node Version:

cardano-node 8.6.0 - linux-x86_64 - ghc-8.10
git rev 735e6c97740c8def5d6e462bf5a29cbe6d323cfe

Cardano-cli Version:

cardano-cli 8.13.0.0 - linux-x86_64 - ghc-8.10
git rev 735e6c97740c8def5d6e462bf5a29cbe6d323cfe

Cardano-Node command:

./cardano-node run \
    --config configuration/cardano/mainnet-config.json \
    --topology configuration/cardano/mainnet-topology.json \
    --socket-path node.socket

Cardano-Cli tip query command:
./cardano-cli query tip --socket-path node.socket --mainnet
Result:
{'block': 9554098, 'epoch': 448, 'era': 'Babbage', 'hash': '58c763d41e922311fc0801e259df3795eed4b750c780625faa05081ebcd8021f', 'slot': 108563376, 'slotInEpoch': 390576, 'slotsToEpochEnd': 41424, 'syncProgress': '100.00'}

Cardano-cli tip query command:
./cardano-cli query tx-mempool info --socket-path node.socket --mainnet
Result:
{'capacityInBytes': 1000000000, 'numberOfTxs': 0, 'sizeInBytes': 0, 'slot': 108563377}

mainnet-config.json:

{
  "AlonzoGenesisFile": "mainnet-alonzo-genesis.json",
  "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874",
  "ByronGenesisFile": "mainnet-byron-genesis.json",
  "ByronGenesisHash": "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb",
  "ConwayGenesisFile": "mainnet-conway-genesis.json",
  "ConwayGenesisHash": "f7d46bdd3b3c8caf38351c4eef3346a89241707270be0d6106e8a407db294cc6",
  "LastKnownBlockVersion-Alt": 0,
  "LastKnownBlockVersion-Major": 3,
  "LastKnownBlockVersion-Minor": 0,
  "MaxKnownMajorProtocolVersion": 2,
  "Protocol": "Cardano",
  "RequiresNetworkMagic": "RequiresNoMagic",
  "ShelleyGenesisFile": "mainnet-shelley-genesis.json",
  "ShelleyGenesisHash": "1a3be38bcbb7911969283716ad7aa550250226b76a61fc51cc9a9a35d9276d81",
  "TraceAcceptPolicy": true,
  "TraceBlockFetchClient": false,
  "TraceBlockFetchDecisions": false,
  "TraceBlockFetchProtocol": false,
  "TraceBlockFetchProtocolSerialised": false,
  "TraceBlockFetchServer": false,
  "TraceChainDb": true,
  "TraceChainSyncBlockServer": false,
  "TraceChainSyncClient": false,
  "TraceChainSyncHeaderServer": false,
  "TraceChainSyncProtocol": false,
  "TraceConnectionManager": true,
  "TraceDNSResolver": true,
  "TraceDNSSubscription": true,
  "TraceDiffusionInitialization": true,
  "TraceErrorPolicy": true,
  "TraceForge": true,
  "TraceHandshake": true,
  "TraceInboundGovernor": true,
  "TraceIpSubscription": true,
  "TraceLedgerPeers": true,
  "TraceLocalChainSyncProtocol": false,
  "TraceLocalConnectionManager": true,
  "TraceLocalErrorPolicy": true,
  "TraceLocalHandshake": true,
  "TraceLocalRootPeers": true,
  "TraceLocalTxSubmissionProtocol": false,
  "TraceLocalTxSubmissionServer": false,
  "TraceMempool": true,
  "MempoolCapacityBytesOverride": 1000000000,
  "TraceMux": false,
  "TracePeerSelection": true,
  "TracePeerSelectionActions": true,
  "TracePublicRootPeers": true,
  "TraceServer": true,
  "TraceTxInbound": false,
  "TraceTxOutbound": false,
  "TraceTxSubmissionProtocol": false,
  "TracingVerbosity": "NormalVerbosity",
  "TurnOnLogMetrics": true,
  "TurnOnLogging": true,
  "defaultBackends": [
    "KatipBK"
  ],
  "defaultScribes": [
    [
      "StdoutSK",
      "stdout"
    ]
  ],
  "hasEKG": 12788,
  "hasPrometheus": [
    "127.0.0.1",
    12798
  ],
  "minSeverity": "Info",
  "options": {
    "mapBackends": {
      "cardano.node.metrics": [
        "EKGViewBK"
      ],
      "cardano.node.resources": [
        "EKGViewBK"
      ]
    },
    "mapSubtrace": {
      "cardano.node.metrics": {
        "subtrace": "Neutral"
      }
    }
  },
  "rotation": {
    "rpKeepFilesNum": 10,
    "rpLogLimitBytes": 5000000,
    "rpMaxAgeHours": 24
  },
  "setupBackends": [
    "KatipBK"
  ],
  "setupScribes": [
    {
      "scFormat": "ScText",
      "scKind": "StdoutSK",
      "scName": "stdout",
      "scRotation": null
    }
  ]
}

mainnet-toplogy.config:


{
  "Producers": [
    {
      "addr": "relays-new.cardano-mainnet.iohk.io",
      "port": 3001,
      "valency": 2
    }
  ]
}

I would appreciate it if someone could assist me.

Thanks,

You need incoming connections to your node to have transactions into the mempool. Other nodes should connect to your node (your node should be in the topology file of other nodes, or your node should be a registered relay in a stake pool which also mints blocks).

I appreciate your answer.

Although I’ve done some research, I’m still confused about which option is easier for me. I’m not interested in starting a stake pool because I don’t want to invest money. However, I couldn’t find any resources explaining how I can become part of other nodes’ topology.

Would it be possible for you to give me some references?

Thanks in advance.

If you don’t want to run a pool, there is no need for incoming connections or transactions in the mempool.

You can submit your own transactions with just the outgoing connections that you obviously have. And they will shortly show up in your mempool when you submit them to your node.

He probably wants to do some development and he wants to process the transactions in the mempool.

You probably should run the topology updater script (part of the Koios toools).
https://cardano-community.github.io/guild-operators/Scripts/topologyupdater/

You are correct.
My objective is to create a snapshot of a local node’s tx mempool view for various iterations.
Thank you for introducing me to the toplogyupdater script.

2 Likes