Open ghost opened 7 months ago
No. I've tried hundreds, if not thousands of manual circular payments with it, and it simply fails. The closest it ever gets is finding a candidate route and apparently initiating payment, but every.single.one. times out after 120seconds. I haven't had the opportunity to dig in further.
The reason why circular often takes a long time to find a path is that it tries all possible paths, starting from the cheapest ones. The issue with that is that those paths are the most likely to be drained already, resulting in a lot of failures. Over time, circular learns which channels are depleted and doesn't try to go through them anymore, resulting in better success.
Doing manual circular rebalances is not recommended, rather the idea is to wrap circular-pull
and circular-push
in some kind of automation that aims to maintain the desired balance on the channels. That is not offered by the plugin and since I'm not actively maintaining it, I don't plan to work on it, but I know users who have been pretty successful in rebalancing with circular after setting up some automation and turning some knobs.
I recommend to take a look at the commands circular-pull
and circular-push
instead of using circular directly, since that already has some automation and tries multiple routes in parallel.
If you notice circular tries the same route every time like reported by #19 , that would be a bug. If that's the case, I may take a look to try and fix it.
I fixed manual rebalancing in this PR. But push and pull don't seem to do anything:
~$
lcli circular-pull -k inscid=2821409x111x0 amount=2000 splits=2 splitamount=1000 maxppm=100 minoutppm=50 attempts=1 maxhops=8 filluptopercent=0.60 filluptoamount=120000
{
"rebalance_target": 2000,
"rebalanced_amount": 0,
"attempts": 0,
"time": "0.000s",
"successes": {}
}
It also fails pytest:
=========================================================================== short test summary info ============================================================================
FAILED tests/test_circular.py::test_circular - pyln.client.lightning.RpcError: RPC call failed: method: circular-push, payload: {'outscid': '105x3x0', 'minoutppm': 0, 'amount': 100000, 'splitamount': 25000, 'maxppm': 1...
ERROR tests/test_circular.py::test_circular - ValueError:
I don't use CLN in production, so don't have motivation to dig deeper. Hope @giovannizotta will find some time.
I have circular running for a week now on 3 nodes with CLN 24.x.
Log output looks normal, but I cannot rebalance any channels.
Does circular work for anyone?