Commit Graph
61 Commits
Author SHA1 Message Date
Elle Mouton 0d55deac63 rpcperms: enforce order of interceptors
In this commit, we let the registered middleware interceptors be stored
in a slice rather than a map so that the order in which the interceptors
are executed is guarenteed to be the same as the order in which they
were registered.
2022-07-07 17:16:42 +02:00
Elle Mouton 1adc940a3f docs/release-notes: add note for 6576 2022-05-25 11:57:42 +02:00
Elle Mouton 5b0f2c4798 cmd/lncli: add payment_addr flag to buildroute 2022-05-25 11:45:18 +02:00
Elle Mouton a4bd3892d2 docs: update release notes 2022-05-11 09:02:13 +02:00
Elle Mouton e789107e1f multi: new bitcoind rpcpolling backend for itests 2022-05-11 09:02:13 +02:00
Elle Mouton 0459ccf542 chainntnfs: test both zmq and rpc bitcoind modes 2022-05-11 09:02:13 +02:00
Elle Mouton f766268e8c lnwallet/test: test against bitcoind-rpc-polling backend 2022-05-11 09:02:13 +02:00
Elle Mouton 33e1f9bfa4 routing/chainview: add bitcoind rpc polling test
Add a new chainview interface test that runds the chainview tests
against a bitcoind node that we are getting block and tx notifications
from using the rpc interface.
2022-05-11 09:02:13 +02:00
Elle Mouton c76d04ef91 multi: make ZmqReadDeadline configurable
Make the Bitcoind ZMQReadDeadline option configurable.
2022-05-11 08:45:07 +02:00
Elle Mouton 5a08788a05 multi: update btcwallet to v0.15.0
Update go.mod to point to latest btcwallet version.
2022-05-11 08:45:06 +02:00
Elle Mouton fa5d4195e0 docs/release-notes: update release notes 2022-05-04 11:06:46 +02:00
Elle Mouton f40e2687ac lnwire: add randOpaqueAddrs for fuzz test
Let TestLightningWireProtocol also include random OpaqueAddrs.
2022-05-04 11:06:11 +02:00
Elle Mouton 1477c754f5 lnwire: store unknown address type as OpaqueAddrs
Instead of erroring out with encountering an address with an unknown
type, we just store the remainder of the addrBytes as OpaqueAddrs so
that we are able to rewrite them to the wire when we re-propagate the
message.
2022-05-04 11:06:11 +02:00
Elle Mouton fa0512f62f lnwire: add new type OpaqueAddrs
In this commit, a new net.Addr implementation called OpaqueAddrs is
added along with a WriteOpaqueAddrs func that is called in
WriteNetAddrs. It will be used to store any address bytes that we cannot
parse due to us not being aware of the address type.
2022-05-04 11:06:11 +02:00
Elle Mouton f77388e072 lnwire: add TestDecodeUnknownAddressType
Add a test to demonstrate that if a NodeAnnouncement includes an address
with an unknown type, then we incorrectly return an error. This will be
fixed in the following commit.
2022-05-04 11:06:10 +02:00
Elle Mouton eca2ac8a57 scripts: add gpg key for ellemouton [skip ci] 2022-04-19 11:38:04 +02:00
Elle Mouton c54cc6e841 multi: announce Keysend feature bit
In this commit, we add the keysend feature bit to our NodeAnnouncement
if the accept-keysend option is set.
2022-04-14 14:01:19 +02:00
Elle Mouton 2bf2939b84 go.mod: update btcd to include tor resolver fix 2022-03-31 09:49:09 +02:00
Elle Mouton c582438a4e lncfg: use net pkg IsLoopback method
Use the IsLoopback method provided by the net package instead of using
hardcoded loopback addresses.
2022-03-30 13:21:50 +02:00
Elle Mouton c6e96c67ce lncfg: normal TCP resolution for unspecified IPs
Use normal TCP resolution for any unspecified IP (0.0.0.0 or ::) instead
of using the Tor resolver.
2022-03-30 13:21:48 +02:00
Elle Mouton b829be133a docs: add review bot commands to guidelines [skip ci]
Add the review bot commands to the contribution guidelines so that we
can link to these commands from the bots readme.
2021-12-15 10:36:36 +02:00
Elle Mouton 2449e66d29 lnwallet+docs: minrelayfee always above fee floor
The minimum relay fee is always ensured to be above our fee floor except
in the very first min relay fee query to bitcoind. This commit ensures
that the fee floor is respected in this first query.
2021-12-13 08:22:34 +02:00
Elle Mouton ac4fe5ff2e docs: update release notes 2021-11-04 13:27:38 +02:00
Elle Mouton 6ec9c3c58f server: stagger multi addr connection attempts
In this commit, we stagger the connection attempts to the multiple
addresses of a peer.
2021-11-04 13:27:33 +02:00
Elle Mouton b9b7ea2a6a server: use one func for peer re-connection
Let the connectToPersistentPeer func handle all connection attempts to
persistent peers so that that logic is in once place.
2021-11-04 13:08:50 +02:00
Elle Mouton 789f00746b server: cleanup persistentPeerAddr when pruned
Delete all the stored addresses from the persistentPeerAddr map when we
prune the persistent peer.
2021-11-04 13:05:40 +02:00
Elle Mouton 84f6b70773 server: use deduped addrMap for connReq creation
Use the addrMap for connReq creation to prevent creating duplicate
connection requests if persistentPeerAddrs contains duplicate addresses.
2021-10-08 13:18:59 +02:00
Elle Mouton e68b1daf00 server: print pubkey in hex in log [skip ci]
Fix log statement that prints out peer pubkey.
2021-10-07 13:02:10 +02:00
Elle Mouton f782df6768 docs: update 0.14 release notes 2021-10-05 18:30:42 +02:00
Elle Mouton ad2859c863 chainfee: fetch fresh relay fee for btcd
This commit adds a function to the BtcdEstimator that fetches the
current min relay fee from the btcd node.
2021-10-05 18:30:41 +02:00
Elle Mouton 55077d9404 chainfee: fetch new relay fee from bitcoind
This commit adds a fetchMinMempoolFee function to the BitcoindEstimator
that fetches the current min mempool fee from the bitcoind backend. The
commit then also updates the BitcoindEstimator to use a minFeeManager
for it's minFeeManager member and uses the fetchMinMempoolFee function
to initialise this.
2021-10-05 18:30:41 +02:00
Elle Mouton c01699853d chainfee: add minFeeManager
This commit adds a minFeeManager which holds a copy of minFeePerKW
and updates this fee every few calls.
2021-10-05 18:30:41 +02:00
Elle Mouton f667683e6c htlcswitch: respect minimum relay fee
When channels fee rates are being considered for an update, the minimum
relay fee should also be considered.
2021-10-05 18:30:41 +02:00
Elle Mouton 6712595618 lnwallet: fix validateFeeRate
The validateFeeRate function uses the availableBalance function to get
the current spendable balance of a channel, adds the old fee and then
ensures that the new fee is not larger than the amount we have available
to spend. This commit also removes the local reserve check in the
validateFeeRate function since the balance returned from
availableBalance already takes the local reserve into acccount.
2021-10-05 09:00:02 +02:00
Elle Mouton 2b8a4d296e lnwallet: use availableBalance in max fee calc
In this commit we ensure that the max fee calculated in the MaxFeeRate
function takes the local reserve amount into account along with any
pending HTLCs. This is done by calling the avaialbeBalance function.
2021-10-05 08:24:10 +02:00
Elle Mouton 317acf7c7c docs/release-notes: add new entry for 5538 2021-10-04 14:57:50 +02:00
Elle Mouton da64a24ad8 server: update persistent peer addrs from announcements
In this commit, a subscription is made to topology updates. For any
NodeAnnouncements received for our peristent peers, we store their newly
advertised addresses. If at the time of receiving these new addresses
there are any existing connection requests, these are updated to reflect
the newly advertised addresses.
2021-10-04 14:57:50 +02:00
Elle Mouton 6b5b53d517 lntest: show reconnection bug
In this commit we demonstrate a bug to show that if an inbound peer
changes their listening address to one not advertised in their original
NodeAnnouncement then we will not be able to reconnect to them. This bug
will be fixed in a follow-up commit.
2021-10-04 14:57:50 +02:00
Elle Mouton d639a4d73f server+lntest: use all addrs during reconnect
In this commit, all advertised addresses of a peer are used during
reconnection. This fixes a bug previously demonstrated in an itest.
2021-10-04 14:57:50 +02:00
Elle Mouton 169316eba2 server: fetch addr from db if outbound too
This commit just ensures that we fetch the lastest advertised addresses
for a peer from the db for both inbound and outbound peers. The reason
for seperating this into its own commit is to make future commits in
this PR easier to review.
2021-10-04 14:57:49 +02:00
Elle Mouton 004ce640d0 server: exit early if not persistent peer
The point of this commit is to make future commits in the same PR easier
to review. All that this commit does is exit early if the peer we are
considering is not persistent instead of having a bunch of logic
indented in an if-clause.
2021-10-04 14:57:49 +02:00
Elle Mouton 18909e1a8e lntest: show that multi addresses are not used
This commit adds an itest to demonstrate that if a peer advertises
multiplie external IP addresses, then they will not all be used to
reconnect to the peer during reconnection. This will be fixed in a
follow-up commit.
2021-10-04 14:57:49 +02:00
Elle Mouton 5177ec2f84 lntest: create persistent connection
This commit adds a ConnectNodesPerm function to the itest NetworkHarness
so that persistent connections between nodes can be mocked.
2021-10-04 14:57:49 +02:00
Elle Mouton 9a97577c00 lntest: refactor assertNumConnections
The assertNumConnection function currently takes in an 'expected' number
of connections argument and asserts that both alice and bob only each
only have that number of connections. So this fails to be useful if say
alice is also connected to charlie cause then if we call
assertNumConnections between alice and bob it will fail saying there are
2 connections between them since all it does is count alice's total
  number of connections. This commit replaces this function with 2 new
