Skip to content

Commit f7aed27

Browse files
author
Conor Okus
committed
Adds setting up a PeerManager page
1 parent 8c4079a commit f7aed27

File tree

3 files changed

+65
-2
lines changed

3 files changed

+65
-2
lines changed

docs/.vuepress/config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ const tutorialSidebar = [
132132
"/tutorials/building-a-node-with-ldk/setting-up-a-channel-manager",
133133
"Setting up a Channel Manager",
134134
],
135+
[
136+
"/tutorials/building-a-node-with-ldk/setting-up-a-peer-manager",
137+
"Setting up a Peer Manager",
138+
],
135139
],
136140
},
137141
],

docs/tutorials/building-a-node-with-ldk/setting-up-a-channel-manager.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -993,8 +993,6 @@ Otherwise, you can use LDK's `Confirm` interface as in the examples above. The h
993993

994994
**What it's used for:** generating routes to send payments over
995995
996-
**Example:** initializing `P2PGossipSync`
997-
998996
<CodeSwitcher :languages="{rust:'Rust', java:'Java', kotlin:'Kotlin'}">
999997
1000998
<template v-slot:rust>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Setting up a PeerManager
2+
3+
The Peer Manager is responsible for managing a set of peer connections and all data associated with those peers.
4+
5+
6+
## Adding a PeerManager
7+
8+
To add a PeerManager to your application, run:
9+
10+
<CodeSwitcher :languages="{rust:'Rust', java:'Java', kotlin:'Kotlin'}">
11+
<template v-slot:rust>
12+
13+
```rust
14+
use lightning::ln::peer_handler::{PeerManager};
15+
16+
let mut ephemeral_bytes = [0; 32];
17+
rand::thread_rng().fill_bytes(&mut ephemeral_bytes);
18+
19+
let lightning_msg_handler = MessageHandler {
20+
chan_handler: &channel_manager,
21+
route_handler: &gossip_sync,
22+
};
23+
24+
let ignoring_custom_msg_handler = IgnoringMessageHandler {};
25+
let peer_manager = PeerManager::new(
26+
lightning_msg_handler,
27+
keys_manager.get_node_secret(),
28+
&ephemeral_bytes,
29+
&logger,
30+
&ignoring_custom_msg_handler,
31+
);
32+
```
33+
</template>
34+
35+
<template v-slot:java>
36+
37+
```java
38+
import org.ldk.structs.PeerManager
39+
40+
PeerManager peerManager = channelManagerConstructor.peer_manager;
41+
```
42+
43+
</template>
44+
45+
<template v-slot:kotlin>
46+
47+
```kotlin
48+
import org.ldk.structs.PeerManager
49+
50+
val peerManager: PeerManager = channelManagerConstructor.peer_manager;
51+
```
52+
53+
</template>
54+
</CodeSwitcher>
55+
56+
**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`
57+
58+
**Dependencies:** `ChannelManager`, `RoutingMessageHandler`, `KeysManager`, random bytes, `Logger`
59+
60+
**References:** [Rust `PeerManager` docs](https://docs.rs/lightning/*/lightning/ln/peer_handler/struct.PeerManager.html), [Rust `RoutingMessageHandler` docs](https://docs.rs/lightning/*/lightning/ln/msgs/trait.RoutingMessageHandler.html), [Java `PeerManager` docs](https://github.com/lightningdevkit/ldk-garbagecollected/blob/main/src/main/java/org/ldk/structs/PeerManager.java), [Java `RoutingMessageHandler` docs](https://github.com/lightningdevkit/ldk-garbagecollected/blob/main/src/main/java/org/ldk/structs/RoutingMessageHandler.java)
61+

0 commit comments

Comments
 (0)