Skip to content

Commit 29a1133

Browse files
author
Conor Okus
committed
Adds setting up a PeerManager page
1 parent a5e7c5c commit 29a1133

File tree

3 files changed

+63
-3
lines changed

3 files changed

+63
-3
lines changed

docs/.vuepress/config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ const tutorialSidebar = [
9595
collapsable: false,
9696
children: [
9797
['/tutorials/building-a-node-with-ldk/introduction', 'Introduction'],
98-
['/tutorials/building-a-node-with-ldk/setting-up-a-channel-manager', 'Setting up a Channel Manager']
98+
['/tutorials/building-a-node-with-ldk/setting-up-a-channel-manager', 'Setting up a Channel Manager'],
99+
['/tutorials/building-a-node-with-ldk/setting-up-a-peer-manager', 'Setting up a Peer Manager']
99100
]
100101
},
101102
],

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)