ThomasV
222c70ada6
qt swap_dialog: use a single button to toggle direction
4 years ago
ThomasV
51f3c613a5
(minor) fix typos and indentation
4 years ago
SomberNight
44059ec116
lnpeer: more detailed logging in maybe_fulfill_htlc
4 years ago
SomberNight
9310e9023e
test_lnpeer: add test: multihop payment that routes around failure
This would have caught the overpayment bug fixed in
693583edc5
4 years ago
SomberNight
750d8cfab5
lnworker: run create_route_for_payment end-to-end, incl private edges
We pass the private edges to lnrouter, and let it find routes end-to-end.
Previously the edge_cost heuristics didn't apply to the private edges
and we were just randomly picking one of the route hints and use that.
So e.g. cheaper private edges were not preferred, but they are now.
PathEdge now stores both start_node and end_node; not just end_node.
4 years ago
SomberNight
4445cef033
lnutil: turn global forwarding fee params into Channel attributes
useful for unit testing, and it is the conceptually correct thing anyway
4 years ago
ThomasV
259dacd56f
Trampoline MPP aggregation:
- trampoline node is the final recipient of MPP
- each trampoline receives a bucket of HTLCs
- if a HTLC from a bucket fails, wait for the entire bucket to fail
- move trampoline route and onion code into trampoline module
4 years ago
ThomasV
2da90add8f
maybe_fulfill_htlc: add failure reason to logs
4 years ago
ThomasV
693583edc5
lnworker: amount passed in HtlcLog must be without fees
4 years ago
SomberNight
06ea06f7d3
_calc_routing_hints_for_invoice: incl max 15 chans to avoid qr overflow
Prioritise channels that are likely to be able to receive the payment.
4 years ago
SomberNight
6f894b9f88
_calc_routing_hints_for_invoice: also incl chans < invoice amount
now that we can receive MPP
4 years ago
SomberNight
1139720b58
lnworker: fix handle_error_code_from_failed_htlc for private channels
if the last (private) edge of the route errors, we need to try other route hints (if any)
4 years ago
SomberNight
b3b87555dc
qt/kivy: lightning_tx_dialog: show LN invoice
4 years ago
SomberNight
c3ae1c0965
android build: (trivial) build arm64 apk first
Build the apk I use to test with first :P
This is also the one mentioned in the README copy-paste code snippets.
4 years ago
SomberNight
a9185b0846
follow-up prev
kivy infers the type of the property from the default value.
without this, it was converting the str(Decimal(x)) to float
4 years ago
SomberNight
6094f2751e
kivy channel dialog: fix unit of displayed feerate
The amount shown was in sat/kw, incorrectly labeled as sat/kbyte.
Show sat/vbyte instead.
4 years ago
SomberNight
7d7dcf0795
qt/kivy ChannelsList: if node alias is unknown, display node id
instead of "unknown"
4 years ago
SomberNight
dd37151d65
qt ChannelsList: (trivial) format_fields should not know column order
4 years ago
SomberNight
bf7129d57e
synchronizer/verifier: ensure fairness between wallets (follow-up)
follow-up to 4346d2fc76
It's not just about the Synchronizer, the Verifier should not starve other jobs either...
(previously I thought the Verifier is not too important as it only makes
requests if there are new txs; however with LNWatcher its progress is not persisted)
4 years ago
SomberNight
e0cfb2179d
bech32: another around 10% speedup for bech32_decode
turns out stdlib ord() is somewhat slow;
also, only lookup data chars once
benchmarked with:
```
import time
import electrum
from electrum.segwit_addr import bech32_decode
electrum.constants.set_testnet()
inv = "lntb4m1p00zfpppp597ely08ffhk8n3emeswukt0y3qfvt3sj3ufkhnaatlrswj2xvwuqsp5vu3ezu44ka8arvgda44yalysp3k3edlvg56cjkk5lvu4e4anmdssdq2v9ekgctnvscqzynxqyz5vq9qypqsqrzjqv8shunq4nda8mw2mpxhtz8v03wlgug7sln2yvqklxym35ayz3erqxct8vqqqcqqqqqqqqlgqqqqqqgq9qrzjqdxvvgt048y4htef7r63r4ha9kctz3d6l3za0053ahe597wgrkc4gxct8cqqqfsqqqqqqqlgqqqqqqgq9qrzjqwyx8nu2hygyvgc02cwdtvuxe0lcxz06qt3lpsldzcdr46my5epmjxct8vqqqdcqqqqqqqlgqqqqqqgq9qrzjqf56jn5txtqqtepnd0ahg0qg5m5mavfajsx403rem9wgu6rue0de7xct8vqqqtgqqqqqqqlgqqqq86qq9qrzjq027z73uyyl7fy8pkrpcn7x0el82pz3fw974p2052de4uz4j5lqqxx49tuqqqwgqqqqqqqqqqqqqqqqqpurzjqfj34n62wztqjxl59w4drxekg04rrrtf08mdestwhtky84ds7ja0yxct8sqqq3qqqqqqqqlgqqqqqqgq9qrzjqd872t5c5r5a8ssmwelpkdccsyn9mrr40rpp7khad4jr3kssxj9nvx49vgqqqnqqqqqqqqlgqqqq05qqgcxwu0ervh6atmqmqv7pmenhmc207gncyj0mcxedpwm8f56y2yl3qpq6mzjak37ddmeayd9unektmffv5rq8dvlpgq00rmmdalda73yhgqep0zuz"
def f():
for _ in range(10000):
addr = bech32_decode(inv, ignore_long_length=True)
t0 = time.time()
f()
t1 = time.time()
print(f"{t1-t0:.4f}")
```
4 years ago
SomberNight
b83f7159a9
bech32: around 5% speedup for bech32_decode
useful for lnaddr.lndecode
4 years ago
SomberNight
d7597d96d0
lnaddr: 15x speedup for lndecode
benchmarked with:
```
import time
import electrum
from electrum.lnaddr import lndecode
electrum.constants.set_testnet()
inv = "lntb4m1p00zfpppp597ely08ffhk8n3emeswukt0y3qfvt3sj3ufkhnaatlrswj2xvwuqsp5vu3ezu44ka8arvgda44yalysp3k3edlvg56cjkk5lvu4e4anmdssdq2v9ekgctnvscqzynxqyz5vq9qypqsqrzjqv8shunq4nda8mw2mpxhtz8v03wlgug7sln2yvqklxym35ayz3erqxct8vqqqcqqqqqqqqlgqqqqqqgq9qrzjqdxvvgt048y4htef7r63r4ha9kctz3d6l3za0053ahe597wgrkc4gxct8cqqqfsqqqqqqqlgqqqqqqgq9qrzjqwyx8nu2hygyvgc02cwdtvuxe0lcxz06qt3lpsldzcdr46my5epmjxct8vqqqdcqqqqqqqlgqqqqqqgq9qrzjqf56jn5txtqqtepnd0ahg0qg5m5mavfajsx403rem9wgu6rue0de7xct8vqqqtgqqqqqqqlgqqqq86qq9qrzjq027z73uyyl7fy8pkrpcn7x0el82pz3fw974p2052de4uz4j5lqqxx49tuqqqwgqqqqqqqqqqqqqqqqqpurzjqfj34n62wztqjxl59w4drxekg04rrrtf08mdestwhtky84ds7ja0yxct8sqqq3qqqqqqqqlgqqqqqqgq9qrzjqd872t5c5r5a8ssmwelpkdccsyn9mrr40rpp7khad4jr3kssxj9nvx49vgqqqnqqqqqqqqlgqqqq05qqgcxwu0ervh6atmqmqv7pmenhmc207gncyj0mcxedpwm8f56y2yl3qpq6mzjak37ddmeayd9unektmffv5rq8dvlpgq00rmmdalda73yhgqep0zuz"
def f():
for _ in range(100):
addr = lndecode(inv)
t0 = time.monotonic()
f()
t1 = time.monotonic()
print(f"{t1-t0:.4f}")
```
4 years ago
SomberNight
2b693d3498
tests: fix test_lnpeer.test_payment_race
broke in b6b13217b4
see changes to lnworker.htlc_fulfilled
4 years ago
ThomasV
bc1ec6ac34
Qt: fix running GUI offline
4 years ago
ThomasV
5175a97671
test_payment_race: increase delay
4 years ago
ThomasV
f32d49b8ca
revert 'keep invoice INFLIGHT', check HTLCs before payment attempt
4 years ago
ThomasV
38652cffb0
fix test_lnpeer (follow-up prev commit)
4 years ago
ThomasV
b6b13217b4
lnworker: keep invoice status INFLIGHT as long as HTLCs are inflight
4 years ago
SomberNight
2f223cdf46
qt channels dialog: fix for channel backups
4 years ago
SomberNight
d85e910262
logging: eliminate "fee_estimates" log spam
only log fee estimates if they changed, instead of ~10 times per minute
4 years ago
ThomasV
7f61f22857
MPP receive: allow payer to retry after mpp timeout
4 years ago
ghost43
0ce6adffcc
Merge pull request #6968 from HardCorePawn/issue6664
Added fiat fee estimate to Advanced Preview
4 years ago
SomberNight
f9f49daad7
tx dialog: uniform high fee warnings between GUIs
4 years ago
SomberNight
fc3009918c
follow-up prev: some clean-up
4 years ago
hcp
e01a2014b1
qt tx dialog: also display fiat amounts
4 years ago
SomberNight
84326cf1f7
qt tx dialog: add legend for input/output colouring
based on e1d70bcd98
4 years ago
ghost43
6fda9add28
Merge pull request #7026 from SomberNight/20210213_wallet_bumpfee
wallet: refactor bump_fee; add new strategy; change Qt dialog to have "advanced" button
4 years ago
SomberNight
d2019fd928
qt bump fee: rename "Final" checkbox to "Keep Replace-By-Fee enabled"
Now that the checkbox is hidden behind an advanced option, there is
no need to be brief about it, better to be explicit.
(terminology unchanged for kivy.)
4 years ago
SomberNight
4c36c45664
qt bump fee: add "advanced" button, allow choosing strategy
4 years ago
SomberNight
058d9ab6bb
wallet.bump_fee: add new strategy: decrease payment amounts
- Rename bump_fee "methods" to "strategies".
- Refactor strategies so that bump_fee can use any subset of them in any permutation.
- Adds a new strategy which decreases the payment outputs (instead of change).
4 years ago
SomberNight
8fe7d750f7
qt: move RBF dialog out of main_window.py into its own file
4 years ago
SomberNight
254f57bce5
lnpeer.maybe_fulfill_htlc: fix error case FINAL_INCORRECT_HTLC_AMOUNT
follow-up ef5a265449
4 years ago
SomberNight
31bdb5c344
lnpeer.maybe_fulfill_htlc: follow BOLTs re some errors
related: https://github.com/lightningnetwork/lightning-rfc/pull/608
4 years ago
ThomasV
61e7f7e75e
Merge pull request #7065 from SomberNight/20210224_mpp_recv_amt_sum
lnpeer: MPP recv: only fulfill htlc if amt sum exact-matches total_msat
4 years ago
ThomasV
5dc7b5bffe
Merge pull request #7069 from bitromortac/2102-mpp-split-params
mpp_split: optimize split parameters
4 years ago
bitromortac
bf87169469
mpp_split: tweak split parameters
Increases STARTING_CONFIGS to sample more starting configurations.
Reduces CANDIDATES_PER_LEVEL to reduce computational effort.
Increases REDISTRIBUTE.
The time it takes for a typical suggest_split call is about 2 msec a
desktop machine.
4 years ago
bitromortac
5081a83245
mpp_split: undo side effect in tearDown
4 years ago
SomberNight
16f0b30ced
lnpeer: MPP recv: only fulfill htlc if amt sum exact-matches total_msat
4 years ago
SomberNight
9024419fdc
lnpeer: MPP receive: require payment_secret for each htlc
BOLT-04 says:
The final node:
if it supports basic_mpp:
MUST require payment_secret for all HTLCs in the set
90468030d5/04-onion-routing.md (basic-multi-part-payments)
4 years ago
SomberNight
691ebaf4f8
lnworker/lnpeer: add some type hints, force some kwargs
4 years ago