Files
Sovran_SystemsOS/packages/albyhub/0004-lnd-only.patch
T
naturallaw777 d600198049 feat(albyhub): vendor v1.24.0 LND-only, no-frontend build
Replace the nixpkgs albyhub overrideAttrs patch-chain with a fully
vendored package at packages/albyhub for v1.24.0.

- modules/core/sovran-hub.nix: bump fallback version 1.8.0 -> 1.24.0
- modules/nwc-wallets.nix: build via pkgs.callPackage ../packages/albyhub
- packages/albyhub:
  - drop 0002-isolated-invoice-app-id.patch (fixed upstream)
  - add 0004-lnd-only.patch: strip LDK/Bark/Cashu/CLN/Phoenix backends
    from service/start.go, leaving only the LND case
  - add 0005-no-frontend.patch: remove //go:embed dist and the
    frontend handler registration
  - add default.nix: buildGoModule for v1.24.0 with no nodejs/yarn/
    bark-ffi-go/ldk-node deps (only stdenv.cc.cc), subPackages cmd/http

Keeps 0001-private-route-hints and 0003-loopback-bind-host. Does not
touch flake.nix, VERSION, or CHANGELOG.
2026-08-25 19:11:25 -05:00

142 lines
5.2 KiB
Diff

diff --git a/service/start.go b/service/start.go
index 8c9786a..4b992c7 100644
--- a/service/start.go
+++ b/service/start.go
@@ -5,7 +5,6 @@ import (
"errors"
"fmt"
"net/http"
- "path"
"strconv"
"time"
@@ -349,63 +348,12 @@ func (svc *service) launchLNBackend(ctx context.Context, encryptionKey string) e
logger.Logger.Infof("Launching LN Backend: %s", lnBackend)
var lnClient lnclient.LNClient
var err error
- vssEnabled := false
switch lnBackend {
case config.LNDBackendType:
LNDAddress, _ := svc.cfg.Get("LNDAddress", encryptionKey)
LNDCertHex, _ := svc.cfg.Get("LNDCertHex", encryptionKey)
LNDMacaroonHex, _ := svc.cfg.Get("LNDMacaroonHex", encryptionKey)
lnClient, err = lnd.NewLNDService(ctx, svc.eventPublisher, LNDAddress, LNDCertHex, LNDMacaroonHex)
- case config.LDKBackendType:
- mnemonic, _ := svc.cfg.Get("Mnemonic", encryptionKey)
- ldkWorkdir := path.Join(svc.cfg.GetEnv().Workdir, "ldk")
- var vssToken string
- vssToken, err = svc.requestVssToken(ctx)
- if err != nil {
- logger.Logger.WithError(err).Error("Failed to request VSS token")
- return err
- }
- vssEnabled = vssToken != ""
-
- svc.startupState = "Launching Node"
- setStartupState := func(startupState string) {
- svc.startupState = startupState
- }
-
- channelPeerSuggestions, suggestionsErr := svc.albySvc.GetChannelPeerSuggestions(ctx)
- if suggestionsErr != nil {
- logger.Logger.WithError(suggestionsErr).Warn("Failed to fetch channel peer suggestions for LSPS2 liquidity source")
- }
- lnClient, err = ldk.NewLDKService(ctx, svc.cfg, svc.eventPublisher, mnemonic, ldkWorkdir, vssToken, setStartupState, channelPeerSuggestions)
- case config.PhoenixBackendType:
- PhoenixdAddress, _ := svc.cfg.Get("PhoenixdAddress", encryptionKey)
- PhoenixdAuthorization, _ := svc.cfg.Get("PhoenixdAuthorization", encryptionKey)
-
- lnClient, err = phoenixd.NewPhoenixService(ctx, PhoenixdAddress, PhoenixdAuthorization)
- case config.CashuBackendType:
- mnemonic, _ := svc.cfg.Get("Mnemonic", encryptionKey)
- cashuMintUrl, _ := svc.cfg.Get("CashuMintUrl", encryptionKey)
- cashuWorkdir := path.Join(svc.cfg.GetEnv().Workdir, "cashu")
-
- lnClient, err = cashu.NewCashuService(svc.cfg, cashuWorkdir, mnemonic, cashuMintUrl)
- case config.BarkBackendType:
- mnemonic, _ := svc.cfg.Get("Mnemonic", encryptionKey)
- env := svc.cfg.GetEnv()
- barkWorkdir := path.Join(env.Workdir, "bark")
-
- lnClient, err = bark.NewBarkService(ctx, svc.eventPublisher, barkWorkdir, mnemonic, bark.Config{
- Network: svc.cfg.GetNetwork(),
- ServerAddress: env.BarkServer,
- EsploraAddress: env.BarkEsploraServer,
- ServerAccessToken: env.BarkServerAccessToken,
- LogLevel: env.BarkLogLevel,
- LogToFile: env.LogToFile,
- })
- case config.CLNBackendType:
- CLNAddress, _ := svc.cfg.Get("CLNAddress", encryptionKey)
- CLNLightningDir, _ := svc.cfg.Get("CLNLightningDir", encryptionKey)
- CLNAddressHold, _ := svc.cfg.Get("CLNAddressHold", encryptionKey)
- lnClient, err = cln.NewCLNService(ctx, svc.eventPublisher, CLNAddress, CLNLightningDir, CLNAddressHold)
default:
logger.Logger.WithField("backend_type", lnBackend).Error("Unsupported LNBackendType")
return fmt.Errorf("unsupported backend type: %s", lnBackend)
@@ -439,63 +387,9 @@ func (svc *service) launchLNBackend(ctx context.Context, encryptionKey string) e
svc.eventPublisher.Publish(&events.Event{
Event: "nwc_node_started",
Properties: map[string]interface{}{
- "node_type": lnBackend,
- "vss_enabled": vssEnabled,
+ "node_type": lnBackend,
},
})
return nil
}
-
-func (svc *service) requestVssToken(ctx context.Context) (string, error) {
- nodeLastStartTime, _ := svc.cfg.Get("NodeLastStartTime", "")
-
- // for brand new nodes, consider enabling VSS
- if nodeLastStartTime == "" && svc.cfg.GetEnv().LDKVssUrl != "" {
- svc.startupState = "Checking Subscription"
- albyUserIdentifier, err := svc.albyOAuthSvc.GetUserIdentifier()
- if err != nil {
- logger.Logger.WithError(err).Error("Failed to fetch alby user identifier")
- return "", err
- }
- if albyUserIdentifier != "" {
- me, err := svc.albyOAuthSvc.GetMe(ctx)
- if err != nil {
- logger.Logger.WithError(err).Error("Failed to fetch alby user")
- return "", err
- }
- // only activate VSS for Alby paid subscribers
- if me.Subscription.PlanCode != "" {
- svc.cfg.SetUpdate("LdkVssEnabled", "true", "")
- }
- }
- }
-
- vssToken := ""
- vssEnabled, _ := svc.cfg.Get("LdkVssEnabled", "")
- if vssEnabled == "true" {
- svc.startupState = "Fetching VSS token"
- vssNodeIdentifier, err := ldk.GetVssNodeIdentifier(svc.keys)
- if err != nil {
- logger.Logger.WithError(err).Error("Failed to get VSS node identifier")
- return "", err
- }
- vssToken, err = svc.albyOAuthSvc.GetVssAuthToken(ctx, vssNodeIdentifier)
- if err != nil {
- logger.Logger.WithError(err).Error("Failed to fetch VSS JWT token")
-
- existingVssToken, _ := svc.cfg.Get("VssToken", "")
- if existingVssToken != "" {
- logger.Logger.Warn("Using stored VSS JWT token")
- return existingVssToken, nil
- }
-
- return "", err
- }
- err = svc.cfg.SetUpdate("VssToken", vssToken, "")
- if err != nil {
- logger.Logger.WithError(err).Error("Failed to save VSS JWT token to user config")
- }
- }
- return vssToken, nil
-}