Now it requires the datastore (or datastore.py plugin), if you want
to use runes. The simple reader/writer control lists don't require
that, but for simplicity we always require the runes Python module.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
1. Fix README.md dynamic plugin example (needs keywords, abspath!)
(pointed out by @carnhofdaki).
2. Define magic number we use (suggested by @FreePietje)
the old networkx version 2.3 did try to use `fractions.gcd()` which was
deprecated already and is removed for python 3.9. pulling in networkx
version 2.4 works with python 3.9 while also with the code of this
plugin.
This is required becasue current `lightningd` will not start
when using a non-dynamic plugin.
Since clighting version 0.7.2 is very old, we can safely remove this
code.
This adds an optional paramter to the `feeadjust` method which is `scid`
that will, if set, only adjust one channel. Default remains None which
will adjust all channels.
The new datastore PR now has a generation count; this passes
the tests against that now.
Also copies tests from c-lightning, and adds ugprade test.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This disables scaling of the base fee based on channel distortion and
instead always sets global config base fee.
The rationale behind this is that the base fee is meant to cover the
'fixed risk' of accepting an HTLC. In reality the risk may vary,
but this is unrelated on channel balance distortion but other factors.
We can have dynamic base fee per channel if we implent a better way
of competing and cost/risk coverage for this value.
Add automatic reconnect (with exponential back-off) to the socket backend.
If the connection is lost while pusing a change, try to reconnect.
Handle edge-cases that might come up depending on when the disconnect
happaned.
Currently the parameters are hardcoded: it will retry 5 times,
on the first retry it will wait 5 seconds before reconnecting.
There is an exponential backoff of 1.5, so on the fifth try it
will wait about 25 seconds.
This is particularly useful when conencting over Tor, as transient
interruptions are fairly common there.
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.
This will make the test to wait for one node to see that the second node
disconnected after using .stop().
For that it adds wait_for(lambda) testing utils method.
Sometimes a channels funding allocation was not yet readable
via listpeers which is why this plugin test was flaky.
Also makes use of funding_msat instead of deprecated fields.