This just tries all prefixes of a route to the given node, returning a failure as soon as it hits the channel that got the payment stuck. Signed-off-by: Christian Decker <decker.christian@gmail.com>
Plugins for c-lightning
Community curated plugins for c-lightning.
Available plugins
| Name | Short description |
|---|---|
| autopilot | An autopilot that suggests channels that should be established |
| autoreload | A developer plugin that reloads a plugin under development when it changes |
| donations | A simple donations page to accept donations from the web |
| graphql | Exposes the c-lightning API over graphql |
| lightning-qt | A bitcoin-qt-like GUI for lightningd |
| monitor | helps you analyze the health of your peers and channels |
| persistent-channels | Maintains a number of channels to peers |
| probe | Regularly probes the network for stability |
| prometheus | Lightning node exporter for the prometheus timeseries server |
| rebalance | Keeps your channels balanced |
| reckless | An experimental plugin manager (search/install plugins) |
| sendinvoiceless | Sends some money without an invoice from the receiving node. |
| sitzprobe | A Lightning Network payment rehearsal utility |
| summary | Print a nice summary of the node status |
Installation
To install and activate a plugin you need to stop your lightningd and restart it
with the plugin argument like this:
lightningd --plugin=/path/to/plugin/directory/plugin_file_name.py
Notes:
- The
plugin_file_name.pymust have executable permissions:chmod a+x plugin_file_name.py - A plugin can be written in any programming language, as it interacts with
lightningdpurely using stdin/stdout pipes.
Automatic plugin initialization
Alternatively, especially when you use multiple plugins, you can copy or symlink
all plugin directories into your ~/.lightning/plugins directory. The daemon
will load each executeable it finds in sub-directories as a plugin. In this case
you don't need to manage all the --plugin=... parameters.
Pylightning
All python plugins depend on the pylightning library. It can be given in
several ways:
- Using
piptools:pip3 install pylightning - Using the
PYTHONPATHenvironment variable to include your clightning's shippedpylightninglibrary:
PYTHONPATH=/path/to/lightnind/contrib/pylightning lightningd
Additional dependencies
Additionally, some Python plugins come with a requirements.txt which can be
used to install the plugin's dependencies using the pip tools:
pip3 install -r requirements.txt
Note: You might need to also specify the --user command line flag depending on
your environment.
More Plugins from the Community
- https://github.com/conscott/c-lightning-plugins
- https://github.com/renepickhardt/c-lightning-plugin-collection
- https://github.com/fiatjaf/lightningd-gjson-rpc/tree/master/cmd
- https://github.com/rsbondi/clightning-go-plugin/tree/master/remoteRPC
Plugin Builder Resources
- Description of the plugin API
- C Plugin API by @rustyrussell
- Python Plugin API & RPC Client (PyPI) by @cdecker and a video tutorial by @renepickhardt
- Go Plugin API & RPC Client by @niftynei
- C++ Plugin API & RPC Client by @darosior
- Javascript Plugin API & RPC Client by @darosior