How we can check if BP is ready to create BLOCKS

Hello Cardano Pool Operators!

Today I want to give you few tips which helps new Pools Operators to identify if the node is working as a BP and ready to produce BLOCKS or as a Relay (1.23.0 version):

As you already know starting with version 1.23.0 the Liveview mode is not available anymore… but how can you identify that BP is working well?

!!! At this step your POOL should be already registered with success into the network and the KEYS/CERTIFICATES/etc were created in /cnode/priv/pool/your_folder_name folder !!!

You can check with gLiveView

/scripts$ ./gLiveView.sh

When your node runs as a BP you should see it like in below image:

image

As you can see here are provided some important informations like :

  • Cardano Node - (Core - Mainnet) - tells you that your node runs as a BP
  • Processed TX - tells you that the node is processing TX
  • Peers - tells you with how many Relays your BP is connected (for more informations about peers press “p”)
  • KES informations - tells you if the KEYS are still valid, the date when will gone expire
  • BLOCKS - THE MOST IMPORTANT information - tells you that the node is ready to create BLOCKS

If you see all this informations on your node (./gliveview.sh) means the node is running as a BP !!!

BUT if on your BP will see like bellow screen, means the node not working as a BP and it will never produce BLOCKS:

image

as you can see:

  • Cardano Node - (Relay - Mainnet) - tells you that the node is working as a Relay not as a BP
  • no KES informations
  • no BLOCKS informations

That means the node is not working as a BP but Relay instead !!!

This means there is an issue with KEYS/CERTIFICATES.

You can check with the following command to see if your BP is able to use KEYS/CERTIFICATES

  • when your node runs as BP and is ready to create BLOCKS you should see the following output:

cnode/scripts$ curl localhost:12798/metrics | grep KES
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5096 0 50cardano_node_Forge_metrics_operationalCertificateStartKESPeriod_int 92
9cardano_node_Forge_metrics_operationalCertificateExpiryKESPeriod_int 154
6 cardano_node_Forge_metrics_currentKESPeriod_int 121
cardano_node_Forge_metrics_remainingKESPeriods_int 33
0 0 2488k 0 --:–:-- --:–:-- --:–:-- 2488k)

When your node not working like a BP but Relay instead you will see nothing:

curl localhost:12798/metrics | grep KES
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4769 0 4769 0 0 310k 0 --:–:-- --:–:-- --:–:-- 310k

Now that you identify that your node not works as a BP you must fix the issue!

the ./cnode.sh should be check to see if using the right path

  • nano cnode.sh

most of the time the problem was that the default configuration was not changed:

  • default configuration
    ######################################

    User Variables - Change as desired

    Common variables set in env file

    ######################################

    #POOL_DIR="{CNODE_HOME}/priv/pool/TEST" # set pool dir to run node as a core node #TOPOLOGY="{CNODE_HOME}/files/topology.json" # override default topology.json path

  • change the TEST name with your folder name where KES/CERTIFICATES are kept (usually your node name) and make it active by deleting “#” from the beginning of the line:
    ######################################

    User Variables - Change as desired

    Common variables set in env file

    ######################################

    POOL_DIR="${CNODE_HOME}/priv/pool/your_folder_name" # set pool dir to run node as a core node

    #TOPOLOGY="${CNODE_HOME}/files/topology.json" # override default topology.json path

  • save the file, restart the node and check again with gliveview.sh scripts

REMEMBER that you should see:

  • Cardano Node - (Core - Mainnet)
  • KES informations
  • BLOCKS informations

I hope this will be useful for the new Pool Operators.

####################################################

Thank you and if you want to support us please delegate with

Charity Pool ticker: CHRTY

Earn rewards by helping others! Support children education!

Support decentralization!

####################################################

8 Likes

Hello @Alexd1985,

can you post the link to the source of the gLiveView.sh tool ?
I am looking for a solution to monitor my nodes, which are running on docker and are not exposing any ports. So i want to use a solution like yours, which works inside of the terminal.

Would be very cool if you can share a link to the gLiveView.sh tool.

Thank you!

As far as I know this is a script / tool found in the guild operators suite:

https://cardano-community.github.io/guild-operators/#/Scripts/gliveview

As for ports (I’m not very firm in docker) - why don’t you expose / map ports to your docker container? As far as I know a mapping can be done on startup or via docker compose?

Mapping a internal prometheus port shouldn’t be a problem?

Cheers from Munich,
Alex

1 Like

Already shared by ruttkowa

Cheers,

2 Likes

Node socket not set in env file and automatic detection failed! [source: gLiveView.sh]

Guild LiveView terminated, cleaning up…

\

Could not make it run yet but looks good

Ok, how is ur socket line in env file (commented with # or not)… can u show me?

I setup now correctly, I needed to change the env file. looks good now.
thank you

1 Like

Just a doubt about this, the POOL_FOLDER should point to something important? I have all my files inside a directory cnode there resides scripts and the keys. Whats that priv directory should contain?

priv (private) contains the files for pool and wallet (certificates, payment address, cold keys, etc)

1 Like

I have a config, the relays are processing TXs, but the BP is not. BP is in sync just fine. Any thoughts?

Ur BP has IN peers?

Cheers,

It does not.

Ok; probably u have the port 6000 closed;

On producer u need to permit the relays:

sudo ufw allow proto tcp from Relay1_IP to any port 6000
C
sudo ufw allow proto tcp from Relay2_IP to any port 6000

For relays

sudo ufw allow proto tcp from any to any port 6000
check the topology updater script if u added ur BP IP to custom peers

Cheers,

1 Like

Does BP need to be added into customer peers?

Yes, it should be added

probably seems stupid, but also double check that your topology file on the BP is pointed to the relays

{
“Producers”: [
{
“addr”: “relay 1 IP Address”,
“port”: 6000,
“valency”: 1
}
{
“addr”: “relay 2 IP Address”,
“port”: 6000,
“valency”: 1
}
]
}

Thank you for posting that.

I’ve tried my luck with that solution, but did not have that much luck.
I’ve created a “not so standard” approach on my docker images, so that i had to set a lot of variables in that script (to match my structure) and install dependencies which i did not want to have on my images. I prefer the “as lean as possible” approach on my images so that when someone breaks into the container, it’s not possible to curl or wget arbitrary files, because they are not installed (as an example of packages which are not installed).

My plan is to reevaluate my options in some weeks.

Hi Alex
My relay node2 runs for about 10 to 30 minutes then I get this error.

./startRelayNode2.sh: line 9: 157414 Killed /usr/local/bin/cardano-node run --topology {TOPOLOGY} --database-path {DB_PATH} --socket-path {SOCKET_PATH} --host-addr {HOSTADDR} --port {PORT} --config {CONFIG}

I think u need to increase the memory

What is the hw configuration?