SomberNight
80c52d4808
simple_config.estimate_fee: make sure method never fails
code in lnsweep was already assuming this
5 years ago
SomberNight
7f1b456b93
lnhtlc.discard_unsigned_remote_updates: fix edge case
5 years ago
SomberNight
bb63bd98fb
lnpeer: should not mark channel as OPEN if reestablish did not complete
5 years ago
SomberNight
940fc86749
lnpeer: reestablish_channel - fix data_loss_protect edge case
5 years ago
SomberNight
107f271e58
move all ctn book-keeping to lnhtlc (from lnchannel)
5 years ago
SomberNight
44761972cb
lnchannel: ctx output-ordering: identical htlcs are ordered by CLTV
5 years ago
SomberNight
b1f606eaed
lnchannel: start using "latest" and "next" instead of "current" and "pending"
"current" used to be "oldest_unrevoked"; and pending was "oldest_unrevoked + 1"
but this was very confusing...
so now we have "oldest_unrevoked", "latest", and "next"
where "next" is "latest + 1"
"oldest_unrevoked" and "latest" are either the same or are offset by 1
(but caller should know which one they need)
rm "got_sig_for_next" - it was a redundant sanity check, that really
just complicated things
rm "local_commitment", "remote_commitment", "set_local_commitment",
"set_remote_commitment" - just use "get_latest_commitment" instead
5 years ago
SomberNight
e32807d29d
lnworker: only reestablish channels after on-chain state is synchronized
5 years ago
SomberNight
944e4f0ba0
implement data_loss_protect
so that we can spend their_ctx_to_remote even when we lost our state
but have an old backup
5 years ago
SomberNight
fdf8d8609b
lnpeer: make feature-bit testing easier
so that we can always test like: self.localfeatures & FEATURE_BIT_OPT
5 years ago
SomberNight
014b921393
lnpeer: reestablish_channel - replay un-acked local updates
Replay un-acked local updates (including commitment_signed) byte-for-byte.
If we have sent them a commitment signature that they "lost" (due to disconnect),
we need to make sure we replay the same local updates, as otherwise they could
end up with two (or more) signed valid commitment transactions at the same ctn.
Multiple valid ctxs at the same ctn is a major headache for pre-signing spending txns,
e.g. for watchtowers, hence we must ensure these ctxs coincide.
5 years ago
SomberNight
e81ae1921b
lnpeer: reestablish_channel - discard unsigned remote updates
5 years ago
SomberNight
c046f2cc1c
lnhtlc: move 'next_htlc_id' from ChannelConfig to lnhtlc log
5 years ago
SomberNight
c8b19aec2a
lnpeer: make reestablish_channel saner
clear up expectations about ctns
5 years ago
SomberNight
a3fd6b3ce8
lnhtlc: rename ctx_pending to revack_pending, and persist it
5 years ago
SomberNight
cd4268c521
lnworker: small clean-up of short_channel_id format
5 years ago
SomberNight
bdbc662a36
lnpeer: channel_reestablished is now a queue (instead of future)
5 years ago
SomberNight
0d84873a75
lnchannel: trivial clean-up
5 years ago
ThomasV
57ec8f51c8
lnpay: check whether invoice has been paid
5 years ago
ThomasV
4b2336304f
kivy fix: get_latest_feerate
5 years ago
ThomasV
f9a2e7eeb4
lnworker.get_invoice_status: test if invoice is expired
5 years ago
ThomasV
cac1e87286
use aiohttp+jsonrpcclient to sync with remote watchtower
5 years ago
ThomasV
740381e993
fix: remove unused parameter to add_sweep_tx
5 years ago
ThomasV
fa3eefa479
refactor a few lnchannel methods
6 years ago
ThomasV
cd7ed4c59c
fix: constraints.feerate -> get_latest_feerate
5 years ago
ThomasV
f7c05f2602
Synchronize watchtower asynchronously:
- remove remote_commitment_to_be_revoked
- pass old ctns to lnsweep.create_sweeptxs_for_watchtower
- store the ctn of sweeptxs in sweepStore database
- request the highest ctn from sweepstore using get_ctn
- send sweeptxs asynchronously in LNWallet.sync_with_watchtower
6 years ago
SomberNight
f060e53912
(trivial) fix type annotation
5 years ago
SomberNight
087994e39a
lnchannel: move fee update logic to lnhtlc (and hopefully fix it)
5 years ago
ThomasV
3d7f7dfc82
revamp fee updates (draft)
6 years ago
SomberNight
7431aac5cd
lnhtlc: (fix) was locking in too many updates during commit/revoke
5 years ago
SomberNight
4ccfa39fdd
cli: fix add_peer cmd
6 years ago
ThomasV
9045d7b293
cleanup revoke_current_commitment
6 years ago
ThomasV
e43a3bc63a
follow-up prev commit: pass is_mine to _edge_cost
6 years ago
ThomasV
b55f9e9e6a
Do not route through channels for which we did not receive
both updates, because this often means one of the nodes is
offline.
6 years ago
ThomasV
30e942bead
fix: delete from channel_db
6 years ago
ThomasV
32fcad5bc3
channel_db: update channels_for_node when removing channel
6 years ago
ThomasV
2be68ac4d2
Use one LNWatcher instance per wallet
6 years ago
ThomasV
4d76e84218
improve regtest.sh with wait functions
6 years ago
ThomasV
6b90d501ab
fix type: list
6 years ago
ThomasV
94fe28b576
regtest: remove cost limit
6 years ago
ThomasV
c7b9bdc5f5
lnwatcher: wait until lnwatcher is fully synchronized before check_onchain_situation
6 years ago
ThomasV
a8ce8109be
Perform breach remedy without sweepstore:
- add functions to lnsweep
- lnworker: analyze candidate ctx and htlc_tx
- watchtower will be optional
- add test for breach remedy with spent htlcs
- save tx name as label
6 years ago
ThomasV
238f3c949c
get rid of sql_alchemy
6 years ago
ThomasV
0eab1692d6
Do not store message payloads in channel db.
Use single primary key for addresses.
6 years ago
ThomasV
f2d58d0e3f
optimize channel_db:
- use python objects mirrored by sql database
- write sql to file asynchronously
- the sql decorator is awaited in sweepstore, not in channel_db
6 years ago
ThomasV
180f6d34be
separate channel_db module
6 years ago
ThomasV
06b5299b0f
comment out convert, add logging statement
6 years ago
ThomasV
a54cb30cf3
kivy: simplify open_channel dialog
6 years ago
SomberNight
c15267e1f6
pycryptodomex for android
6 years ago
ThomasV
115113f492
remove expensive sql request, python set comparison is faster
6 years ago