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
SomberNight
d800f88bfc
(trivial) wallet: fix over-indentation
4 years ago
ThomasV
c9d6d11604
create_trampoline_route: check that we can pay the amount and the fees, and that the route is sane
4 years ago
SomberNight
ab9bf07a79
(trivial) lnrouter: fix type of TrampolineEdge.short_channel_id
also, use keyword arguments inside attr.ib() as PyCharm was complaining
4 years ago
ThomasV
bf1d516959
lnworker: add fees from private path to the amount passed to find_route.
(see #7050 )
4 years ago
ThomasV
391dba7117
Refactor find_route_for_payment
- remove duplicated code
- rename variable names to be consistent with the
'path', 'route' terminology
- compute private route before route
4 years ago
ThomasV
152894e6a9
calc_hops_data: total_msat should be optional
4 years ago
SomberNight
0a5b714643
lnworker: add "endurance" ACINQ testnet node as hardcoded trampoline
4 years ago