As a blockchain user, I want to have some default initial p2p nodes to be able to connect to the p2p network.
As a node operator of one of those default initial p2p nodes, I want to operate N servers for the initial p2p connections with DNS round-robin.
Each of those N servers should run as lightweight software as possible. Preferably it would just gives an incoming peer a list of IP addresses of real peers I know about, then disconnect.
The --bootstrap flag to p2p is intended to implement this behavior, but it does not behave in this manner.
Questions to be answered:
(1) Is this a feature that belongs in koinos-p2p, or should we implement a completely separate p2p server application for this use case?
(2) How do we make libp2p behave this way?
Output of this ticket is a plan for implementing bootstrap.
It's possible that this plan will not result in immediate implementation of bootstrap in p2p. (Some possible contingencies along these lines: If we decide to implement it in a separate executable, if we decide not to implement this functionality, if research reveals it's impossible to make libp2p act this way, or if we decide our time is better devoted to higher priority tasks.)
If we don't immediately implement bootstrap in p2p, we should remove the flag.
As a blockchain user, I want to have some default initial p2p nodes to be able to connect to the p2p network.
As a node operator of one of those default initial p2p nodes, I want to operate N servers for the initial p2p connections with DNS round-robin.
Each of those N servers should run as lightweight software as possible. Preferably it would just gives an incoming peer a list of IP addresses of real peers I know about, then disconnect.
The
--bootstrap
flag to p2p is intended to implement this behavior, but it does not behave in this manner.Questions to be answered:
koinos-p2p
, or should we implement a completely separate p2p server application for this use case?Output of this ticket is a plan for implementing bootstrap.
It's possible that this plan will not result in immediate implementation of bootstrap in p2p. (Some possible contingencies along these lines: If we decide to implement it in a separate executable, if we decide not to implement this functionality, if research reveals it's impossible to make libp2p act this way, or if we decide our time is better devoted to higher priority tasks.)
If we don't immediately implement bootstrap in p2p, we should remove the flag.