Docs and procedures for p2p (how to run p2p?)

Relay mainnet-topology.json:

{
  "localRoots": [
    { "accessPoints": [
        { "address": "bp1.terminada.io", "port": 2700 }
      ]
      , "advertise": false
      , "valency": 1
    }
  ]
, "publicRoots" : [
    { "accessPoints": [
        { "address": "relays-new.cardano-mainnet.iohk.io", "port": 3001 }
      ]
      , "advertise": true
      , "valency": 1
    }
  ]
, "useLedgerAfterSlot": 84916732
}

Each of my relays has the exact same topology configuration. Note that I don’t list my other relays as localRoots accessPoints in each relay topology. I don’t see any point in doing that because I don’t care if my relay that first gets a block provides it quickly to my other relays. I only care how quickly this block gets delivered to my block producer (“bp1”). My other relays can then get that block from my bp1 if they don’t receive it from another external relay first. The goal is to get each new block to your BP as quickly as possible from whichever relay receives it first.

In other words, I believe a “fan out” topology is best, with your BP at the centre, and no deliberate interconnections between your own relays. You don’t want them wasting time delivering blocks between themselves, just get on with delivering each block to your BP.

BP mainnet-topology.json:

{
  "localRoots": [
    { "accessPoints": [
        { "address": "relays.terminada.io", "port": 2700 }
      ]
      , "advertise": false
      , "valency": 6
    }
  ]
, "publicRoots" : []
}

Note: the name “relays.terminada.io” resolves to many IP addresses on my bp1 machine. That is why I have valency 6, because there are up to 6 at any time. You can configure a name to resolve to multiple IP addresses like I have or simply list the IP address of each of your relays in the localRoots accessPoints array.