Skip to content

Commit 23b620a

Browse files
authored
Merge pull request #4576 from TheBlueMatt/2026-04-block-locator-rename
Rename `BestBlock` to `BlockLocator`
2 parents a4633f1 + dcba68d commit 23b620a

22 files changed

Lines changed: 189 additions & 184 deletions

fuzz/src/chanmon_consistency.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ use lightning::chain::chaininterface::{
4444
use lightning::chain::channelmonitor::{ChannelMonitor, MonitorEvent};
4545
use lightning::chain::transaction::OutPoint;
4646
use lightning::chain::{
47-
chainmonitor, channelmonitor, BestBlock, ChannelMonitorUpdateStatus, Confirm, Watch,
47+
chainmonitor, channelmonitor, BlockLocator, ChannelMonitorUpdateStatus, Confirm, Watch,
4848
};
4949
use lightning::events;
5050
use lightning::ln::channel::{
@@ -332,7 +332,7 @@ impl chain::Watch<TestChannelSigner> for TestChainMonitor {
332332
.map(|(_, data)| data)
333333
.unwrap_or(&map_entry.persisted_monitor);
334334
let deserialized_monitor =
335-
<(BestBlock, channelmonitor::ChannelMonitor<TestChannelSigner>)>::read(
335+
<(BlockLocator, channelmonitor::ChannelMonitor<TestChannelSigner>)>::read(
336336
&mut &latest_monitor_data[..],
337337
(&*self.keys, &*self.keys),
338338
)
@@ -958,7 +958,7 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
958958
}
959959
let network = Network::Bitcoin;
960960
let best_block_timestamp = genesis_block(network).header.time;
961-
let params = ChainParameters { network, best_block: BestBlock::from_network(network) };
961+
let params = ChainParameters { network, best_block: BlockLocator::from_network(network) };
962962
(
963963
ChannelManager::new(
964964
$fee_estimator.clone(),
@@ -1039,7 +1039,7 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
10391039
// Use a different value of `use_old_mons` if we have another monitor (only for node B)
10401040
// by shifting `use_old_mons` one in base-3.
10411041
use_old_mons /= 3;
1042-
let mon = <(BestBlock, ChannelMonitor<TestChannelSigner>)>::read(
1042+
let mon = <(BlockLocator, ChannelMonitor<TestChannelSigner>)>::read(
10431043
&mut &serialized_mon[..],
10441044
(&**keys, &**keys),
10451045
)
@@ -1074,7 +1074,7 @@ pub fn do_test<Out: Output + MaybeSend + MaybeSync>(data: &[u8], out: Out) {
10741074
};
10751075

10761076
let manager =
1077-
<(BestBlock, ChanMan)>::read(&mut &ser[..], read_args).expect("Failed to read manager");
1077+
<(BlockLocator, ChanMan)>::read(&mut &ser[..], read_args).expect("Failed to read manager");
10781078
let res = (manager.1, chain_monitor.clone());
10791079
for (channel_id, mon) in monitors.drain() {
10801080
assert_eq!(

fuzz/src/chanmon_deser.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// This file is auto-generated by gen_target.sh based on msg_target_template.txt
22
// To modify it, modify msg_target_template.txt and run gen_target.sh instead.
33

4-
use lightning::chain::{channelmonitor, BestBlock};
4+
use lightning::chain::{channelmonitor, BlockLocator};
55
use lightning::util::ser::{ReadableArgs, Writeable, Writer};
66
use lightning::util::test_channel_signer::TestChannelSigner;
77
use lightning::util::test_utils::OnlyReadsKeysInterface;
@@ -21,14 +21,14 @@ impl Writer for VecWriter {
2121
#[inline]
2222
pub fn do_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
2323
if let Ok((latest_block_hash, monitor)) =
24-
<(BestBlock, channelmonitor::ChannelMonitor<TestChannelSigner>)>::read(
24+
<(BlockLocator, channelmonitor::ChannelMonitor<TestChannelSigner>)>::read(
2525
&mut Cursor::new(data),
2626
(&OnlyReadsKeysInterface {}, &OnlyReadsKeysInterface {}),
2727
) {
2828
let mut w = VecWriter(Vec::new());
2929
monitor.write(&mut w).unwrap();
3030
let deserialized_copy =
31-
<(BestBlock, channelmonitor::ChannelMonitor<TestChannelSigner>)>::read(
31+
<(BlockLocator, channelmonitor::ChannelMonitor<TestChannelSigner>)>::read(
3232
&mut Cursor::new(&w.0),
3333
(&OnlyReadsKeysInterface {}, &OnlyReadsKeysInterface {}),
3434
)

fuzz/src/full_stack.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ use lightning::chain::chaininterface::{
3939
};
4040
use lightning::chain::chainmonitor;
4141
use lightning::chain::transaction::OutPoint;
42-
use lightning::chain::{BestBlock, ChannelMonitorUpdateStatus, Confirm, Listen};
42+
use lightning::chain::{BlockLocator, ChannelMonitorUpdateStatus, Confirm, Listen};
4343
use lightning::events::Event;
4444
use lightning::ln::channel_state::ChannelDetails;
4545
use lightning::ln::channelmanager::{ChainParameters, ChannelManager, InterceptId, PaymentId};
@@ -354,7 +354,7 @@ impl<'a> MoneyLossDetector<'a> {
354354
self.header_hashes[self.height - 1].0,
355355
self.header_hashes[self.height].1,
356356
);
357-
let best_block = BestBlock::new(header.prev_blockhash, self.height as u32 - 1);
357+
let best_block = BlockLocator::new(header.prev_blockhash, self.height as u32 - 1);
358358
self.manager.blocks_disconnected(best_block);
359359
self.monitor.blocks_disconnected(best_block);
360360
self.height -= 1;
@@ -606,7 +606,7 @@ pub fn do_test(mut data: &[u8], logger: &Arc<dyn Logger + MaybeSend + MaybeSync>
606606

607607
let network = Network::Bitcoin;
608608
let best_block_timestamp = genesis_block(network).header.time;
609-
let params = ChainParameters { network, best_block: BestBlock::from_network(network) };
609+
let params = ChainParameters { network, best_block: BlockLocator::from_network(network) };
610610
let channelmanager = Arc::new(ChannelManager::new(
611611
fee_est.clone(),
612612
monitor.clone(),

fuzz/src/lsps_message.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use bitcoin::secp256k1::{PublicKey, Secp256k1, SecretKey};
66
use bitcoin::Network;
77

88
use lightning::chain::Filter;
9-
use lightning::chain::{chainmonitor, BestBlock};
9+
use lightning::chain::{chainmonitor, BlockLocator};
1010
use lightning::ln::channelmanager::{ChainParameters, ChannelManager};
1111
use lightning::ln::peer_handler::CustomMessageHandler;
1212
use lightning::ln::wire::CustomMessageReader;
@@ -61,7 +61,7 @@ pub fn do_test(data: &[u8]) {
6161
keys_manager.get_peer_storage_key(),
6262
false,
6363
));
64-
let best_block = BestBlock::from_network(network);
64+
let best_block = BlockLocator::from_network(network);
6565
let params = ChainParameters { network, best_block };
6666
let manager = Arc::new(ChannelManager::new(
6767
Arc::clone(&fee_estimator),

lightning-background-processor/src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1937,7 +1937,7 @@ mod tests {
19371937
use lightning::chain::chainmonitor;
19381938
use lightning::chain::channelmonitor::ANTI_REORG_DELAY;
19391939
use lightning::chain::transaction::OutPoint;
1940-
use lightning::chain::{BestBlock, Confirm};
1940+
use lightning::chain::{BlockLocator, Confirm};
19411941
use lightning::events::{Event, PathFailure, ReplayEvent};
19421942
use lightning::ln::channelmanager;
19431943
use lightning::ln::channelmanager::{
@@ -2121,7 +2121,7 @@ mod tests {
21212121
tx_broadcaster: Arc<test_utils::TestBroadcaster>,
21222122
network_graph: Arc<NetworkGraph<Arc<test_utils::TestLogger>>>,
21232123
logger: Arc<test_utils::TestLogger>,
2124-
best_block: BestBlock,
2124+
best_block: BlockLocator,
21252125
scorer: Arc<LockingWrapper<TestScorer>>,
21262126
sweeper: Arc<
21272127
OutputSweeperSync<
@@ -2484,7 +2484,7 @@ mod tests {
24842484
keys_manager.get_peer_storage_key(),
24852485
true,
24862486
));
2487-
let best_block = BestBlock::from_network(network);
2487+
let best_block = BlockLocator::from_network(network);
24882488
let params = ChainParameters { network, best_block };
24892489
let mut config = UserConfig::default();
24902490
config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = false;
@@ -2726,7 +2726,7 @@ mod tests {
27262726
let height = node.best_block.height + 1;
27272727
let header = create_dummy_header(prev_blockhash, height);
27282728
let txdata = vec![(0, tx)];
2729-
node.best_block = BestBlock::new(header.block_hash(), height);
2729+
node.best_block = BlockLocator::new(header.block_hash(), height);
27302730
match i {
27312731
1 => {
27322732
node.node.transactions_confirmed(&header, &txdata, height);
@@ -2753,7 +2753,7 @@ mod tests {
27532753
let prev_blockhash = node.best_block.block_hash;
27542754
let height = node.best_block.height + 1;
27552755
let header = create_dummy_header(prev_blockhash, height);
2756-
node.best_block = BestBlock::new(header.block_hash(), height);
2756+
node.best_block = BlockLocator::new(header.block_hash(), height);
27572757
if i == num_blocks {
27582758
// We need the TestBroadcaster to know about the new height so that it doesn't think
27592759
// we're violating the time lock requirements of transactions broadcasted at that

lightning-block-sync/src/init.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use bitcoin::block::Header;
99
use bitcoin::network::Network;
1010

1111
use lightning::chain;
12-
use lightning::chain::BestBlock;
12+
use lightning::chain::BlockLocator;
1313

1414
use std::ops::Deref;
1515

@@ -46,7 +46,7 @@ where
4646
/// use bitcoin::network::Network;
4747
///
4848
/// use lightning::chain;
49-
/// use lightning::chain::{BestBlock, Watch};
49+
/// use lightning::chain::{BlockLocator, Watch};
5050
/// use lightning::chain::chainmonitor;
5151
/// use lightning::chain::chainmonitor::ChainMonitor;
5252
/// use lightning::chain::channelmonitor::ChannelMonitor;
@@ -93,7 +93,7 @@ where
9393
/// ) {
9494
/// // Read a serialized channel monitor paired with the best block when it was persisted.
9595
/// let serialized_monitor = "...";
96-
/// let (monitor_best_block, mut monitor) = <(BestBlock, ChannelMonitor<SP::EcdsaSigner>)>::read(
96+
/// let (monitor_best_block, mut monitor) = <(BlockLocator, ChannelMonitor<SP::EcdsaSigner>)>::read(
9797
/// &mut Cursor::new(&serialized_monitor), (entropy_source, signer_provider)).unwrap();
9898
///
9999
/// // Read the channel manager paired with the best block when it was persisted.
@@ -112,7 +112,7 @@ where
112112
/// config,
113113
/// vec![&mut monitor],
114114
/// );
115-
/// <(BestBlock, ChannelManager<&ChainMonitor<SP::EcdsaSigner, &C, &T, &F, &L, &P, &ES>, &T, &ES, &NS, &SP, &F, &R, &MR, &L>)>::read(
115+
/// <(BlockLocator, ChannelManager<&ChainMonitor<SP::EcdsaSigner, &C, &T, &F, &L, &P, &ES>, &T, &ES, &NS, &SP, &F, &R, &MR, &L>)>::read(
116116
/// &mut Cursor::new(&serialized_manager), read_args).unwrap()
117117
/// };
118118
///
@@ -140,7 +140,7 @@ where
140140
/// [`ChannelManager`]: lightning::ln::channelmanager::ChannelManager
141141
/// [`ChannelMonitor`]: lightning::chain::channelmonitor::ChannelMonitor
142142
pub async fn synchronize_listeners<B: Deref + Sized + Send + Sync, L: chain::Listen + ?Sized>(
143-
block_source: B, network: Network, mut chain_listeners: Vec<(BestBlock, &L)>,
143+
block_source: B, network: Network, mut chain_listeners: Vec<(BlockLocator, &L)>,
144144
) -> BlockSourceResult<(HeaderCache, ValidatedBlockHeader)>
145145
where
146146
B::Target: BlockSource,
@@ -242,7 +242,7 @@ impl<'a, L: chain::Listen + ?Sized> chain::Listen for DynamicChainListener<'a, L
242242
unreachable!()
243243
}
244244

245-
fn blocks_disconnected(&self, fork_point: BestBlock) {
245+
fn blocks_disconnected(&self, fork_point: BlockLocator) {
246246
self.0.blocks_disconnected(fork_point)
247247
}
248248
}
@@ -266,9 +266,9 @@ mod tests {
266266
let listener_3 = MockChainListener::new().expect_block_connected(*chain.at_height(4));
267267

268268
let listeners = vec![
269-
(chain.best_block_at_height(1), &listener_1 as &dyn chain::Listen),
270-
(chain.best_block_at_height(2), &listener_2 as &dyn chain::Listen),
271-
(chain.best_block_at_height(3), &listener_3 as &dyn chain::Listen),
269+
(chain.block_locator_at_height(1), &listener_1 as &dyn chain::Listen),
270+
(chain.block_locator_at_height(2), &listener_2 as &dyn chain::Listen),
271+
(chain.block_locator_at_height(3), &listener_3 as &dyn chain::Listen),
272272
];
273273
match synchronize_listeners(&chain, Network::Bitcoin, listeners).await {
274274
Ok((cache, header)) => {

lightning-block-sync/src/lib.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ use bitcoin::hash_types::BlockHash;
5454
use bitcoin::pow::Work;
5555

5656
use lightning::chain;
57-
use lightning::chain::BestBlock;
57+
use lightning::chain::BlockLocator;
5858

5959
use std::future::Future;
6060
use std::ops::Deref;
@@ -372,7 +372,7 @@ impl<'a, L: chain::Listen + ?Sized> ChainNotifier<'a, L> {
372372
/// Updates the header cache as it goes, tracking headers needed to find the diff to reuse for
373373
/// other objects that might need similar headers.
374374
async fn find_difference_from_best_block<P: Poll>(
375-
&mut self, current_header: ValidatedBlockHeader, prev_best_block: BestBlock,
375+
&mut self, current_header: ValidatedBlockHeader, prev_best_block: BlockLocator,
376376
chain_poller: &mut P,
377377
) -> BlockSourceResult<ChainDifference> {
378378
// Try to resolve the header for the previous best block. First try the block_hash,
@@ -393,7 +393,9 @@ impl<'a, L: chain::Listen + ?Sized> ChainNotifier<'a, L> {
393393
break;
394394
}
395395
let height = prev_best_block.height.checked_sub(height_diff).ok_or(
396-
BlockSourceError::persistent("BestBlock had more previous_blocks than its height"),
396+
BlockSourceError::persistent(
397+
"BlockLocator had more previous_blocks than its height",
398+
),
397399
)?;
398400
if let Ok(header) = chain_poller.get_header(block_hash, Some(height)).await {
399401
found_header = Some(header);
@@ -402,7 +404,7 @@ impl<'a, L: chain::Listen + ?Sized> ChainNotifier<'a, L> {
402404
}
403405
}
404406
let found_header = found_header.ok_or_else(|| {
405-
BlockSourceError::persistent("could not resolve any block from BestBlock")
407+
BlockSourceError::persistent("could not resolve any block from BlockLocator")
406408
})?;
407409

408410
self.find_difference_from_header(current_header, &found_header, chain_poller).await
@@ -456,7 +458,7 @@ impl<'a, L: chain::Listen + ?Sized> ChainNotifier<'a, L> {
456458
/// Notifies the chain listeners of disconnected blocks.
457459
fn disconnect_blocks(&mut self, fork_point: ValidatedBlockHeader) {
458460
self.header_cache.blocks_disconnected(&fork_point);
459-
let best_block = BestBlock::new(fork_point.block_hash, fork_point.height);
461+
let best_block = BlockLocator::new(fork_point.block_hash, fork_point.height);
460462
self.chain_listener.blocks_disconnected(best_block);
461463
}
462464

lightning-block-sync/src/poll.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::{BlockData, BlockHeaderData, BlockSource, BlockSourceError, BlockSour
44

55
use bitcoin::hash_types::BlockHash;
66
use bitcoin::network::Network;
7-
use lightning::chain::BestBlock;
7+
use lightning::chain::BlockLocator;
88

99
use std::future::Future;
1010
use std::ops::Deref;
@@ -160,7 +160,7 @@ impl ValidatedBlockHeader {
160160
Ok(())
161161
}
162162

163-
/// Returns the [`BestBlock`] corresponding to this validated block header, which can be passed
163+
/// Returns the [`BlockLocator`] corresponding to this validated block header, which can be passed
164164
/// into [`ChannelManager::new`] as part of its [`ChainParameters`]. Useful for ensuring that
165165
/// the [`SpvClient`] and [`ChannelManager`] are initialized to the same block during a fresh
166166
/// start.
@@ -169,8 +169,8 @@ impl ValidatedBlockHeader {
169169
/// [`ChainParameters`]: lightning::ln::channelmanager::ChainParameters
170170
/// [`ChannelManager`]: lightning::ln::channelmanager::ChannelManager
171171
/// [`ChannelManager::new`]: lightning::ln::channelmanager::ChannelManager::new
172-
pub fn to_best_block(&self) -> BestBlock {
173-
BestBlock::new(self.block_hash, self.inner.height)
172+
pub fn to_block_locator(&self) -> BlockLocator {
173+
BlockLocator::new(self.block_hash, self.inner.height)
174174
}
175175
}
176176

lightning-block-sync/src/test_utils.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use bitcoin::transaction;
1212
use bitcoin::Transaction;
1313

1414
use lightning::chain;
15-
use lightning::chain::BestBlock;
15+
use lightning::chain::BlockLocator;
1616

1717
use std::cell::RefCell;
1818
use std::collections::VecDeque;
@@ -104,12 +104,12 @@ impl Blockchain {
104104
block_header.validate(block_hash).unwrap()
105105
}
106106

107-
pub fn best_block_at_height(&self, height: usize) -> BestBlock {
107+
pub fn block_locator_at_height(&self, height: usize) -> BlockLocator {
108108
let mut previous_blocks = [None; 12];
109109
for (i, height) in (0..height).rev().take(12).enumerate() {
110110
previous_blocks[i] = Some(self.blocks[height].block_hash());
111111
}
112-
BestBlock {
112+
BlockLocator {
113113
height: height as u32,
114114
block_hash: self.blocks[height].block_hash(),
115115
previous_blocks,
@@ -135,9 +135,9 @@ impl Blockchain {
135135
self.at_height(self.blocks.len() - 1)
136136
}
137137

138-
pub fn best_block(&self) -> BestBlock {
138+
pub fn best_block(&self) -> BlockLocator {
139139
assert!(!self.blocks.is_empty());
140-
self.best_block_at_height(self.blocks.len() - 1)
140+
self.block_locator_at_height(self.blocks.len() - 1)
141141
}
142142

143143
pub fn disconnect_tip(&mut self) -> Option<Block> {
@@ -223,7 +223,7 @@ impl chain::Listen for NullChainListener {
223223
&self, _header: &Header, _txdata: &chain::transaction::TransactionData, _height: u32,
224224
) {
225225
}
226-
fn blocks_disconnected(&self, _fork_point: BestBlock) {}
226+
fn blocks_disconnected(&self, _fork_point: BlockLocator) {}
227227
}
228228

229229
pub struct MockChainListener {
@@ -284,7 +284,7 @@ impl chain::Listen for MockChainListener {
284284
}
285285
}
286286

287-
fn blocks_disconnected(&self, fork_point: BestBlock) {
287+
fn blocks_disconnected(&self, fork_point: BlockLocator) {
288288
match self.expected_blocks_disconnected.borrow_mut().pop_front() {
289289
None => {
290290
panic!(

lightning/src/chain/chainmonitor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use crate::chain::channelmonitor::{
3737
WithChannelMonitor,
3838
};
3939
use crate::chain::transaction::{OutPoint, TransactionData};
40-
use crate::chain::{BestBlock, ChannelMonitorUpdateStatus, WatchedOutput};
40+
use crate::chain::{BlockLocator, ChannelMonitorUpdateStatus, WatchedOutput};
4141
use crate::events::{self, Event, EventHandler, ReplayEvent};
4242
use crate::ln::channel_state::ChannelDetails;
4343
#[cfg(peer_storage)]
@@ -1473,7 +1473,7 @@ where
14731473
self.event_notifier.notify();
14741474
}
14751475

1476-
fn blocks_disconnected(&self, fork_point: BestBlock) {
1476+
fn blocks_disconnected(&self, fork_point: BlockLocator) {
14771477
let monitor_states = self.monitors.read().unwrap();
14781478
log_debug!(
14791479
self.logger,

0 commit comments

Comments
 (0)