Skip to content

Commit 2ec82ff

Browse files
committed
multi: prepare for upcoming lnd v0.14.0-beta release
1 parent f4dd97a commit 2ec82ff

6 files changed

Lines changed: 233 additions & 53 deletions

File tree

cmd/frcli/utils.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,11 @@ func readMacaroon(macPath string) (grpc.DialOption, error) {
235235
}
236236

237237
// Now we append the macaroon credentials to the dial options.
238-
cred := macaroons.NewMacaroonCredential(constrainedMac)
238+
cred, err := macaroons.NewMacaroonCredential(constrainedMac)
239+
if err != nil {
240+
return nil, fmt.Errorf("error creating macaroon credential: %v",
241+
err)
242+
}
239243
return grpc.WithPerRPCCredentials(cred), nil
240244
}
241245

config.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ const (
3030
// By default we do not require connecting to a bitcoin node so that
3131
// we can serve basic functionality by default.
3232
defaultChainConn = false
33+
34+
// DefaultAutogenValidity is the default validity of a self-signed
35+
// certificate. The value corresponds to 14 months
36+
// (14 months * 30 days * 24 hours).
37+
DefaultAutogenValidity = 14 * 30 * 24 * time.Hour
3338
)
3439

3540
var (
@@ -353,7 +358,7 @@ func loadCertWithCreate(cfg *Config) (tls.Certificate, *x509.Certificate,
353358
defaultSelfSignedOrganization, cfg.TLSCertPath,
354359
cfg.TLSKeyPath, cfg.TLSExtraIPs,
355360
cfg.TLSExtraDomains, cfg.TLSDisableAutofill,
356-
cert.DefaultAutogenValidity,
361+
DefaultAutogenValidity,
357362
)
358363
if err != nil {
359364
return tls.Certificate{}, nil, err

frdrpc/macaroons.go

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ import (
77
"os"
88
"time"
99

10+
"github.com/lightningnetwork/lnd/kvdb"
1011
"github.com/lightningnetwork/lnd/lnrpc"
1112
"github.com/lightningnetwork/lnd/macaroons"
1213
"github.com/lightningnetwork/lnd/rpcperms"
14+
"go.etcd.io/bbolt"
1315
"google.golang.org/grpc"
1416
"gopkg.in/macaroon-bakery.v2/bakery"
1517
)
@@ -95,11 +97,27 @@ var (
9597
// unlocks the macaroon database and creates the default macaroon if it doesn't
9698
// exist yet.
9799
func (s *RPCServer) startMacaroonService() error {
100+
backend, err := kvdb.GetBoltBackend(&kvdb.BoltBackendConfig{
101+
DBPath: s.cfg.FaradayDir,
102+
DBFileName: "macaroons.db",
103+
DBTimeout: macDatabaseOpenTimeout,
104+
})
105+
if err == bbolt.ErrTimeout {
106+
return fmt.Errorf("error while trying to open %s/%s: "+
107+
"timed out after %v when trying to obtain exclusive "+
108+
"lock - make sure no other faraday daemon process "+
109+
"(standalone or embedded in lightning-terminal) is "+
110+
"running", s.cfg.FaradayDir, "macaroons.db",
111+
macDatabaseOpenTimeout)
112+
}
113+
if err != nil {
114+
return fmt.Errorf("unable to load macaroon db: %v", err)
115+
}
116+
98117
// Create the macaroon authentication/authorization service.
99-
var err error
100118
s.macaroonService, err = macaroons.NewService(
101-
s.cfg.FaradayDir, faradayMacaroonLocation, false,
102-
macDatabaseOpenTimeout, macaroons.IPLockChecker,
119+
backend, faradayMacaroonLocation, false,
120+
macaroons.IPLockChecker,
103121
)
104122
if err != nil {
105123
return fmt.Errorf("unable to set up macaroon authentication: "+
@@ -156,7 +174,7 @@ func (s *RPCServer) stopMacaroonService() error {
156174
// macaroonInterceptor creates gRPC server options with the macaroon security
157175
// interceptors.
158176
func (s *RPCServer) macaroonInterceptor() ([]grpc.ServerOption, error) {
159-
interceptor := rpcperms.NewInterceptorChain(log, false)
177+
interceptor := rpcperms.NewInterceptorChain(log, false, nil)
160178

161179
err := interceptor.Start()
162180
if err != nil {

go.mod

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
module github.com/lightninglabs/faraday
22

33
require (
4-
github.com/btcsuite/btcd v0.21.0-beta.0.20210513141527-ee5896bad5be
4+
github.com/btcsuite/btcd v0.22.0-beta.0.20211005184431-e3449998be39
55
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f
66
github.com/btcsuite/btcutil v1.0.3-0.20210527170813-e2ba6805a890
77
github.com/grpc-ecosystem/grpc-gateway/v2 v2.5.0
88
github.com/jessevdk/go-flags v1.4.0
9-
github.com/lightninglabs/lndclient v0.13.0-9
9+
github.com/lightninglabs/lndclient v0.14.0-2
1010
github.com/lightninglabs/protobuf-hex-display v1.4.3-hex-display
11-
github.com/lightningnetwork/lnd v0.13.0-beta.rc5.0.20210802115842-44971f0c46c9
12-
github.com/lightningnetwork/lnd/cert v1.0.3
11+
github.com/lightningnetwork/lnd v0.13.0-beta.rc5.0.20211021015325-cac8da819ff9
12+
github.com/lightningnetwork/lnd/cert v1.1.0
13+
github.com/lightningnetwork/lnd/kvdb v1.2.0
1314
github.com/shopspring/decimal v1.2.0
1415
github.com/stretchr/testify v1.7.0
1516
github.com/urfave/cli v1.20.0
17+
go.etcd.io/bbolt v1.3.6
1618
google.golang.org/grpc v1.38.0
1719
google.golang.org/protobuf v1.26.0
1820
gopkg.in/macaroon-bakery.v2 v2.0.1

0 commit comments

Comments
 (0)