Rusty Russell
526d3a232e
tools/generate_wire.py: generate varlen arrays properly.
...
These are now logically arrays of pointers. This is much more natural,
and gets rid of the horrible utxo array converters.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-08 19:07:12 +01:00
ZmnSCPxj
0d0ef2c733
gossipd: Implement gossip_mark_channel_unroutable.
...
Temporarily marks a channel as unroutable.
2018-02-08 00:51:30 +00:00
Rusty Russell
84bf60f934
status: add multiple levels of logging.
...
status_trace maps to status_debug.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-07 00:46:49 +00:00
Wladimir J. van der Laan
b2abe0d250
gossipd: Move include of time.h to routing.h
...
Commit a57a2dcb86
introduced a time_t
in routing.h. So also move the time.h include to the header. This
fixes the build on FreeBSD.
Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
2018-02-06 01:36:16 +00:00
Christian Decker
7dd19d5b93
gossipd: Cleanup and less verbose on deferred node_announcements
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
f6c9c4fc3a
gossipd: Use channels map to lookup pending cannouncements
...
Iterating over lists is so 1980s
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
b09666c51c
gossip: Remember the channel_update broadcast index
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
0790d9b52f
gossip: Add a map for pending node_announcements
...
We were dropping these on the floor while checking for txout. So now
we add a map that holds announcements while we are checking.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
35b44d5294
gossip: Remember which broadcast index the node_announcement had
...
Avoids searching for it in the uintmap.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
24d52ec23a
gossip: Only replace with newer updates while txout check is pending
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
739e78a8c7
gossip: Reduce verbosity
...
Now we only report serious failures, or messages that actually changed
the local view.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
fa069d7d97
gossip: Use the channels map to look up by scid
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
a88076b1b0
gossip: Adding locally added channels to channels map
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
26b5588656
gossip: Use replace_broadcast when enqueuing a channel_announcement
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
01b7e2a7c0
broadcast: Added option to replace a specific index
...
We are wasting way too much time looking for announcements and updates
in the broadcast. We can just hint where to find the message to be
evicted and safe the traversal.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
60ab947a2f
gossip: Add new channels to channels map
...
Adding channels that we are currently verifying to the map, and
skipping if we already have a channel at that position.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
Christian Decker
0bc2f8714d
gossip: Added uintmap based channels map, indexed by scids
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-05 18:28:39 +00:00
ZmnSCPxj
a57a2dcb86
routing: Only mark channel unroutable for a short time.
...
Fixes : #867
2018-02-03 21:01:58 +01:00
ZmnSCPxj
89663454c8
routing: Factor out function to determine if we can route through a channel.
2018-02-03 21:01:58 +01:00
ZmnSCPxj, ZmnSCPxj jxPCSmnZ
ddf052982a
routing: Correct the sense of "PERM bit is NOT set"
2018-02-02 20:36:28 +01:00
Rusty Russell
8fcb45c1b2
routing: use marshalled short_channel_id, not string as tag for channel_announce
...
We use this technique for the other tags, so use it here too.
This was drawn to my attention when I made more than 10 channels in a
block, and the string changed length:
Valgrind error file: valgrind-errors.31415
==31415== Conditional jump or move depends on uninitialised value(s)
==31415== at 0x4C35E20: bcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==31415== by 0x11A624: queue_broadcast (broadcast.c:40)
==31415== by 0x118D93: handle_pending_cannouncement (routing.c:704)
==31415== by 0x1109E3: handle_txout_reply (gossip.c:1796)
==31415== by 0x111177: recv_req (gossip.c:1955)
==31415== by 0x136723: next_plan (io.c:59)
==31415== by 0x137220: do_plan (io.c:387)
==31415== by 0x13725E: io_ready (io.c:397)
==31415== by 0x138B97: io_loop (poll.c:305)
==31415== by 0x111352: main (gossip.c:2022)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-01 12:20:15 +01:00
ZmnSCPxj
67e2275383
gossipd: Add handling of channel_update to routing failures.
2018-02-01 00:46:06 +00:00
ZmnSCPxj
b255d82ae2
gossipd: Implement gossip_routing_failure
for master to report routing failures.
2018-02-01 00:46:06 +00:00
Christian Decker
7a651c62fa
gossip: Pull up the check for new channels before checking the txout
...
We drop all but the first announcement, so any work that is done for a
channel that we already know is wasted. Pulling this up duplicates
some of the work but allows us to skip the costly txout check.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-01 00:12:43 +00:00
Christian Decker
fa1806da61
gossip: Deduplicate short_channel_id checks
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-01 00:12:43 +00:00
Christian Decker
e2f5e4bb3c
moveonly: Move find_pending_cannouncement up
2018-02-01 00:12:43 +00:00
Rusty Russell
6daa770b0e
Minor whitespace/comment spelling fixes.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-29 06:01:56 +00:00
Christian Decker
acc6afc8de
gossip: Directly return an error if we don't know a node's address
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-29 06:01:56 +00:00
Christian Decker
932dbd8c2c
gossip: Give up connecting after 10 attempts
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-29 06:01:56 +00:00
Christian Decker
f5147f27c9
gossip: Added message for unsuccessful connection attempts
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-29 06:01:56 +00:00
Christian Decker
1da27c51c2
gossip: Remove annoying nonlocal_gossip_broadcast_done status
...
Reported-by: @RvMP
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-27 02:27:35 +00:00
Christian Decker
3d2ef44064
gossipd: Do not report bind failures for IPv4
2018-01-27 02:27:35 +00:00
Christian Decker
007c349dec
gossip: Implement handler for enabling and disabling channels
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-26 01:09:44 +00:00
Christian Decker
c6ae4b521f
gossip: Add message to enable and disable a channel
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-26 01:09:44 +00:00
Rusty Russell
cf54f23947
JSONRPC: add id argument to listpeers.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-19 22:23:45 +00:00
Rusty Russell
06c4f6ddca
JSONRPC: add optional short_channel_id argument to listchannels
...
In order to just list one (though it may return two entries, one for each
channel direction!).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-19 22:23:45 +00:00
Rusty Russell
e1e7f289fb
JSONRPC listnodes: return timestamp, alias and color.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-19 22:23:45 +00:00
Rusty Russell
784ec96841
gossip: save alias from node_announcement
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-19 22:23:45 +00:00
Rusty Russell
ced572b973
JSONRPC: getnodes: rename to listnodes.
...
Like listinvoice, and add optional 'id' parameter to ask about a
specific node.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-19 22:23:45 +00:00
Christian Decker
f27013c338
gossip: Only skip updates if we don't have channels yet
2018-01-14 23:40:04 +00:00
Christian Decker
8f16f6ca09
gossip: Forget nodes that have no associated channels anymore
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-14 23:40:04 +00:00
Christian Decker
3a42e52bcd
gossip: Fix a memcmp with unset memory in broadcast queue
...
`tal_fmt` overallocates the returned string under some circumstances,
meaning that the trailer of the formatted string is unset, but still
considered in `tal_len`. The solution then is to truncate the
formatted string to the real string length. Only necessary here, since
we mix strings and `tal_len`.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-14 23:40:04 +00:00
Christian Decker
ca6c6feaad
gossip: Remove channels older than 2*channel-update-interval
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-14 23:40:04 +00:00
Christian Decker
574dc8cd1f
gossip: Send keepalive channel_updates
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-14 23:40:04 +00:00
Christian Decker
4470612016
gossip: Network pruning loop every channel-update-interval/2 seconds
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-14 23:40:04 +00:00
Christian Decker
7fc8e3a4e2
gossip: Pass --channel-update-interval to gossipd
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-14 23:40:04 +00:00
ZmnSCPxj
a2877232af
gossipd: Check features in node_announcement
and channel_announcement
.
...
Fixes : #548
2018-01-13 11:29:42 +01:00
Christian Decker
160285f3ea
gossip: Do not clobber updates attached to a channel announcement
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-12 21:55:50 +01:00
Rusty Russell
6b7b7f1007
test_lightningd.py: fix timing error in test_forward_different_fees_and_cltv
...
We need to make sure all the updates are known to gossip. Since
one is the local update, we change that message to look the same.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-12 09:46:56 +01:00
Rusty Russell
d4c8210a9e
gossipd: don't hang if we try to connect to already-connected peer.
...
Closes : #287
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-11 23:47:47 +01:00