Commit Graph

2687 Commits

Author SHA1 Message Date
3802cb90df discovery: publicly export announcement validation related functions 2017-12-01 19:31:54 -08:00
7bd2cd0a16 rpc: only cancel closeObserver if force close succeeds 2017-12-01 19:11:42 -08:00
4d6cd2ee36 chain: the default minHTLC policy is now 1 2017-11-30 22:54:39 -08:00
9314aa2e7d funding: route back full lnwire.Error to caller upon funding flow failure 2017-11-30 22:53:48 -08:00
c081b386d2 funding: when crafting our ChannelUpdate use the remote party's minHTLC
In this commit, we implement a recent spec change that require nodes to
advertise the minHTLC of the remote node within their ChannelUpdate. We
do this as it will be the remote node which carries the HTLC towards
us, therefore we should advertise *their* minHTLC value.
2017-11-30 22:52:39 -08:00
55bdf25235 funding: attempt to send error back to caller within CancelPeerReservations 2017-11-30 22:42:26 -08:00
9b53d7bd95 channeldb: treat Flags field in ChannelEdgePolicy as a bitfield 2017-11-30 22:41:54 -08:00
12a0488bc6 discovery: use lnwire.ChanUpdateFlag masks when examinig ChannelUpdate msgs
In this commit, we now properly examine the Flag field within the
ChannelUpdate message as a bitfield. Before this commit we would
manually check the flags for zero or one. This was incorrect as a their
bit has now been defined. To properly dispatch the messages, we’ll now
treat it properly as a bitmask.
2017-11-30 22:37:21 -08:00
3e3de26ac9 discovery: set proper flag within createChanAnnouncement
In this commit, we fix an existing bug within the
createChanAnnouncement function. Before we would set the flag to be 0,
or 1 depending on which edge it was. This was incorrect as since then
additional flags have been defined. We now properly set the entire
flag, rather than taking a shortcut. With this, we’ll properly
advertise all ChannelUpdate announcements.
2017-11-30 22:33:00 -08:00
a78ff8ba04 routing: during path finding skip edges that are marked disabled
In this commit, we implement adherence of the disabled bit within a
ChannelUpdate during path finding. If a channel is marked as disabled,
then we won’t attempt to route through it. A test has been added to
exercise this new check.
2017-11-30 22:31:27 -08:00
b61670fe23 routing: during path finding skip edge if amount < edge.MinHTLC
In this commit, we update path finding to skip an edge if the amount
we’re trying to route through it is below the MinHTLC (in mSAT) value
for that node. We also add a new test to exercise this behavior. In
order for out test to work properly, we’ve modified the JSON to make
the edge to Goku have a higher min HTLC value.
2017-11-30 22:29:45 -08:00
73ccb76853 routing: update ChannelUpdate handling to recognize lnwire.ChanUpdateFlag 2017-11-30 22:24:35 -08:00
5e3dbfcd78 lnwire: add new ChanUpdateFlag for the ChannelUpdate flag bitmask
In this commit, we add a new type to the lnwire package:
ChanUpdateFlag. This type represent the bitfield that’s used within the
ChannelUpdate message to give additional details as how the message
should be interpreted.
2017-11-30 22:21:37 -08:00
c3ec32e67b peer: display lnwire.Error body as ascii string in messageSummary
It dictates in the spec, that the error message should be an ASCII
string to allow other implementations to easily discern the type of
error. The other implementations do this, but we don’t yet, but we’ll
go ahead and display it anyway as it’s helpful when debugging.
2017-11-30 22:19:18 -08:00
260ff8831a htlcswitch: update UpdateFee usage due to recent API change 2017-11-30 22:17:56 -08:00
b8bed9a677 lnwallet: in BtcdFeeEstimator is sat/byte is too low, fallback to default rate
In this commit, we fix an existing bug within the EstimateFeePerWeight
method for the BtcdFeeEstimator. If the sat/byte value returned was too
low, then it was possible for us to end up with a zero valued
sat/weight. We correct this issue by detecting, and falling back to the
default fee rate if so.
2017-11-30 22:13:00 -08:00
c27e87f168 lnwallet: update UpdateFee msg usage to latest API changes 2017-11-30 22:10:42 -08:00
4bec706b11 lnwallet: fix bug in htlcIsDust, outgoing HTLC on remote commit is htlcSuccess 2017-11-30 22:09:49 -08:00
d0a356c948 lnwire: the FeePerKw is a uint32, not a btcutil.Amount 2017-11-30 22:07:47 -08:00
87840f215b server: disable network bootstrapping for regtest 2017-11-30 22:07:06 -08:00
c0b8c29382 discovery: continue in loop after processing announcement signatures 2017-11-29 18:35:19 -08:00
4ab16b5c91 discovery: process AnnouncementSignatures msgs serially 2017-11-29 17:53:21 -08:00
7757721a92 routing: don't dispatch notification if error is non nil after processing ann 2017-11-29 17:53:09 -08:00
3067d05ae8 discovery: validate incoming announcements in parallel 2017-11-29 16:45:14 -08:00
5bc9f07d12 routing: validate incoming announcements in parallel 2017-11-29 16:44:14 -08:00
fcd5e4aa41 routing: when updating chain view filter on restart, use best height as height hint
In this commit, we modify the high value passed into UpdateFilter upon
restart. Before this commit, we would pass in the prune height, which
would cause a full rescan within the FilteredChainView if the best
height as > than the prune height. This was redundant as we would
shortly carry out a manual rescan in the method below. To fix this, we
now pass in the bestHeight, this isn’t an issue as the
syncGraphWithChain method will manually scan up to that best height.
2017-11-29 16:26:39 -08:00
978023ab1d routing: ensure notifyTopologyChange is theadsafe 2017-11-29 16:24:30 -08:00
33ce4e5689 routing: add new ValidationBarrier to allow for safe parallel validation of announcements
In this commit, we add a new abstraction, the ValidationBarrier. This
struct will be used to allow parallel validation of announcements
within notes AuthenticatedGossiper as well as the ChannelRouter.
Naively validating the announcement in parallel would run into issues
as it would be possible for validate an update announcement, before
validating the channel announcement itself. We solve this by creating a
waiting dependance using the ValidationBarrier to ensure that the
defendant jobs wait until their parents have been full validated.
2017-11-29 16:24:20 -08:00
2dcd2b8a6d discovery: add a mutex in order to make deDupedAnnouncements thread-safe 2017-11-29 16:21:16 -08:00
f4f476fe9f chainregistry: also disable fee estimation for regtest 2017-11-29 16:15:09 -08:00
94ba7f964d channel: properly roll over fee from commit tx during co-op chan close
In this commit, we fix an existing bug within our cooperative channel
closing transaction generation. Before this commit, we wouldn’t account
for the fee already allocated within the commitment transaction. As a
result, we would calculate the evaluated balance considering the fee
incorrectly. In this commit, we fix this by adding the commitment fee
to the balance of the initiator when crafting the closing transaction
2017-11-29 16:14:22 -08:00
4b05bad4f1 utxn: log the CSV value of kindergarten outputs on state transition 2017-11-29 16:10:25 -08:00
63c8c299ed lnwallet: use remote height as reference when gauging channel breaches 2017-11-28 12:26:02 -08:00
5b7abee92e lnwire: correct incorrect type numbers for UpdateFee, Shutdown, and ClosingSigned
In this commit we correct an off by one error on the Shutdown and
ClosingSigned message types. Additionally, we fix an error related to
the numbering of the UpdateFee message. With this we, gain proper
compatibility with the other implementations when it comes to
commitment hygiene, and also the cooperative closure process.
2017-11-28 12:26:00 -08:00
b98e993d76 lnallet: remove a TODO from signer.go
The TODO indicated that the fmt.Errorf call should be changed
to use the errors package, which allows for wrapping of errors
as necessary.
2017-11-27 20:09:05 -08:00
58ab3f5f83 peer: show conf depth in message summary for AcceptChannel 2017-11-27 16:50:10 -08:00
e572c549be Merge pull request #438 from Roasbeef/mac-docs
docs: add new section for macaroons
2017-11-27 17:22:04 -07:00
03d2d098b4 docs: add new section for macaroons 2017-11-27 16:06:56 -08:00
2fb7f5d4f3 lnwallet: fix typos 2017-11-27 17:24:45 -06:00
029c44a562 docker: add missing word in README 2017-11-27 17:18:30 -06:00
a3a02495fe docs: fix tutorial link in INSTALL.md 2017-11-27 17:16:24 -06:00
de6e511539 docker: btcd requires Go 1.8 or newer and fails to build with 1.7
The btcd docker container fails to build with Golang 1.7 because this
version of go is missing time.Until (used by the btcd server)
2017-11-27 17:15:14 -06:00
bc1e0cd8dd docker: add missing backslash to start-lnd.sh 2017-11-27 17:14:43 -06:00
483dc3f96a lnwallet: only the initiator needs to validate new fee updates
In this commit, we fix an existing bug, as only the initiator needs to
validate any new fee updates. If the initiator sends an invalid fee,
then it will be rejected by the responder as it may put them below
their required reserve.
2017-11-27 12:24:08 -08:00
3e90000e2a lnwallet: reject UpdateFee messages if it puts initiator below the water
In this commit, we ensure that we reject any UpdateFee messages if
after applying the update, the initiator doesn’t have enough funds to
actually pay for the new commitment state.

