Check the “Introducer” flag for a node to import any nodes added there. A typical use case would be to have a central sync server which is trusted as an introducer by the clients. When a new client is added on the central server, the other clients will also add that node to their config, for the same shared repositories.
Background & Theory
As part of the connection handshake between two nodes, some information about the cluster setup is exchanged. When node
Alice connects to node
Bob, the following is sent:
- A list of all repositories
- For each such repository, the list of nodes
Aliceshares that repository with.
In effect, this is a complete view of the cluster, as it pertains to the repositories that are shared with
Bob. Until now, that information wasn’t actually used for anything. With the new “Introducer Node” feature,
Bob can chose to mark
Alice as an introducer, and automatically adopt any nodes that
Alice has but not
Introducer status is transferrable; that is, an introducers’ introducer will become your introducer as well. This is best clarified by an example.
Lets assume that
Alice already has connections to
Charlie (trusted as introducer) and
Eve (not trusted as an introducer). Now
Bob, an otherwise blank node, is added to
Alice to his configuration too and sets the introducer flag.
Alice sends her cluster configuration.
Bob thus adds
Charlie (as an introducer node, since he was trusted by
Eve (as a normal node).
Alice will send information about
Eve. If they trust
Alice as an introducer, a full mesh will be formed.
Note that propagation can be a bit delayed currently, since the information is only sent at connection establishment.