Skip to content

Preferred peers for syncing #5318

@vreuter

Description

@vreuter

Working on a way to speed up syncing in Genesis mode, it would be nice to have a way to declare, optionally, in the topology file one or more peers which are to be preferred for syncing. This could be, for example, a key preferredSyncPeers which, if present, would be mapped to a list of values like those in accessPoints of localRootPeers.

Such a peer preferred for syncing should behave like a localRootPeers entity during sync in the sense that the syncing node aims to maintain a hot connection with it. Through discussion with @nfrisby , we concluded that any connection with such a peer during a sync should additionally have the following properties:

  • back-off of the time interval between reconnect attempts (should the connection between the syncing node and the preferred peer be dropped) so that if the preferred peer is advertising a chain that's being refuted by other peers, the resource waste by the syncing node will be diminishingly severe.
  • forgetfulness of the connection with the peer preferred for syncing. Unlike a connection with a local root peer, a connection with a peer preferred for syncing should be forgotten (dropped, with no reconnect attempt) once the node's state switches from syncing to caught-up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions