diff --git a/lib/core/network/requests.rs b/lib/core/network/requests.rs index b850c33cf777d83de09507abce60f8f56f7a8710..ca8f40a5100e858a310c18904a167367b657ba56 100644 --- a/lib/core/network/requests.rs +++ b/lib/core/network/requests.rs @@ -24,12 +24,12 @@ use dubp_documents::Blockstamp; /// Type containing a request addressed to the network module pub enum OldNetworkRequest { /// Get a current block of a specific node - GetCurrent(ModuleReqFullId, NodeFullId), - //GetBlock(NodeFullId, u64), + GetCurrent(ModuleReqFullId), + //GetBlock(u64), /// Get a blocks chunk from specified node - GetBlocks(ModuleReqFullId, NodeFullId, u32, u32), + GetBlocks(ModuleReqFullId, u32, u32), /// Get pending wot documents from specified node - GetRequirementsPending(ModuleReqFullId, NodeFullId, u32), + GetRequirementsPending(ModuleReqFullId, u32), /// Obtain the current network consensus GetConsensus(ModuleReqFullId), /// Getting the heads cache @@ -42,9 +42,9 @@ impl OldNetworkRequest { /// Get request full identitifier pub fn get_req_full_id(&self) -> ModuleReqFullId { match *self { - OldNetworkRequest::GetCurrent(ref req_id, _) - | OldNetworkRequest::GetBlocks(ref req_id, _, _, _) - | OldNetworkRequest::GetRequirementsPending(ref req_id, _, _) + OldNetworkRequest::GetCurrent(ref req_id) + | OldNetworkRequest::GetBlocks(ref req_id, _, _) + | OldNetworkRequest::GetRequirementsPending(ref req_id, _) | OldNetworkRequest::GetConsensus(ref req_id) | OldNetworkRequest::GetHeadsCache(ref req_id) | OldNetworkRequest::GetEndpoints(ref req_id) => *req_id, diff --git a/lib/modules/blockchain/blockchain/src/dunp/queries.rs b/lib/modules/blockchain/blockchain/src/dunp/queries.rs index ca58b32d69283b729ebd5d3487e1f9d3372cc901..cf225352019f916b9c4608d062baf602888bbe8c 100644 --- a/lib/modules/blockchain/blockchain/src/dunp/queries.rs +++ b/lib/modules/blockchain/blockchain/src/dunp/queries.rs @@ -45,7 +45,6 @@ pub fn request_chunk( ) -> (ModuleReqId, OldNetworkRequest) { let req = OldNetworkRequest::GetBlocks( ModuleReqFullId(BlockchainModule::name(), req_id), - NodeFullId::default(), *CHUNK_SIZE, from, ); diff --git a/lib/modules/blockchain/blockchain/src/lib.rs b/lib/modules/blockchain/blockchain/src/lib.rs index 6e7e24c93bbbbaae9b290f90c6f2e95eb837d457..81bfe17695f4a8e37eb6eabc203f0800a0d2fa3d 100644 --- a/lib/modules/blockchain/blockchain/src/lib.rs +++ b/lib/modules/blockchain/blockchain/src/lib.rs @@ -70,7 +70,6 @@ use durs_message::events::*; use durs_message::requests::*; use durs_message::responses::*; use durs_message::*; -use durs_network_documents::NodeFullId; use durs_wot::data::rusty::RustyWebOfTrust; use durs_wot::operations::distance::RustyDistanceCalculator; use durs_wot::NodeId; diff --git a/lib/modules/blockchain/blockchain/src/responses/received.rs b/lib/modules/blockchain/blockchain/src/responses/received.rs index a4edf39cbd7df772385d6551c0578b2aa92cab17..709fdd1de4dd5aaca35074219fcfc793d11a9c2d 100644 --- a/lib/modules/blockchain/blockchain/src/responses/received.rs +++ b/lib/modules/blockchain/blockchain/src/responses/received.rs @@ -33,7 +33,7 @@ pub fn receive_response( } } } - OldNetworkRequest::GetBlocks(_, _, _, _) => { + OldNetworkRequest::GetBlocks(_, _, _) => { if let NetworkResponse::Chunk(_, _, blocks) = network_response { dunp::receiver::receive_blocks(bc, blocks); } diff --git a/lib/modules/ws2p-v1-legacy/datas.rs b/lib/modules/ws2p-v1-legacy/datas.rs index d38f57f588315c576f4f3e5fff540dd023adcd47..89968a51f3c43f48a1a1350b08881efa54a3481d 100644 --- a/lib/modules/ws2p-v1-legacy/datas.rs +++ b/lib/modules/ws2p-v1-legacy/datas.rs @@ -297,9 +297,9 @@ impl WS2PModuleDatas { } else { // Connection closed by remote peer self.ws2p_endpoints - .get_mut(&ws2p_full_id) - .expect("Endpoint don't exist !") - .1 = WS2PConnectionState::Close; + .get_mut(&ws2p_full_id) + .expect("Endpoint don't exist !") + .1 = WS2PConnectionState::Close; } } WS2PConnectionMessagePayload::ValidAckMessage(response, new_con_state) => { @@ -428,12 +428,12 @@ impl WS2PModuleDatas { } // Detect timeout requests let mut requests_timeout = Vec::new(); - for &(ref req, ref _ws2p_full_id, ref timestamp) in + for &(ref req, ref ws2p_full_id, ref timestamp) in self.requests_awaiting_response.clone().values() { if SystemTime::now().duration_since(*timestamp).unwrap() > Duration::new(20, 0) { requests_timeout.push(req.get_req_full_id()); - warn!("request timeout : {:?}", req); + warn!("request timeout : {:?} (sent to {:?})", req, ws2p_full_id); } } // Delete (and resend) timeout requests diff --git a/lib/modules/ws2p-v1-legacy/lib.rs b/lib/modules/ws2p-v1-legacy/lib.rs index 4933771803e8d316aac240398ecb9449d6daa3a6..a501c583bc1b9649db4ebc691e8938c8be96c291 100644 --- a/lib/modules/ws2p-v1-legacy/lib.rs +++ b/lib/modules/ws2p-v1-legacy/lib.rs @@ -425,57 +425,47 @@ impl DursModule<DuRsConf, DursMsg> for WS2PModule { match *old_net_request { OldNetworkRequest::GetBlocks( ref req_id, - ref receiver, ref count, ref from, ) => { - if *receiver == NodeFullId::default() { - let mut receiver_index = 0; - let mut real_receiver = NodeFullId::default(); - for (ws2p_full_id, (_ep, state)) in - ws2p_module.ws2p_endpoints.clone() - { - if let WS2PConnectionState::Established = state - { - if receiver_index == next_receiver { - real_receiver = ws2p_full_id; - break; - } - receiver_index += 1; + let mut receiver_index = 0; + let mut real_receiver = None; + for (ws2p_full_id, (_ep, state)) in + ws2p_module.ws2p_endpoints.clone() + { + if let WS2PConnectionState::Established = state { + if receiver_index == next_receiver { + real_receiver = Some(ws2p_full_id); + break; } + receiver_index += 1; } - if real_receiver == NodeFullId::default() { - next_receiver = 0; - for (ws2p_full_id, (_ep, state)) in - ws2p_module.ws2p_endpoints.clone() + } + if real_receiver.is_none() { + next_receiver = 0; + for (ws2p_full_id, (_ep, state)) in + &ws2p_module.ws2p_endpoints + { + if let WS2PConnectionState::Established = *state { - if let WS2PConnectionState::Established = - state - { - real_receiver = ws2p_full_id; - break; - } + real_receiver = Some(*ws2p_full_id); + break; } - } else { - next_receiver += 1; - } - if real_receiver != NodeFullId::default() { - let _blocks_request_result = ws2p_module - .send_request_to_specific_node( - &real_receiver, - &OldNetworkRequest::GetBlocks( - *req_id, *receiver, *count, *from, - ), - ); } } else { + next_receiver += 1; + } + if let Some(real_receiver) = real_receiver { + debug!("WS2P: send req to: ({:?})", real_receiver); let _blocks_request_result = ws2p_module .send_request_to_specific_node( - &receiver, + &real_receiver, &OldNetworkRequest::GetBlocks( - *req_id, *receiver, *count, *from, + *req_id, *count, *from, ), ); + } else { + warn!("WS2P: not found peer to send request !"); } } OldNetworkRequest::GetEndpoints(ref _request) => {} @@ -628,13 +618,13 @@ impl DursModule<DuRsConf, DursMsg> for WS2PModule { let req_id = ModuleReqId(ws2p_module.requests_awaiting_response.len() as u32); let module_id = WS2PModule::name(); + debug!("WS2P: send req to: ({:?})", ws2p_full_id); let _current_request_result = ws2p_module .send_request_to_specific_node( &ws2p_full_id, - &OldNetworkRequest::GetCurrent( - ModuleReqFullId(module_id, req_id), - ws2p_full_id, - ), + &OldNetworkRequest::GetCurrent(ModuleReqFullId( + module_id, req_id, + )), ); if ws2p_module.uids_cache.get(&ws2p_full_id.1).is_none() { ws2p_module.send_dal_request(&BlockchainRequest::UIDs(vec![ @@ -746,7 +736,7 @@ impl DursModule<DuRsConf, DursMsg> for WS2PModule { } WS2PSignal::ReqResponse(req_id, req, recipient_full_id, response) => { match req { - OldNetworkRequest::GetCurrent(ref _req_id, _receiver) => { + OldNetworkRequest::GetCurrent(ref _req_id) => { info!("WS2PSignal::ReceiveCurrent({}, {:?})", req_id.0, req); if let Some(block) = parse_json_block(&response) { ws2p_module.send_network_req_response( @@ -760,12 +750,7 @@ impl DursModule<DuRsConf, DursMsg> for WS2PModule { ); } } - OldNetworkRequest::GetBlocks( - ref _req_id, - _node_full_id, - count, - from, - ) => { + OldNetworkRequest::GetBlocks(ref _req_id, count, from) => { info!( "WS2PSignal::ReceiveChunk({}, {} blocks from {})", req_id.0, count, from @@ -785,11 +770,7 @@ impl DursModule<DuRsConf, DursMsg> for WS2PModule { ); } } - OldNetworkRequest::GetRequirementsPending( - _req_id, - _receiver, - min_cert, - ) => { + OldNetworkRequest::GetRequirementsPending(_req_id, min_cert) => { info!( "WS2PSignal::ReceiveRequirementsPending({}, {})", req_id.0, min_cert @@ -1118,12 +1099,8 @@ mod tests { #[test] fn ws2p_requests() { let module_id = WS2PModule::name(); - let request = OldNetworkRequest::GetBlocks( - ModuleReqFullId(module_id, ModuleReqId(58)), - NodeFullId::default(), - 50, - 0, - ); + let request = + OldNetworkRequest::GetBlocks(ModuleReqFullId(module_id, ModuleReqId(58)), 50, 0); assert_eq!( network_request_to_json(&request), json!({ diff --git a/lib/modules/ws2p-v1-legacy/ws2p_requests.rs b/lib/modules/ws2p-v1-legacy/ws2p_requests.rs index 451e0e0bf97891ccd287dd48f1164d0bc053f81f..7ba0058b69cc05270e25207f0c8283e0d2fd94ec 100644 --- a/lib/modules/ws2p-v1-legacy/ws2p_requests.rs +++ b/lib/modules/ws2p-v1-legacy/ws2p_requests.rs @@ -2,10 +2,8 @@ use duniter_network::requests::OldNetworkRequest; pub fn network_request_to_json(request: &OldNetworkRequest) -> serde_json::Value { let (request_id, request_type, request_params) = match *request { - OldNetworkRequest::GetCurrent(ref req_full_id, _receiver) => { - (req_full_id.1, "CURRENT", json!({})) - } - OldNetworkRequest::GetBlocks(ref req_full_id, _receiver, count, from_mumber) => ( + OldNetworkRequest::GetCurrent(ref req_full_id) => (req_full_id.1, "CURRENT", json!({})), + OldNetworkRequest::GetBlocks(ref req_full_id, count, from_mumber) => ( req_full_id.1, "BLOCKS_CHUNK", json!({ @@ -13,7 +11,7 @@ pub fn network_request_to_json(request: &OldNetworkRequest) -> serde_json::Value "fromNumber": from_mumber }), ), - OldNetworkRequest::GetRequirementsPending(ref req_full_id, _receiver, min_cert) => ( + OldNetworkRequest::GetRequirementsPending(ref req_full_id, min_cert) => ( req_full_id.1, "WOT_REQUIREMENTS_OF_PENDING", json!({ "minCert": min_cert }),