Rusty Russell
b59fe5a2b6
daemon/Makefile: objects depend on wire headers too.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-06 13:23:50 +10:30
Christian Decker
452656f5a1
base58: Making check-source happy again
...
Trailing whitespace and include ordering was broken.
2017-01-05 12:12:30 +10:30
Christian Decker
96af89139e
base58: Unittests need in-tree libbase58
2017-01-05 12:12:30 +10:30
Rusty Russell
a6f98ad02b
Makefile: wire objects also depend on CCAN headers.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-05 12:11:18 +10:30
Rusty Russell
9df0aa7538
libbase58: add autosubmodule rule, move depends to bitcoin/Makefile
...
The object file should not be built inside the submodule, as that can
confuse git.
Not everything depends on the libbase58 header (CCAN doesn't), so
move that to the everything-else depends line.
The BITCOIN_SRC etc should also move to bitcoin/Makefile, but that's
a bigger change.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-05 12:11:18 +10:30
Lucas Betschart
5a41439eef
Update INSTALL.md libbase58
2017-01-05 12:11:18 +10:30
Lucas Betschart
3e6bb958eb
Add libbase58 as git submodule
...
Pointing to the latest release (0.1.4)
2017-01-05 12:11:18 +10:30
Rusty Russell
bdc4972df6
wire/gen_peer_wire_csv: update to latest spec #2
...
828eda61df5a7be27051c605f7808e4f690739e4, in particular, it has the
new address format for node_announcement.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
d3bdb073b5
wire/gen_peer_wire_csv: update to latest spec #1
...
In particular, add features bitfields.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
f50af430e1
wire: add bool routines.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
937a62100f
generate-wire.py: allow optional typename in csv file.
...
For our internal CSV files, we can specify the type explicitly rather
than trying to guess (eg. bool).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
8ad1298f88
generate-wire.py: add enum->name function.
...
Pretty! Takes an int instead of the enum directly, because in the
main daemon we call it via a function pointer, so want them all the
same type.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
54cfbfeba9
generate-wire.py: generate enum in order provided in CSV
...
This means the comments make more sense.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
ba9e4f9377
generate-wire.py: allow hex values in csv files.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
bdaa22e247
generate-wire.py: allow NULL len parameter from fromwire_*
...
It implies tal_count() gives the length. Great for almost all callers which
don't care if there are extra bytes.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
e076d56709
generate-wire.py: include type bytes in towire/fromwire routines.
...
This removes some redundancy in creating messages, but also allows
a lazy form or parsing without explicitly checking the type.
A helper fromwire_peektype() is added to look up the type and handle
the too-short-for-type problem.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
3e044fdd62
generate-wire.py: allow comments.
...
We emit them into the generated code at appropriate points, but it
would be better if we simply preserved the order they were given in.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:21 +10:30
Rusty Russell
bf7fefdc32
generate-wire.py: add memcheck() to towire functions.
...
Sanity check that we're not streaming uninitialized bytes.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
c864b28068
generate-wire.py: don't generate structures, hand in all values.
...
This is a bit more awkward for large structures, but avoids
indirection for the simpler ones (I copied the structures for the test
code, however). We also remove explicit padding.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
326a9c9477
tools/generate-wire: node_announcement.alias is not an sha256
...
It's 32 bytes long, but it's just a string.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
a08a2105ea
generate-wire.py: generalize, move to tools.
...
We're going to want to use this for inter-daemon comms, so generalize it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
b7789bf065
Makefile: generalize whitespace check.
...
Spread to individual Makefiles, and include headers.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
751a0ae5cf
check-whitespace: make it quieter.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
0861ec33a5
check-source-bolt: generalize.
...
This way sub-Makefiles can add their own files to check.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
b4f495fe99
check-source-bolt: don't try to check out if BOLTVERSION is empty or unset.
...
This lets you test against your local version, using:
make check-source BOLTVERSION=
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
6dc7056625
check-bolt: use new BOLTs.
...
The structure is slightly different, so this requires some fixes.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
c2cc164d6d
daemon: disable old BOLT checks.
...
This is useful for the next patch.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
05feefbb8a
test: move mockup script outside daemon/
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
d30b67a3fe
test: generalize update-mocks
...
So we can use it in other directories.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:20 +10:30
Rusty Russell
dec3b9d030
peer: don't ever set up listener on dynamic port.
...
Simplifies the logic somewhat.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:09:15 +10:30
Rusty Russell
12b30ab4fc
jsonrpc: register base on linkage.
...
Other than being neater (no more global list to edit!), this lets the
new daemon and old daemon have their own separate routines.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:08:15 +10:30
Rusty Russell
c7b69abdaa
type_to_string: move formatting to appropriate files.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:07:15 +10:30
Rusty Russell
5bd8063ddb
type_to_string: make type printing dynamic.
...
The union still contains all the types, but we can only print
the ones which are linked in.
This makes it much easier to use type_to_string in different binaries
without pulling in the world.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:06:15 +10:30
Rusty Russell
f8eb454139
type_to_string: move pretty printing of types from log
...
It's not just useful for logging.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:05:15 +10:30
Rusty Russell
756b2a0530
options: --help and --version are early args.
...
If they use these, we definitely don't want to create the config dir...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:04:15 +10:30
Rusty Russell
93471e06c1
options: return true if we created new directory.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 14:03:15 +10:30
Rusty Russell
038ef0250a
options: move option and config code into its own file.
...
For the moment, the new lightningd will share all this anyway.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 13:22:29 +10:30
Rusty Russell
ca4d03aa2a
lightningd_state: move invoices into separate structure.
...
It's all maintained by invoice.c, so make it private to that.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 13:18:47 +10:30
Rusty Russell
59ecb3dfea
Makefile: don't include tests in TAGS.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 13:17:47 +10:30
Rusty Russell
f8344baf64
ccan: update, new modules.
...
ccan/autodata, ccan/breakpoint, ccan/crypto/hmac_sha256, ccan/crypto/hkdf_sha256,
ccan/fdpass and ccan/io/fdpass.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-01-04 13:16:47 +10:30
Christian Decker
570003235e
gossip: Fixing minor issues
...
Thanks @rustyrussell for the review ^^
2017-01-03 15:08:05 +10:30
Christian Decker
95bc8f6987
gossip: Removing origin from staggered broadcast
...
Keeping a pointer to the peer that initially sent us a message
could (actually will!) result in dangling pointers. Removing this
results in some additional messages, which will be discarded by the
recipient, so that should not be a problem.
2017-01-03 15:08:05 +10:30
Christian Decker
0ed23c46a9
gossip: Implemented routing table sync with newly connected peers
2017-01-03 15:08:05 +10:30
Christian Decker
5ce1f7c2f3
gossip: Set announce timeout to 5 hours
2017-01-03 15:08:05 +10:30
Christian Decker
71a18fdd2e
gossip: Trigger announce on channel establishment
...
Since we ultimately want to have a very long re-announcement timeout
we better trigger an announcement upon channel state change to normal.
2017-01-03 15:08:05 +10:30
Christian Decker
e54c0adced
gossip: Do not consider half-open connections for routes
...
Connections are in a half-open state after receiving the
`channel_announcement` and before the `channel_update` makes them
usable, so we need to ignore channels that are not yet fully open.
2017-01-03 15:08:05 +10:30
Christian Decker
611f4833c5
gossip: Implemented the staggered broadcast
2017-01-03 15:08:05 +10:30
Christian Decker
fca9bf1a16
gossip: Partially sign channel_announcements
...
We can already add our own signatures, will have to defer remote
signatures until we implement the channel setup messages from the spec.
2017-01-03 15:08:05 +10:30
Christian Decker
d93ce12afa
gossip: Broadcasting and handling gossip messages
2017-01-03 15:08:05 +10:30
Christian Decker
6363dd5ff6
gossip: Update to new spec version
...
The message type numbering changed, so reflect that in the generated
type listing.
2017-01-03 15:08:05 +10:30