You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a possible race condition when both the latest block hash and
height are needed. Combine these in one struct and place them behind a
single lock.
Copy file name to clipboardExpand all lines: background-processor/src/lib.rs
+3-5Lines changed: 3 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -129,7 +129,7 @@ mod tests {
129
129
use lightning::chain::keysinterface::{Sign,InMemorySigner,KeysInterface,KeysManager};
130
130
use lightning::chain::transaction::OutPoint;
131
131
use lightning::get_event_msg;
132
-
use lightning::ln::channelmanager::{ChainParameters,ChannelManager,SimpleArcChannelManager};
132
+
use lightning::ln::channelmanager::{BestBlock,ChainParameters,ChannelManager,SimpleArcChannelManager};
133
133
use lightning::ln::features::InitFeatures;
134
134
use lightning::ln::msgs::ChannelMessageHandler;
135
135
use lightning::ln::peer_handler::{PeerManager,MessageHandler,SocketDescriptor};
@@ -190,14 +190,12 @@ mod tests {
190
190
let persister = Arc::new(FilesystemPersister::new(format!("{}_persister_{}", persist_dir, i)));
191
191
let seed = [i asu8;32];
192
192
let network = Network::Testnet;
193
-
let genesis_block = genesis_block(network);
194
-
let now = Duration::from_secs(genesis_block.header.timeasu64);
193
+
let now = Duration::from_secs(genesis_block(network).header.timeasu64);
195
194
let keys_manager = Arc::new(KeysManager::new(&seed, now.as_secs(), now.subsec_nanos()));
196
195
let chain_monitor = Arc::new(chainmonitor::ChainMonitor::new(Some(chain_source.clone()), tx_broadcaster.clone(), logger.clone(), fee_estimator.clone(), persister.clone()));
197
196
let params = ChainParameters{
198
197
network,
199
-
latest_hash: genesis_block.block_hash(),
200
-
latest_height:0,
198
+
best_block:BestBlock::from_genesis(network),
201
199
};
202
200
let manager = Arc::new(ChannelManager::new(fee_estimator.clone(), chain_monitor.clone(), tx_broadcaster, logger.clone(), keys_manager.clone(),UserConfig::default(), params));
203
201
let msg_handler = MessageHandler{chan_handler:Arc::new(test_utils::TestChannelMessageHandler::new()),route_handler:Arc::new(test_utils::TestRoutingMessageHandler::new())};
Copy file name to clipboardExpand all lines: fuzz/src/chanmon_consistency.rs
+2-3Lines changed: 2 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -36,7 +36,7 @@ use lightning::chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdateErr,
36
36
use lightning::chain::transaction::OutPoint;
37
37
use lightning::chain::chaininterface::{BroadcasterInterface,ConfirmationTarget,FeeEstimator};
38
38
use lightning::chain::keysinterface::{KeysInterface,InMemorySigner};
39
-
use lightning::ln::channelmanager::{ChainParameters,ChannelManager,PaymentHash,PaymentPreimage,PaymentSecret,PaymentSendFailure,ChannelManagerReadArgs};
39
+
use lightning::ln::channelmanager::{BestBlock,ChainParameters,ChannelManager,PaymentHash,PaymentPreimage,PaymentSecret,PaymentSendFailure,ChannelManagerReadArgs};
40
40
use lightning::ln::features::{ChannelFeatures,InitFeatures,NodeFeatures};
41
41
use lightning::ln::msgs::{CommitmentUpdate,ChannelMessageHandler,DecodeError,ErrorAction,UpdateAddHTLC,Init};
42
42
use lightning::util::enforcing_trait_impls::{EnforcingSigner,INITIAL_REVOKED_COMMITMENT_NUMBER};
breakSome(("Forwarding node has tampered with the intended HTLC values or origin node has an obsolete cltv_expiry_delta",0x1000 | 13,Some(self.get_channel_update(chan).unwrap())));
1294
1313
}
1295
-
let cur_height = self.latest_block_height.load(Ordering::Acquire)asu32 + 1;
1314
+
let cur_height = self.best_block.read().unwrap().height() + 1;
1296
1315
// Theoretically, channel counterparty shouldn't send us a HTLC expiring now, but we want to be robust wrt to counterparty
1297
1316
// packet sanitization (see HTLC_FAIL_BACK_BUFFER rational)
1298
1317
if msg.cltv_expiry <= cur_height + HTLC_FAIL_BACK_BUFFERasu32{// expiry_too_soon
Copy file name to clipboardExpand all lines: lightning/src/ln/functional_test_utils.rs
+2-3Lines changed: 2 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@
13
13
use chain::{Listen,Watch};
14
14
use chain::channelmonitor::ChannelMonitor;
15
15
use chain::transaction::OutPoint;
16
-
use ln::channelmanager::{ChainParameters,ChannelManager,ChannelManagerReadArgs,RAACommitmentOrder,PaymentPreimage,PaymentHash,PaymentSecret,PaymentSendFailure};
16
+
use ln::channelmanager::{BestBlock,ChainParameters,ChannelManager,ChannelManagerReadArgs,RAACommitmentOrder,PaymentPreimage,PaymentHash,PaymentSecret,PaymentSendFailure};
17
17
use routing::router::{Route, get_route};
18
18
use routing::network_graph::{NetGraphMsgHandler,NetworkGraph};
0 commit comments