Commit Graph

5095 Commits

Author SHA1 Message Date
b507d265b4 htlcswitch/link: only update contract signals on start if live link 2018-08-10 11:42:25 -07:00
5f90973f76 peer: always purge link before adding new one 2018-08-10 11:42:25 -07:00
a6e7b35872 server: use blocking RemoveLink to shutdown links 2018-08-10 11:42:25 -07:00
c78e81d32b htlcswitch/switch: synchronous stop of links after removal 2018-08-10 11:42:25 -07:00
258019eb24 htlcswitch/switch_test: update reverted test to use...
current initialization methods
2018-08-10 11:42:24 -07:00
1113684dc3 Revert "htlcswitch: in event of duplicate link add, prefer newer link"
This reverts commit e60d2b774a.
2018-08-10 11:42:20 -07:00
79cbea1c9c chainntnfs: enable notifiers to catch up on missed blocks
This resolves the situation where a notifier's chain backend skips a series of blocks, causing the notifier to need to dispatch historical block notifications to clients.

Additionally, if the current notifier's best block has been reorged out, this logic enables the notifier to rewind to the common ancestor between the current chain and the outdated best block and dispatches notifications from the ancestor.
2018-08-10 01:08:58 -07:00
3df5b26699 chainntnfs: notify clients after block connect has succeeded
This prevents the situation where we notify clients about a newly connected block, and then the block connection itself fails. We also want to set our best block in between connecting the block and notifying clients, in case a client makes queries about the new block they have received.
2018-08-10 01:08:58 -07:00
cbf1799c40 chainntnfs: rewind chain on missed disconnected blocks
If the chain backend misses telling the notifier about a series of disconnected blocks, the notifier is now able to disconnect the tip to its new best block.
2018-08-10 01:08:57 -07:00
a5e1cf9c97 chainntnfs: dispatch historical block ntfns to clients
If a client passes in their best known block when registering for block notifications, check to see if it's behind our best block. If so, dispatch the missed block notifications to the client.

This is necessary because clients that persist their best known block can miss new blocks while registering for notifications.
2018-08-10 01:08:57 -07:00
02ee5650c8 chainntnfs/neutrino: add neutrino ChainConn implementation 2018-08-10 01:08:57 -07:00
f4005175d8 chainntnfs/interface: add ChainConn interface
This allows notifiers to pass their chain backend into interface functions to retrieve information from the chain.
2018-08-10 01:08:57 -07:00
d4cf271526 chainntnfs: track best block in btcd and bitcoind 2018-08-10 01:08:57 -07:00
1ffc3bb82e multi: update to latest RegisterBlockEpochNtfn interface 2018-08-10 01:08:57 -07:00
71a81f59a9 chainntnfs: allow clients to pass in best block
Clients can optionally pass their best block known into RegisterBlockEpochNtfn. This enables the notifiers to catch up clients on blocks they may have missed.
2018-08-10 01:08:54 -07:00
6989316b11 Merge pull request #1717 from wpaulino/start-bitcoind-conn
chainregistry: correctly establish connection to bitcoind
2018-08-10 01:07:07 -07:00
536a381b4c Merge pull request #1716 from cfromknecht/makefile-definition-order
Makefile: reorder definitions before include + proper tabbing
2018-08-10 00:57:46 -07:00
41379c9c73 docs: fix lnd w/ bitcoind backend example command 2018-08-09 23:54:47 -07:00
dae5382fd4 chainregistry: correctly establish connection to bitcoind
In this commit, we fix a bug recently introduced where we would
construct the parameters required to connect to a bitcoind backend, but
never actually started the connection.
2018-08-09 23:29:49 -07:00
05e55c44ce Makefile: reorder definitions before include + proper tabbing 2018-08-09 23:24:55 -07:00
c520f89229 Revert "Makefile: run coverage tests with -tags=debug"
This reverts commit 8bb4337cac.
2018-08-09 22:37:30 -07:00
f4849b051d ticker: fix linter error 2018-08-09 22:15:41 -07:00
c35a701724 ticker: remove debug build tag from mock.go 2018-08-09 22:08:40 -07:00
da521c73f3 tests: ensure build halts if tests fail during coverage mode 2018-08-09 21:44:33 -07:00
61f5b3e3f1 Merge pull request #1709 from Empact/noisedial
Move noiseDial from config.go to server.go
2018-08-09 21:43:37 -07:00
518b0d2cf7 Merge pull request #1679 from cfromknecht/move-linter-v2
Makefile: move linter v2
2018-08-09 21:03:05 -07:00
d5863d03ae Merge pull request #1660 from lightningnetwork/fetch-allll-channels
channeldb/db: return all channels if multiple chains exist
2018-08-09 20:59:28 -07:00
ecf009a4ef Merge pull request #1712 from cfromknecht/run-coverage-with-debug-tag
Makefile: run coverage tests with -tags=debug
2018-08-09 20:58:31 -07:00
d3b1b9aa98 Merge pull request #1668 from cfromknecht/interface-tickers
Ticker Package
2018-08-09 20:55:25 -07:00
3438baaf0c routing: eliminate nested db transactions by using new FetchOtherNode method 2018-08-09 20:48:06 -07:00
0f3c0ccf85 channeldb: add new FetchOtherNode method to ChannelEdgeInfo
In this commit, we add a new method to the ChannelEdgeInfo that will
allow the path finding logic to get the node opposite the pivot node
without first creating a new db transaction. The new method is able to
use an existing db transaction, or create a new one if needed.
2018-08-09 20:47:01 -07:00
ce7bfae4f7 channeldb: ensure we always check error from fetchChanEdgePolicy 2018-08-09 20:46:04 -07:00
0109672835 channeldb: add new db field for ChannelEdgeInfo to allow new methods 2018-08-09 20:45:39 -07:00
29b6bae4ed routing: convert fee limit test to table-driven 2018-08-09 20:23:40 -07:00
3e7473f4f0 routing: backward searching 2018-08-09 20:23:40 -07:00
e52d829168 routing: path finding test refactored 2018-08-09 20:23:40 -07:00
6c918a1806 channeldb: store unknown policies in database
The commit ensures that for every channel, there will always
be two entries in the edges bucket. If the policy from one or
both ends of the channel is unknown, it is marked as such.

