SomberNight
aba2e0f55a
lnhtlc: add all_htlcs_ever, get_htlc_by_id, was_htlc_failed and use them
...
towards encapsulation of hm.log
2020-09-04 19:29:14 +02:00
ThomasV
0b16f8ec3a
lnpeer: only process INIT if we are a backup. fixes #6241
2020-06-23 13:12:11 +02:00
SomberNight
1321b0e47a
qt channel details: maybe fix #5728
2020-06-21 05:16:27 +02:00
ThomasV
aacddf008c
trigger_force_close: set my_current_per_commitment_point to a valid point
...
We could as well derive the point from our channel_seed and ctn=0,
but that seems unnecessary. Related: #6241
2020-06-19 12:04:04 +02:00
SomberNight
5401b3f72d
channel backups: try fixing force-close-trigger
2020-06-19 06:38:00 +02:00
SomberNight
4c70956687
filter callbacks to wallet: channel, payment_succeeded, payment_failed
...
It is ugly that the 'channel' callback takes a wallet I guess,
but with channel backups in one wallet, and active channels in another,
it was causing problems... (when open simultaneously)
2020-06-19 04:11:35 +02:00
SomberNight
3509343447
ln: make 'to_self_delay' CSV configurable
...
needed for tests
2020-06-09 18:36:34 +02:00
SomberNight
fc39295d20
lnpeer: review safety check re channel open flow, and tweak params
2020-06-08 21:17:23 +02:00
ThomasV
2571669a32
fix #6200 : if we cannot parse an onion, send a failure code that has the BADONION bit
2020-06-05 12:31:04 +02:00
ThomasV
47b3c49b25
split lnpeer.fail_htlc into two methods with less parameters
2020-06-05 12:01:31 +02:00
ThomasV
2adbbee5fe
Add extra state to distinguish shutdown negotiation from post-
...
negotiation, where channel should not be reestablished. See #6182
2020-05-29 18:00:52 +02:00
ThomasV
6aa337c618
fix #6176
2020-05-27 18:13:30 +02:00
SomberNight
530a446172
follow-up prev: don't reuse funding tx change address for static_remotekey
...
see comment in code
2020-05-22 17:19:55 +02:00
SomberNight
6040e953a3
wallet: implement reserving addresses, and use it for LN SRK to_remote
...
- Use change addresses (instead of receive) for the static_remotekey to_remote outputs,
and reserve these to greatly reduce the chance of address-reuse
- Use change addresses (instead of receive) for LN channel sweep addresses.
Note that these atm are not getting reserved.
2020-05-22 17:19:51 +02:00
SomberNight
f9de6a5354
tests: lnpeer: make debug htlc failure hooks more uniform
2020-05-14 19:15:32 +02:00
SomberNight
2b0ed9f406
(trivial) lnpeer: rm @log_exceptions from htlc_switch
2020-05-14 19:15:29 +02:00
SomberNight
cc4029c335
test_lnpeer: add some multi-hop payment unit tests
2020-05-06 11:06:44 +02:00
SomberNight
7153e753d1
lnworker._pay: allow specifying path as argument
...
not exposed to CLI/etc yet but will be used in tests soon
2020-05-06 11:06:40 +02:00
ThomasV
887b643706
follow-up prev commit...
2020-05-05 09:58:50 +02:00
ThomasV
a8c14e65ad
follow-up prev commit
2020-05-05 09:57:01 +02:00
ThomasV
1529b07aa4
follow-up prev commit
2020-05-05 09:55:56 +02:00
ThomasV
c1b1638615
fix htlc forwarding:
...
- persist fail_htlc error messages
- do not rely on payment_hash in htlc_switch
2020-05-05 09:23:48 +02:00
ThomasV
ab188ff375
add config variable to test update_fail_malformed_htlc
2020-05-04 20:31:44 +02:00
ThomasV
abe1bece2c
remove UnknownPaymentHash (exception used as value)
2020-05-02 22:37:28 +02:00
SomberNight
8389892dbd
lnpeer: (trivial) log name for chan.state and chan.peer_state
...
IntEnum.__format__ just returns an int:
>>> from enum import IntEnum
>>> class Colours(IntEnum):
... red = 1
... blue = 2
...
>>> var = Colours.red
>>> f"{var}"
'1'
>>> f"{var!s}"
'Colours.red'
>>> f"{var!r}"
'<Colours.red: 1>'
2020-05-01 03:43:12 +02:00
SomberNight
6f7a4ab048
lnpeer: add get_channel_by_id, for small speed-up
2020-04-30 21:13:29 +02:00
SomberNight
b9b53e7f76
lnworker: fix threading issues for .channels attribute
...
external code (commands/gui) did not always take lock when iterating lnworker.channels.
instead of exposing lock, let's take a copy internally (as with .peers)
2020-04-30 21:08:26 +02:00
ThomasV
ef5ad5f22f
extend 'add_peer', 'list_peers' commands to gossip
2020-04-16 12:39:12 +02:00
SomberNight
223b62554e
lntransport: use network proxy if available
...
fixes #4824
2020-04-15 21:44:09 +02:00
SomberNight
90cb032721
lnworker: implement exponential backoff for retries
2020-04-15 17:24:04 +02:00
ThomasV
9224404108
Move callback manager out of Network class
2020-04-14 18:29:51 +02:00
SomberNight
54e1520ee4
ln: check if chain tip is stale when receiving HTLC
...
if so, don't release preimage / don't forward HTLC
2020-04-13 17:04:27 +02:00
SomberNight
12283d625b
(trivial) rename lnchannel.channel_states to ChannelState
2020-04-13 16:02:05 +02:00
ThomasV
821431a239
lnpeer: move ping_if_required away from message_loop
...
If our connection dies because we went to sleep, message_loop
will stall and ping_if_required will never be called.
2020-04-13 11:34:58 +02:00
ThomasV
99f933401a
add more logging shortcuts
2020-04-12 12:30:59 +02:00
ThomasV
74517c88ad
do not use short_channel_id as state, use channel state for that.
...
display it as soon as the funding tx is mined.
2020-04-10 15:10:50 +02:00
ThomasV
8f41aeb783
Replace wallet backup with channel backups
...
- channels can be backed up individually
- backups are added to lnwatcher
- AbstractChannel ancestor class
2020-04-10 14:45:23 +02:00
ThomasV
d2a58a2ec3
lnpeer: do not assume our privkey is the same as lnworker's privkey.
2020-04-06 19:06:27 +02:00
ThomasV
f3995350e8
localconfig: rename seed to channel_seed
2020-04-06 16:53:48 +02:00
ThomasV
0ea21c59d2
Save channel seed in localconfig
2020-04-04 13:28:19 +02:00
SomberNight
1be0a710c3
ln: implement option payment_secret
2020-04-01 21:49:12 +02:00
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