# Connecting Peers
First things first, let's join the Lightning Network! Connections to other peers
are established with PeerManager
. You'll need to know the pubkey and address
of another node that you want as a peer. Once the connection is established and
the handshake is complete, PeerManager
will show the peer's pubkey in its list
of peers.
- Rust
- Java
match lightning_net_tokio::connect_outbound(Arc::clone(&peer_manager), pubkey, address).await {
Some(connection_closed_future) => {
let mut connection_closed_future = Box::pin(connection_closed_future);
loop {
// Make sure the connection is still established.
match futures::poll!(&mut connection_closed_future) {
std::task::Poll::Ready(_) => {
panic!("ERROR: Peer disconnected before handshake completed");
}
std::task::Poll::Pending => {}
}
// Wait for the handshake to complete.
match peer_manager.get_peer_node_ids().iter().find(|id| **id == pubkey) {
Some(_) => break,
None => tokio::time::sleep(std::time::Duration::from_millis(10)).await,
}
}
}
None => panic!("ERROR: Failed to connect to peer"),
}