MCPcopy Create free account
hub / github.com/ElementsProject/lightning / check_firstpeer

Function check_firstpeer

gossipd/seeker.c:879–925  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

877}
878
879static void check_firstpeer(struct seeker *seeker)
880{
881 struct peer *peer = seeker->random_peer;
882 struct peer_node_id_map_iter it;
883
884 /* It might have died, pick another. */
885 if (!peer) {
886 peer = random_seeker(seeker, peer_has_gossip_queries);
887 /* No peer? Wait for a new one to join. */
888 if (!peer) {
889 status_debug("seeker: no peers, waiting");
890 if (seeker->new_gossiper_elapsed)
891 maybe_get_new_peer(seeker);
892 else
893 seeker->new_gossiper_elapsed++;
894 return;
895 }
896
897 peer_gossip_startup(seeker, peer, false);
898 return;
899 }
900
901 /* If no progress, we assume it's finished, and if it hasn't,
902 * we'll end up querying backwards in next steps. */
903 if (peer_made_progress(seeker, peer))
904 return;
905
906 /* Other peers can gossip now. */
907 status_peer_debug(&peer->id, "seeker: startup peer finished");
908 seeker->random_peer = NULL;
909
910 for (struct peer *p = peer_node_id_map_first(seeker->daemon->peers, &it);
911 p;
912 p = peer_node_id_map_next(seeker->daemon->peers, &it)) {
913 if (p == peer)
914 continue;
915
916 normal_gossip_start(seeker, p, false);
917 }
918
919 /* Ask a random peer for all channels, in case we're missing */
920 seeker->scid_probe_start = chainparams->when_lightning_became_cool;
921 seeker->scid_probe_end = seeker->daemon->current_blockheight;
922 if (seeker->scid_probe_start > seeker->scid_probe_end)
923 seeker->scid_probe_start = 0;
924 peer_gossip_probe_scids(seeker);
925}
926
927static void check_probe(struct seeker *seeker,
928 void (*restart)(struct seeker *seeker))

Callers 1

seeker_checkFunction · 0.85

Calls 6

random_seekerFunction · 0.85
maybe_get_new_peerFunction · 0.85
peer_gossip_startupFunction · 0.85
peer_made_progressFunction · 0.85
normal_gossip_startFunction · 0.85
peer_gossip_probe_scidsFunction · 0.85

Tested by

no test coverage detected