This adds a state machine for running the include process described in https://github.com/plprobelab/go-kademlia/issues/45. The state machine manages a queue of candidates nodes and processes them by checking whether they respond to a find node request. Candidates that respond with one or more closer nodes are considered live and added to the routing table. Nodes that do not respond or do not provide any suggested closer nodes are dropped from the queue. The number of concurrent checks in flight is configurable.
Not done yet:
[ ] check timeouts
[ ] removing nodes failing checks from routing table
Based on sm-bootstrap branch (#90)
This adds a state machine for running the include process described in https://github.com/plprobelab/go-kademlia/issues/45. The state machine manages a queue of candidates nodes and processes them by checking whether they respond to a find node request. Candidates that respond with one or more closer nodes are considered live and added to the routing table. Nodes that do not respond or do not provide any suggested closer nodes are dropped from the queue. The number of concurrent checks in flight is configurable.
Not done yet: