ThomasV
7f3542f080
lnworker: set invoice status if htlcs are received from previous session
2020-03-05 10:51:22 +01:00
ThomasV
8f3fcdd1a8
Fix detection of payments.
...
1. In lnhtlc, sent_in_ctn and failed_in_ctn need to look at the
remote ctx, and they need to be called when we receive a revocation,
not when we send one.
2. In lnchannel, we use 3 lnworker callbacks:
- payment sent/payment failed (called when we receive a revocation)
- payment received (called when we send a revocation)
3. Make revoke_current_commitment return a single value.
The second value was only used in tests, there is no need
to bloat the code with that
2020-03-05 07:03:09 +01:00
ThomasV
b9eaba3e85
replace await_local/remote
2020-03-05 07:03:09 +01:00
SomberNight
dae842e2ad
tests: made TestLNTransport.test_loop more robust
2020-03-04 17:57:40 +01:00
SomberNight
7962e17df6
invoices: deal with expiration of "0" mess
...
Internally, we've been using an expiration of 0 to mean "never expires".
For LN invoices, BOLT-11 does not specify what an expiration of 0 means.
Other clients seem to treat it as "0 seconds" (i.e. already expired).
This means there is no way to create a BOLT-11 invoice that "never" expires.
For LN invoices,
- we now treat an expiration of 0, , as "0 seconds",
- when creating an invoice, if the user selected never, we will put 100 years as expiration
2020-03-04 14:24:07 +01:00
SomberNight
01981f71fb
lnworker.add_peer: don't block event loop with DNS
2020-03-03 21:04:54 +01:00
SomberNight
fbd0c9aae8
lnworker: peer-bootstrapping: add IPv6 fallback nodes
2020-03-03 20:40:50 +01:00
SomberNight
59a428ea7f
lnworker: re-enable dns seeds for peer-finding bootstrap
...
but only for mainnet
2020-03-03 20:12:12 +01:00
ThomasV
367d30d6c0
Merge pull request #6003 from spesmilo/htlc_switch
...
Htlc switch
2020-03-02 22:14:09 +01:00
SomberNight
a97e7bae05
ChannelDB: make gossip sync progress updates cheaper
...
get_num_channels_partitioned_by_policy_count() was too slow
2020-03-02 16:56:15 +01:00
ThomasV
f801307a08
move htlc_switch task to lnpeer
2020-03-02 15:41:50 +01:00
ThomasV
5d3bca7bb8
htlc_switch: decouple maybe_send_commitment from htlc processing
2020-03-02 15:08:12 +01:00
ThomasV
cfc20845a2
lnworker: dissociate htlc forwarding and fulfillment
2020-03-02 11:54:08 +01:00
ThomasV
09675bd911
make maybe_fulfill_htlc, maybe_forward_htlc synchronous.
...
move async operations to lnworker.htlc_switch
2020-03-02 11:19:04 +01:00
ThomasV
d827aedd16
lnpeer: do not drop channel updates if cannot send
2020-03-02 11:19:04 +01:00
ThomasV
da67fda92a
HTLC switch:
...
- fulfills/fails/forwards HTLCs
- onion_packets are saved when update_add_htlc is received
2020-03-02 11:19:04 +01:00
SomberNight
c7704fb8ee
lnworker: allow changing labels of chan-open/chan-close txns
2020-03-02 04:30:06 +01:00
SomberNight
67d24bf129
add LN gossip sync progress estimate indicator to Qt GUI
2020-02-29 20:03:35 +01:00
SomberNight
a32af44ff9
trivial clean-up (typing/imports)
2020-02-28 20:27:35 +01:00
ThomasV
077f778632
Replace lightning_settle_delay with enable_htlc_settle (asyncio.Event)
2020-02-28 10:15:28 +01:00
SomberNight
b21bcf5977
taskgroups: don't log CancelledError
2020-02-27 20:22:49 +01:00
SomberNight
ed234d3444
rename all TaskGroup() fields to "taskgroup"
...
for consistency
2020-02-27 19:13:56 +01:00
SomberNight
c8260249b0
lnworker: add own taskgroup (run in daemon.taskgroup)
2020-02-27 19:13:53 +01:00
ThomasV
34400c0710
Set channel state to OPENING as soon as we receive 'funding_signed',
...
instead of when the funding transaction has been broadcast, because
we have no reliable way to know when it will be broadcast.
2020-02-27 18:12:20 +01:00
SomberNight
9d1fa4cc99
(trivial) lnworker: move LNGossip.peer_closed to parent class
2020-02-26 20:31:51 +01:00
ThomasV
1c5dc79298
shutdown:
...
- resend shutdown on reestablish
- wait until no more pending updates before sending shutdown
2020-02-26 16:06:28 +01:00
SomberNight
3966b51a94
fix undefined name 'CHANNEL_INIT_TIMEOUT'
2020-02-24 15:12:27 +01:00
ThomasV
8ff1921c0d
(minor) fix log
2020-02-24 13:23:11 +01:00
ThomasV
5785c2fa2f
Fix #5975 : Forget or redeem channels that are never funded.
...
- initiator: wait until double spent
- non-initiator: wait until timeout
2020-02-24 12:45:10 +01:00
ThomasV
20d8da7e24
db upgrade: store channel tx height and timestamps in 'channels'
2020-02-24 10:07:55 +01:00
ThomasV
e8ee4250d9
Do not save new channels before they are added to lnworker
2020-02-24 09:44:35 +01:00
ThomasV
947211fe4e
follow-up 54ef6db762
: set channel state to OPENING if funding tx was broadcast later (e.g. cold storage)
2020-02-23 20:43:23 +01:00
SomberNight
cc5624fb20
don't raise BaseException
2020-02-23 19:55:09 +01:00
ThomasV
54ef6db762
do not try to reestablish channels in PREOPENING state (per BOLT2).
2020-02-23 14:54:04 +01:00
ThomasV
64a8de8bae
Qt: show amounts sent to channels in show_transaction
2020-02-22 16:02:02 +01:00
ThomasV
fa62d03c2a
require option static_remotekey in lnwallet
2020-02-22 09:04:42 +01:00
ThomasV
bda23ef73d
Use a Future for lnpeer.initialized, so that exceptions are passed to the GUI
2020-02-22 09:04:24 +01:00
ThomasV
1b586faec9
disable peer filtering in lnworker
2020-02-21 17:41:20 +01:00
ThomasV
55e0e1a72e
Generate channel keys from random seed
2020-02-21 12:38:12 +01:00
ThomasV
86d1e50469
select peers with desired features before connecting
2020-02-21 10:57:13 +01:00
ThomasV
2255b07157
support option_static_remotekey
2020-02-20 21:02:01 +01:00
ThomasV
47d14c579b
minor fix: can_send, can_receive
2020-02-20 21:01:42 +01:00
ThomasV
704c3ae07f
do not allow channel creation from backup file
2020-02-20 19:09:05 +01:00
ThomasV
9451ca9568
move list_channels to commands.py
2020-02-20 10:30:30 +01:00
ThomasV
238fb46d87
Lightning: Show sending and receiving capacity. Fixes #5967
2020-02-19 16:11:55 +01:00
ThomasV
feb47b0a6f
Add lightning tx dialog (qt and kivy)
2020-02-18 13:02:18 +01:00
SomberNight
46d8080c76
ln gossip: don't put own channels into db; always pass them to fn calls
...
Previously we would put fake chan announcement and fake outgoing chan upd
for own channels into db (to make path finding work). See Peer.add_own_channel().
Now, instead of above, we pass a "my_channels" param to the relevant ChannelDB methods.
2020-02-17 20:38:41 +01:00
ThomasV
4dc74870e1
Catch exceptions raised in LNWorker._pay_to_route
...
Reset payment status if an exception is caught.
Also, do not pass status to the 'invoice_status' network callback.
This fixes #5869 , #5870 , #5964 .
2020-02-17 12:33:43 +01:00
ThomasV
472c0defee
fix lnchannel.get_payments: unsettled htlcs may have overwritten the returned results.
2020-02-17 12:19:18 +01:00
ThomasV
938fab86d1
detect redeemed channels ( fix #5963 )
2020-02-16 19:07:20 +01:00