|
126 | 126 | as either `DefiniteFailure` (safe to fail the attempt) or `IndefiniteFailure` |
127 | 127 | (client MUST retry). This is a **breaking change** for any clients of the |
128 | 128 | `SendOnion` RPC. |
| 129 | + |
| 130 | +* To support scenarios where an external entity, such as a remote router, |
| 131 | + manages the payment lifecycle via the Switch RPC server, the node must |
| 132 | + preserve the history of HTLC attempts across restarts. This [behavior](https://github.com/lightningnetwork/lnd/pull/10178) is now |
| 133 | + conditional on how the lnd binary is built. When compiled with the `switchrpc` |
| 134 | + build tag, the local `routing.ChannelRouter`'s automatic cleanup of the |
| 135 | + dispatcher's (Switch) attempt store on startup is disabled. This shifts the |
| 136 | + responsibility of state cleanup to the external controller, which is expected |
| 137 | + to use an RPC interface (e.g., switchrpc) to manage the lifecycle of attempts. |
| 138 | + Tying this behavior to a build tag, rather than a runtime flag, makes the |
| 139 | + binary's purpose explicit and prevents potential misconfigurations. |
| 140 | + |
| 141 | +* Add [`DisableRemoteRouter` rpc](https://github.com/lightningnetwork/lnd/pull/10178) |
| 142 | + to `switchrpc` which marks the database as no longer being used by a remote |
| 143 | + router. This is useful for migrating from a remote router setup back to the |
| 144 | + default embedded router. The external controller should first clean its |
| 145 | + results from the attempt store via `DeleteAttempts` (#10602); this RPC will |
| 146 | + fail if there are any remaining attempt entries. |
129 | 147 |
|
130 | 148 | * The `ChannelRouter` now supports a [configurable attempt reconciliation |
131 | 149 | hook](https://github.com/lightningnetwork/lnd/pull/10621) that runs for each |
|
0 commit comments