Commit Graph

2810 Commits

Author SHA1 Message Date
Johan T. Halseth 10b838e9b4 gossiper: private channel cleanup + comments
This commit adds some comments and does some cleanup
of the logic that makes sure non-public channels
(channels with no AuthProof) are not broadcasted
to the network.
2017-12-17 18:35:34 -08:00
Johan T. Halseth 48e22219c0 channeldb: add ChannelFlags to OpenChannel struct
This commit adds the ChannelFlags field, of type
lnwire.FundingFlags, to the OpenChannel struct,
including serialization for database storage.
This is done to preserve the flags that were
sent during channel opening, currently used
to determine whether a channel should be made
public or not after opening.
2017-12-17 18:35:34 -08:00
Johan T. Halseth 17d1d5dc9c lncli: add 'private' flag to openchannel command
This make lncli openchannel take a --private
parameter, set to false by default.
2017-12-17 18:35:34 -08:00
Johan T. Halseth 464f57d3a5 lnrpc: update godoc for 'private' flag 2017-12-17 18:35:34 -08:00
nsa f06f6bc869 funding test: test private channels.
Tests in fundingmanager_test.go that
assert the privacy guarantees of non-broadcasting.
2017-12-17 18:35:34 -08:00
nsa c954ca1f21 funding: adding to graph, private chans, chanAnn after 6 confs
This commit introduces some new interdependent functionality. As
soon as the fundingLocked message is sent, the channel is
immediately added to the ChannelRouter's internal topology.

