Skip to content
  1. Jul 24, 2023
    • Aaro Altonen's avatar
      Accept only `--in-peers` many inbound full nodes in `SyncingEngine` (#14603) · f008e069
      Aaro Altonen authored
      * Accept only `--in-peers` many inbound full nodes in `SyncingEngine`
      
      Due to full and light nodes being stored in the same set, it's possible
      that `SyncingEngine` accepts more than `--in-peers` many inbound full
      nodes which leaves some of its outbound slots unoccupied.
      
      `ProtocolController` still tries to occupy these slots by opening
      outbound substreams. As these substreams are accepted by the remote peer,
      the connection is relayed to `SyncingEngine` which rejects the node
      because it's already full. This in turn results in the substream being
      inactive and the peer getting evicted.
      
      Fixing this properly would require relocating the light peer slot
      allocation away from `ProtocolController` or alternatively moving entire
      the substream validation there, both of which are epic refactorings and
      not necessarily in line with other goals. As a temporary measure, verify
      in `SyncingEngine` that it doesn't accept more than the specified amount
      of inbound full peers.
      
      * Fix tests
      
      * Apply review comments
      f008e069
  2. Jul 23, 2023
  3. Jul 21, 2023
  4. Jul 20, 2023
  5. Jul 19, 2023
  6. Jul 18, 2023
  7. Jul 17, 2023
  8. Jul 14, 2023
  9. Jul 13, 2023