Commit graph

12256 commits

Author SHA1 Message Date
ThomasV
dbd77b7d8e
Merge pull request #6014 from SomberNight/20200304_pycryptodomex
add 'cryptography' as optional dependency; clean README and sdist
2020-03-05 09:17:42 +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
7e880427a2
try to clean-up README 2020-03-04 20:33:07 +01:00
SomberNight
adc97af58c
clear up requirements re pycryptodomex 2020-03-04 20:33:02 +01:00
SomberNight
74a3faf803
crypto: add 'cryptography' as alt dependency for 'pycryptodomex' 2020-03-04 18:54:20 +01:00
SomberNight
18f3a37032
crypto: move LN-related chacha20/poly1305 code into crypto.py 2020-03-04 17:58:43 +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
ThomasV
4c177c4c92 less verbose update_fee log 2020-03-04 08:35:56 +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
c986e522bf backup help text 2020-03-03 13:50:11 +01:00
ThomasV
9ed9fe7002 open channel dialog improvements 2020-03-03 13:06:37 +01:00
ThomasV
f67011d477 Qt: do not filter out paid invoices/requests. let user delete multiple items 2020-03-03 12:56:44 +01:00
ThomasV
89fa9b5090
Merge pull request #5898 from leo-lb/plausible-deniability-config
Add command line option to forget config on exit.
2020-03-03 11:50:04 +01:00
ThomasV
a52ac0cc74 (minor) text change: 'Expires after' 2020-03-03 11:40:01 +01:00
ThomasV
94443ebe5e Qt: list requests and invoices in descending order 2020-03-03 11:25:54 +01:00
ThomasV
abb0760616 Simplify receive tab:
- display receiving address in receiving tabs
 - display lightning invoice as 'address'
 - save last active tab in preferences
2020-03-03 11:10:48 +01:00
SomberNight
99f736f3e7
ChannelDB.load_data: add comment re bad performance, and some speed-up
On my machine, ChannelDB.load_data() went from around 6 sec to 4 sec,
just by commenting out that assert in lnmsg.

related #6006
2020-03-03 04:05:36 +01:00
SomberNight
4d6b0184b9
ChannelDB: fix typo in sql query - seems harmless though? 2020-03-03 04:05:32 +01:00
SomberNight
3f9e761b67
ChannelDB: (trivial) add prefix to names of db methods
(and some type annotations)

This makes it clear these methods are not public.
2020-03-03 04:05:29 +01:00
SomberNight
53564f2496
ChannelDB: rm NodeAddress class, just use LNPeerAddr 2020-03-03 04:05:25 +01:00
SomberNight
cdb72509a7
lnrouter: change edge cost estimate (distance metric)
Old estimate was heavily biased towards simply minimising CLTV sum.
(fees had a too low weight; typically they were ~noise)
Now also take payment_amount into account.
2020-03-03 02:12:42 +01:00
ThomasV
367d30d6c0
Merge pull request #6003 from spesmilo/htlc_switch
Htlc switch
2020-03-02 22:14:09 +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
SomberNight
c81335fb44
lnrouter: simplify max fee sanity checks 2020-03-02 19:55:11 +01:00
SomberNight
2fab681444
bolt11 invoice: strip (and so accept with) leading/trailing whitespaces 2020-03-02 19:32:53 +01:00
SomberNight
660d7d137c
commands: add changegaplimit and getminacceptablegap cmds
There are some legitimate use-cases for changing the gap limit,
so just as it has already been possible to do in the GUI (using the console only! don't expose this to mere mortals.),
now CLI/RPC users have this exposed too.

The "changegaplimit" command will always raise unless invoked with the --iknowwhatimdoing option.

closes #5882

e.g.:
$ curl --data-binary '{"id":"curltext","jsonrpc":"2.0","method":"changegaplimit","params":{"new_limit": 30, "iknowwhatimdoing": true, "wallet":"~/.electrum/testnet/wallets/test_segwit_2"}}' http://user:password@127.0.0.1:7777
$ ./run_electrum --testnet changegaplimit 30 --iknowwhatimdoing -w ~/.electrum/testnet/wallets/test_segwit_2
2020-03-02 19:07:59 +01:00
SomberNight
ac6a5a3c5f
wallet: min_acceptable_gap should mimic wallet.synchronize
if wallet.synchronize uses address_is_old, so should min_acceptable_gap
2020-03-02 18:53:04 +01:00
SomberNight
f90d96b346
Qt LN gossip sync indicator: hide if 100%; rescale 95%->100%; tooltip 2020-03-02 17:28:39 +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
387c2a1acd
kivy wallet info screen: handle "show seed" for watch-only/no-seed case
For a watch-only wallet, previously a superfluous dummy "Tap to show"
box was shown.
For a has no seed stored (but not watch-only) wallet (e.g. bip39/xprv/imported_privkeys),
the "show seed" option was there and it raised an uncaught exception.
2020-03-02 06:12:24 +01:00
SomberNight
d4fc73e2b4
kivy tx dialog: don't show "remove tx" option so eagerly
(long standing annoyance, not related to prev commit directly)
2020-03-02 05:45:04 +01:00
SomberNight
7a574c3cbc
wallet/GUI: don't allow "removing" a LN force-close-tx from history 2020-03-02 05:11:08 +01:00
SomberNight
32acc2b10e
qt channels list: show node aliases in new column 2020-03-02 04:33:13 +01:00
SomberNight
9cdc3287c1
ChannelDB: trivial fixes re node alias 2020-03-02 04:31:21 +01:00
SomberNight
c7704fb8ee
lnworker: allow changing labels of chan-open/chan-close txns 2020-03-02 04:30:06 +01:00
SomberNight
5ac01ff6ae
ChannelDB: fix get_recent_peers 2020-03-02 02:19:13 +01:00
SomberNight
968eeebdc0
transaction: follow-up prev
makes more sense to special-case deserialize()
and not invoke the extra logic then
2020-03-01 22:08:18 +01:00
SomberNight
8560930bac
transaction: (fix) invalidate ser cache when changing locktime/version
we can keep the same API, using @property,
instead of introducing getters and setters
2020-03-01 09:57:59 +01:00
SomberNight
3090cc68bb
Qt tx dialog: show txid as "unknown" while not finalized 2020-03-01 09:32:05 +01:00