We have developed a network size estimator and we want to test it in Testground for different network sizes and see how it behaves.

The methodology would be the following:

  1. Spin up a Testground cluster that run a modified libp2p DHT server (or client? doesn’t matter probably)
  2. let the libp2p nodes just sit there and refresh their routing table
  3. check periodically the network size estimate of each node
  4. perform the above for the following network sizes
    1. 1, 5, 10, 50, 100, 500, 1000, 5000, 10 000, 50 000, 100 000 (not sure if more are possible)
    2. There should be roughly 10% unreachable nodes (realistic right now)
  5. perform the above for 10 000 nodes and differing unreachable nodes:
    1. 10%, 20%, 50%, 80%

Derive the following metrics

  1. How long does it take for the nodes to converge to a reasonably accurate network size estimate?
  2. What are the error margins for each network size?

Real fluctuation seems to be 10-15% on a daily basis