Finally, channels are now only broadcasted to the greater
network after six confirmations on the funding transaction
has been reached.
2017-12-17 18:35:34 -08:00
nsa dab7f31e44 gossiper: Only send channel updates for edges with AuthProof. 2017-12-17 18:35:34 -08:00
nsa 3beef359a2 rpcserver: forward private parameter to OpenChannel 2017-12-17 18:35:34 -08:00
nsa 5c4add8e0e pilot: pass private=false to OpenChannel 2017-12-17 18:35:34 -08:00
nsa 9fcb845bd2 server: use private parameter when opening channel 2017-12-17 18:35:34 -08:00
nsa 17c98473d9 lnrpc: add --private arg to OpenChanRequest 2017-12-17 18:35:34 -08:00
Olaoluwa Osuntokun 8411a5b8ce
rpc: on chan close, fallback to default fee rate if fee estimate too low
On testate as times the fee estimation can swing widely. As we
currently don’t yet use vsize everywhere internally, we’re forced to
manually scale to weight for the moment. If the returned fee rate is
too low, then it can cause our estimate to go to zero. This also has
the effect of meaning that the chanCloser doesn’t currently advance if
the initial starting fee is zero.
2017-12-16 16:37:41 -08:00
Jim Posen 84d7c7ee2c lntest: Refactor set up calls to NetworkHarness. 2017-12-14 20:06:23 -08:00
Jim Posen 02177a3f1c lntest: Improve HarnessNode stop logic and remove restart(). 2017-12-14 20:06:23 -08:00
Jim Posen 19ed1fb8db lntest: Add ShutdownNode method to harness.
This is preferable to calling Shutdown on the node directly so that
the harness manages the entire lifecycle of an lnd process.
2017-12-14 20:06:23 -08:00
Jim Posen 77d5f21b54 lntest: Add doc.go with package documentation. 2017-12-14 20:06:23 -08:00
Jim Posen 43e501feb9 lntest: Rename structs with proper visibility so lnd_test runs. 2017-12-14 20:06:23 -08:00
Jim Posen 3cb0705b8e lntest: Break lntest dependence on config in the main package.
This creates a new nodeConfig struct for the node in the lntest
package in order to decouple lntest from the main package.
2017-12-14 20:06:23 -08:00
Jim Posen fd4af6da8e lntest: MOVEONLY networktest.go -> lntest package. 2017-12-14 20:06:23 -08:00
Jim Posen bc7c834362 chainntnfs: Fix stylistic issues. 2017-12-14 19:16:15 -08:00
Jim Posen 280e264e8c chainntnfs: Implement quit signal in TxConfNotifier. 2017-12-14 19:16:15 -08:00
Jim Posen 2639b58e4b chainntnfs: Send negative confirmation notifications. 2017-12-14 19:16:15 -08:00
Jim Posen c5320f2731 chainntnfs: Test that neutrino rescan plays nice with txConfNotifier. 2017-12-14 19:16:15 -08:00
Jim Posen abf3685d2d chainntnfs/neutrino: Refactor NeutrinoNotifier to use TxConfNotifier. 2017-12-14 19:16:15 -08:00
Jim Posen 4405dac4d0 chainntnfs/btcd: Refactor BtcdNotifier to use TxConfNotifier. 2017-12-14 19:16:15 -08:00
Jim Posen 122cf3b960 chainntnfs: Unit tests for TxConfNotifier.
Also fix overflow issue with reorg handling.
2017-12-14 19:16:15 -08:00
Jim Posen d2a9dcf855 chainntnfs: TxConfNotifier struct to implement shared notifer logic.
All implementations of the ChainNotifier interface support registering
notifications on transaction confirmations. This struct is intended to
be used internally by ChainNotifier implementations to handle much of
this logic.
2017-12-14 19:16:15 -08:00
Jim Posen fa513a76ad chainntnfs/neutrino: Handle block connects and disconnects in order. 2017-12-14 19:16:15 -08:00
Jim Posen 0cac7e80d4 chainntnfs/btcd: Handle block disconnects with chainUpdate.
This does not implement full handling of block disconnections, but
ensures that all chain updates are processed in order.
2017-12-14 19:16:15 -08:00
Jim Posen 28c6a988ca chainntnfs: Test that chain notifiers handle chain reorgs correctly.
Tests are failing for both btcd and neutrino notifiers.
2017-12-14 19:16:15 -08:00
Jim Posen 88dc73adb0 htlcswitch: Fix failure error handling on outgoing adds. 2017-12-14 17:53:58 -08:00
Jim Posen 813c012ffe htlcswitch: mockChannelLink adds to circuit map to simplify tests. 2017-12-14 17:53:58 -08:00
Jim Posen 6ea533275c htlcswitch: Remove obsolete fields from htlcPacket. 2017-12-14 17:53:58 -08:00
Jim Posen 40fb0ddcfc htlcswitch: Assign each pending payment a unique ID.
This simplifies the pending payment handling code because it allows it
be handled in nearly the same way as forwarded HTLCs by treating an
empty channel ID as local dispatch.
2017-12-14 17:53:58 -08:00
Jim Posen 4a29fbdab2 htlcswitch: Rename htlcPacket fields for clarity.
The src/dest terminology for routing packets is kind of confusing
because the source HTLC may not be the source of the packet for
settles/fails traversing the circuit in the opposite direction. This
changes the nomenclature to incoming/outgoing and always references
the HTLCs themselves.
2017-12-14 17:53:58 -08:00
Jim Posen 66e654bb42 htlcswitch: Unit tests for CircuitMap. 2017-12-14 17:53:58 -08:00
Jim Posen e66f3a37a3 lnwallet: Remove rHashMap.
rHashMap in LightningChannel is no longer needed since HTLCs are now
identified by ID/index instead of payment hash.
2017-12-14 17:53:58 -08:00
Jim Posen 317b44e220 lnwallet: Change channel update methods to accept HTLC ID.
Previously, some methods on a LightningChannel like SettleHTLC and
FailHTLC would identify HTLCs by payment hash. This would not always
work correctly if there are multiple HTLCs with the same payment hash,
so instead we change these methods to identify HTLCs by their unique
identifiers instead.
2017-12-14 17:53:58 -08:00
Jim Posen 1328e61c00 htlcswitch: Change circuit map keys to (channel ID, HTLC ID).
This changes the circuit map internals and API to reference circuits
by a primary key of (channel ID, HTLC ID) instead of paymnet
hash. This is because each circuit has a unique offered HTLC, but
there may be multiple circuits for a payment hash with different
source or destination channels.
2017-12-14 17:53:58 -08:00
Jim Posen bc8d674958 htlcswitch: Remove constructor functions for htlcPacket.
The constructor functions have no additional logic other than passing
function parameters into struct fields. Given the large function
signatures, it is more clear to directly construct the htlcPacket in
client code than call a function with lots of positional arguments.
2017-12-14 17:53:58 -08:00
Olaoluwa Osuntokun bead1ba31d
lnwallet: properly check error when creating commit tx in funding flow 2017-12-14 14:55:03 -08:00
Olaoluwa Osuntokun bdfbda63bd
funding: register our desired minHTLC value during the funding flow
In this commit, we ensure that we actually advertise our desired value
for the smallest HTLC we’ll accept as incoming. Before this commit, the
value advertised was always zero.
2017-12-13 17:16:48 -08:00
Olaoluwa Osuntokun 5e5cc9b209
lnwallet: add new method to register our preferred minHTLC value
Before this commit, during a reservation, we wouldn’t ever specify our
minHTL value. We don’t yet fully validate all channel constrains, but
doing this now serves to ensure that once those features are merged,
we’ll actually be setting a valid value for minHTLC.
2017-12-13 17:15:43 -08:00
Olaoluwa Osuntokun a036098e36
chains: increase default MInHTLC value to 1000 mSAT (1 SAT) 2017-12-13 17:10:30 -08:00
Olaoluwa Osuntokun 394183040c
Merge pull request #433 from cfromknecht/persistent-conn-mgr
Improve Consistency of Logging and Actions in peerTerminationWatcher
2017-12-13 15:54:58 -08:00
Ben Congdon 3f2f74bae7 docs: fix python path typo
`os.path.expanduser` is needed to evaluate paths relative to the user's home directory.
2017-12-13 15:32:25 -08:00
MaartenTutak eb98d7d215 docs: update README to note correct number of default confs for chan open/close 2017-12-13 15:31:39 -08:00
Conner Fromknecht 9713cd81fc
server: reorder short-circuit in peer termination watcher
This commit reorders logic in the peer termination
watcher such that we short circuit earlier if we
already have pending persistent connection requests.
Before, the debug statement may have indicated that
a reconnection was being attempted, even though it
may have exited before submitting the request to
the connection manager.
2017-12-13 15:21:57 -08:00
Olaoluwa Osuntokun 26ec569fca
build: update glide to latest btcd+neutrino
In this commit, we update the commits in the glide files to point to
the latest versions of bcd and neutrino. The latest btcd version
contains a fix to the connmgr to allow us to actually cancel connection
requests. The latest neutrino commit fixes an existing bug in the order
of block connected requests
2017-12-13 15:16:44 -08:00
Tomas Susanka d1e194fbc7 docs: note on golang-1.8-go bin path
The golang-1.8-go package puts binaries in /usr/lib/go-1.8/bin. A new user might find it confusing that go binary is missing in the path
2017-12-13 14:22:59 -08:00