You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/lightning-primer-for-qa.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,13 +34,13 @@ The **fix path** uses **`accept_stale_channel_monitors`** so ldk-node can align
34
34
35
35
## What to test when Lightning / LDK storage changes
36
36
37
-
| Area | Why |
38
-
|------|-----|
39
-
|**Cold start**| Any path that reads/writes ChannelManager, monitors, or VSS must not pair **new** manager with **old** monitor. |
40
-
|**Backup / restore**| Restoring must be **consistent snapshots**; partial or older monitor alone is high risk. |
41
-
|**Migration**| RN → native or schema changes: avoid overwriting live data with **stale** remote copies. |
42
-
|**Recovery**| After `DangerousValue` / `accept_stale`: peers reconnect, chain sync completes, **inbound and outbound** payments work, **second launch** does not repeat recovery forever. |
43
-
|**Infra noise**| On regtest, **stale RGS** / gossip can cause transient **“route not found”** — distinguish from persistence bugs (see logs for `DangerousValue` vs routing errors). |
|**Cold start**| Any path that reads/writes ChannelManager, monitors, or VSS must not pair **new** manager with **old** monitor.|
40
+
|**Backup / restore**| Restoring must be **consistent snapshots**; partial or older monitor alone is high risk. |
41
+
|**Migration**| RN → native or schema changes: avoid overwriting live data with **stale** remote copies.|
42
+
|**Recovery**| After `DangerousValue` / `accept_stale`: peers reconnect, chain sync completes, **inbound and outbound** payments work, **second launch** does not repeat recovery forever. |
43
+
|**Infra noise**| On regtest, **stale RGS** / gossip can cause transient **“route not found”** — distinguish from persistence bugs (see logs for `DangerousValue` vs routing errors).|
44
44
45
45
## Risks of incorrect “fixes”
46
46
@@ -50,13 +50,13 @@ The **fix path** uses **`accept_stale_channel_monitors`** so ldk-node can align
50
50
51
51
## Glossary
52
52
53
-
| Term | Meaning |
54
-
|------|--------|
55
-
|**Commitment update**| New off-chain state (balances + HTLC set). |
56
-
|**`update_id`**| LDK’s persisted notion of how far the ChannelMonitor has advanced vs the ChannelManager for that channel. |
57
-
|**HTLC**|**Hash Time-Locked Contract** — conditional payment inside a commitment (hash lock + time lock). |
58
-
|**ChannelMonitor**| Per-channel persisted state for chain watching and dispute handling. |
59
-
|**DangerousValue**| LDK/ldk-node refusing to load because continuing would violate safety assumptions (e.g. stale monitor). |
|**Commitment update**| New off-chain state (balances + HTLC set).|
56
+
|**`update_id`**| LDK’s persisted notion of how far the ChannelMonitor has advanced vs the ChannelManager for that channel.|
57
+
|**HTLC**|**Hash Time-Locked Contract** — conditional payment inside a commitment (hash lock + time lock).|
58
+
|**ChannelMonitor**| Per-channel persisted state for chain watching and dispute handling.|
59
+
|**DangerousValue**| LDK/ldk-node refusing to load because continuing would violate safety assumptions (e.g. stale monitor).|
60
60
|**accept_stale_channel_monitors**| Explicit recovery mode to load despite mismatch, then heal via protocol + sync (use only in controlled recovery). |
Found 1 monitors on RN backup for pre-startup recovery
@@ -89,6 +93,7 @@ RN v1.1.6 local builds use `.env.test.template` (regtest + localhost Electrum).
89
93
**Critical**: The RN app's `.env.production` must point the backup server to **staging** (not localhost), because the native apps have `rnBackupServerHost` hardcoded to staging. If the RN app pushes to `127.0.0.1:3003` but the native app queries `bitkit.stag0.blocktank.to`, it will never find the channel monitors and the bug won't trigger.
90
94
91
95
In `.env.production` for the RN v1.1.6 build, set:
0 commit comments