A test has been added to exercise this new behavior.
2017-11-26 14:08:59 -06:00
807784a1c4 lnwallet: fix ChanReserve calculation in createTestChannels to be non-random 2017-11-26 14:08:58 -06:00
7d3e1308e4 lnwallet: add ability to properly retransmit UpdateFee state transitions
In this commit, we update the retransmission logic to ensure that we
properly retransmit any sent UpdateFee messages as part of a state
transition. When creating a CommitDiff, if we have a pending fee
update, then we’ll add that to the set of logs updates. When restoring
the commit diff from disk, if we encounter an UpdateFee entry, then
we’ll apply that as waiting to be ACK’d and skip adding it as a log
entry.

A new test has been added to excessive this new behavior.
2017-11-26 14:08:58 -06:00
52e6cb1a06 lnwallet: correct BTC -> SAT conversion in BtcdFeeEstimator
In this commit, we correct the BTC -> SAT conversion in
BtcdFeeEstimator. Previously, we use 10e8 instead of 1e8, causing us to
be off by an order of magnitude.
2017-11-26 14:08:57 -06:00
91bb95991e lnwallet: make 1% reservation computation clearer
Adding 99 here didn’t really do anything but obfuscate when we were
trying to compute. We’re just using internet division to calculate 1%
of the channel capacity amount. This is the amount that the remote
party must remain above at all times.
2017-11-26 14:08:57 -06:00
24ad3e17de lnwallet: reject funding flows if local amount is insufficient w.r.t fees 2017-11-26 14:08:56 -06:00