Skip to content

Commit 7baafe2

Browse files
Merge pull request #4354 from elnosh/manual-channel-acceptance
Default to anchors and remove automatic channel acceptance
2 parents 2e4a2ac + 306eea7 commit 7baafe2

32 files changed

Lines changed: 694 additions & 629 deletions

fuzz/src/chanmon_consistency.rs

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -712,9 +712,8 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
712712
config.channel_config.forwarding_fee_proportional_millionths = 0;
713713
config.channel_handshake_config.announce_for_forwarding = true;
714714
config.reject_inbound_splices = false;
715-
if anchors {
716-
config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = true;
717-
config.manually_accept_inbound_channels = true;
715+
if !anchors {
716+
config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = false;
718717
}
719718
let network = Network::Bitcoin;
720719
let best_block_timestamp = genesis_block(network).header.time;
@@ -763,9 +762,8 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
763762
config.channel_config.forwarding_fee_proportional_millionths = 0;
764763
config.channel_handshake_config.announce_for_forwarding = true;
765764
config.reject_inbound_splices = false;
766-
if anchors {
767-
config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = true;
768-
config.manually_accept_inbound_channels = true;
765+
if !anchors {
766+
config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = false;
769767
}
770768

771769
let mut monitors = new_hash_map();
@@ -876,30 +874,28 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out, anchors: bool) {
876874

877875
$dest.handle_open_channel($source.get_our_node_id(), &open_channel);
878876
let accept_channel = {
879-
if anchors {
880-
let events = $dest.get_and_clear_pending_events();
881-
assert_eq!(events.len(), 1);
882-
if let events::Event::OpenChannelRequest {
883-
ref temporary_channel_id,
884-
ref counterparty_node_id,
885-
..
886-
} = events[0]
887-
{
888-
let mut random_bytes = [0u8; 16];
889-
random_bytes
890-
.copy_from_slice(&$dest_keys_manager.get_secure_random_bytes()[..16]);
891-
let user_channel_id = u128::from_be_bytes(random_bytes);
892-
$dest
893-
.accept_inbound_channel(
894-
temporary_channel_id,
895-
counterparty_node_id,
896-
user_channel_id,
897-
None,
898-
)
899-
.unwrap();
900-
} else {
901-
panic!("Wrong event type");
902-
}
877+
let events = $dest.get_and_clear_pending_events();
878+
assert_eq!(events.len(), 1);
879+
if let events::Event::OpenChannelRequest {
880+
ref temporary_channel_id,
881+
ref counterparty_node_id,
882+
..
883+
} = events[0]
884+
{
885+
let mut random_bytes = [0u8; 16];
886+
random_bytes
887+
.copy_from_slice(&$dest_keys_manager.get_secure_random_bytes()[..16]);
888+
let user_channel_id = u128::from_be_bytes(random_bytes);
889+
$dest
890+
.accept_inbound_channel(
891+
temporary_channel_id,
892+
counterparty_node_id,
893+
user_channel_id,
894+
None,
895+
)
896+
.unwrap();
897+
} else {
898+
panic!("Wrong event type");
903899
}
904900
let events = $dest.get_and_clear_pending_msg_events();
905901
assert_eq!(events.len(), 1);

fuzz/src/full_stack.rs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,13 @@ use lightning::chain::{BestBlock, ChannelMonitorUpdateStatus, Confirm, Listen};
4444
use lightning::events::bump_transaction::sync::WalletSourceSync;
4545
use lightning::events::Event;
4646
use lightning::ln::channel_state::ChannelDetails;
47-
use lightning::ln::channelmanager::{
48-
ChainParameters, ChannelManager, InterceptId, PaymentId,
49-
};
47+
use lightning::ln::channelmanager::{ChainParameters, ChannelManager, InterceptId, PaymentId};
5048
use lightning::ln::functional_test_utils::*;
5149
use lightning::ln::inbound_payment::ExpandedKey;
50+
use lightning::ln::outbound_payment::{RecipientOnionFields, Retry};
5251
use lightning::ln::peer_handler::{
5352
IgnoringMessageHandler, MessageHandler, PeerManager, SocketDescriptor,
5453
};
55-
use lightning::ln::outbound_payment::{RecipientOnionFields, Retry};
5654
use lightning::ln::script::ShutdownScript;
5755
use lightning::ln::types::ChannelId;
5856
use lightning::offers::invoice::UnsignedBolt12Invoice;
@@ -1124,6 +1122,17 @@ pub fn do_test(mut data: &[u8], logger: &Arc<dyn Logger>) {
11241122
Event::SpliceFailed { .. } => {
11251123
// Splice failed, inputs can be re-spent
11261124
},
1125+
Event::OpenChannelRequest {
1126+
temporary_channel_id, counterparty_node_id, ..
1127+
} => {
1128+
let _ = loss_detector.manager.accept_inbound_channel(
1129+
&temporary_channel_id,
1130+
&counterparty_node_id,
1131+
0,
1132+
None,
1133+
);
1134+
loss_detector.handler.process_events();
1135+
},
11271136
_ => {},
11281137
}
11291138
}
@@ -1161,7 +1170,7 @@ fn two_peer_forwarding_seed() -> Vec<u8> {
11611170
// our network key
11621171
ext_from_hex("0100000000000000000000000000000000000000000000000000000000000000", &mut test);
11631172
// config
1164-
ext_from_hex("000000000090000000000000000064000100000000000100ffff0000000000000000ffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff000000ffffffff00ffff1a000400010000020400000000040200000a08ffffffffffffffff000100000000000000", &mut test);
1173+
ext_from_hex("000000000090000000000000000064000100000000000100ffff0000000000000000ffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff000000ffffffff00ffff1a000400010000020400000000040200000a08ffffffffffffffff0001000000000000", &mut test);
11651174

11661175
// new outbound connection with id 0
11671176
ext_from_hex("00", &mut test);
@@ -1615,7 +1624,7 @@ fn gossip_exchange_seed() -> Vec<u8> {
16151624
// our network key
16161625
ext_from_hex("0100000000000000000000000000000000000000000000000000000000000000", &mut test);
16171626
// config
1618-
ext_from_hex("000000000090000000000000000064000100000000000100ffff0000000000000000ffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff000000ffffffff00ffff1a000400010000020400000000040200000a08ffffffffffffffff000100000000000000", &mut test);
1627+
ext_from_hex("000000000090000000000000000064000100000000000100ffff0000000000000000ffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff000000ffffffff00ffff1a000400010000020400000000040200000a08ffffffffffffffff0001000000000000", &mut test);
16191628

16201629
// new outbound connection with id 0
16211630
ext_from_hex("00", &mut test);
@@ -1697,7 +1706,7 @@ fn splice_seed() -> Vec<u8> {
16971706
// our network key
16981707
ext_from_hex("0100000000000000000000000000000000000000000000000000000000000000", &mut test);
16991708
// config
1700-
ext_from_hex("000000000090000000000000000064000100000000000100ffff0000000000000000ffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff000000ffffffff00ffff1a000400010000020400000000040200000a08ffffffffffffffff000100000000000000", &mut test);
1709+
ext_from_hex("000000000090000000000000000064000100000000000100ffff0000000000000000ffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff000000ffffffff00ffff1a000400010000020400000000040200000a08ffffffffffffffff0001000000000000", &mut test);
17011710

17021711
// new outbound connection with id 0
17031712
ext_from_hex("00", &mut test);

lightning-background-processor/src/lib.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2447,6 +2447,8 @@ mod tests {
24472447
));
24482448
let best_block = BestBlock::from_network(network);
24492449
let params = ChainParameters { network, best_block };
2450+
let mut config = UserConfig::default();
2451+
config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = false;
24502452
let manager = Arc::new(ChannelManager::new(
24512453
Arc::clone(&fee_estimator),
24522454
Arc::clone(&chain_monitor),
@@ -2457,7 +2459,7 @@ mod tests {
24572459
Arc::clone(&keys_manager),
24582460
Arc::clone(&keys_manager),
24592461
Arc::clone(&keys_manager),
2460-
UserConfig::default(),
2462+
config,
24612463
params,
24622464
genesis_block.header.time,
24632465
));
@@ -2610,6 +2612,25 @@ mod tests {
26102612
$node_b.node.get_our_node_id()
26112613
);
26122614
$node_b.node.handle_open_channel($node_a.node.get_our_node_id(), &msg_a);
2615+
let events = $node_b.node.get_and_clear_pending_events();
2616+
assert_eq!(events.len(), 1);
2617+
match &events[0] {
2618+
Event::OpenChannelRequest {
2619+
temporary_channel_id, counterparty_node_id, ..
2620+
} => {
2621+
$node_b
2622+
.node
2623+
.accept_inbound_channel(
2624+
temporary_channel_id,
2625+
counterparty_node_id,
2626+
42,
2627+
None,
2628+
)
2629+
.unwrap();
2630+
},
2631+
_ => panic!("Unexpected event"),
2632+
};
2633+
26132634
let msg_b = get_event_msg!(
26142635
$node_b,
26152636
MessageSendEvent::SendAcceptChannel,

lightning-liquidity/tests/lsps2_integration_tests.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,7 +1155,6 @@ fn client_trusts_lsp_end_to_end_test() {
11551155
service_node_config.htlc_interception_flags = HTLCInterceptionFlags::ToInterceptSCIDs as u8;
11561156

11571157
let mut client_node_config = test_default_channel_config();
1158-
client_node_config.manually_accept_inbound_channels = true;
11591158
client_node_config.channel_config.accept_underpaying_htlcs = true;
11601159
let node_chanmgrs = create_node_chanmgrs(
11611160
3,
@@ -1627,7 +1626,6 @@ fn late_payment_forwarded_and_safe_after_force_close_does_not_broadcast() {
16271626
service_node_config.htlc_interception_flags = HTLCInterceptionFlags::ToInterceptSCIDs as u8;
16281627

16291628
let mut client_node_config = test_default_channel_config();
1630-
client_node_config.manually_accept_inbound_channels = true;
16311629
client_node_config.channel_config.accept_underpaying_htlcs = true;
16321630

16331631
let node_chanmgrs = create_node_chanmgrs(
@@ -1817,7 +1815,6 @@ fn htlc_timeout_before_client_claim_results_in_handling_failed() {
18171815
service_node_config.htlc_interception_flags = HTLCInterceptionFlags::ToInterceptSCIDs as u8;
18181816

18191817
let mut client_node_config = test_default_channel_config();
1820-
client_node_config.manually_accept_inbound_channels = true;
18211818
client_node_config.channel_config.accept_underpaying_htlcs = true;
18221819

18231820
let node_chanmgrs = create_node_chanmgrs(
@@ -2152,7 +2149,6 @@ fn client_trusts_lsp_partial_fee_does_not_trigger_broadcast() {
21522149
service_node_config.htlc_interception_flags = HTLCInterceptionFlags::ToInterceptSCIDs as u8;
21532150

21542151
let mut client_node_config = test_default_channel_config();
2155-
client_node_config.manually_accept_inbound_channels = true;
21562152
client_node_config.channel_config.accept_underpaying_htlcs = true;
21572153

21582154
let node_chanmgrs = create_node_chanmgrs(

lightning-persister/src/test_utils.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,9 @@ pub(crate) fn do_test_store<K: KVStoreSync + Sync>(store_0: &K, store_1: &K) {
132132
);
133133
node_cfgs[0].chain_monitor = chain_mon_0;
134134
node_cfgs[1].chain_monitor = chain_mon_1;
135-
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
135+
let legacy_cfg = test_legacy_channel_config();
136+
let node_chanmgrs =
137+
create_node_chanmgrs(2, &node_cfgs, &[Some(legacy_cfg.clone()), Some(legacy_cfg)]);
136138
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
137139

138140
let node_b_id = nodes[1].node.get_our_node_id();

lightning/src/chain/chainmonitor.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1687,7 +1687,12 @@ mod tests {
16871687
fn test_chainsync_triggers_distributed_monitor_persistence() {
16881688
let chanmon_cfgs = create_chanmon_cfgs(3);
16891689
let node_cfgs = create_node_cfgs(3, &chanmon_cfgs);
1690-
let node_chanmgrs = create_node_chanmgrs(3, &node_cfgs, &[None, None, None]);
1690+
let legacy_cfg = test_legacy_channel_config();
1691+
let node_chanmgrs = create_node_chanmgrs(
1692+
3,
1693+
&node_cfgs,
1694+
&[Some(legacy_cfg.clone()), Some(legacy_cfg.clone()), Some(legacy_cfg)],
1695+
);
16911696
let nodes = create_network(3, &node_cfgs, &node_chanmgrs);
16921697

16931698
let node_a_id = nodes[0].node.get_our_node_id();

lightning/src/chain/channelmonitor.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6813,7 +6813,8 @@ mod tests {
68136813
// updates is handled correctly in such conditions.
68146814
let chanmon_cfgs = create_chanmon_cfgs(3);
68156815
let node_cfgs = create_node_cfgs(3, &chanmon_cfgs);
6816-
let node_chanmgrs = create_node_chanmgrs(3, &node_cfgs, &[None, None, None]);
6816+
let legacy_cfg = test_legacy_channel_config();
6817+
let node_chanmgrs = create_node_chanmgrs(3, &node_cfgs, &[Some(legacy_cfg.clone()), Some(legacy_cfg.clone()), Some(legacy_cfg)]);
68176818
let nodes = create_network(3, &node_cfgs, &node_chanmgrs);
68186819
let channel = create_announced_chan_between_nodes(&nodes, 0, 1);
68196820
create_announced_chan_between_nodes(&nodes, 1, 2);

0 commit comments

Comments
 (0)