# Setting up a PeerManager
The PeerManager
is responsible for managing a set of peer connections and data associated with those peers.
# Adding a PeerManager
To add a PeerManager
to your application, run:
- Rust
- Kotlin
- Swift
use lightning::ln::peer_handler::{PeerManager};
let mut ephemeral_bytes = [0; 32];
rand::thread_rng().fill_bytes(&mut ephemeral_bytes);
let lightning_msg_handler = MessageHandler {
chan_handler: channel_manager,
route_handler: gossip_sync,
onion_message_handler: onion_messenger,
custom_message_handler: IgnoringMessageHandler {}
};
let peer_manager = PeerManager::new(
lightning_msg_handler,
cur_time.as_secs().try_into().map_err(|e| {
log_error!(logger, "Failed to get current time: {}", e);
BuildError::InvalidSystemTime
})?,
&ephemeral_bytes,
&logger,
&keys_manager
);
Implementation notes: if you did not initialize P2PGossipSync
in the previous step, you can initialize your own struct (which can be a dummy struct) that implements RoutingMessageHandler
Dependencies: ChannelManager
, RoutingMessageHandler
, KeysManager
, random bytes, Logger
References: Rust PeerManager
docs (opens new window), Rust RoutingMessageHandler
docs (opens new window), Java/Kotlin PeerManager
bindings (opens new window), Java/Kotlin RoutingMessageHandler
bindings (opens new window)