rpcserver: expose store final htlc resolutions flag on info call

The storage of final htlc resolutions is a safety-critical feature. By
exposing it through the GetInfo call, connected applications can
ensure that the feature is turned on and avoid relying on the assumption
that lnd was configured correctly.
This commit is contained in:
Joost Jager committed 2023-02-13 11:53:27 +01:00
1 parent db5dc4d360
commit 784c0631f3
5 files changed
+2137 -2114

No files matched your search

+3 -1
View File
@@ -81,7 +81,9 @@ current gossip sync query status.
after upgrading lnd.
This feature is [opt-in](https://github.com/lightningnetwork/lnd/pull/7341)
via a config flag.
via a config flag. The status of the flag is
[exposed](https://github.com/lightningnetwork/lnd/pull/7402) at run-time
through GetInfo.
* Zero-amount private invoices [now provide hop
hints](https://github.com/lightningnetwork/lnd/pull/7082), up to `maxHopHints`
+2107 -2094
View File
File diff suppressed because it is too large. Load diff
+3
View File
@@ -1912,6 +1912,9 @@ message GetInfoResponse {
Indicates whether the HTLC interceptor API is in always-on mode.
*/
bool require_htlc_interceptor = 21;
// Indicates whether final htlc resolutions are stored on disk.
bool store_final_htlc_resolutions = 22;
}
message GetRecoveryInfoRequest {
+4
View File
@@ -4769,6 +4769,10 @@
"require_htlc_interceptor": {
"type": "boolean",
"description": "Indicates whether the HTLC interceptor API is in always-on mode."
},
"store_final_htlc_resolutions": {
"type": "boolean",
"description": "Indicates whether final htlc resolutions are stored on disk."
}
}
},
+20 -19
View File
@@ -2893,25 +2893,26 @@ func (r *rpcServer) GetInfo(_ context.Context,
version := build.Version() + " commit=" + build.Commit
return &lnrpc.GetInfoResponse{
IdentityPubkey: encodedIDPub,
NumPendingChannels: nPendingChannels,
NumActiveChannels: activeChannels,
NumInactiveChannels: inactiveChannels,
NumPeers: uint32(len(serverPeers)),
BlockHeight: uint32(bestHeight),
BlockHash: bestHash.String(),
SyncedToChain: isSynced,
Testnet: isTestNet,
Chains: activeChains,
Uris: uris,
Alias: nodeAnn.Alias.String(),
Color: nodeColor,
BestHeaderTimestamp: bestHeaderTimestamp,
Version: version,
CommitHash: build.CommitHash,
SyncedToGraph: isGraphSynced,
Features: features,
RequireHtlcInterceptor: r.cfg.RequireInterceptor,
IdentityPubkey: encodedIDPub,
NumPendingChannels: nPendingChannels,
NumActiveChannels: activeChannels,
NumInactiveChannels: inactiveChannels,
NumPeers: uint32(len(serverPeers)),
BlockHeight: uint32(bestHeight),
BlockHash: bestHash.String(),
SyncedToChain: isSynced,
Testnet: isTestNet,
Chains: activeChains,
Uris: uris,
Alias: nodeAnn.Alias.String(),
Color: nodeColor,
BestHeaderTimestamp: bestHeaderTimestamp,
Version: version,
CommitHash: build.CommitHash,
SyncedToGraph: isGraphSynced,
Features: features,
RequireHtlcInterceptor: r.cfg.RequireInterceptor,
StoreFinalHtlcResolutions: r.cfg.StoreFinalHtlcResolutions,
}, nil
}