ThomasV
0b16f8ec3a
lnpeer: only process INIT if we are a backup. fixes #6241
5 years ago
SomberNight
1321b0e47a
qt channel details: maybe fix #5728
5 years ago
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
5 years ago
SomberNight
5401b3f72d
channel backups: try fixing force-close-trigger
5 years ago
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)
5 years ago
SomberNight
3509343447
ln: make 'to_self_delay' CSV configurable
needed for tests
5 years ago
SomberNight
fc39295d20
lnpeer: review safety check re channel open flow, and tweak params
5 years ago
ThomasV
2571669a32
fix #6200 : if we cannot parse an onion, send a failure code that has the BADONION bit
5 years ago
ThomasV
47b3c49b25
split lnpeer.fail_htlc into two methods with less parameters
5 years ago
ThomasV
2adbbee5fe
Add extra state to distinguish shutdown negotiation from post-
negotiation, where channel should not be reestablished. See #6182
5 years ago
ThomasV
6aa337c618
fix #6176
5 years ago
SomberNight
530a446172
follow-up prev: don't reuse funding tx change address for static_remotekey
see comment in code
5 years ago
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.
5 years ago
SomberNight
f9de6a5354
tests: lnpeer: make debug htlc failure hooks more uniform
5 years ago
SomberNight
2b0ed9f406
(trivial) lnpeer: rm @log_exceptions from htlc_switch
5 years ago
SomberNight
cc4029c335
test_lnpeer: add some multi-hop payment unit tests
5 years ago
SomberNight
7153e753d1
lnworker._pay: allow specifying path as argument
not exposed to CLI/etc yet but will be used in tests soon
5 years ago
ThomasV
887b643706
follow-up prev commit...
5 years ago
ThomasV
a8c14e65ad
follow-up prev commit
5 years ago
ThomasV
1529b07aa4
follow-up prev commit
5 years ago
ThomasV
c1b1638615
fix htlc forwarding:
- persist fail_htlc error messages
- do not rely on payment_hash in htlc_switch
5 years ago
ThomasV
ab188ff375
add config variable to test update_fail_malformed_htlc
5 years ago
ThomasV
abe1bece2c
remove UnknownPaymentHash (exception used as value)
5 years ago
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>'
5 years ago
SomberNight
6f7a4ab048
lnpeer: add get_channel_by_id, for small speed-up
5 years ago
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)
5 years ago
ThomasV
ef5ad5f22f
extend 'add_peer', 'list_peers' commands to gossip
5 years ago
SomberNight
223b62554e
lntransport: use network proxy if available
fixes #4824
5 years ago
SomberNight
90cb032721
lnworker: implement exponential backoff for retries
5 years ago
ThomasV
9224404108
Move callback manager out of Network class
5 years ago
SomberNight
54e1520ee4
ln: check if chain tip is stale when receiving HTLC
if so, don't release preimage / don't forward HTLC
5 years ago
SomberNight
12283d625b
(trivial) rename lnchannel.channel_states to ChannelState
5 years ago
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.
5 years ago
ThomasV
99f933401a
add more logging shortcuts
5 years ago
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.
5 years ago
ThomasV
8f41aeb783
Replace wallet backup with channel backups
- channels can be backed up individually
- backups are added to lnwatcher
- AbstractChannel ancestor class
5 years ago
ThomasV
d2a58a2ec3
lnpeer: do not assume our privkey is the same as lnworker's privkey.
5 years ago
ThomasV
f3995350e8
localconfig: rename seed to channel_seed
5 years ago
ThomasV
0ea21c59d2
Save channel seed in localconfig
5 years ago
SomberNight
1be0a710c3
ln: implement option payment_secret
5 years ago
SomberNight
d424487814
lnpeer: better error handling when processing onion packets
5 years ago
SomberNight
30bf32b34b
use option varonion: actually use TLV payloads, and signal support
5 years ago
SomberNight
a66437f399
lnonion: implement basis of varonion support
5 years ago
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
5 years ago
SomberNight
71a4302ec0
lnpeer: send and handle "networks" param in "init" msg
5 years ago
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().
5 years ago
SomberNight
4c10a830f3
lnmsg: rewrite LN msg encoding/decoding
5 years ago
SomberNight
db84de5493
trivial: use "chunks()" for htlc_sigs in lnchannel
5 years ago
SomberNight
90f3b667aa
small clean-up re max CLTV delta for LN
5 years ago
SomberNight
01207316aa
storage upgrade: move "htlc_minimum_msat" to base channel config
5 years ago