Skip to content

Commit 6f2617b

Browse files
authored
Merge pull request #105 from tnull/2023-04-improve-114-docs
Update setup docs for 0.0.114
2 parents 4809fcd + 913bccc commit 6f2617b

File tree

1 file changed

+19
-37
lines changed

1 file changed

+19
-37
lines changed

docs/setup.md

Lines changed: 19 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,16 @@ let seed = [UInt8](keyData)
201201
let timestampSeconds = UInt64(NSDate().timeIntervalSince1970)
202202
let timestampNanos = UInt32.init(truncating: NSNumber(value: timestampSeconds * 1000 * 1000))
203203
let keysManager = KeysManager(seed: seed, startingTimeSecs: timestampSeconds, startingTimeNanos: timestampNanos)
204-
let keysInterface = keysManager.asKeysInterface()
204+
```
205+
### NetworkGraph
206+
207+
If you intend to use the LDK's built-in routing algorithm, you will need to instantiate
208+
a `NetworkGraph` that can later be passed to the `ChannelManagerConstructor`:
209+
210+
```swift
211+
// main context (continued)
212+
213+
let networkGraph = NetworkGraph(network: .Regtest, logger: logger)
205214
```
206215

207216
### ChannelManager
@@ -213,7 +222,7 @@ a random block at a height that does not exist at the time of this writing.
213222

214223
```swift
215224
let latestBlockHash = [UInt8](Data(base64Encoded: "AAAAAAAAAAAABe5Xh25D12zkQuLAJQbBeLoF1tEQqR8=")!)
216-
let latestBlockHeight = 700123
225+
let latestBlockHeight = UInt32(700123)
217226
```
218227

219228
Second, we also need to initialize a default user config, which we simply do like this:
@@ -222,40 +231,18 @@ Second, we also need to initialize a default user config, which we simply do lik
222231
let userConfig = UserConfig.initWithDefault()
223232
```
224233

225-
Finally, we can proceed by instantiating the `ChannelManager` using `ChannelManagerConstructor`.
234+
Finally, we can proceed by instantiating the `ChannelManager` using `ChannelManagerConstructor`, for which we need `ChannelManagerConstructionParameters`.
226235

227236
```swift
228237
// main context (continued)
229238

230-
let channelManagerConstructor = ChannelManagerConstructor(
231-
network: Network.Bitcoin,
232-
config: userConfig,
233-
currentBlockchainTipHash: latestBlockHash,
234-
currentBlockchainTipHeight: latestBlockHeight,
235-
keysInterface: keysInterface,
236-
feeEstimator: feeEstimator,
237-
chainMonitor: chainMonitor,
238-
netGraph: nil, // see `NetworkGraph`
239-
txBroadcaster: broadcaster,
240-
logger: logger
241-
)
239+
let cmcParams = ChannelManagerConstructionParameters(config: userConfig, entropySource: keysManager.asEntropySource(), nodeSigner: keysManager.asNodeSigner(), signerProvider: keysManager.asSignerProvider(), feeEstimator: feeEstimator, chainMonitor: chainMonitor, txBroadcaster: broadcaster, logger: logger, enableP2PGossip: true)
242240

243-
let channelManager = channelManagerConstructor.channelManager
244-
```
241+
let channelManagerConstructor = ChannelManagerConstructor(network: .Regtest, currentBlockchainTipHash: latestBlockHash, currentBlockchainTipHeight: latestBlockHeight, netGraph: networkGraph, params: cmcParams)
245242

246-
### NetworkGraph
247-
248-
If you intend to use the LDK's built-in routing algorithm, you will need to instantiate
249-
a `NetworkGraph` that can later be passed to the `ChannelManagerConstructor`:
250-
251-
```swift
252-
// main context (continued)
253-
254-
let networkGraph = NetworkGraph(genesisHash: [UInt8](Data(base64Encoded: "AAAAAAAZ1micCFrhZYMek0/3Y65GoqbBcrPxtgqM4m8=")!), logger: logger)
243+
let channelManager = channelManagerConstructor.channelManager
255244
```
256245

257-
Note that a network graph instance needs to be provided upon initialization, which in turn requires the genesis block hash.
258-
259246
#### Serializing and restoring a ChannelManager
260247

261248
If you need to serialize a channel manager, you can simply call its write method on itself:
@@ -272,13 +259,9 @@ let serializedChannelMonitors: [[UInt8]] = []
272259
let channelManagerConstructor = try ChannelManagerConstructor(
273260
channelManagerSerialized: serializedChannelManager,
274261
channelMonitorsSerialized: serializedChannelMonitors,
275-
keysInterface: keysInterface,
276-
feeEstimator: feeEstimator,
277-
chainMonitor: chainMonitor,
278-
filter: filter,
279262
netGraphSerialized: nil, // or networkGraph
280-
txBroadcaster: broadcaster,
281-
logger: logger
263+
filter: filter,
264+
params: cmcParams,
282265
)
283266

284267
let channelManager = channelManagerConstructor.channelManager
@@ -292,7 +275,6 @@ Finally, let's get the peer handler. It has conveniently already been instantiat
292275
// main context (continued)
293276

294277
let peerManager = channelManagerConstructor.peerManager
278+
let tcpPeerHandler = channelManagerConstructor.getTCPPeerHandler()
279+
tcpPeerHandler.connect(address: "...", port: "...", theirNodeId: [..])
295280
```
296-
297-
Now, all that remains is setting up the actual syscalls that are necessary within
298-
the host environment, and route them to the appropriate LDK objects.

0 commit comments

Comments
 (0)