SomberNight
d424487814
lnpeer: better error handling when processing onion packets
2020-04-01 21:47:45 +02:00
SomberNight
30bf32b34b
use option varonion: actually use TLV payloads, and signal support
2020-04-01 21:47:42 +02:00
SomberNight
a66437f399
lnonion: implement basis of varonion support
2020-04-01 21:42:48 +02:00
SomberNight
6ba08cc8d4
ln feature bits: flatten namespaces, and impl feature deps and ctxs
...
This implements:
- flat feature bits https://github.com/lightningnetwork/lightning-rfc/pull/666
- feature bit dependencies https://github.com/lightningnetwork/lightning-rfc/pull/719
2020-04-01 21:41:24 +02:00
SomberNight
71a4302ec0
lnpeer: send and handle "networks" param in "init" msg
2020-04-01 21:40:09 +02:00
SomberNight
3a73f6ee5c
lnmsg.decode_msg: dict values for numbers are int, instead of BE bytes
...
Will be useful for TLVs where it makes sense to do the conversion in lnmsg,
as it might be more complicated than just int.from_bytes().
2020-04-01 21:39:52 +02:00
SomberNight
4c10a830f3
lnmsg: rewrite LN msg encoding/decoding
2020-04-01 21:39:48 +02:00
SomberNight
db84de5493
trivial: use "chunks()" for htlc_sigs in lnchannel
2020-03-30 02:46:25 +02:00
SomberNight
90f3b667aa
small clean-up re max CLTV delta for LN
2020-03-30 02:46:14 +02:00
SomberNight
01207316aa
storage upgrade: move "htlc_minimum_msat" to base channel config
2020-03-26 09:05:04 +01:00
SomberNight
cf5872d2c1
follow-up prev
2020-03-17 21:19:26 +01:00
SomberNight
2cc76fbbbd
lnworker: fix type error re pending_payments, and impl malformed htlcs
...
In old code, in lnpeer.htlc_switch(), "error" in lnworker.pending_payments
had incorrect type.
TODO: we need tests for payment failures...
2020-03-17 20:32:38 +01:00
SomberNight
b524460fdf
lnpeer: implement basic handling of "update_fail_malformed_htlc"
2020-03-17 20:31:50 +01:00
ThomasV
ffa3760a17
follow-up prev: rm decorator, preprocess channel_id for all messages
2020-03-11 17:02:44 +01:00
ThomasV
386d385389
lnpeer: channel_update decorator
2020-03-11 14:17:06 +01:00
ThomasV
2c617c3b00
move feerate warning to lnpeer
2020-03-06 18:14:00 +01:00
ThomasV
888a6d726e
Propagate exceptions raise by force_close to the GUI.
...
Define 'try_force_closing' for cases where we do not
want exceptions to be raised.
2020-03-06 12:18:33 +01:00
ThomasV
28452e2d46
do not try to reestablish channel if state is FORCE_CLOSING
2020-03-06 11:25:34 +01:00
SomberNight
fa0ef9c548
ln: store network addresses for channel counterparties in channels
...
So we can reconnect to them without relying on gossip db.
2020-03-06 04:04:17 +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
ThomasV
4c177c4c92
less verbose update_fee log
2020-03-04 08:35:56 +01:00
ThomasV
79497cd3ec
(minor) rm unneeded decorator
2020-03-02 21:45:45 +01:00
ThomasV
97d191a121
maybe_forward_htlc: catch exceptions raised by nexp_peer. return only error
2020-03-02 21:18:56 +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
6f2cd8b4f5
Qt tx dialog: allow setting custom locktime
...
closes #2405
closes #1685
2020-03-01 09:14:50 +01:00
SomberNight
0147623d11
lnpeer: Peer.is_initialized() should not raise
...
Traceback (most recent call last):
File "...\electrum\electrum\gui\qt\main_window.py", line 434, in on_network_qt
self.update_lightning_icon()
File "...\electrum\electrum\gui\qt\main_window.py", line 2092, in update_lightning_icon
cur, total = self.network.lngossip.get_sync_progress_estimate()
File "...\electrum\electrum\lnworker.py", line 373, in get_sync_progress_estimate
if self.num_peers() == 0:
File "...\electrum\electrum\lnworker.py", line 202, in num_peers
return sum([p.is_initialized() for p in self.peers.values()])
File "...\electrum\electrum\lnworker.py", line 202, in
return sum([p.is_initialized() for p in self.peers.values()])
File "...\electrum\electrum\lnpeer.py", line 128, in is_initialized
return self.initialized.done() and self.initialized.result() is True
concurrent.futures._base.CancelledError
2020-02-29 20:10:02 +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
ThomasV
15e91169c5
lnpeer: fix json serialization of funding_inputs
2020-02-27 19:51:16 +01:00
ThomasV
8f6fc5917a
make sure we can send shutdown
2020-02-27 19:19:10 +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
0bf09d14a0
fix regression in shutdown (from 1c5dc79298
)
2020-02-27 19:01:06 +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
ThomasV
d04b8c05e2
(minor) fix typo in comment
2020-02-27 14:48:08 +01:00
ThomasV
f5053cc242
follow-up e54c69b861
: we must settle HTCLs after during shutdown
2020-02-27 14:40:58 +01:00
SomberNight
6161853941
lnpeer: reduce log spam due to incompatible feature bits
2020-02-26 21:10:33 +01:00
SomberNight
e54c69b861
add lnchannel.can_send_ctx_updates. just drop illegal updates for now
2020-02-26 20:35:46 +01:00
ThomasV
3d0c1dbd5c
restore log lines for send_commitment, on_commitment_signed
2020-02-26 19:14:49 +01:00
ThomasV
87fe2c7d7a
define channel.has_pending_changes method
2020-02-26 19:08:48 +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
ThomasV
9b97469598
(minor) follow-up previous commit
2020-02-26 15:49:55 +01:00
ThomasV
6833adf8b6
simplify previous commit (revert changes on transaction.py)
2020-02-26 14:16:21 +01:00