Skip to content

Commit ae7afb4

Browse files
committed
f accept more connections than we do channels
1 parent 05c5c11 commit ae7afb4

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -934,6 +934,10 @@ const MAX_UNFUNDED_CHANS_PER_PEER: usize = 4;
934934
/// this many peers we reject new (inbound) channels.
935935
const MAX_UNFUNDED_CHANNEL_PEERS: usize = 50;
936936

937+
/// The maximum number of peers which we do not have a (funded) channel with. Once we reach this
938+
/// many peers we reject new (inbound) connections.
939+
const MAX_NO_CHANNEL_PEERS: usize = 250;
940+
937941
/// Information needed for constructing an invoice route hint for this channel.
938942
#[derive(Clone, Debug, PartialEq)]
939943
pub struct CounterpartyForwardingInfo {
@@ -6295,7 +6299,7 @@ where
62956299
}
62966300
node.is_connected
62976301
});
6298-
if inbound && !this_peer_has_funded_channels && connected_peers_without_funded_channels >= MAX_UNFUNDED_CHANNEL_PEERS {
6302+
if inbound && !this_peer_has_funded_channels && connected_peers_without_funded_channels >= MAX_NO_CHANNEL_PEERS {
62996303
return Err(());
63006304
}
63016305

@@ -8556,10 +8560,10 @@ mod tests {
85568560
// Now nodes[0] is disconnected but still has a pending, un-funded channel lying around.
85578561
// Even though we accept one more connection from new peers, we won't actually let them
85588562
// open channels.
8559-
assert_eq!(peer_pks.len(), super::MAX_NO_CHANNEL_PEERS - 1);
8560-
for peer_pk in peer_pks {
8561-
nodes[1].node.handle_open_channel(&peer_pk, &open_channel_msg);
8562-
get_event_msg!(nodes[1], MessageSendEvent::SendAcceptChannel, peer_pk);
8563+
assert!(peer_pks.len() > super::MAX_UNFUNDED_CHANNEL_PEERS - 1);
8564+
for i in 0..super::MAX_UNFUNDED_CHANNEL_PEERS - 1 {
8565+
nodes[1].node.handle_open_channel(&peer_pks[i], &open_channel_msg);
8566+
get_event_msg!(nodes[1], MessageSendEvent::SendAcceptChannel, peer_pks[i]);
85638567
open_channel_msg.temporary_channel_id = nodes[0].keys_manager.get_secure_random_bytes();
85648568
}
85658569
nodes[1].node.handle_open_channel(&last_random_pk, &open_channel_msg);

0 commit comments

Comments
 (0)