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

Function full_sync_random_peer

gossipd/seeker.c:1079–1105  ·  view source on GitHub ↗

Periodically ask for a full sync from a random peer to backfill anything * we might have missed. */

Source from the content-addressed store, hash-verified

1077/* Periodically ask for a full sync from a random peer to backfill anything
1078 * we might have missed. */
1079static void full_sync_random_peer(struct seeker *seeker)
1080{
1081 /* Select random peer */
1082 struct peer *random_peer;
1083 struct peer_node_id_map_iter it;
1084 random_peer = first_random_peer(seeker->daemon, &it);
1085 if (!random_peer) {
1086 begin_sync_timer(seeker);
1087 return;
1088 }
1089 /* Don't repeatedly resync from the same node. */
1090 if (seeker->last_full_sync_peer && seeker->last_full_sync_peer == random_peer) {
1091 struct peer *new_peer;
1092 new_peer = next_random_peer(seeker->daemon, random_peer, &it);
1093 if (new_peer)
1094 random_peer = new_peer;
1095 else {
1096 begin_sync_timer(seeker);
1097 return;
1098 }
1099 }
1100 status_peer_debug(&random_peer->id,
1101 "seeker: chosen for periodic full sync");
1102 normal_gossip_start(seeker,random_peer, true);
1103 seeker->last_full_sync_peer = random_peer;
1104 begin_sync_timer(seeker);
1105}
1106
1107static void begin_sync_timer(struct seeker *seeker)
1108{

Callers

nothing calls this directly

Calls 4

begin_sync_timerFunction · 0.85
normal_gossip_startFunction · 0.85
first_random_peerFunction · 0.70
next_random_peerFunction · 0.70

Tested by

no test coverage detected