From fb9034220c0959999b8e135d77c3c5e1f8382c68 Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Wed, 9 Dec 2020 10:54:22 +0100 Subject: [PATCH 1/3] mod: update lnd to v0.12.0 --- go.mod | 4 ++-- go.sum | 14 ++++++++++---- liquidity/liquidity.go | 6 +++--- loopd/macaroons.go | 8 +++++++- swap_server_client.go | 5 ++++- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 5c69ef5..8551638 100644 --- a/go.mod +++ b/go.mod @@ -1,7 +1,7 @@ module github.com/lightninglabs/loop require ( - github.com/btcsuite/btcd v0.20.1-beta.0.20200730232343-1db1b6f8217f + github.com/btcsuite/btcd v0.21.0-beta.0.20201208033208-6bd4c64a54fa github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f github.com/btcsuite/btcutil v1.0.2 github.com/btcsuite/btcwallet/wtxmgr v1.2.0 @@ -12,7 +12,7 @@ require ( github.com/jessevdk/go-flags v1.4.0 github.com/lightninglabs/lndclient v0.11.0-3 github.com/lightninglabs/protobuf-hex-display v1.3.3-0.20191212020323-b444784ce75d - github.com/lightningnetwork/lnd v0.11.1-beta + github.com/lightningnetwork/lnd v0.12.0-beta.rc3 github.com/lightningnetwork/lnd/cert v1.0.3 github.com/lightningnetwork/lnd/clock v1.0.1 github.com/lightningnetwork/lnd/queue v1.0.4 diff --git a/go.sum b/go.sum index 45d9fc1..c3f9a75 100644 --- a/go.sum +++ b/go.sum @@ -27,6 +27,8 @@ github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13P github.com/btcsuite/btcd v0.20.1-beta.0.20200513120220-b470eee47728/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.20.1-beta.0.20200730232343-1db1b6f8217f h1:m/GhMTvDQLbID616c4TYdHyt0MZ9lH5B/nf9Lu3okCY= github.com/btcsuite/btcd v0.20.1-beta.0.20200730232343-1db1b6f8217f/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= +github.com/btcsuite/btcd v0.21.0-beta.0.20201208033208-6bd4c64a54fa h1:sobXG8TE1VEBX4QWOzSKyulSwuOFdb8vzyhGyblXrmQ= +github.com/btcsuite/btcd v0.21.0-beta.0.20201208033208-6bd4c64a54fa/go.mod h1:Sv4JPQ3/M+teHz9Bo5jBpkNcP0x6r7rdihlNL/7tTAs= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= @@ -36,8 +38,8 @@ github.com/btcsuite/btcutil/psbt v1.0.2/go.mod h1:LVveMu4VaNSkIRTZu2+ut0HDBRuYjq github.com/btcsuite/btcutil/psbt v1.0.3-0.20200826194809-5f93e33af2b0 h1:3Zumkyl6PWyHuVJ04me0xeD9CnPOhNgeGpapFbzy7O4= github.com/btcsuite/btcutil/psbt v1.0.3-0.20200826194809-5f93e33af2b0/go.mod h1:LVveMu4VaNSkIRTZu2+ut0HDBRuYjqGocxDMNS1KuGQ= github.com/btcsuite/btcwallet v0.11.1-0.20200814001439-1d31f4ea6fc5/go.mod h1:YkEbJaCyN6yncq5gEp2xG0OKDwus2QxGCEXTNF27w5I= -github.com/btcsuite/btcwallet v0.11.1-0.20200904022754-2c5947a45222 h1:rh1FQAhh+BeR29twIFDM0RLOFpDK62tsABtUkWctTXw= -github.com/btcsuite/btcwallet v0.11.1-0.20200904022754-2c5947a45222/go.mod h1:owv9oZqM0HnUW+ByF7VqOgfs2eb0ooiePW/+Tl/i/Nk= +github.com/btcsuite/btcwallet v0.11.1-0.20201207233335-415f37ff11a1 h1:3gvLezYoUkr9MvxocB/vyPNzL+gSqsNT4Q6XTPK+R04= +github.com/btcsuite/btcwallet v0.11.1-0.20201207233335-415f37ff11a1/go.mod h1:P1U4LKSB/bhFQdOM7ab1XqNoBGFyFAe7eKObEBD9mIo= github.com/btcsuite/btcwallet/wallet/txauthor v1.0.0 h1:KGHMW5sd7yDdDMkCZ/JpP0KltolFsQcB973brBnfj4c= github.com/btcsuite/btcwallet/wallet/txauthor v1.0.0/go.mod h1:VufDts7bd/zs3GV13f/lXc/0lXrPnvxD/NvmpG/FEKU= github.com/btcsuite/btcwallet/wallet/txrules v1.0.0 h1:2VsfS0sBedcM5KmDzRMT3+b6xobqWveZGvjb+jFez5w= @@ -49,6 +51,8 @@ github.com/btcsuite/btcwallet/walletdb v1.2.0/go.mod h1:9cwc1Yyg4uvd4ZdfdoMnALji github.com/btcsuite/btcwallet/walletdb v1.3.2/go.mod h1:GZCMPNpUu5KE3ASoVd+k06p/1OW8OwNGCCaNWRto2cQ= github.com/btcsuite/btcwallet/walletdb v1.3.3 h1:u6e7vRIKBF++cJy+hOHaMGg+88ZTwvpaY27AFvtB668= github.com/btcsuite/btcwallet/walletdb v1.3.3/go.mod h1:oJDxAEUHVtnmIIBaa22wSBPTVcs6hUp5NKWmI8xDwwU= +github.com/btcsuite/btcwallet/walletdb v1.3.4 h1:ExdPQSfYRLoYMEENsjWyl4w0PePLm9w3wg69nsRS2xc= +github.com/btcsuite/btcwallet/walletdb v1.3.4/go.mod h1:oJDxAEUHVtnmIIBaa22wSBPTVcs6hUp5NKWmI8xDwwU= github.com/btcsuite/btcwallet/wtxmgr v1.0.0/go.mod h1:vc4gBprll6BP0UJ+AIGDaySoc7MdAmZf8kelfNb8CFY= github.com/btcsuite/btcwallet/wtxmgr v1.2.0 h1:ZUYPsSv8GjF9KK7lboB2OVHF0uYEcHxgrCfFWqPd9NA= github.com/btcsuite/btcwallet/wtxmgr v1.2.0/go.mod h1:h8hkcKUE3X7lMPzTUoGnNiw5g7VhGrKEW3KpR2r0VnY= @@ -183,13 +187,15 @@ github.com/lightninglabs/lndclient v0.11.0-3/go.mod h1:8/cTKNwgL87NX123gmlv3Xh6p github.com/lightninglabs/neutrino v0.11.0/go.mod h1:CuhF0iuzg9Sp2HO6ZgXgayviFTn1QHdSTJlMncK80wg= github.com/lightninglabs/neutrino v0.11.1-0.20200316235139-bffc52e8f200 h1:j4iZ1XlUAPQmW6oSzMcJGILYsRHNs+4O3Gk+2Ms5Dww= github.com/lightninglabs/neutrino v0.11.1-0.20200316235139-bffc52e8f200/go.mod h1:MlZmoKa7CJP3eR1s5yB7Rm5aSyadpKkxqAwLQmog7N0= +github.com/lightninglabs/neutrino v0.11.1-0.20201210023533-e1978372d15e h1:K5LCCnSAk3NVT/aCy8wNPv0I5JfyLgijg1VX8Gz306E= +github.com/lightninglabs/neutrino v0.11.1-0.20201210023533-e1978372d15e/go.mod h1:KDWfQDKp+CFBxO1t2NRmWuagTY2sYIjpHB1k5vrojTI= github.com/lightninglabs/protobuf-hex-display v1.3.3-0.20191212020323-b444784ce75d h1:QWD/5MPnaZfUVP7P8wLa4M8Td2DI7XXHXt2vhVtUgGI= github.com/lightninglabs/protobuf-hex-display v1.3.3-0.20191212020323-b444784ce75d/go.mod h1:KDb67YMzoh4eudnzClmvs2FbiLG9vxISmLApUkCa4uI= github.com/lightningnetwork/lightning-onion v1.0.2-0.20200501022730-3c8c8d0b89ea h1:oCj48NQ8u7Vz+MmzHqt0db6mxcFZo3Ho7M5gCJauY/k= github.com/lightningnetwork/lightning-onion v1.0.2-0.20200501022730-3c8c8d0b89ea/go.mod h1:rigfi6Af/KqsF7Za0hOgcyq2PNH4AN70AaMRxcJkff4= github.com/lightningnetwork/lnd v0.11.0-beta/go.mod h1:CzArvT7NFDLhVyW06+NJWSuWFmE6Ea+AjjA3txUBqTM= -github.com/lightningnetwork/lnd v0.11.1-beta h1:SYpb8s+to3rAPTd4fWqkhTEO2QpnGJ3MJYb7m09fPjE= -github.com/lightningnetwork/lnd v0.11.1-beta/go.mod h1:PGIgxy8aH70Li33YVYkHSaCM8m8LjEevk5h1Dpldrr4= +github.com/lightningnetwork/lnd v0.12.0-beta.rc3 h1:kii3l6UIuzRYPAcEheFcRIDFEDLni0K8fbvMRc1qMcY= +github.com/lightningnetwork/lnd v0.12.0-beta.rc3/go.mod h1:2GyP1IG1kXV5Af/LOCxnXfux1OP3fAGr8zptS5PB2YI= github.com/lightningnetwork/lnd/cert v1.0.2/go.mod h1:fmtemlSMf5t4hsQmcprSoOykypAPp+9c+0d0iqTScMo= github.com/lightningnetwork/lnd/cert v1.0.3 h1:/K2gjzLgVI8we2IIPKc0ztWTEa85uds5sWXi1K6mOT0= github.com/lightningnetwork/lnd/cert v1.0.3/go.mod h1:3MWXVLLPI0Mg0XETm9fT4N9Vyy/8qQLmaM5589bEggM= diff --git a/liquidity/liquidity.go b/liquidity/liquidity.go index b072be6..2ba3193 100644 --- a/liquidity/liquidity.go +++ b/liquidity/liquidity.go @@ -46,8 +46,8 @@ import ( "github.com/lightninglabs/loop" "github.com/lightninglabs/loop/labels" "github.com/lightninglabs/loop/loopdb" - "github.com/lightningnetwork/lnd" "github.com/lightningnetwork/lnd/clock" + "github.com/lightningnetwork/lnd/funding" "github.com/lightningnetwork/lnd/lnwallet/chainfee" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/routing/route" @@ -113,9 +113,9 @@ var ( // a single swap. We don't have a swap amount to calculate our maximum // routing fee, so we use 0.16 BTC for now. defaultBudget = defaultMaximumMinerFee + - ppmToSat(lnd.MaxBtcFundingAmount, defaultSwapFeePPM) + + ppmToSat(funding.MaxBtcFundingAmount, defaultSwapFeePPM) + ppmToSat(defaultMaximumPrepay, defaultPrepayRoutingFeePPM) + - ppmToSat(lnd.MaxBtcFundingAmount, defaultRoutingFeePPM) + ppmToSat(funding.MaxBtcFundingAmount, defaultRoutingFeePPM) // defaultParameters contains the default parameters that we start our // liquidity manger with. diff --git a/loopd/macaroons.go b/loopd/macaroons.go index 5d8117a..0c5b0fb 100644 --- a/loopd/macaroons.go +++ b/loopd/macaroons.go @@ -5,6 +5,7 @@ import ( "fmt" "io/ioutil" "os" + "time" "github.com/lightningnetwork/lnd/lnrpc" "github.com/lightningnetwork/lnd/macaroons" @@ -16,6 +17,10 @@ const ( // loopMacaroonLocation is the value we use for the loopd macaroons' // "Location" field when baking them. loopMacaroonLocation = "loop" + + // macDatabaseOpenTimeout is how long we wait for acquiring the lock on + // the macaroon database before we give up with an error. + macDatabaseOpenTimeout = time.Second * 5 ) var ( @@ -144,7 +149,8 @@ func (d *Daemon) startMacaroonService() error { // Create the macaroon authentication/authorization service. var err error d.macaroonService, err = macaroons.NewService( - d.cfg.DataDir, loopMacaroonLocation, macaroons.IPLockChecker, + d.cfg.DataDir, loopMacaroonLocation, false, + macDatabaseOpenTimeout, macaroons.IPLockChecker, ) if err != nil { return fmt.Errorf("unable to set up macaroon authentication: "+ diff --git a/swap_server_client.go b/swap_server_client.go index 7d04d64..1f62c05 100644 --- a/swap_server_client.go +++ b/swap_server_client.go @@ -499,7 +499,10 @@ func getSwapServerConn(address, proxyAddress string, insecure bool, log.Infof("Proxying connection to %v over Tor SOCKS proxy %v", address, proxyAddress) torDialer := func(_ context.Context, addr string) (net.Conn, error) { - return tor.Dial(addr, proxyAddress, false) + return tor.Dial( + addr, proxyAddress, false, + tor.DefaultConnTimeout, + ) } opts = append(opts, grpc.WithContextDialer(torDialer)) } From 1a57e03df4474ee7e2e48c718511a18a3d07d01d Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Wed, 9 Dec 2020 11:03:45 +0100 Subject: [PATCH 2/3] loopd: pass macaroon root key ID in context --- loopd/macaroons.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/loopd/macaroons.go b/loopd/macaroons.go index 0c5b0fb..a716ba4 100644 --- a/loopd/macaroons.go +++ b/loopd/macaroons.go @@ -165,7 +165,12 @@ func (d *Daemon) startMacaroonService() error { // Create macaroon files for loop CLI to use if they don't exist. if !lnrpc.FileExists(d.cfg.MacaroonPath) { - ctx := context.Background() + // We don't offer the ability to rotate macaroon root keys yet, + // so just use the default one since the service expects some + // value to be set. + idCtx := macaroons.ContextWithRootKeyID( + context.Background(), macaroons.DefaultRootKeyID, + ) // We only generate one default macaroon that contains all // existing permissions (equivalent to the admin.macaroon in @@ -173,7 +178,7 @@ func (d *Daemon) startMacaroonService() error { // RPC. Add our debug permissions if required. allPermissions = append(allPermissions, debugPermissions...) loopMac, err := d.macaroonService.Oven.NewMacaroon( - ctx, bakery.LatestVersion, nil, allPermissions..., + idCtx, bakery.LatestVersion, nil, allPermissions..., ) if err != nil { return err From 0a38ae4c711d0fff9062928dd41527162054e02e Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Thu, 7 Jan 2021 17:36:04 +0100 Subject: [PATCH 3/3] release_notes: add note about compile time compat --- release_notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/release_notes.md b/release_notes.md index 9a87269..a5748fb 100644 --- a/release_notes.md +++ b/release_notes.md @@ -13,6 +13,7 @@ This file tracks release notes for the loop client. * Once the version bump PR is merged and tagged, add the release notes to the tag on GitHub. ## Next release +- Fixed compile time compatibility with `lnd v0.12.0-beta`. #### New Features