Просмотр исходного кода

event_graph: remove InvItem id field

Dastan-glitch 3 лет назад
Родитель
Сommit
5a3d609830
2 измененных файлов с 10 добавлено и 18 удалено
  1. 6 8
      src/event_graph/mod.rs
  2. 4 10
      src/event_graph/protocol_event.rs

+ 6 - 8
src/event_graph/mod.rs

@@ -36,13 +36,12 @@ mod tests {
     use super::{
         events_queue::EventsQueue,
         model::{Event, EventId, Model},
-        protocol_event::{Inv, InvId, InvItem, Seen, SeenPtr},
+        protocol_event::{Inv, InvItem, Seen, SeenPtr},
         view::View,
         EventMsg,
     };
     use crate::util::time::Timestamp;
     use darkfi_serial::{SerialDecodable, SerialEncodable};
-    use rand::{rngs::OsRng, RngCore};
 
     #[derive(Clone, Debug, SerialEncodable, SerialDecodable)]
     struct TestEvent {
@@ -65,7 +64,7 @@ mod tests {
 
         // Buffers
         let seen_event: SeenPtr<EventId> = Seen::new();
-        let seen_inv: SeenPtr<InvId> = Seen::new();
+        let seen_inv: SeenPtr<EventId> = Seen::new();
 
         let seen_ids = Seen::new();
         // Keeps track of the events we received, but haven't read yet
@@ -92,13 +91,12 @@ mod tests {
         // Add the event into the model
         model.add(event0.clone()).await;
 
-        // Send inventory? Why is there both an ID and a hash?
-        let id0 = OsRng.next_u64();
-        let inv0 = Inv { invs: vec![InvItem { id: id0, hash: event0.hash() }] };
+        // Send inventory
+        let inv0 = Inv { invs: vec![InvItem { hash: event0.hash() }] };
         // Simulate recieving the inventory
-        assert!(seen_inv.push(&inv0.invs[0].id).await);
+        assert!(seen_inv.push(&inv0.invs[0].hash).await);
         // Simulate recieving the inventory again
-        assert!(!seen_inv.push(&inv0.invs[0].id).await);
+        assert!(!seen_inv.push(&inv0.invs[0].hash).await);
 
         // TODO: getdata (self.send_getdata(vec![inv_item.hash]).await?)
 

+ 4 - 10
src/event_graph/protocol_event.rs

@@ -22,7 +22,6 @@ use async_std::sync::{Arc, Mutex};
 use async_trait::async_trait;
 use darkfi_serial::{Decodable, Encodable, SerialDecodable, SerialEncodable};
 use log::{debug, info};
-use rand::{rngs::OsRng, RngCore};
 
 use super::EventMsg;
 use crate::{
@@ -33,13 +32,9 @@ use crate::{
 };
 
 const SIZE_OF_SEEN_BUFFER: usize = 65536;
-// const MAX_CONFIRM: u8 = 3;
-
-pub type InvId = u64;
 
 #[derive(SerialEncodable, SerialDecodable, Clone, Debug, PartialEq, Eq, Hash)]
 pub struct InvItem {
-    pub id: InvId,
     pub hash: EventId,
 }
 
@@ -92,7 +87,7 @@ where
     channel: net::ChannelPtr,
     model: ModelPtr<T>,
     seen_event: SeenPtr<EventId>,
-    seen_inv: SeenPtr<InvId>,
+    seen_inv: SeenPtr<EventId>,
 }
 
 impl<T> ProtocolEvent<T>
@@ -104,7 +99,7 @@ where
         p2p: net::P2pPtr,
         model: ModelPtr<T>,
         seen_event: SeenPtr<EventId>,
-        seen_inv: SeenPtr<InvId>,
+        seen_inv: SeenPtr<EventId>,
     ) -> net::ProtocolBasePtr {
         let message_subsytem = channel.get_message_subsystem();
         message_subsytem.add_dispatch::<Event<T>>().await;
@@ -170,7 +165,7 @@ where
             let inv_item = inv.invs[0].clone();
 
             // for inv in inv.invs.iter() {
-            if !self.seen_inv.push(&inv_item.id).await {
+            if !self.seen_inv.push(&inv_item.hash).await {
                 continue
             }
 
@@ -242,8 +237,7 @@ where
     }
 
     async fn send_inv(&self, event: &Event<T>) -> Result<()> {
-        let id = OsRng.next_u64();
-        self.p2p.broadcast(Inv { invs: vec![InvItem { id, hash: event.hash() }] }).await?;
+        self.p2p.broadcast(Inv { invs: vec![InvItem { hash: event.hash() }] }).await?;
 
         Ok(())
     }