From 5a4588972c8030557f00c2aca90efa2fd7106971 Mon Sep 17 00:00:00 2001 From: Max Fang Date: Fri, 16 Sep 2022 13:32:34 -0700 Subject: [PATCH 1/2] multi: Update LDK to v0.0.111 --- Cargo.lock | 111 ++++++++++++++++++--------- common/Cargo.toml | 10 +-- common/src/root_seed.rs | 2 +- lexe-ln/Cargo.toml | 10 +-- node/Cargo.toml | 12 +-- node/src/init.rs | 6 ++ node/src/lexe/channel_manager/mod.rs | 3 + node/src/lexe/peer_manager.rs | 18 ++++- node/src/lexe/persister.rs | 6 +- node/src/types/alias.rs | 20 +++-- 10 files changed, 133 insertions(+), 65 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 177c896fa..d1cd94174 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -191,6 +191,12 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b" +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "bit-set" version = "0.5.3" @@ -208,12 +214,12 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitcoin" -version = "0.28.1" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05bba324e6baf655b882df672453dbbc527bc938cadd27750ae510aaccc3a66a" +checksum = "9cb36de3b18ad25f396f9168302e36fb7e1e8923298ab3127da252d288d5af9d" dependencies = [ - "bech32", - "bitcoin_hashes", + "bech32 0.9.1", + "bitcoin_hashes 0.11.0", "secp256k1", "serde", ] @@ -224,7 +230,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "754eb4c7f35c031f33c95cc257b4c4192a5c9d3de637d3ee78ab052a3f35da57" dependencies = [ - "bech32", + "bech32 0.8.1", ] [[package]] @@ -232,15 +238,21 @@ name = "bitcoin_hashes" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "006cc91e1a1d99819bc5b8214be3555c1f0611b169f527a1fdc54ed1f2b745b0" + +[[package]] +name = "bitcoin_hashes" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" dependencies = [ "serde", ] [[package]] name = "bitcoincore-rpc" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0e67dbf7a9971e7f4276f6089e9e814ce0f624a03216b7d92d00351ae7fb3e" +checksum = "0261b2bb7617e0c91b452a837bbd1291fd34ad6990cb8e3ffc28239cc045b5ca" dependencies = [ "bitcoincore-rpc-json", "jsonrpc", @@ -251,9 +263,9 @@ dependencies = [ [[package]] name = "bitcoincore-rpc-json" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e2ae16202721ba8c3409045681fac790a5ddc791f05731a2df22c0c6bffc0f1" +checksum = "c231bea28e314879c5aef240f6052e8a72a369e3c9f9b20d9bfbb33ad18029b2" dependencies = [ "bitcoin", "serde", @@ -262,20 +274,20 @@ dependencies = [ [[package]] name = "bitcoind" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0831b9721892ce845a6acadd111311bee84f9e1cc0c5017b8213ec4437ccdfe2" +checksum = "d20472f6d789e14bfa199849f6f51e9c356c8996ace44edfda84ef50514cbd97" dependencies = [ - "bitcoin_hashes", + "bitcoin_hashes 0.10.0", "bitcoincore-rpc", "filetime", "flate2", - "home", "log", "tar", "tempfile", "ureq", "which", + "zip", ] [[package]] @@ -331,6 +343,27 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +[[package]] +name = "bzip2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + [[package]] name = "cc" version = "1.0.73" @@ -960,15 +993,6 @@ dependencies = [ "libc", ] -[[package]] -name = "home" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654" -dependencies = [ - "winapi", -] - [[package]] name = "http" version = "0.2.8" @@ -1166,18 +1190,18 @@ dependencies = [ [[package]] name = "lightning" -version = "0.0.110" +version = "0.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dce6da860338d5a9ddc3fd42432465310cfab93b342bbd23b41b7c1f7c509d3" +checksum = "d86c207bcbca1c9dfb3668b81e2ad35b81370e583f2f8c5ee642a9f07925b05e" dependencies = [ "bitcoin", ] [[package]] name = "lightning-block-sync" -version = "0.0.110" +version = "0.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cee1ad5df24c87e5d09a655af9d36e12c193961c908b71fd1a5fa39f01cfa0d" +checksum = "1d1bb816be90f9b182627822ba3ed0b68cbf29315228fe54e4436fe5ad12df25" dependencies = [ "bitcoin", "chunked_transfer", @@ -1189,12 +1213,12 @@ dependencies = [ [[package]] name = "lightning-invoice" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32aa02b7fd0bd95e40b6ca8d9d9232b162d5e23b41bd2bc42abe9e9c78d34d72" +checksum = "023d5bd83191e13281b877526efb503a96aaae7ef97c7ba6359ba73f9c1bee11" dependencies = [ - "bech32", - "bitcoin_hashes", + "bech32 0.9.1", + "bitcoin_hashes 0.11.0", "lightning", "num-traits", "secp256k1", @@ -1202,9 +1226,9 @@ dependencies = [ [[package]] name = "lightning-net-tokio" -version = "0.0.110" +version = "0.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce57d093fbc643835bc64c0501b52a3531d2511dcb1237d0495d68fea3adc47d" +checksum = "1ce3c24e8e3d2c34ec503d3a0f76c07b0f4815705737a6a739058638c774580a" dependencies = [ "bitcoin", "lightning", @@ -1989,19 +2013,20 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.22.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26947345339603ae8395f68e2f3d85a6b0a8ddfe6315818e80b8504415099db0" +checksum = "b7649a0b3ffb32636e60c7ce0d70511eda9c52c658cd0634e194d5a19943aeff" dependencies = [ + "bitcoin_hashes 0.11.0", "secp256k1-sys", "serde", ] [[package]] name = "secp256k1-sys" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "152e20a0fd0519390fc43ab404663af8a0b794273d2a91d60ad4a39f13ffe110" +checksum = "7058dc8eaf3f2810d7828680320acda0b25a288f6d288e19278e249bbf74226b" dependencies = [ "cc", ] @@ -2936,3 +2961,17 @@ name = "zeroize" version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" + +[[package]] +name = "zip" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" +dependencies = [ + "byteorder", + "bzip2", + "crc32fast", + "flate2", + "thiserror", + "time 0.1.44", +] diff --git a/common/Cargo.toml b/common/Cargo.toml index 25250dab9..6b14bb4be 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -13,16 +13,16 @@ edition = "2021" [dependencies] # --- BITCOIN --- # -bitcoin = { version = "0.28.1", features = ["std", "use-serde"] } +bitcoin = { version = "0.29", features = ["std", "serde"] } bitcoin-bech32 = "0.12" base64 = "0.13.0" # --- LIGHTNING --- # -lightning = { version = "0.0.110", features = ["max_level_trace"] } -# lightning-block-sync = { version = "0.0.110", features = [ "rpc-client" ] } -lightning-invoice = { version = "0.18" } -# lightning-net-tokio = { version = "0.0.110" } +lightning = { version = "0.0.111", features = ["max_level_trace"] } +# lightning-block-sync = { version = "0.0.111", features = [ "rpc-client" ] } +lightning-invoice = { version = "0.19" } +# lightning-net-tokio = { version = "0.0.111" } # lightning = { git = "https://github.com/lexe-tech/rust-lightning", features = ["max_level_trace"], branch = "main" } # lightning-block-sync = { git = "https://github.com/lexe-tech/rust-lightning", features = [ "rpc-client" ], branch = "main" } diff --git a/common/src/root_seed.rs b/common/src/root_seed.rs index eeffe4d8a..411cbb61e 100644 --- a/common/src/root_seed.rs +++ b/common/src/root_seed.rs @@ -115,7 +115,7 @@ impl RootSeed { .ckd_priv(&secp_ctx, child_number) .expect("should never fail") .private_key; - KeyPair::from_secret_key(&secp_ctx, node_sk) + KeyPair::from_secret_key(&secp_ctx, &node_sk) } /// Derive the Lightning node pubkey. diff --git a/lexe-ln/Cargo.toml b/lexe-ln/Cargo.toml index 855f9b4c0..d0f48b514 100644 --- a/lexe-ln/Cargo.toml +++ b/lexe-ln/Cargo.toml @@ -19,17 +19,17 @@ common = { path = "../common" } # --- BITCOIN --- # -bitcoin = { version = "0.28.1", features = ["use-serde"] } +bitcoin = { version = "0.29", features = ["serde"] } bitcoin-bech32 = "0.12" # bech32 = "0.8" base64 = "0.13.0" # --- LIGHTNING --- # -lightning = { version = "0.0.110", features = ["max_level_trace"] } -lightning-block-sync = { version = "0.0.110", features = [ "rpc-client" ] } -lightning-invoice = { version = "0.18" } -lightning-net-tokio = { version = "0.0.110" } +lightning = { version = "0.0.111", features = ["max_level_trace"] } +lightning-block-sync = { version = "0.0.111", features = [ "rpc-client" ] } +lightning-invoice = { version = "0.19" } +lightning-net-tokio = { version = "0.0.111" } # lightning = { git = "https://github.com/lexe-tech/rust-lightning", features = # ["max_level_trace"], branch = "main" } # lightning-block-sync = { git = "https://github.com/lexe-tech/rust-lightning", # features = [ "rpc-client" ], branch = "main" } diff --git a/node/Cargo.toml b/node/Cargo.toml index 00d172ee1..f0a5fa92a 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -21,17 +21,17 @@ lexe-ln = { path = "../lexe-ln" } # --- BITCOIN --- # -bitcoin = { version = "0.28.1", features = ["use-serde"] } +bitcoin = { version = "0.29", features = ["serde"] } bitcoin-bech32 = "0.12" # bech32 = "0.8" base64 = "0.13.0" # --- LIGHTNING --- # -lightning = { version = "0.0.110", features = ["max_level_trace"] } -lightning-block-sync = { version = "0.0.110", features = [ "rpc-client" ] } -lightning-invoice = { version = "0.18" } -lightning-net-tokio = { version = "0.0.110" } +lightning = { version = "0.0.111", features = ["max_level_trace"] } +lightning-block-sync = { version = "0.0.111", features = [ "rpc-client" ] } +lightning-invoice = { version = "0.19" } +lightning-net-tokio = { version = "0.0.111" } # lightning = { git = "https://github.com/lexe-tech/rust-lightning", features = # ["max_level_trace"], branch = "main" } # lightning-block-sync = { git = "https://github.com/lexe-tech/rust-lightning", # features = [ "rpc-client" ], branch = "main" } @@ -122,7 +122,7 @@ tokio = { version = "=1.15.0", default-features = false, features = [ [target.'cfg(not(target_env = "sgx"))'.dev-dependencies] # Run bitcoin regtest for tests -bitcoind = { version = "0.26", features = [ "22_0" ] } +bitcoind = { version = "0.27", features = [ "22_0" ] } # Enable all default features outside SGX for better test convenience proptest = "1" diff --git a/node/src/init.rs b/node/src/init.rs index ac9030583..d0037fdfc 100644 --- a/node/src/init.rs +++ b/node/src/init.rs @@ -29,6 +29,7 @@ use lightning::chain; use lightning::chain::chainmonitor::ChainMonitor; use lightning::chain::keysinterface::KeysInterface; use lightning::chain::transaction::OutPoint; +use lightning::onion_message::OnionMessenger; use lightning::routing::gossip::P2PGossipSync; use lightning_invoice::payment; use lightning_invoice::utils::DefaultRouter; @@ -223,12 +224,17 @@ impl UserNode { scorer_res.context("Could not read probabilistic scorer")?; let scorer = Arc::new(Mutex::new(scorer)); + // Init onion messenger + let onion_messenger = + Arc::new(OnionMessenger::new(keys_manager.clone(), logger.clone())); + // Initialize PeerManager let peer_manager = NodePeerManager::init( rng, &keys_manager, channel_manager.clone(), gossip_sync.clone(), + onion_messenger, logger.clone(), ); diff --git a/node/src/lexe/channel_manager/mod.rs b/node/src/lexe/channel_manager/mod.rs index 8f298a901..1db6d70d1 100644 --- a/node/src/lexe/channel_manager/mod.rs +++ b/node/src/lexe/channel_manager/mod.rs @@ -80,6 +80,9 @@ const CHANNEL_HANDSHAKE_CONFIG: ChannelHandshakeConfig = // so that it is possible to sweep all funds to an address // specified at the time of channel close. commit_upfront_shutdown_pubkey: false, + // The counterparty must reserve 1% of the total channel value to be + // claimable by us on-chain in the case of a channel breach. + their_channel_reserve_proportional_millionths: 10_000, }; const CHANNEL_HANDSHAKE_LIMITS: ChannelHandshakeLimits = diff --git a/node/src/lexe/peer_manager.rs b/node/src/lexe/peer_manager.rs index 9f6c7d1bd..1df3dfd51 100644 --- a/node/src/lexe/peer_manager.rs +++ b/node/src/lexe/peer_manager.rs @@ -3,7 +3,7 @@ use std::net::SocketAddr; use std::ops::Deref; use std::str::FromStr; use std::sync::Arc; -use std::time::Duration; +use std::time::{Duration, SystemTime, UNIX_EPOCH}; use anyhow::{bail, Context}; use bitcoin::secp256k1::PublicKey; @@ -17,7 +17,7 @@ use tokio::net::TcpStream; use tokio::time; use crate::lexe::channel_manager::NodeChannelManager; -use crate::types::{P2PGossipSyncType, PeerManagerType}; +use crate::types::{OnionMessengerType, P2PGossipSyncType, PeerManagerType}; const CONNECT_TIMEOUT: Duration = Duration::from_secs(5); @@ -38,6 +38,7 @@ impl NodePeerManager { keys_manager: &LexeKeysManager, channel_manager: NodeChannelManager, gossip_sync: Arc, + onion_messenger: Arc, logger: LexeTracingLogger, ) -> Self { let mut ephemeral_bytes = Zeroizing::new([0u8; 32]); @@ -46,14 +47,27 @@ impl NodePeerManager { let lightning_msg_handler = MessageHandler { chan_handler: channel_manager, route_handler: gossip_sync, + onion_message_handler: onion_messenger, }; let node_secret = keys_manager .get_node_secret(Recipient::Node) .expect("Always succeeds when called with Recipient::Node"); + // `current_time` is supposed to be monotonically increasing across node + // restarts, but since secure timekeeping within an enclave is a hard + // problem, and this field is used to help peers choose between + // multiple node announcements (it becomes last_node_announcement_serial + // which then becomes the timestamp field of UnsignedNodeAnnouncement + // which is specified in BOLT#07), using the system time is fine. + let current_time = SystemTime::now() + .duration_since(UNIX_EPOCH) + .expect("System time is before Unix epoch") + .as_secs(); + let peer_manager: PeerManagerType = PeerManagerType::new( lightning_msg_handler, node_secret, + current_time, &ephemeral_bytes, logger, Arc::new(IgnoringMessageHandler {}), diff --git a/node/src/lexe/persister.rs b/node/src/lexe/persister.rs index 16ff5a5d6..9f3cd40a2 100644 --- a/node/src/lexe/persister.rs +++ b/node/src/lexe/persister.rs @@ -31,7 +31,7 @@ use crate::lexe::channel_manager::{LxChannelMonitorUpdate, USER_CONFIG}; use crate::lexe::peer_manager::ChannelPeer; use crate::types::{ ApiClientType, ChainMonitorType, ChannelManagerType, ChannelMonitorType, - LoggerType, NetworkGraphType, ProbabilisticScorerType, SignerType, + NetworkGraphType, ProbabilisticScorerType, SignerType, }; // Singleton objects use SINGLETON_DIRECTORY with a fixed filename @@ -201,7 +201,7 @@ impl InnerPersister { pub async fn read_probabilistic_scorer( &self, graph: Arc, - logger: LoggerType, + logger: LexeTracingLogger, ) -> anyhow::Result { debug!("Reading probabilistic scorer"); let params = ProbabilisticScoringParameters::default(); @@ -238,7 +238,7 @@ impl InnerPersister { pub async fn read_network_graph( &self, genesis_hash: BlockHash, - logger: LoggerType, + logger: LexeTracingLogger, ) -> anyhow::Result { debug!("Reading network graph"); let ng_file_id = NodeFileId::new( diff --git a/node/src/types/alias.rs b/node/src/types/alias.rs index 5a0795db9..8d49b2329 100644 --- a/node/src/types/alias.rs +++ b/node/src/types/alias.rs @@ -11,6 +11,7 @@ use lightning::chain::{Access, Filter}; use lightning::ln::channelmanager::ChannelManager; use lightning::ln::peer_handler::{IgnoringMessageHandler, PeerManager}; use lightning::ln::PaymentHash; +use lightning::onion_message::OnionMessenger; use lightning::routing::gossip::{NetworkGraph, P2PGossipSync}; use lightning::routing::scoring::ProbabilisticScorer; use lightning_invoice::payment; @@ -35,10 +36,14 @@ pub type ChainMonitorType = ChainMonitor< NodePersister, >; +pub type OnionMessengerType = + OnionMessenger; + pub type PeerManagerType = PeerManager< SocketDescriptor, NodeChannelManager, Arc, + Arc, LexeTracingLogger, Arc, >; @@ -71,15 +76,16 @@ pub type InvoicePayerType = payment::InvoicePayer< >; pub type ProbabilisticScorerType = - ProbabilisticScorer, LoggerType>; + ProbabilisticScorer, LexeTracingLogger>; -pub type RouterType = DefaultRouter, LoggerType>; +pub type RouterType = DefaultRouter, LexeTracingLogger>; -pub type P2PGossipSyncType = - P2PGossipSync, Arc, LoggerType>; +pub type P2PGossipSyncType = P2PGossipSync< + Arc, + Arc, + LexeTracingLogger, +>; -pub type NetworkGraphType = NetworkGraph; +pub type NetworkGraphType = NetworkGraph; pub type ChainAccessType = dyn Access + Send + Sync; - -pub type LoggerType = LexeTracingLogger; From 17c14544b650ff4725961ffff94b57b64475ae91 Mon Sep 17 00:00:00 2001 From: Max Fang Date: Tue, 9 Aug 2022 21:21:47 -0700 Subject: [PATCH 2/2] bgp: Use get_persistable_update_future() --- Cargo.lock | 250 +++++++++++++------------- node/src/lexe/background_processor.rs | 34 ++-- 2 files changed, 142 insertions(+), 142 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d1cd94174..790343ae8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -48,9 +48,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.61" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "508b352bb5c066aac251f6daf6b36eccd03e8a88e8081cd44959ea277a3af9a8" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" [[package]] name = "argh" @@ -94,7 +94,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.13", + "time 0.3.14", ] [[package]] @@ -159,7 +159,7 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.5.3", + "miniz_oxide 0.5.4", "object", "rustc-demangle", ] @@ -298,33 +298,33 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] [[package]] name = "bumpalo" -version = "3.10.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bytemuck" -version = "1.11.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.1.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd2f4180c5721da6335cc9e9061cce522b87a35e51cc57636d28d22a9863c80" +checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9" dependencies = [ "proc-macro2 1.0.43", "quote 1.0.21", @@ -484,7 +484,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3818dfca4b0cb5211a659bbcbb94225b7127407b2b135e650d717bfb78ab10d3" dependencies = [ "cookie", - "idna", + "idna 0.2.3", "log", "publicsuffix", "serde", @@ -495,9 +495,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -655,9 +655,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" dependencies = [ "block-buffer", "crypto-common", @@ -683,9 +683,9 @@ dependencies = [ [[package]] name = "either" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "enclave-runner" @@ -796,11 +796,10 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] @@ -811,9 +810,9 @@ source = "git+https://github.com/lexe-tech/rust-sgx?branch=lexe#70d11205fed08e49 [[package]] name = "futures" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" dependencies = [ "futures-channel", "futures-core", @@ -826,9 +825,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" dependencies = [ "futures-core", "futures-sink", @@ -836,15 +835,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" dependencies = [ "futures-core", "futures-task", @@ -853,15 +852,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" dependencies = [ "proc-macro2 1.0.43", "quote 1.0.21", @@ -870,21 +869,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" dependencies = [ "futures-channel", "futures-core", @@ -927,9 +926,9 @@ checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" [[package]] name = "h2" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ "bytes", "fnv", @@ -952,9 +951,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "headers" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64", "bitflags", @@ -963,7 +962,7 @@ dependencies = [ "http", "httpdate", "mime", - "sha-1", + "sha1 0.10.5", ] [[package]] @@ -1017,9 +1016,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -1074,6 +1073,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "indexmap" version = "1.9.1" @@ -1124,9 +1133,9 @@ checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "js-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -1174,9 +1183,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.129" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64de3cc433455c14174d42e554d4027ee631c4d046d43e3ecc6efc4636cdc7a7" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libloading" @@ -1305,9 +1314,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -1499,9 +1508,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" [[package]] name = "openssl" @@ -1544,24 +1553,24 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pin-project" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2 1.0.43", "quote 1.0.21", @@ -1690,7 +1699,7 @@ version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95b4ce31ff0a27d93c8de1849cf58162283752f065a90d508f1105fa6c9a213f" dependencies = [ - "idna", + "idna 0.2.3", "url", ] @@ -1756,9 +1765,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] @@ -1779,7 +1788,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "ring", - "time 0.3.13", + "time 0.3.14", "yasna", ] @@ -2057,18 +2066,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.143" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" +checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.143" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" +checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" dependencies = [ "proc-macro2 1.0.43", "quote 1.0.21", @@ -2077,9 +2086,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "itoa", "ryu", @@ -2157,23 +2166,23 @@ dependencies = [ ] [[package]] -name = "sha-1" -version = "0.10.0" +name = "sha1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest", + "sha1_smol", ] [[package]] name = "sha1" -version = "0.6.1" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ - "sha1_smol", + "cfg-if 1.0.0", + "cpufeatures", + "digest", ] [[package]] @@ -2202,9 +2211,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi", @@ -2264,7 +2273,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "sha1", + "sha1 0.6.1", "syn 1.0.99", ] @@ -2311,7 +2320,7 @@ dependencies = [ "proc-macro2 1.0.43", "quote 1.0.21", "syn 1.0.99", - "unicode-xid 0.2.3", + "unicode-xid 0.2.4", ] [[package]] @@ -2341,18 +2350,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783" dependencies = [ "proc-macro2 1.0.43", "quote 1.0.21", @@ -2396,9 +2405,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db76ff9fa4b1458b3c7f077f3ff9887394058460d21e634355b273aaf11eea45" +checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" dependencies = [ "itoa", "libc", @@ -2611,24 +2620,24 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" [[package]] name = "unicode-normalization" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" [[package]] name = "unicode-xid" @@ -2638,9 +2647,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "unix_socket2" @@ -2678,13 +2687,12 @@ dependencies = [ [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", - "idna", - "matches", + "idna 0.3.0", "percent-encoding", ] @@ -2774,9 +2782,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -2784,9 +2792,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", "log", @@ -2799,9 +2807,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2811,9 +2819,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote 1.0.21", "wasm-bindgen-macro-support", @@ -2821,9 +2829,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2 1.0.43", "quote 1.0.21", @@ -2834,15 +2842,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "web-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", @@ -2879,13 +2887,13 @@ dependencies = [ [[package]] name = "which" -version = "4.2.5" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" dependencies = [ "either", - "lazy_static", "libc", + "once_cell", ] [[package]] @@ -2934,7 +2942,7 @@ dependencies = [ "oid-registry", "rusticata-macros", "thiserror", - "time 0.3.13", + "time 0.3.14", ] [[package]] @@ -2953,7 +2961,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" dependencies = [ "num-bigint", - "time 0.3.13", + "time 0.3.14", ] [[package]] diff --git a/node/src/lexe/background_processor.rs b/node/src/lexe/background_processor.rs index 9601d4954..67e74f4ea 100644 --- a/node/src/lexe/background_processor.rs +++ b/node/src/lexe/background_processor.rs @@ -19,7 +19,6 @@ use crate::types::{ const PROCESS_EVENTS_INTERVAL: Duration = Duration::from_millis(1000); const PEER_MANAGER_PING_INTERVAL: Duration = Duration::from_secs(15); const CHANNEL_MANAGER_TICK_INTERVAL: Duration = Duration::from_secs(60); -const CHANNEL_MANAGER_POLL_INTERVAL: Duration = Duration::from_millis(1000); const NETWORK_GRAPH_INITIAL_DELAY: Duration = Duration::from_secs(60); const NETWORK_GRAPH_PRUNE_INTERVAL: Duration = Duration::from_secs(15 * 60); const PROB_SCORER_PERSIST_INTERVAL: Duration = Duration::from_secs(5 * 60); @@ -45,7 +44,6 @@ impl LexeBackgroundProcessor { let mut process_timer = interval(PROCESS_EVENTS_INTERVAL); let mut pm_timer = interval(PEER_MANAGER_PING_INTERVAL); let mut cm_tick_timer = interval(CHANNEL_MANAGER_TICK_INTERVAL); - let mut cm_poll_timer = interval(CHANNEL_MANAGER_POLL_INTERVAL); let start = Instant::now() + NETWORK_GRAPH_INITIAL_DELAY; let mut ng_timer = interval_at(start, NETWORK_GRAPH_PRUNE_INTERVAL); let mut ps_timer = interval(PROB_SCORER_PERSIST_INTERVAL); @@ -71,25 +69,19 @@ impl LexeBackgroundProcessor { } // --- Persistence branches --- // - _ = cm_poll_timer.tick() => { - trace!("Polling channel manager for updates"); - // TODO Use get_persistence_condvar_value instead - let timeout = Duration::from_millis(10); - let needs_persist = channel_manager - .await_persistable_update_timeout(timeout); - if needs_persist { - let persist_res = persister - .persist_manager(channel_manager.deref()) - .await; - if let Err(e) = persist_res { - // Failing to persist the channel manager won't - // lose funds so long as the chain monitors have - // been persisted correctly, but it's still - // serious - initiate a shutdown - error!("Couldn't persist channel manager: {:#}", e); - shutdown.send(); - break; - } + _ = channel_manager.get_persistable_update_future() => { + debug!("Persisting channel manager"); + let persist_res = persister + .persist_manager(channel_manager.deref()) + .await; + if let Err(e) = persist_res { + // Failing to persist the channel manager won't + // lose funds so long as the chain monitors have + // been persisted correctly, but it's still + // serious - initiate a shutdown + error!("Couldn't persist channel manager: {:#}", e); + shutdown.send(); + break; } } _ = ng_timer.tick() => {