Rusty Russell
41ef42ee94
memdump: fix overzealous assertions from b857b2e843
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-16 00:16:10 +00:00
ZmnSCPxj
f9bc0353c4
devtools/onion: Add to gitignore.
2018-03-14 18:31:45 +01:00
ZmnSCPxj
ed3984f444
test_lightningd.py: Modify test_payment_duplicate_uncommitted.
...
`pay` command will now wait for payment to succeed if the
payment has been initiated.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
a0c2686ebd
pay: Have sendpay wait for payment to be saved.
...
The payment should be stored in a "timely" manner, i.e.
within 10ms.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
a7a18b96cf
pay: Rename some sendpay functions and fields to waitsendpay
...
Nearer to their actual purposes at this point. Also in preparation
for next change.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
61882ed9df
pay: Add hook for triggering storage of payments.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
24ee5d0437
pay: Store payment on failure.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
60f5abdc9b
wallet: Make wallet_payment_store idempotent.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
8fd71ad654
doc: Update sendpay and waitsendpay manpages.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
411c9583a7
pay: Save and recover failure information.
...
Needed for particular race condition: client calls `sendpay` with
intent to call `waitsendpay` later to get information, but the
payment fails after `sendpay` returns but before client can invoke
`waitsendpay`.
This lets client know of information even if it manages to invoke
`waitsendpay` "late".
2018-03-14 05:33:09 +00:00
ZmnSCPxj
693c718160
wallet: Add DB fields for recording routing failures.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
752b7f5277
test_lightningd.py: Update for nonblocking sendpay.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
a4a5d6002c
pylightning: Add new waitsendpay command
2018-03-14 05:33:09 +00:00
ZmnSCPxj
1e4adb0359
pay: Make sendpay nonblocking.
2018-03-14 05:33:09 +00:00
ZmnSCPxj
bb4661f008
pay: Factor out construction of sendpay_result
2018-03-14 05:33:09 +00:00
Rusty Russell
2d919d56cb
gossipd: make struct queued_message private.
...
Callers don't need it, and when we add timestamps it just makes
for more places to change.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
5e333b75b9
daemon_conn: simplify msg_queue_cleared_cb.
...
Now it just returns true if it queued something. This allows it
to queue multiple packets, and lets it share code paths with other code
in future patches.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
87effd90c2
gossipd: Revert 6afc7dcc09
.
...
This bandaid was solved properly by 94711969f9
where other daemons say where they were up to.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
afe61cb841
gossipd: honor LOCAL_INITIAL_ROUTING_SYNC.
...
We currently spam the peer with all gossip whether they want it or not.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
46cc7c281e
features: more general accessor functions.
...
As we add more features, the current code is insufficient.
1. Keep an array of single feature bits, for easy switching on and off.
2. Create feature_offered() which checks for both compulsory and optional
variants.
3. Invert requires_unsupported_features() and unsupported_features()
which tend to be double-negative, all_supported_features() and
features_supported().
4. Move single feature definition from wire/peer_wire.h to common/features.h.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
1f443df428
gossipd: use the broadcast structure to hold gossip messages.
...
We currently keep two copies; one in the broadcast structure to send
in order, and one in the routing information. Since we already keep
the broadcast index in the routing information, use that.
Conveniently, a zero index is the same as the old NULL test.
Rename struct node's announcement_idx to node_announce_msgidx to
make it match the other users.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
b8285db263
gossipd: annotate replace_broadcast that we take() the payload, make it const.
...
We tal_dup_arr() it, which does take. Make it const in the structure;
the tal_dup_arr() removes the const, so it compiles without it, but it's
misleading.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
1290f305a2
gossipd: remove tag.
...
We only access via index. We do, however, want to clean up when we
delete nodes and channels, so we tie lifetimes to that. This leads
us to put the index into 'struct queued_message'.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
882f9f258f
gossipd: remove type from broadcast.
...
It's not necessary now we only access by index.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
060182fb65
gossipd: remove unused queue_broadcast.
...
We only ever access broadcast via the index (which is way faster!).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
ba34e6cdc9
gossipd: use u64 for broadcast index.
...
uintmap uses uint64_t, we should here too.
Couldn't resist drive-by style fix for increment :)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-14 02:19:37 +00:00
Rusty Russell
640ff4b4b9
gossipd: cleanups due to feedback from cdecker.
...
1. make queue_peer_msg() use both if branches, as both equally likely.
2. Remove redundant *scid = NULL in handle_channel_announcement.
3. Log failing pending channel_updates.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
1dccbb30f9
gossip: send error messages on grossly malformed channel_update.
...
As per BOLT #7 .
We don't do this for channel_update which are queued because the
channel_announcement is pending though.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
5d77183c94
gossip: send error messages on grossly malformed channel_announcement.
...
As per BOLT #7 . We also give more exact diagnosis.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
8091e0679d
gossipd: do all malformdness checks on node_announcement before queueing.
...
If the channel is pending, we queue the node_announcment and if the channel
is OK we re-call process_node_announcement. Make sure that second call
won't fail if the first succeeded.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
6d72550707
gossip: send error messages on grossly malformed node_announcement.
...
As per BOLT #7 .
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
39c781aebb
gossipd: allow calling of peer_error on peers which aren't local.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
5eea772c53
type_to_string: support sha256_double.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
61e3c0c23e
channeld: allow gossipd to fwd messages through us without updating gossip_index.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
c8294c4091
channeld: allow gossipd to push error msgs through us.
...
We already have the code to close the channel if we've sent an error.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
ee63ae8efa
channeld: allow gossipd to push any gossip msg through us.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
61f048bbf1
gossip: rename is_gossip_msg to is_msg_for_gossipd.
...
We're going to expand the range of messages which go through gossipd
when we support queries.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Rusty Russell
81e55065d9
gossipd: don't die if we get a bad msg from another daemon.
...
We don't trust them, by design (except master and hsmd).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-13 16:34:55 +01:00
Christian Decker
74a444eb7a
jsonrpc: Return the channel capacity for listchannels
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-12 22:34:51 +00:00
Christian Decker
2abf72e7df
gossip: Store channel capacity in the routing table
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-12 22:34:51 +00:00
Christian Decker
5690783148
gossip: Pass output value to gossipd
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-12 22:34:51 +00:00
Christian Decker
a8e553098a
gossip: Pass output value to gossipd
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-12 22:34:51 +00:00
Christian Decker
cb4ba9bf4f
gossip: Use the utxoset to shortcircuit the txout lookup
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-12 22:34:51 +00:00
Christian Decker
387ba76920
wallet: Add method to retrieve outpoints from the utxoset
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-12 22:34:51 +00:00
ZmnSCPxj
1de124277b
peer_control: Print both to_self_delay
in listpeers.
2018-03-12 14:54:29 +01:00
John Barboza
b4f7ce61b4
Append to crash log instead of creating new one
...
Multiple crashes accumulate in case you have some kind
of auto-restart for daemons.
2018-03-11 14:30:34 +01:00
Isidoro Ghezzi
f24a7b9356
help: listnodes and listchannels,have optional arg
2018-03-11 14:27:09 +01:00
Christian Decker
249464ccd2
sphinx: Print test vectors to stderr instead of stdout
2018-03-09 17:57:55 +01:00
Christian Decker
ff6d5e896a
sphinx: Add a dependency form the onion tool to the ccan config
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-09 17:57:55 +01:00
Christian Decker
d701e52c81
sphinx: Fixed the onion generation and decoding tool
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-09 17:57:55 +01:00