Commit Graph

87 Commits

Author SHA1 Message Date
Michael Schmoock
67224d0c26 rebalance: fix flake8 code nits 2022-12-27 13:39:30 +01:00
Gálli Zoltán
d836e44b4e rebalance: fix test for multithreading 2022-12-20 10:29:44 +01:00
Gálli Zoltán
381707eaaf rebalance: multithreading
`rebalanceall` can run on multiple threads for faster results
2022-12-20 10:29:44 +01:00
Gálli Zoltán
29dfc0f3f8 rebalance: rebalanceall can be stopped quickly
waitsendpay could stuck for minutes making rebalancestop unresponsive
2022-12-04 13:58:57 +01:00
Michael Schmoock
386f2f650b rebalance: rpcversion check for new format 2022-12-02 16:12:29 +01:00
Michael Schmoock
76af2722dc rebalance: adds version check for using status on listpays (#387) 2022-11-04 11:43:00 +01:00
Michael Schmoock
4d3560b129 reqirements: switch to pyln-client 0.12 for backup, drain, feeadj, rebalance and summary
This is required as newer versions of cln (>=0.12) use non numeric json
rpc IDs.
2022-11-04 11:43:00 +01:00
Michael Schmoock
2322bf64a8 rebalance: getroute update msatoshi by amount_msat
rebalance: getroute outdated msatoshi by amount_msat
2022-11-04 11:43:00 +01:00
Michael Schmoock
8ed6e3870b rebalance: remove pointless pass-through of plugin paramter 2022-11-04 11:43:00 +01:00
Gálli Zoltán
ce423836d6 rebalance: listpays use status argument
It is a performance improvement: `rebalancereport` running time changes from 40 secs to 14 secs on my node.
2022-10-26 10:44:06 +02:00
PestToast
59010ec851 Update required pyln-client version
A simple update to resolve issue #312
2022-04-28 12:59:22 +02:00
ajpwahqgbi
65ddf6477e rebalance: Print human-readable route details with satoshi units and node aliases 2021-12-13 11:56:06 +01:00
Michael Schmoock
2560a9a85f rebalance: include rebalancereport in testing 2021-11-17 11:20:56 +01:00
Gálli Zoltán
57edc6cd38 rebalance: get_max_amount start with the original amount
The first amount to try is the original amount. After a fail, `rebalanceall` starts to divide it by 4.
2021-11-17 11:18:39 +01:00
Gálli Zoltán
20d7bbb212 rebalancereport calls listpays once
I had several successful rebalances, and when I call `rebalancereport` it takes some time to collect info about them.
A possible performance improvement: `rebalancereport` does not call `listpays` for every rebalance one by one, but only once.
In my case, this changes the execution time from ~140 secs to ~7 secs.
2021-11-17 11:18:39 +01:00
Michael Schmoock
941c1b7141 rebalance: nits 2021-08-22 23:16:51 +02:00
Gálli Zoltán
88bb8beacf rebalance: division by zero fix
this occurs if I don't have any transaction forward for a day
2021-08-19 10:07:28 +02:00
Michael Schmoock
9d70293c44 rebalance: add average_forward_fee_ppm for 1s 7d and 30d interval to report 2021-08-16 15:50:46 +02:00
Rusty Russell
a6e8a10618 rebalance: fix for next release.
We now insist on payment_secret, so rebalance fails!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2021-07-23 22:03:27 +09:30
Billy Garrison
c06f898316 rebalance: fix example usage in readme
The parameters were in incorrect order, causing an error when user doesn't use with `-k`
2021-07-23 10:35:19 +02:00
Michael Schmoock
4c0e3aba67 rebalance: test for additional stop msg 2021-06-29 10:42:16 +02:00
Michael Schmoock
70d0977371 rebalance: return last rebalanceall_msg even when nothing was stopped
When the last `rebalanceall` run terminated silently in the background,
it is still useful to get the ending message of that run.

This change will make the `rebalancestop` method to return the same
'nothing to stop' message plus the rebalanceall_msg when there
was a `rebalanceall` somewhere in the past.
2021-06-29 10:42:16 +02:00
Michael Schmoock
ed98e657c1 rebalance: nits 2021-06-29 10:42:16 +02:00
Zoltán Gálli
5f0fce5820 rebalance: measure liquidity health (#257)
rebalance: measure liquidity health
2021-06-24 11:42:58 +02:00
Gálli Zoltán
ad53311d31 rebalance: msatfactor is not a threshold 2021-06-17 13:31:13 +02:00
Gálli Zoltán
267a464293 rebalance report: fee as ppm 2021-06-17 13:31:13 +02:00
Gálli Zoltán
924a59fc6e rebalance report 2021-06-17 13:31:13 +02:00
Michael Schmoock
b602c6ef7d rebalance: fix docstring 2021-06-17 13:00:58 +02:00
Michael Schmoock
775fd8a3c2 rebalance: fix testcase
We changed the return message on `rebalancestop`
in the latest commitm which the testcase did not expect.
2021-06-15 10:41:12 +02:00
Michael Schmoock
b51633889a rebalance: docstring nits 2021-06-15 10:34:45 +02:00
Michael Schmoock
fb9f4688df rebalance: retruns rebalanceall stats on rebalancestop 2021-06-15 10:34:45 +02:00
Gálli Zoltán
132b500c44 getroute_method parameter for rebalance 2021-06-15 09:07:47 +02:00
Gálli Zoltán
2d97b86fcc getroute method name: default->iterative 2021-06-15 09:07:47 +02:00
Gálli Zoltán
fac97fcabc rebalance: interchangeable route search strategy 2021-06-15 09:07:47 +02:00
Michael Schmoock
c36851529c rebalance: code nits 2021-06-08 23:48:59 +02:00
Michael Schmoock
b9c2328400 rebalance: make erring_node count configureable 2021-06-08 23:48:59 +02:00
Michael Schmoock
444c6c41e6 rebalance: switches argument order of retry_for and maxfeepercent
The parameter `maxfeepercent` is rarely changed when using manual rebalances.
However `retry_for` is. Swithcing these parameters gives to option to
easily retry with a higher timeout on the console without naming all
arguments.
2021-06-08 23:48:59 +02:00
Michael Schmoock
309a75b03d rebalance: rebalanceall with maxhops 6 and msatfactor 1 2021-06-08 23:48:59 +02:00
Michael Schmoock
039e972cdf rebalance: fix maxhops iteration 2021-06-08 23:48:59 +02:00
Michael Schmoock
4537b0cdb3 rebalance: renames msat_factor to jsut msatfactor 2021-06-08 23:48:59 +02:00
Michael Schmoock
afcc7b5357 rebalance: make maxhops and msat_factor configureable 2021-06-08 23:48:59 +02:00
Michael Schmoock
0ce0050378 rebalance: trace runtime stats for getroute and sendpay 2021-06-08 23:48:59 +02:00
Michael Schmoock
8989c014f7 rebalance: try short routes and bigger channels first 2021-06-08 23:48:59 +02:00
Michael Schmoock
1b00af4c9b rebalance: reduce and optimize log statements 2021-06-08 23:48:59 +02:00
Michael Schmoock
e9a2a7412f rebalance: improved and fixed error handling 2021-06-08 23:48:59 +02:00
Michael Schmoock
8184a92593 rebalance: fix waitsendpay timeout could have been negative 2021-06-08 23:48:59 +02:00
Michael Schmoock
97707e1daf rebalance: fix getroute parameters
1. use riskfactor of 10 (default of pay) tends to give better routing results
2. limit route max_hops to 5 (+2) tends to give better success rate
2021-06-08 23:48:59 +02:00
Michael Schmoock
5a622072fc rebalance: fix exclude list and worst_channel direction 2021-06-08 23:48:59 +02:00
Gálli Zoltán
a7a0007dce rebalance: handle HTLC timeout
In rare cases, HTLCs can be stuck for days. I don't know why it's happening, maybe it would worth investigating the situation.
2021-02-26 11:28:07 +01:00
Gálli Zoltán
38b03cdddc rebalance: channel wo scid
A channel can exist without a short_channel_id, in the CHANNELD_AWAITING_LOCKIN state, while the funding transaction is sent but not yet included in a block.

Running `rebalanceall` while opening a channel could throw an exception:
```
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py: Exception in thread Thread-5:
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py: Traceback (most recent call last):
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:   File \"/usr/lib/python3.6/threading.py\", line 916, in _bootstrap_inner
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:     self.run()
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:   File \"/usr/lib/python3.6/threading.py\", line 864, in run
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:     self._target(*self._args, **self._kwargs)
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:   File \"/home/user/plugins/rebalance/rebalance.py\", line 475, in rebalanceall_thread
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:     result = maybe_rebalance_once(plugin, failed_pairs)
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:   File \"/home/user/plugins/rebalance/rebalance.py\", line 443, in maybe_rebalance_once
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:     result = maybe_rebalance_pairs(plugin, ch1, ch2, failed_pairs)
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:   File \"/home/user/plugins/rebalance/rebalance.py\", line 425, in maybe_rebalance_pairs
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:     wait_for_htlcs(plugin, [scid1, scid2])
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:   File \"/home/user/plugins/rebalance/rebalance.py\", line 384, in wait_for_htlcs
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py:     if scids is not None and channel['short_channel_id'] not in scids:
2021-02-14T09:31:39 UNUSUAL plugin-rebalance.py: KeyError: 'short_channel_id'
```
2021-02-16 10:58:35 +01:00