My experiment with P2P

I’ve just set up a new staking pool in P2P mode. Since that is a new pool and my timing was exactly as version 1.35.6 came out I decided to switch to P2P as soon as I started getting transactions using regular approach. Initially all went well, my 4 relays behind a load balancer were indestructible. But soon transaction numbers went to 0. After investigation I noticed that incoming connection counter in the liveview only accounted my own nodes. Initially I discounted that as I had a lot of bi-directional P2P connections but then I added topology updater chrontab calls (with -f parameter to ignore fetching topology) to one of the relays. After few hours that particular relay only got a lot of incoming connections and transactions started to come again.

So it looks like peer to peer mode still requires something that drives incoming connections. P2P bi-directional connections don’t help getting transactions. Registered relay doesn’t help either. Wondering if flag “advertise” in P2P topology is made for that? I couldn’t find description of that flag.

Also I’m wondering if having load balancer only helps to show that your relay is almost 100% online. I can’t see any connections coming through LB itself. I haven’t try to advertise LB in the topology updater yet, not sure if that would help.

Any thoughts or comments?

Update to 1.35.7

image

I did upgrade to 1.35.7. That took care of my BP nodes disconnecting from my P2P nodes. But my relay nodes are all in P2P mode. That is not yet recommended way and I know why. P2P nodes are not getting incoming connections unless you run topology updater. Just don’t fetch topology. My 4 relays are running in P2P, but only one is using topology updater to advertise itself. That node gets incoming connections and tx, the other 3 don’t.

Ahh yes; u will need to use topology updater to announce your presence to the network… I believe in the future also topology updater will be deprecated

Topology updater is still required because most relays are not running in P2P mode yet.

Non P2P mode relays are using centralised services like api.clio.one to find other relays to connect with. The centralised services won’t know about your relays unless you send your relay information. Consequently they won’t send routing data about your relays to those users asking for it (which is still most Cardano relays).

Hopefully everyone can soon upgrade to using P2P mode. Then the constant updates to topology configs by pulling routing data from centralised services, won’t be necessary anymore.

I have been running the majority of my relays in P2P mode since Jan 2022 but each of my relays still pings api.clio.one every hour.

Now my P2P are geting tx as I ping api.clio.one hourly. I’m wondering if I can specify my load balancer’s URL when doing that (will try today). If that doesn’t work then the only reason to have LB would be for services like cexplorer not to report my relay offline when one of them goes down. I’m not seeing any other reason as it looks like registered relays are not being used by relay discovery mechanism which is strange.