This allows efficient lookup of incoming edges. This is
required for backwards payment path finding.
2018-08-09 20:23:40 -07:00
d2612e51bd Merge pull request #1644 from wpaulino/kw-fees
multi: switch to sat/kw fees
2018-08-09 20:19:28 -07:00
d64bb5921e Merge pull request #1635 from halseth/funding-broadcast-fail
Move funding tx broadcasting to Fundingmanager
2018-08-09 20:04:30 -07:00
cc6348088c Merge pull request #1714 from Roasbeef/update-btcd-neutrino-fix
build: update to use latest btcd
2018-08-09 18:27:20 -07:00
336f1c156e rpcserver: convert sat/vbyte fee rates input by the user to sat/kw
In this commit, we explicitly convert sat/vbyte fee rates input by the
user to sat/kw. We do this as users are typically more accustomed to
sat/vbyte fee rates, rather than sat/kw.
2018-08-09 17:29:53 -07:00
9d2eeb6304 multi: update to latest fee estimation interface 2018-08-09 17:29:52 -07:00
a63677a381 multi: switch to transaction weight to calculate transaction fees
Due to a recent change within the codebase to return estimated fee rates
in sat/kw, this commit ensures that we use this fee rate properly by
calculing a transaction's fees using its weight. This includes all of
the different transactions that are created within lnd (funding, sweeps,
etc.). On-chain transactions still rely on a sat/vbyte fee rate since it's
required by btcwallet.
2018-08-09 17:29:50 -07:00
b3d5d7ab9c lnwallet: switch fee estimation to return sat/kw fee rates
In this commit, we modify our FeeEstimator interface to return an
estimated fee rate in sat/kw. Recently, due to low fees on the network,
users have been experiencing failures broadcasting transactions due to
not meeting specific fee requirements. This was happening more often
than not, as the estimated fee returned by backend nodes (bitcoind and
btcd) only takes into account vbytes, rather than weight. The fees
returned are also expressed in sat/kb, so we must take care that we do
not lose precision while converting to sat/kw. In the event that this
happens, a fee floor of 253 sat/kw has been added. This fee rate
originates from bitcoind rounding up the conversion from weight to
vbytes.
2018-08-09 17:29:48 -07:00
bf4283f069 build: update to use latest btcd
In this commit, we update the set of deps to use the latest version of
btcd. Namely this version fixes a bug in re-org handling logic, ensures
that btcd will always respond to getheaders (fixes #511), and also
ensure that it will properly respond to cfheaders messages which is
required for the neutrino sync to operate smoothly.
2018-08-09 17:15:41 -07:00
30b156c706 Merge pull request #1566 from wpaulino/bitcoind-rescan-client
multi: share the same bitcoind connection between multiple rescan clients
2018-08-09 17:10:57 -07:00
8bb4337cac Makefile: run coverage tests with -tags=debug 2018-08-09 13:46:08 -07:00
57d87aef3b test: ensure integration tests use unique context timeouts for each assertion 2018-08-09 12:37:30 -07:00
896128efd0 Move noiseDial from config.go to server.go
noiseDial is only called from server.go, has nothing to do with configuration,
and moving it removes config.go's reliance on btcec and brontide.
2018-08-09 15:13:05 -04:00
8cc4681201 test_utils: init switch with default fwd/log tickers 2018-08-09 02:48:07 -07:00