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-5
Original file line number
Diff line number
Diff line change
@@ -131,7 +131,7 @@ mod tests {
131
131
use lightning::chain::keysinterface::{Sign,InMemorySigner,KeysInterface,KeysManager};
132
132
use lightning::chain::transaction::OutPoint;
133
133
use lightning::get_event_msg;
134
-
use lightning::ln::channelmanager::{ChainParameters,ChannelManager,SimpleArcChannelManager};
134
+
use lightning::ln::channelmanager::{BestBlock,ChainParameters,ChannelManager,SimpleArcChannelManager};
135
135
use lightning::ln::features::InitFeatures;
136
136
use lightning::ln::msgs::ChannelMessageHandler;
137
137
use lightning::ln::peer_handler::{PeerManager,MessageHandler,SocketDescriptor};
@@ -192,14 +192,12 @@ mod tests {
192
192
let persister = Arc::new(FilesystemPersister::new(format!("{}_persister_{}", persist_dir, i)));
193
193
let seed = [i asu8;32];
194
194
let network = Network::Testnet;
195
-
let genesis_block = genesis_block(network);
196
-
let now = Duration::from_secs(genesis_block.header.timeasu64);
195
+
let now = Duration::from_secs(genesis_block(network).header.timeasu64);
197
196
let keys_manager = Arc::new(KeysManager::new(&seed, now.as_secs(), now.subsec_nanos()));
198
197
let chain_monitor = Arc::new(chainmonitor::ChainMonitor::new(Some(chain_source.clone()), tx_broadcaster.clone(), logger.clone(), fee_estimator.clone(), persister.clone()));
199
198
let params = ChainParameters{
200
199
network,
201
-
latest_hash: genesis_block.block_hash(),
202
-
latest_height:0,
200
+
best_block:BestBlock::from_genesis(network),
203
201
};
204
202
let manager = Arc::new(ChannelManager::new(fee_estimator.clone(), chain_monitor.clone(), tx_broadcaster, logger.clone(), keys_manager.clone(),UserConfig::default(), params));
205
203
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-3
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())));
1301
1320
}
1302
-
let cur_height = self.latest_block_height.load(Ordering::Acquire)asu32 + 1;
1321
+
let cur_height = self.best_block.read().unwrap().height() + 1;
1303
1322
// Theoretically, channel counterparty shouldn't send us a HTLC expiring now, but we want to be robust wrt to counterparty
1304
1323
// packet sanitization (see HTLC_FAIL_BACK_BUFFER rational)
1305
1324
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-3
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