SomberNight
41233a4bc7
windows build: minor clean-up
4 years ago
SomberNight
dded25f398
windows build: cache pip downloads
4 years ago
SomberNight
f1f584c4c4
windows build: separate 32/64 bit build caches
specify which architecture to target by setting WIN_ARCH env var
4 years ago
SomberNight
e07f615bbb
windows binaries: update pyinstaller to 4.2
4 years ago
SomberNight
7698ab4ccb
android build: update kivy, and python
4 years ago
SomberNight
edb214aeca
lnworker.pay_to_node: re overpayment, raise before actually it happens
4 years ago
ThomasV
6ddd02506e
test_lnpeer: add missing parameter in pay_to_route
4 years ago
ThomasV
83993768e5
trampoline: do not add node in trampoline hints if it already is
the last trampoline of the route
4 years ago
ThomasV
5663e59863
lnworker: fix amount_inflight.
(amount with routing fees were used on htlc failures)
4 years ago
ThomasV
d3d476f44c
lnpeer: fix error code in logs
4 years ago
ThomasV
31919d0425
lnworker: add assert amount_inflight <= amount_to_pay
4 years ago
SomberNight
529e96aaf9
synchronizer: (trivial) add comment
4 years ago
SomberNight
1dbff51fce
synchronizer: fix rare race where synchronizer could get stuck
4 years ago
SomberNight
34413a9c30
python 3.6 compat: asyncio.Task.set_name was added in 3.8
4 years ago
ThomasV
5207c40cc3
fix trampoline forwarding: add_received_htlc must be indexed by payment_secret
4 years ago
ThomasV
59547d0513
test_lnpeer: variables must be declared in MockLNWallet.__init__
4 years ago
SomberNight
762ebb12b2
lnpeer: increase max_accepted_htlcs (5->30)
Counter-intuitively, the motivation is to be able to *send* more htlcs,
for MPP trickery. We don't offer more htlcs than this limit, to be
conservative with what we send, and to interoperate with clightning.
defaults of other clients:
eclair: 30
clightning: 30
lnd: 483
4 years ago
ThomasV
f397b315ac
remove trampoline and forwarding regtests, as they are covered by unittests
4 years ago
ThomasV
1f60d5d8ee
test_lnpeer: add test for trampoline
4 years ago
ThomasV
eda9097e89
trampoline forwarding: return UNKNOWN_NEXT_PEER if we cannot find a route
4 years ago
ThomasV
6cc3480356
follow-up prev commit
4 years ago
ThomasV
16554afa1b
follow-up previous commit (this was for testing)
4 years ago
ThomasV
2e4f45ec74
use two trampolines: fix blacklisting, use local variables for trampoline_fee_level and use_two_trampolines
4 years ago
SomberNight
ec6baa12f8
follow-up prev
oops, that was just for local testing
4 years ago
SomberNight
064670bd75
network: close interfaces more aggressively (abort after 2 seconds)
fixes #7083
4 years ago
SomberNight
ff485cee62
use functools.wraps() for some wrappers
to help debugging
4 years ago
SomberNight
859f8ccf8e
fix wallet.clear_history()
it would result in "wallet.get_history() failed balance sanity-check"
maybe related: https://github.com/spesmilo/electrum/issues/6792
4 years ago
ThomasV
5a2a724cb9
Receive MPP: Use persisted payment status to decide whether to
fulfill HTLCs. Without this commit, we might timeout a part of
a payment if the client is shut down before all parts are
fulfilled.
4 years ago
SomberNight
e25602ab3b
wallet: don't put partial tx as UTXO into psbt
if there is a chain of unsigned txs, we cannot populate NON_WITNESS_UTXO
closes #7080
closes #7009
closes #6482
4 years ago
SomberNight
785fe6aeea
lnutil: (trivial) add ShortChannelID.from_str() method
for console use atm
4 years ago
ThomasV
738411e32b
Trampoline forwarding:
- fix regression in create_routes:
fwd_trampoline_onion was not added to the tuple
- fix onion structure for e2e
- maybe_fulfill_htlc:
check the mpp_status of the outer onion,
return trampoline_onion to be forwarded
4 years ago
ThomasV
ba4d6bc8b3
trampoline MPP: fix total_msat in trampoline onion, and bucketing
4 years ago
ThomasV
253907fb60
lnworker: move buckets logic inside first branch of if statement (refactoring commit)
4 years ago
SomberNight
f84f13529a
lnhtlc: fix deadlock
4 years ago
SomberNight
adbfb2dcc8
lnworker.pay_to_node: (fix) pass correct total_msat to pay_to_route
4 years ago
SomberNight
920e1e94fa
kivy: InvoiceDialog: make LN invoice QR code scannable
Don't show the text and the QR code together, only the QR code:
the text takes up too much space, which make the QR hard to scan.
4 years ago
SomberNight
1aec982b27
kivy: SendScreen: reliably show LN payment attempt progress for invoice
4 years ago
ThomasV
7ca64ebbd8
fix #7078
4 years ago
SomberNight
95b7c976e0
lnrouter.get_distances: fix exception due to rare race
if the graph is being updated while the pathfinding is running,
channel_info might be None here
4 years ago
ThomasV
3fa1aed8cd
add unit test for basic mpp
4 years ago
ThomasV
ca6ecd56f2
fix route for non-trampoline MPP
4 years ago
ThomasV
1adde4c54a
qt channels_list: use monospace font for channel capacity
4 years ago
ThomasV
6cf79dcfb2
qt: update all tabs when base_unit changes
4 years ago
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