Tree:
b17b4c3eb6
bump-pyln-proto
confirmed-only
connected_hook
docs
exclude-equal-hint
fee-tracking2
fix-benchmarks
fix-mocks
fix-test_pay_direct-flake
fixup-0.9.0
htlc_accepted_hook
issue-2080
issue-2504
json-streaming
keysend
master
mpp
nifty/pset-pre
patch-1
paymod-01
paymod-02
paymod-03
paymod-04
plugin-1
plugin-2
plugin-3
plugin-6
plugin-7
plugin-timeout-inc
ppa
ppa-0.6.1
ppa-0.6.2rc1
ppa-prep
ppa-v0.9.2
pr-2218
pr-2355-addendum
pr-2391
pr-2587
pull/2803/head
pull/2938/head
pylightning-async
pyln
register-keysend-plugin
release-0.9.0
release-0.9.0rc3
route-mem-overrun
routehint-order
sanitizers
sendonion-msatoshi
test-pay-routeboost
travis-debug
travis-experimental
travis-test
trytravis
v0.9.0.1
add-PR3363-and-PR3372
azure0.1
basedon-aeafe4dbe7d5c61f664c18417698866b0d70252f
bolt11-demo
cp-head
demo_09052017
gossip-rewrite-prebase
htlc_accepted_replay
issue-2491-checkpoint-1
list
multi-db-pre-reoder-20190821
onion-rpc-1573494123
onion-rpc-1573497614
patch-09-reviewed
plugin-2-deadend
plugin-5-prebase-1
plugin-7-a
pr-3316
pr-3321
pr-3329
pr-3335
pr-3340
pre-rebase-01
prebase-20190726
prebrase-2019010301
rebase-top
sphinx-hop-data-head
sphinx-reply-v0
subd-request-muxing-prebase
test
test1
trackblocks-20180303
undo
v0.0.0.20
v0.0.0.20-bench
v0.0.0.20-dev
v0.0.0.21
v0.0.0.21-bench
v0.0.0.21-dev
v0.0.0.22
v0.0.0.22-bench
v0.0.0.22-dev
v0.1-2015-08-08
v0.2-2016-01-22
v0.3-2016-05-26
v0.4-2016-08-19
v0.5-2016-10-19
v0.5.1-2016-10-21
v0.5.2-2016-11-21
v0.6
v0.6.1
v0.6.1rc1
v0.6.1rc2
v0.6.2
v0.6.2rc1
v0.6.3
v0.6.3rc1
v0.6rc1
v0.6rc2
v0.7.0
v0.7.0rc1
v0.7.0rc2
v0.7.0rc3
v0.7.1
v0.7.1rc1
v0.7.1rc2
v0.7.1rc3
v0.7.1rc4
v0.7.1rc5
v0.7.2
v0.7.2.1
v0.7.2rc1
v0.7.2rc2
v0.7.3
v0.7.3rc1
v0.7.3rc2
v0.7.3rc3
v0.8.0
v0.8.0rc1
v0.8.0rc2
v0.8.1
v0.8.1rc1
v0.8.1rc2
v0.8.1rc3
v0.8.2
v0.8.2.1
v0.8.2rc1
v0.8.2rc2
v0.8.2rc3
v0.9.0
v0.9.0-1
v0.9.0.1
v0.9.0rc1
v0.9.0rc2
v0.9.0rc3
v0.9.0rc4
v0.9.1
v0.9.1rc1
v0.9.1rc2
v0.9.2
v0.9.2rc1
v0.9.2rc2
v0.9.3
v0.9.3rc1
v0.9.3rc2
variant-pyunittests
where-the-500-went
${ noResults }
7 Commits (b17b4c3eb634d8cc8fb61591b1c2e0a5306b9a44)
Author | SHA1 | Message | Date |
---|---|---|---|
trueptolemy | e75d8e061b |
Plugin: New notification type, forward_event
`forward_event` A notification for topic `forward_event` is sent every time the status of a forward payment is set. The json format is same as the API `listforwards`. ```json { "forward_event": { "payment_hash": "f5a6a059a25d1e329d9b094aeeec8c2191ca037d3f5b0662e21ae850debe8ea2", "in_channel": "103x2x1", "out_channel": "103x1x1", "in_msatoshi": 100001001, "in_msat": "100001001msat", "out_msatoshi": 100000000, "out_msat": "100000000msat", "fee": 1001, "fee_msat": "1001msat", "status": "settled", "received_time": 1560696342.368, "resolved_time": 1560696342.556 } } ``` or ```json { "forward_event": { "payment_hash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "in_channel": "103x2x1", "out_channel": "110x1x0", "in_msatoshi": 100001001, "in_msat": "100001001msat", "out_msatoshi": 100000000, "out_msat": "100000000msat", "fee": 1001, "fee_msat": "1001msat", "status": "local_failed", "failcode": 16392, "failreason": "WIRE_PERMANENT_CHANNEL_FAILURE", "received_time": 1560696343.052 } } ``` - The status includes `offered`, `settled`, `failed` and `local_failed`, and they are all string type in json. - When the forward payment is valid for us, we'll set `offered` and send the forward payment to next hop to resolve; - When the payment forwarded by us gets paid eventually, the forward payment will change the status from `offered` to `settled`; - If payment fails locally(like failing to resolve locally) or the corresponding htlc with next hop fails(like htlc timeout), we will set the status as `local_failed`. `local_failed` may be set before setting `offered` or after setting `offered`. In fact, from the time we receive the htlc of the previous hop, all we can know the cause of the failure is treated as `local_failed`. `local_failed` only occuors locally or happens in the htlc between us and next hop; - If `local_failed` is set before `offered`, this means we just received htlc from the previous hop and haven't generate htlc for next hop. In this case, the json of `forward_event` sets the fields of `out_msatoshi`, `out_msat`,`fee` and `out_channel` as 0; - Note: In fact, for this case we may be not sure if this incoming htlc represents a pay to us or a payment we need to forward. We just simply treat all incoming failed to resolve as `local_failed`. - Only in `local_failed` case, json includes `failcode` and `failreason` fields; - `failed` means the payment forwarded by us fails in the latter hops, and the failure isn't related to us, so we aren't accessed to the fail reason. `failed` must be set after `offered`. - `failed` case doesn't include `failcode` and `failreason` fields; - `received_time` means when we received the htlc of this payment from the previous peer. It will be contained into all status case; - `resolved_time` means when the htlc of this payment between us and the next peer was resolved. The resolved result may success or fail, so only `settled` and `failed` case contain `resolved_time`; - The `failcode` and `failreason` are defined in [BOLT 4][bolt4-failure-codes]. |
6 years ago |
darosior | 736651ba43 |
lightningd/notification: add 'channel_opened' notification
This notification is sent when a peer succesfully opens a channel to us |
6 years ago |
darosior | b5bb7f191f |
Plugins: Add a notification for invoice payment
Similarly to the 'invoice_payment' hook |
6 years ago |
trueptolemy | 231703cc7f |
plugin: Add new notification type: warning
This notification bases on `LOG_BROKEN` and `LOG_UNUSUAL` level log. --Introduction A notification for topic `warning` is sent every time a new `BROKEN`/ `UNUSUAL` level(in plugins, we use `error`/`warn`) log generated, which means an unusual/borken thing happens, such as channel failed, message resolving failed... ```json { "warning": { "level": "warn", "time": "1559743608.565342521", "source": "lightningd(17652): 0821f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c chan #7854:", "log": "Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: sent ERROR bad reestablish dataloss msg" } } ``` 1. `level` is `warn` or `error`: `warn` means something seems bad happened and it's under control, but we'd better check it; `error` means something extremely bad is out of control, and it may lead to crash; 2. `time` is the second since epoch; 3. `source`, in fact, is the `prefix` of the log_entry. It means where the event happened, it may have the following forms: `<node_id> chan #<db_id_of_channel>:`, `lightningd(<lightningd_pid>):`, `plugin-<plugin_name>:`, `<daemon_name>(<daemon_pid>):`, `jsonrpc:`, `jcon fd <error_fd_to_jsonrpc>:`, `plugin-manager`; 4. `log` is the context of the original log entry. --Note: 1. The main code uses `UNUSUAL`/`BROKEN`, and plugin module uses `warn` /`error`, considering the consistency with plugin, warning choose `warn` /`error`. But users who use c-lightning with plugins may want to `getlog` with specified level when receive warning. It's the duty for plugin dev to turn `warn`/`error` into `UNUSUAL`/`BROKEN` and present it to the users, or pass it directly to `getlog`; 2. About time, `json_log()` in `log` module uses the Relative Time, from the time when `log_book` inited to the time when this event happend. But I consider the `UNUSUAL`/`BROKEN` event is rare, and it is very likely to happen after running for a long time, so for users, they will pay more attention to Absolute Time. -- Related Change 1. Remove the definitions of `log`, `log_book`, `log_entry` from `log.c` to `log.h`, then they can be used in warning declaration and definition. 2. Remove `void json_add_time(struct json_stream *result, const char *fieldname, struct timespec ts)` from `log.c` to `json.c`, and add related declaration in `json.h`. Now the notification function in `notification.c` can call it. 2. Add a pointer to `struct lightningd` in `struct log_book`. This may affect the independence of the `log` module, but storing a pointer to `ld` is more direct; |
6 years ago |
Rusty Russell | a2fa699e0e |
Use node_id everywhere for nodes.
I tried to just do gossipd, but it was uncontainable, so this ended up being a complete sweep. We didn't get much space saving in gossipd, even though we should save 24 bytes per node. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> |
6 years ago |
Christian Decker | 26f17e87a3 |
plugin: Add connect and disconnect notifications
Signed-off-by: Christian Decker <decker.christian@gmail.com> |
6 years ago |
Christian Decker | 7355e62964 |
plugin: Add subscriptions when processing the plugin manifest
Signed-off-by: Christian Decker <decker.christian@gmail.com> |
6 years ago |