functions: assertConnected which asserts that at least one connection
exists between two peers and assertNotConnected which asserts that no
connections exists between the two peers.
2021-10-04 14:57:48 +02:00
Elle Mouton 9a27cd93c3 go.mod: latest neutrino commit 2021-09-30 09:30:10 +02:00
Elle Mouton 171d047972 peer: return from pingHandler if error
This commit adds a missing return statement to pingHandler. This
prevents a nil pointer dereference panic from happening if an error is
returned from RegisterBlockEpochNtfn.
2021-09-15 08:43:16 +02:00
Elle Mouton f8de10511e chainntnfs: add block cache to NeutrinoNotifier
This commit adds gives BtcdNotifier access to the block cache and wraps
its GetBlock method so that the block cache's mutex map for the specific
hash is used.
2021-04-28 09:59:50 +02:00
Elle Mouton 6ad5781bf1 routing: add block cache to CfFilteredChainView
This commit adds the block cache to the CfFilteredChainView struct
and wraps its GetBlock function so that block cache mutex map is used
when the call to neutrino's GetBlock function is called.
2021-04-28 09:46:11 +02:00
Elle Mouton 432b1f0588 btcwallet: lock blockcache for Neutrino GetBlock
This commit ensures that for the neutrino implementation of
lnwallet.BlockChainIO, the neutrino GetBlock method is called directly
(since it already uses the blockcache). It also ensures that the block
cache mutex for the given hash is locked before the call to GetBlock.
2021-04-28 09:46:11 +02:00
Elle Mouton ecf20ed350 multi: init neutrino backend with block cache
This commit initializes the nwutrino backend with the lnd blockcache so
that the two can share a block cache instead of each having its own.
2021-04-28 09:46:11 +02:00
Elle Mouton a0f7bf8b2d chainntnfs: add block cache to BtcdNotifier
This commit adds gives BtcdNotifier access to the block cache and wraps
its GetBlock method so that it uses the block cache.
2021-04-28 09:46:11 +02:00
Elle Mouton 8a33fbf11a chainntnfs: add block cache to BitcoindNotifier
This commit adds a blockcache pointer to BitcoindNotifier and wraps its
GetBlock method so that the block cache is used.
2021-04-28 09:46:11 +02:00
Elle Mouton f470946379 routing: add block cache to BtcdFilteredChainView
This commit makes the block cache available to BtcdFilteredChainView and
wraps its GetBlock method so that the block cache is used.
2021-04-28 09:46:11 +02:00
Elle Mouton 0193669ed8 routing: add block cache to BitcoindFilteredChainView
This commit adds the block cache to the BitcoindFilteredChainView struct
and wraps its GetBlock function so that block cache is used.
2021-04-28 09:46:11 +02:00
Elle Mouton 106f93a1b4 btcwallet: make blockcache available to BtcWallet
This commit makes the blockcache available to BtcWallet so that any
GetBlock call made to BtcWallet is wrapped by the blockcache GetBlock
call.
2021-04-28 09:46:11 +02:00
Elle Mouton 6702c79216 multi: add block cache size config
This commit adds block cache size to the main lnd config along with the
chainreg config.
2021-04-28 09:46:11 +02:00
Elle Mouton 275d55c9e6 blockcache: add blockcache package
This commit adds a new blockcache package along with the GetBlock method
to be used along with the blockcache.
2021-04-28 09:46:11 +02:00
Elle Mouton 000516ec4d lncli: start signal interceptor in getContext
signal Intercept function needs to be called if the signal shutdown
channel will be listened on.
2021-03-17 22:44:45 +02:00
Elle Mouton 9e9c48fcdd rpc: use default if conf-target is not set
This commit uses the new coop-close-target-confs value as the default to
use for a nodes self initiated channel closures if the conf-target flag
for the channel closure is not set. The defaults for both these options
is 6 so this shouldnt change current behaviour.
2021-03-04 13:07:30 +02:00
Elle Mouton 3b412ce50f multi: allow setting target confs for co-op close
This commit adds a new config option: "--coop-close-target-confs"
which allows a user to override the default target confirmations of 6
that is used to estimate a fee rate to use during a co-op closure
initiated by a remote peer.
2021-03-04 13:04:41 +02:00
Elle Mouton 3aa8972cc7 bitcoindnotify: add missing space in log message in bitcoind.go 2019-12-10 14:54:27 +02:00