Optimise stakepool relays for improved network efficiency

I’ve had an idea for a while that I thought may be useful for the project, it could potentially be a Process CIP. I wanted to get some other ideas on here to see if it was an idea that others thought was useful or not.

The idea is regarding Stake Pools, and optimising the relays that each relay connects to.

There will undoubtedly be a huge amount of possible configurations of relays, each of these possible configurations would have a certain level of efficiency. My idea is about finding a way of measuring the efficiency of a network by monitoring the relays of each stake pool, and the relays that those relays connect to.

After doing this, it may be possible to find certain parts of the overall network that are harder to reach, which brings the overall speed of the entire network down. Identifying these hard to reach relays could allow a handful of SPOs to make small adjustments to their relay configurations, potentially resulting in a speed improvement of the overall network.

An example may make this easier to understand if I have not explained it well enough.


There are 26 relays, each labelled as A-Z.

The SPOs have setup their relays, and it has resulted in certain groups of relays that are all connected to each other or close to being complete, but having no connections to nodes outside of that group. The following groups are:

Group1 : {A, B, C, D, E}
Group2: {F, G, H, I, J}
Group3: {K,L,M,N, O}
Group4: {P,Q, R, S, T}
Group5: {U, V, W, X, Y, Z}

Now imagine that there is only one connection from one relay in each group to one relay in the next group. E.g.
A <-> G
J <-> M
K <-> P
P <-> W

That would mean that data from relay B would require 8 hops to get to relay Z, i.e.
B -> A -> G -> J -> M -> K -> P -> W -> Z

It would be very easy to solve this problem and ensure a better coverage by changing two or three connections in each group, ultimately meaning that it could only take 2 or 3 hops instead of 8.

Having a community or IOG led initiative to identify these bad overall configurations could be beneficial for the overall network.

You might want to check topologyUpdater.