Skip to content

Commit bcdf977

Browse files
committed
apollo_network: add BadPeerReport and PenaltyCard
1 parent f3aa1f7 commit bcdf977

File tree

1 file changed

+19
-0
lines changed
  • crates/apollo_network/src/network_manager

1 file changed

+19
-0
lines changed

crates/apollo_network/src/network_manager/mod.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use libp2p::gossipsub::{SubscriptionError, TopicHash};
2121
use libp2p::identity::Keypair;
2222
use libp2p::swarm::SwarmEvent;
2323
use libp2p::{noise, yamux, Multiaddr, PeerId, StreamProtocol, Swarm, SwarmBuilder};
24+
use serde::{Deserialize, Serialize};
2425
use tracing::{debug, error, trace, warn};
2526

2627
use self::swarm_trait::SwarmTrait;
@@ -1045,3 +1046,21 @@ pub struct BroadcastTopicChannels<T: TryFrom<Bytes>> {
10451046

10461047
type BroadcastReceivedMessagesConverterFn<T> =
10471048
fn((Bytes, BroadcastedMessageMetadata)) -> ReceivedBroadcastedMessage<T>;
1049+
1050+
// TODO(guyn): remove allow dead code once we use the duplicate vote report.
1051+
#[allow(dead_code)]
1052+
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
1053+
pub struct BadPeerReport {
1054+
pub peer_id: PeerId,
1055+
pub reason: String,
1056+
pub penalty_card: PenaltyCard,
1057+
}
1058+
1059+
/// Represents the severity of the bad peer behavior.
1060+
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
1061+
pub enum PenaltyCard {
1062+
/// Overtly malicious behavior.
1063+
Red,
1064+
/// Possibly sent malicious data on accident, will be considered malicious on repeat offenses.
1065+
Yellow,
1066+
}

0 commit comments

Comments
 (0)