Rename subdaemons, move them into top level.

We leave the *build* results in lightningd/ for ease of in-place testing though.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2017-08-29 13:42:04 +09:30
committed by Christian Decker
parent 739b163f8b
commit bbed5e3411
62 changed files with 330 additions and 304 deletions

9
.gitignore vendored
View File

@@ -9,14 +9,8 @@
TAGS TAGS
ccan/tools/configurator/configurator ccan/tools/configurator/configurator
ccan/ccan/cdump/tools/cdump-enumstr ccan/ccan/cdump/tools/cdump-enumstr
libsecp256k1.a
libsecp256k1.la
libsodium.a
libsodium.la
libwallycore.a
libwallycore.la
gen_* gen_*
lightning-cli/lightning-cli cli/lightning-cli
tools/check-bolt tools/check-bolt
coverage coverage
ccan/config.h ccan/config.h
@@ -34,4 +28,3 @@ daemon/test/run-maxfee
test/test_protocol test/test_protocol
test/test_sphinx test/test_sphinx
test/test_irc test/test_irc
lightningd/lightningd_closing

View File

@@ -49,8 +49,8 @@ make
Running lightning: Running lightning:
``` ```
bitcoind & bitcoind &
./lightningd/lightningd & ./lightningd &
./daemon/lightning-cli help ./cli/lightning-cli help
``` ```
**Note**: You may need to include `testnet=1` in `bitcoin.conf` **Note**: You may need to include `testnet=1` in `bitcoin.conf`

View File

@@ -122,7 +122,7 @@ CCAN_HEADERS := \
$(CCANDIR)/ccan/timer/timer.h \ $(CCANDIR)/ccan/timer/timer.h \
$(CCANDIR)/ccan/typesafe_cb/typesafe_cb.h $(CCANDIR)/ccan/typesafe_cb/typesafe_cb.h
GEN_HEADERS := gen_version.h ALL_GEN_HEADERS += gen_version.h
CDUMP_OBJS := ccan-cdump.o ccan-strmap.o CDUMP_OBJS := ccan-cdump.o ccan-strmap.o
@@ -143,6 +143,13 @@ include bitcoin/Makefile
include common/Makefile include common/Makefile
include wire/Makefile include wire/Makefile
include wallet/Makefile include wallet/Makefile
include hsmd/Makefile
include handshaked/Makefile
include gossipd/Makefile
include openingd/Makefile
include channeld/Makefile
include closingd/Makefile
include onchaind/Makefile
include lightningd/Makefile include lightningd/Makefile
include cli/Makefile include cli/Makefile
include test/Makefile include test/Makefile
@@ -154,7 +161,7 @@ CHANGED_FROM_GIT = [ x"`git log $@ | head -n1`" != x"`git log $< | head -n1`" -o
check: check:
$(MAKE) pytest $(MAKE) pytest
pytest: cli/lightning-cli lightningd-all pytest: $(ALL_PROGRAMS)
PYTHONPATH=contrib/pylightning python3 tests/test_lightningd.py -f PYTHONPATH=contrib/pylightning python3 tests/test_lightningd.py -f
# Keep includes in alpha order. # Keep includes in alpha order.
@@ -233,8 +240,11 @@ $(ALL_PROGRAMS) $(ALL_TEST_PROGRAMS):
# Everything depends on the CCAN headers. # Everything depends on the CCAN headers.
$(CCAN_OBJS) $(CDUMP_OBJS): $(CCAN_HEADERS) $(CCAN_OBJS) $(CDUMP_OBJS): $(CCAN_HEADERS)
# Except for CCAN, we treat everything else as dependent on external/ bitcoin/ common/ wire/ and generated version headers. # Except for CCAN, we treat everything else as dependent on external/ bitcoin/ common/ wire/ and all generated headers.
$(ALL_OBJS): $(BITCOIN_HEADERS) $(COMMON_HEADERS) $(CCAN_HEADERS) $(WIRE_HEADERS) $(GEN_HEADERS) $(EXTERNAL_HEADERS) $(ALL_OBJS): $(BITCOIN_HEADERS) $(COMMON_HEADERS) $(CCAN_HEADERS) $(WIRE_HEADERS) $(ALL_GEN_HEADERS) $(EXTERNAL_HEADERS)
# We generate headers in two ways, so regen when either changes.
$(ALL_GEN_HEADERS): ccan/ccan/cdump/tools/cdump-enumstr $(WIRE_GEN)
update-ccan: update-ccan:
mv ccan ccan.old mv ccan ccan.old

View File

@@ -1,32 +1,34 @@
#! /usr/bin/make #! /usr/bin/make
# Designed to be run one level up # Designed to be run one level up
lightningd/channel-wrongdir: channeld-wrongdir:
$(MAKE) -C ../.. lightningd/channel-all $(MAKE) -C ../.. lightningd/channel-all
default: lightningd/channel-all default: channeld-all
lightningd/channel-all: lightningd/lightningd_channel channeld-all: lightningd/lightning_channeld
# lightningd/channel needs these: # lightningd/channel needs these:
LIGHTNINGD_CHANNEL_HEADERS_GEN := \ LIGHTNINGD_CHANNEL_HEADERS_GEN := \
lightningd/channel/gen_channel_wire.h channeld/gen_channel_wire.h
LIGHTNINGD_CHANNEL_HEADERS_NOGEN := \ LIGHTNINGD_CHANNEL_HEADERS_NOGEN := \
lightningd/channel/channeld_htlc.h \ channeld/channeld_htlc.h \
lightningd/channel/commit_tx.h \ channeld/commit_tx.h \
lightningd/channel/full_channel.h channeld/full_channel.h
LIGHTNINGD_CHANNEL_HEADERS := $(LIGHTNINGD_CHANNEL_HEADERS_GEN) $(LIGHTNINGD_CHANNEL_HEADERS_NOGEN) LIGHTNINGD_CHANNEL_HEADERS := $(LIGHTNINGD_CHANNEL_HEADERS_GEN) $(LIGHTNINGD_CHANNEL_HEADERS_NOGEN)
LIGHTNINGD_CHANNEL_SRC := lightningd/channel/channel.c \ LIGHTNINGD_CHANNEL_SRC := channeld/channel.c \
lightningd/channel/commit_tx.c \ channeld/commit_tx.c \
lightningd/channel/full_channel.c \ channeld/full_channel.c \
$(LIGHTNINGD_CHANNEL_HEADERS_GEN:.h=.c) $(LIGHTNINGD_CHANNEL_HEADERS_GEN:.h=.c)
LIGHTNINGD_CHANNEL_OBJS := $(LIGHTNINGD_CHANNEL_SRC:.c=.o) LIGHTNINGD_CHANNEL_OBJS := $(LIGHTNINGD_CHANNEL_SRC:.c=.o)
# Make sure these depend on everything. # Make sure these depend on everything.
ALL_OBJS += $(LIGHTNINGD_CHANNEL_OBJS) ALL_OBJS += $(LIGHTNINGD_CHANNEL_OBJS)
ALL_PROGRAMS += lightningd/lightning_channeld
ALL_GEN_HEADERS += $(LIGHTNINGD_CHANNEL_HEADERS_GEN)
# Common source we use. # Common source we use.
CHANNELD_COMMON_OBJS := \ CHANNELD_COMMON_OBJS := \
@@ -61,9 +63,9 @@ LIGHTNINGD_CHANNEL_CONTROL_HEADERS := $(LIGHTNINGD_CHANNEL_HEADERS_GEN)
LIGHTNINGD_CHANNEL_CONTROL_SRC := $(LIGHTNINGD_CHANNEL_HEADERS_GEN:.h=.c) LIGHTNINGD_CHANNEL_CONTROL_SRC := $(LIGHTNINGD_CHANNEL_HEADERS_GEN:.h=.c)
LIGHTNINGD_CHANNEL_CONTROL_OBJS := $(LIGHTNINGD_CHANNEL_CONTROL_SRC:.c=.o) LIGHTNINGD_CHANNEL_CONTROL_OBJS := $(LIGHTNINGD_CHANNEL_CONTROL_SRC:.c=.o)
LIGHTNINGD_CHANNEL_GEN_SRC := $(filter lightningd/channel/gen_%, $(LIGHTNINGD_CHANNEL_SRC) $(LIGHTNINGD_CHANNEL_CONTROL_SRC)) LIGHTNINGD_CHANNEL_GEN_SRC := $(filter channeld/gen_%, $(LIGHTNINGD_CHANNEL_SRC) $(LIGHTNINGD_CHANNEL_CONTROL_SRC))
LIGHTNINGD_CHANNEL_SRC_NOGEN := $(filter-out lightningd/channel/gen_%, $(LIGHTNINGD_CHANNEL_SRC)) LIGHTNINGD_CHANNEL_SRC_NOGEN := $(filter-out channeld/gen_%, $(LIGHTNINGD_CHANNEL_SRC))
# Add to headers which any object might need. # Add to headers which any object might need.
LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_CHANNEL_HEADERS_GEN) LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_CHANNEL_HEADERS_GEN)
@@ -71,15 +73,15 @@ LIGHTNINGD_HEADERS_NOGEN += $(LIGHTNINGD_CHANNEL_HEADERS_NOGEN)
$(LIGHTNINGD_CHANNEL_OBJS): $(LIGHTNINGD_HEADERS) $(LIGHTNINGD_CHANNEL_OBJS): $(LIGHTNINGD_HEADERS)
lightningd/channel/gen_channel_wire.h: $(WIRE_GEN) lightningd/channel/channel_wire.csv channeld/gen_channel_wire.h: $(WIRE_GEN) channeld/channel_wire.csv
$(WIRE_GEN) --header $@ channel_wire_type < lightningd/channel/channel_wire.csv > $@ $(WIRE_GEN) --header $@ channel_wire_type < channeld/channel_wire.csv > $@
lightningd/channel/gen_channel_wire.c: $(WIRE_GEN) lightningd/channel/channel_wire.csv channeld/gen_channel_wire.c: $(WIRE_GEN) channeld/channel_wire.csv
$(WIRE_GEN) ${@:.c=.h} channel_wire_type < lightningd/channel/channel_wire.csv > $@ $(WIRE_GEN) ${@:.c=.h} channel_wire_type < channeld/channel_wire.csv > $@
LIGHTNINGD_CHANNEL_OBJS := $(LIGHTNINGD_CHANNEL_SRC:.c=.o) $(LIGHTNINGD_CHANNEL_GEN_SRC:.c=.o) LIGHTNINGD_CHANNEL_OBJS := $(LIGHTNINGD_CHANNEL_SRC:.c=.o) $(LIGHTNINGD_CHANNEL_GEN_SRC:.c=.o)
lightningd/lightningd_channel: $(LIGHTNINGD_CHANNEL_OBJS) $(WIRE_ONION_OBJS) $(CHANNELD_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS) lightningd/lightning_channeld: $(LIGHTNINGD_CHANNEL_OBJS) $(WIRE_ONION_OBJS) $(CHANNELD_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS)
check-source: $(LIGHTNINGD_CHANNEL_SRC_NOGEN:%=check-src-include-order/%) check-source: $(LIGHTNINGD_CHANNEL_SRC_NOGEN:%=check-src-include-order/%)
check-source-bolt: $(LIGHTNINGD_CHANNEL_SRC:%=bolt-check/%) $(LIGHTNINGD_CHANNEL_HEADERS:%=bolt-check/%) check-source-bolt: $(LIGHTNINGD_CHANNEL_SRC:%=bolt-check/%) $(LIGHTNINGD_CHANNEL_HEADERS:%=bolt-check/%)
@@ -91,4 +93,4 @@ clean: lightningd/channel-clean
lightningd/channel-clean: lightningd/channel-clean:
$(RM) $(LIGHTNINGD_CHANNEL_OBJS) gen_* $(RM) $(LIGHTNINGD_CHANNEL_OBJS) gen_*
-include lightningd/channel/test/Makefile -include channeld/test/Makefile

View File

@@ -11,6 +11,9 @@
#include <ccan/take/take.h> #include <ccan/take/take.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>
#include <ccan/time/time.h> #include <ccan/time/time.h>
#include <channeld/commit_tx.h>
#include <channeld/full_channel.h>
#include <channeld/gen_channel_wire.h>
#include <common/crypto_sync.h> #include <common/crypto_sync.h>
#include <common/cryptomsg.h> #include <common/cryptomsg.h>
#include <common/daemon_conn.h> #include <common/daemon_conn.h>
@@ -27,12 +30,9 @@
#include <common/type_to_string.h> #include <common/type_to_string.h>
#include <common/version.h> #include <common/version.h>
#include <errno.h> #include <errno.h>
#include <gossipd/routing.h>
#include <hsmd/gen_hsm_client_wire.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/channel/commit_tx.h>
#include <lightningd/channel/full_channel.h>
#include <lightningd/channel/gen_channel_wire.h>
#include <lightningd/gossip/routing.h>
#include <lightningd/hsm/gen_hsm_client_wire.h>
#include <secp256k1.h> #include <secp256k1.h>
#include <signal.h> #include <signal.h>
#include <stdio.h> #include <stdio.h>

View File

@@ -1,7 +1,9 @@
#ifndef LIGHTNING_LIGHTNINGD_CHANNEL_CHANNELD_HTLC_H #ifndef LIGHTNING_LIGHTNINGD_CHANNEL_CHANNELD_HTLC_H
#define LIGHTNING_LIGHTNINGD_CHANNEL_CHANNELD_HTLC_H #define LIGHTNING_LIGHTNINGD_CHANNEL_CHANNELD_HTLC_H
#include "config.h" #include "config.h"
#include <bitcoin/locktime.h>
#include <ccan/short_types/short_types.h> #include <ccan/short_types/short_types.h>
#include <common/htlc.h>
#include <common/pseudorand.h> #include <common/pseudorand.h>
#include <wire/gen_onion_wire.h> #include <wire/gen_onion_wire.h>

View File

@@ -1,11 +1,11 @@
#include <bitcoin/script.h> #include <bitcoin/script.h>
#include <bitcoin/tx.h> #include <bitcoin/tx.h>
#include <ccan/endian/endian.h> #include <ccan/endian/endian.h>
#include <channeld/commit_tx.h>
#include <common/htlc_tx.h> #include <common/htlc_tx.h>
#include <common/keyset.h> #include <common/keyset.h>
#include <common/permute_tx.h> #include <common/permute_tx.h>
#include <common/utils.h> #include <common/utils.h>
#include <lightningd/channel/commit_tx.h>
#ifndef SUPERVERBOSE #ifndef SUPERVERBOSE
#define SUPERVERBOSE(...) #define SUPERVERBOSE(...)

View File

@@ -2,9 +2,9 @@
#define LIGHTNING_LIGHTNINGD_CHANNEL_COMMIT_TX_H #define LIGHTNING_LIGHTNINGD_CHANNEL_COMMIT_TX_H
#include "config.h" #include "config.h"
#include <bitcoin/pubkey.h> #include <bitcoin/pubkey.h>
#include <channeld/channeld_htlc.h>
#include <common/htlc.h> #include <common/htlc.h>
#include <common/initial_commit_tx.h> #include <common/initial_commit_tx.h>
#include <lightningd/channel/channeld_htlc.h>
struct keyset; struct keyset;
struct sha256_double; struct sha256_double;

View File

@@ -6,6 +6,8 @@
#include <ccan/mem/mem.h> #include <ccan/mem/mem.h>
#include <ccan/structeq/structeq.h> #include <ccan/structeq/structeq.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>
#include <channeld/commit_tx.h>
#include <channeld/full_channel.h>
#include <common/channel_config.h> #include <common/channel_config.h>
#include <common/htlc.h> #include <common/htlc.h>
#include <common/htlc_tx.h> #include <common/htlc_tx.h>
@@ -15,8 +17,6 @@
#include <common/status.h> #include <common/status.h>
#include <common/type_to_string.h> #include <common/type_to_string.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/channel/commit_tx.h>
#include <lightningd/channel/full_channel.h>
#include <string.h> #include <string.h>
struct channel *new_channel(const tal_t *ctx, struct channel *new_channel(const tal_t *ctx,

View File

@@ -2,9 +2,9 @@
#ifndef LIGHTNING_LIGHTNINGD_CHANNEL_FULL_CHANNEL_H #ifndef LIGHTNING_LIGHTNINGD_CHANNEL_FULL_CHANNEL_H
#define LIGHTNING_LIGHTNINGD_CHANNEL_FULL_CHANNEL_H #define LIGHTNING_LIGHTNINGD_CHANNEL_FULL_CHANNEL_H
#include "config.h" #include "config.h"
#include <channeld/channeld_htlc.h>
#include <common/initial_channel.h> #include <common/initial_channel.h>
#include <common/sphinx.h> #include <common/sphinx.h>
#include <lightningd/channel/channeld_htlc.h>
/** /**
* new_channel: Given initial fees and funding, what is initial state? * new_channel: Given initial fees and funding, what is initial state?

View File

@@ -1,36 +1,38 @@
#! /usr/bin/make #! /usr/bin/make
# Designed to be run one level up # Designed to be run one level up
lightningd/closing-wrongdir: closingd-wrongdir:
$(MAKE) -C ../.. lightningd/closing-all $(MAKE) -C ../.. closingd-all
default: lightningd/closing-all default: closingd-all
lightningd/closing-all: lightningd/lightningd_closing closingd-all: lightningd/lightning_closingd
# lightningd/closing needs these: # closingd needs these:
LIGHTNINGD_CLOSING_HEADERS_GEN := \ LIGHTNINGD_CLOSING_HEADERS_GEN := \
lightningd/closing/gen_closing_wire.h closingd/gen_closing_wire.h
LIGHTNINGD_CLOSING_HEADERS_NOGEN := LIGHTNINGD_CLOSING_HEADERS_NOGEN :=
LIGHTNINGD_CLOSING_HEADERS := $(LIGHTNINGD_CLOSING_HEADERS_GEN) $(LIGHTNINGD_CLOSING_HEADERS_NOGEN) LIGHTNINGD_CLOSING_HEADERS := $(LIGHTNINGD_CLOSING_HEADERS_GEN) $(LIGHTNINGD_CLOSING_HEADERS_NOGEN)
LIGHTNINGD_CLOSING_SRC := lightningd/closing/closing.c \ LIGHTNINGD_CLOSING_SRC := closingd/closing.c \
$(LIGHTNINGD_CLOSING_HEADERS:.h=.c) $(LIGHTNINGD_CLOSING_HEADERS:.h=.c)
LIGHTNINGD_CLOSING_OBJS := $(LIGHTNINGD_CLOSING_SRC:.c=.o) LIGHTNINGD_CLOSING_OBJS := $(LIGHTNINGD_CLOSING_SRC:.c=.o)
# Make sure these depend on everything. # Make sure these depend on everything.
ALL_OBJS += $(LIGHTNINGD_CLOSING_OBJS) ALL_OBJS += $(LIGHTNINGD_CLOSING_OBJS)
ALL_PROGRAMS += lightningd/lightning_closingd
ALL_GEN_HEADERS += $(LIGHTNINGD_CLOSING_HEADERS_GEN)
# Control daemon uses this: # Control daemon uses this:
LIGHTNINGD_CLOSING_CONTROL_HEADERS := $(LIGHTNINGD_CLOSING_HEADERS) LIGHTNINGD_CLOSING_CONTROL_HEADERS := $(LIGHTNINGD_CLOSING_HEADERS)
LIGHTNINGD_CLOSING_CONTROL_SRC := $(LIGHTNINGD_CLOSING_HEADERS:.h=.c) LIGHTNINGD_CLOSING_CONTROL_SRC := $(LIGHTNINGD_CLOSING_HEADERS:.h=.c)
LIGHTNINGD_CLOSING_CONTROL_OBJS := $(LIGHTNINGD_CLOSING_CONTROL_SRC:.c=.o) LIGHTNINGD_CLOSING_CONTROL_OBJS := $(LIGHTNINGD_CLOSING_CONTROL_SRC:.c=.o)
LIGHTNINGD_CLOSING_GEN_SRC := $(filter lightningd/closing/gen_%, $(LIGHTNINGD_CLOSING_SRC) $(LIGHTNINGD_CLOSING_CONTROL_SRC)) LIGHTNINGD_CLOSING_GEN_SRC := $(filter closingd/gen_%, $(LIGHTNINGD_CLOSING_SRC) $(LIGHTNINGD_CLOSING_CONTROL_SRC))
LIGHTNINGD_CLOSING_SRC_NOGEN := $(filter-out lightningd/closing/gen_%, $(LIGHTNINGD_CLOSING_SRC)) LIGHTNINGD_CLOSING_SRC_NOGEN := $(filter-out closingd/gen_%, $(LIGHTNINGD_CLOSING_SRC))
# Add to headers which any object might need. # Add to headers which any object might need.
LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_CLOSING_HEADERS_GEN) LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_CLOSING_HEADERS_GEN)
@@ -55,24 +57,24 @@ CLOSINGD_COMMON_OBJS := \
common/utils.o \ common/utils.o \
common/version.o common/version.o
lightningd/closing/gen_closing_wire.h: $(WIRE_GEN) lightningd/closing/closing_wire.csv closingd/gen_closing_wire.h: $(WIRE_GEN) closingd/closing_wire.csv
$(WIRE_GEN) --header $@ closing_wire_type < lightningd/closing/closing_wire.csv > $@ $(WIRE_GEN) --header $@ closing_wire_type < closingd/closing_wire.csv > $@
lightningd/closing/gen_closing_wire.c: $(WIRE_GEN) lightningd/closing/closing_wire.csv closingd/gen_closing_wire.c: $(WIRE_GEN) closingd/closing_wire.csv
$(WIRE_GEN) ${@:.c=.h} closing_wire_type < lightningd/closing/closing_wire.csv > $@ $(WIRE_GEN) ${@:.c=.h} closing_wire_type < closingd/closing_wire.csv > $@
LIGHTNINGD_CLOSING_OBJS := $(LIGHTNINGD_CLOSING_SRC:.c=.o) $(LIGHTNINGD_CLOSING_GEN_SRC:.c=.o) LIGHTNINGD_CLOSING_OBJS := $(LIGHTNINGD_CLOSING_SRC:.c=.o) $(LIGHTNINGD_CLOSING_GEN_SRC:.c=.o)
lightningd/lightningd_closing: $(LIGHTNINGD_CLOSING_OBJS) $(WIRE_ONION_OBJS) $(CLOSINGD_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS) lightningd/lightning_closingd: $(LIGHTNINGD_CLOSING_OBJS) $(WIRE_ONION_OBJS) $(CLOSINGD_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS)
check-source: $(LIGHTNINGD_CLOSING_SRC_NOGEN:%=check-src-include-order/%) check-source: $(LIGHTNINGD_CLOSING_SRC_NOGEN:%=check-src-include-order/%)
check-source-bolt: $(LIGHTNINGD_CLOSING_SRC:%=bolt-check/%) $(LIGHTNINGD_CLOSING_HEADERS:%=bolt-check/%) check-source-bolt: $(LIGHTNINGD_CLOSING_SRC:%=bolt-check/%) $(LIGHTNINGD_CLOSING_HEADERS:%=bolt-check/%)
check-whitespace: $(LIGHTNINGD_CLOSING_SRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_CLOSING_HEADERS_NOGEN:%=check-whitespace/%) check-whitespace: $(LIGHTNINGD_CLOSING_SRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_CLOSING_HEADERS_NOGEN:%=check-whitespace/%)
clean: lightningd/closing-clean clean: closingd-clean
lightningd/closing-clean: closingd-clean:
$(RM) $(LIGHTNINGD_CLOSING_OBJS) gen_* $(RM) $(LIGHTNINGD_CLOSING_OBJS) gen_*
-include lightningd/closing/test/Makefile -include closingd/test/Makefile

View File

@@ -1,4 +1,5 @@
#include <bitcoin/script.h> #include <bitcoin/script.h>
#include <closingd/gen_closing_wire.h>
#include <common/close_tx.h> #include <common/close_tx.h>
#include <common/crypto_sync.h> #include <common/crypto_sync.h>
#include <common/debug.h> #include <common/debug.h>
@@ -10,7 +11,6 @@
#include <common/version.h> #include <common/version.h>
#include <errno.h> #include <errno.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/closing/gen_closing_wire.h>
#include <signal.h> #include <signal.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>

View File

@@ -41,6 +41,9 @@ COMMON_OBJS := $(COMMON_SRC:.c=.o)
# Common objects depends on bitcoin/ external/ and ccan # Common objects depends on bitcoin/ external/ and ccan
$(COMMON_OBJS): $(CCAN_HEADERS) $(BITCOIN_HEADERS) $(EXTERNAL_HEADERS) $(COMMON_HEADERS_GEN) $(COMMON_OBJS): $(CCAN_HEADERS) $(BITCOIN_HEADERS) $(EXTERNAL_HEADERS) $(COMMON_HEADERS_GEN)
ALL_GEN_HEADERS += $(COMMON_HEADERS_GEN)
ALL_OBJS += $(COMMON_OBJS)
common/gen_htlc_state_names.h: common/htlc_state.h ccan/ccan/cdump/tools/cdump-enumstr common/gen_htlc_state_names.h: common/htlc_state.h ccan/ccan/cdump/tools/cdump-enumstr
ccan/ccan/cdump/tools/cdump-enumstr common/htlc_state.h > $@ ccan/ccan/cdump/tools/cdump-enumstr common/htlc_state.h > $@

8
external/.gitignore vendored Normal file
View File

@@ -0,0 +1,8 @@
libbase58.a
libjsmn.a
libsecp256k1.a
libsecp256k1.la
libsodium.a
libsodium.la
libwallycore.a
libwallycore.la

View File

@@ -1,30 +1,32 @@
#! /usr/bin/make #! /usr/bin/make
# Designed to be run one level up # Designed to be run one level up
lightningd/gossip-wrongdir: gossipd-wrongdir:
$(MAKE) -C .. lightningd/gossip-all $(MAKE) -C .. gossipd-all
default: lightningd/gossip-all default: gossipd-all
# Control daemon uses this: # Control daemon uses this:
LIGHTNINGD_GOSSIP_CONTROL_HEADERS := lightningd/gossip/gen_gossip_wire.h LIGHTNINGD_GOSSIP_CONTROL_HEADERS := gossipd/gen_gossip_wire.h
LIGHTNINGD_GOSSIP_CONTROL_SRC := lightningd/gossip/gen_gossip_wire.c LIGHTNINGD_GOSSIP_CONTROL_SRC := gossipd/gen_gossip_wire.c
LIGHTNINGD_GOSSIP_CONTROL_OBJS := $(LIGHTNINGD_GOSSIP_CONTROL_SRC:.c=.o) LIGHTNINGD_GOSSIP_CONTROL_OBJS := $(LIGHTNINGD_GOSSIP_CONTROL_SRC:.c=.o)
# lightningd/gossip needs these: # gossipd needs these:
LIGHTNINGD_GOSSIP_HEADERS := lightningd/gossip/gen_gossip_wire.h \ LIGHTNINGD_GOSSIP_HEADERS := gossipd/gen_gossip_wire.h \
lightningd/gossip/routing.h \ gossipd/routing.h \
lightningd/gossip/broadcast.h gossipd/broadcast.h
LIGHTNINGD_GOSSIP_SRC := lightningd/gossip/gossip.c \ LIGHTNINGD_GOSSIP_SRC := gossipd/gossip.c \
$(LIGHTNINGD_GOSSIP_HEADERS:.h=.c) $(LIGHTNINGD_GOSSIP_HEADERS:.h=.c)
LIGHTNINGD_GOSSIP_OBJS := $(LIGHTNINGD_GOSSIP_SRC:.c=.o) LIGHTNINGD_GOSSIP_OBJS := $(LIGHTNINGD_GOSSIP_SRC:.c=.o)
# Make sure these depend on everything. # Make sure these depend on everything.
ALL_OBJS += $(LIGHTNINGD_GOSSIP_OBJS) ALL_OBJS += $(LIGHTNINGD_GOSSIP_OBJS)
ALL_PROGRAMS += lightningd/lightning_gossipd
ALL_GEN_HEADERS += $(LIGHTNINGD_GOSSIP_CONTROL_HEADERS)
# For checking # For checking
LIGHTNINGD_GOSSIP_ALLSRC_NOGEN := $(filter-out lightningd/gossip/gen_%, $(LIGHTNINGD_GOSSIP_CLIENT_SRC) $(LIGHTNINGD_GOSSIP_SRC)) LIGHTNINGD_GOSSIP_ALLSRC_NOGEN := $(filter-out gossipd/gen_%, $(LIGHTNINGD_GOSSIP_CLIENT_SRC) $(LIGHTNINGD_GOSSIP_SRC))
LIGHTNINGD_GOSSIP_ALLHEADERS_NOGEN := $(filter-out lightningd/gossip/gen_%, $(LIGHTNINGD_GOSSIP_CLIENT_HEADERS) $(LIGHTNINGD_GOSSIP_HEADERS)) LIGHTNINGD_GOSSIP_ALLHEADERS_NOGEN := $(filter-out gossipd/gen_%, $(LIGHTNINGD_GOSSIP_CLIENT_HEADERS) $(LIGHTNINGD_GOSSIP_HEADERS))
# Add to headers which any object might need. # Add to headers which any object might need.
LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_GOSSIP_HEADERS) LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_GOSSIP_HEADERS)
@@ -50,23 +52,23 @@ $(LIGHTNINGD_GOSSIP_OBJS) $(LIGHTNINGD_GOSSIP_CLIENT_OBJS): $(LIGHTNINGD_HEADERS
$(LIGHTNINGD_GOSSIP_CONTROL_OBJS) : $(LIGHTNINGD_GOSSIP_CONTROL_HEADERS) $(LIGHTNINGD_GOSSIP_CONTROL_OBJS) : $(LIGHTNINGD_GOSSIP_CONTROL_HEADERS)
lightningd/gossip-all: lightningd/lightningd_gossip $(LIGHTNINGD_GOSSIP_CLIENT_OBJS) gossipd-all: lightningd/lightning_gossipd $(LIGHTNINGD_GOSSIP_CLIENT_OBJS)
lightningd/lightningd_gossip: $(LIGHTNINGD_GOSSIP_OBJS) $(GOSSIPD_COMMON_OBJS) $(BITCOIN_OBJS) $(WIRE_OBJS) lightningd/lightning_gossipd: $(LIGHTNINGD_GOSSIP_OBJS) $(GOSSIPD_COMMON_OBJS) $(BITCOIN_OBJS) $(WIRE_OBJS)
lightningd/gossip/gen_gossip_wire.h: $(WIRE_GEN) lightningd/gossip/gossip_wire.csv gossipd/gen_gossip_wire.h: $(WIRE_GEN) gossipd/gossip_wire.csv
$(WIRE_GEN) --header $@ gossip_wire_type < lightningd/gossip/gossip_wire.csv > $@ $(WIRE_GEN) --header $@ gossip_wire_type < gossipd/gossip_wire.csv > $@
lightningd/gossip/gen_gossip_wire.c: $(WIRE_GEN) lightningd/gossip/gossip_wire.csv gossipd/gen_gossip_wire.c: $(WIRE_GEN) gossipd/gossip_wire.csv
$(WIRE_GEN) ${@:.c=.h} gossip_wire_type < lightningd/gossip/gossip_wire.csv > $@ $(WIRE_GEN) ${@:.c=.h} gossip_wire_type < gossipd/gossip_wire.csv > $@
check-source: $(LIGHTNINGD_GOSSIP_ALLSRC_NOGEN:%=check-src-include-order/%) $(LIGHTNINGD_GOSSIP_ALLHEADERS_NOGEN:%=check-hdr-include-order/%) check-source: $(LIGHTNINGD_GOSSIP_ALLSRC_NOGEN:%=check-src-include-order/%) $(LIGHTNINGD_GOSSIP_ALLHEADERS_NOGEN:%=check-hdr-include-order/%)
check-source-bolt: $(LIGHTNINGD_GOSSIP_SRC:%=bolt-check/%) $(LIGHTNINGD_GOSSIP_HEADERS:%=bolt-check/%) check-source-bolt: $(LIGHTNINGD_GOSSIP_SRC:%=bolt-check/%) $(LIGHTNINGD_GOSSIP_HEADERS:%=bolt-check/%)
check-whitespace: $(LIGHTNINGD_GOSSIP_ALLSRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_GOSSIP_ALLHEADERS_NOGEN:%=check-whitespace/%) check-whitespace: $(LIGHTNINGD_GOSSIP_ALLSRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_GOSSIP_ALLHEADERS_NOGEN:%=check-whitespace/%)
clean: lightningd/gossip-clean clean: gossipd-clean
lightningd/gossip-clean: gossipd-clean:
$(RM) $(LIGHTNINGD_GOSSIP_OBJS) gen_* $(RM) $(LIGHTNINGD_GOSSIP_OBJS) gen_*
-include lightningd/gossip/test/Makefile -include gossipd/test/Makefile

View File

@@ -1,4 +1,4 @@
#include <lightningd/gossip/broadcast.h> #include <gossipd/broadcast.h>
struct broadcast_state *new_broadcast_state(tal_t *ctx) struct broadcast_state *new_broadcast_state(tal_t *ctx)
{ {

View File

@@ -21,10 +21,10 @@
#include <common/version.h> #include <common/version.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <gossipd/broadcast.h>
#include <gossipd/gen_gossip_wire.h>
#include <gossipd/routing.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/gossip/broadcast.h>
#include <lightningd/gossip/gen_gossip_wire.h>
#include <lightningd/gossip/routing.h>
#include <lightningd/gossip_msg.h> #include <lightningd/gossip_msg.h>
#include <secp256k1_ecdh.h> #include <secp256k1_ecdh.h>
#include <sodium/randombytes.h> #include <sodium/randombytes.h>

View File

@@ -3,7 +3,7 @@
#include "config.h" #include "config.h"
#include <bitcoin/pubkey.h> #include <bitcoin/pubkey.h>
#include <ccan/htable/htable_type.h> #include <ccan/htable/htable_type.h>
#include <lightningd/gossip/broadcast.h> #include <gossipd/broadcast.h>
#include <wire/wire.h> #include <wire/wire.h>
#define ROUTING_MAX_HOPS 20 #define ROUTING_MAX_HOPS 20

View File

@@ -1,31 +1,33 @@
#! /usr/bin/make #! /usr/bin/make
# Designed to be run one level up # Designed to be run one level up
lightningd/handshake-wrongdir: handshaked-wrongdir:
$(MAKE) -C .. lightningd/handshake-all $(MAKE) -C .. handshaked-all
default: lightningd/handshake-all default: handshaked-all
lightningd/handshake-all: lightningd/lightningd_handshake handshaked-all: lightningd/lightning_handshaked
# lightningd/handshake needs these: # handshaked needs these:
LIGHTNINGD_HANDSHAKE_HEADERS := \ LIGHTNINGD_HANDSHAKE_HEADERS := \
lightningd/handshake/gen_handshake_wire.h handshaked/gen_handshake_wire.h
LIGHTNINGD_HANDSHAKE_SRC := lightningd/handshake/handshake.c \ LIGHTNINGD_HANDSHAKE_SRC := handshaked/handshake.c \
$(LIGHTNINGD_HANDSHAKE_HEADERS:.h=.c) $(LIGHTNINGD_HANDSHAKE_HEADERS:.h=.c)
LIGHTNINGD_HANDSHAKE_OBJS := $(LIGHTNINGD_HANDSHAKE_SRC:.c=.o) LIGHTNINGD_HANDSHAKE_OBJS := $(LIGHTNINGD_HANDSHAKE_SRC:.c=.o)
# Make sure these depend on everything. # Make sure these depend on everything.
ALL_OBJS += $(LIGHTNINGD_HANDSHAKE_OBJS) ALL_OBJS += $(LIGHTNINGD_HANDSHAKE_OBJS)
ALL_PROGRAMS += lightningd/lightning_handshaked
ALL_GEN_HEADERS += $(LIGHTNINGD_HANDSHAKE_HEADERS)
# Control daemon uses this: # Control daemon uses this:
LIGHTNINGD_HANDSHAKE_CONTROL_HEADERS := $(LIGHTNINGD_HANDSHAKE_HEADERS) LIGHTNINGD_HANDSHAKE_CONTROL_HEADERS := $(LIGHTNINGD_HANDSHAKE_HEADERS)
LIGHTNINGD_HANDSHAKE_CONTROL_SRC := $(LIGHTNINGD_HANDSHAKE_HEADERS:.h=.c) LIGHTNINGD_HANDSHAKE_CONTROL_SRC := $(LIGHTNINGD_HANDSHAKE_HEADERS:.h=.c)
LIGHTNINGD_HANDSHAKE_CONTROL_OBJS := $(LIGHTNINGD_HANDSHAKE_CONTROL_SRC:.c=.o) LIGHTNINGD_HANDSHAKE_CONTROL_OBJS := $(LIGHTNINGD_HANDSHAKE_CONTROL_SRC:.c=.o)
LIGHTNINGD_HANDSHAKE_GEN_SRC := $(filter lightningd/handshake/gen_%, $(LIGHTNINGD_HANDSHAKE_SRC) $(LIGHTNINGD_HANDSHAKE_CONTROL_SRC)) LIGHTNINGD_HANDSHAKE_GEN_SRC := $(filter handshaked/gen_%, $(LIGHTNINGD_HANDSHAKE_SRC) $(LIGHTNINGD_HANDSHAKE_CONTROL_SRC))
LIGHTNINGD_HANDSHAKE_SRC_NOGEN := $(filter-out lightningd/handshake/gen_%, $(LIGHTNINGD_HANDSHAKE_SRC)) LIGHTNINGD_HANDSHAKE_SRC_NOGEN := $(filter-out handshaked/gen_%, $(LIGHTNINGD_HANDSHAKE_SRC))
# Add to headers which any object might need. # Add to headers which any object might need.
LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_HANDSHAKE_HEADERS) LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_HANDSHAKE_HEADERS)
@@ -45,24 +47,24 @@ HANDSHAKED_COMMON_OBJS := \
common/utils.o \ common/utils.o \
common/version.o common/version.o
lightningd/handshake/gen_handshake_wire.h: $(WIRE_GEN) lightningd/handshake/handshake_wire.csv handshaked/gen_handshake_wire.h: $(WIRE_GEN) handshaked/handshake_wire.csv
$(WIRE_GEN) --header $@ handshake_wire_type < lightningd/handshake/handshake_wire.csv > $@ $(WIRE_GEN) --header $@ handshake_wire_type < handshaked/handshake_wire.csv > $@
lightningd/handshake/gen_handshake_wire.c: $(WIRE_GEN) lightningd/handshake/handshake_wire.csv handshaked/gen_handshake_wire.c: $(WIRE_GEN) handshaked/handshake_wire.csv
$(WIRE_GEN) ${@:.c=.h} handshake_wire_type < lightningd/handshake/handshake_wire.csv > $@ $(WIRE_GEN) ${@:.c=.h} handshake_wire_type < handshaked/handshake_wire.csv > $@
LIGHTNINGD_HANDSHAKE_OBJS := $(LIGHTNINGD_HANDSHAKE_SRC:.c=.o) $(LIGHTNINGD_HANDSHAKE_GEN_SRC:.c=.o) LIGHTNINGD_HANDSHAKE_OBJS := $(LIGHTNINGD_HANDSHAKE_SRC:.c=.o) $(LIGHTNINGD_HANDSHAKE_GEN_SRC:.c=.o)
lightningd/lightningd_handshake: $(LIGHTNINGD_OLD_LIB_OBJS) $(LIGHTNINGD_LIB_OBJS) $(LIGHTNINGD_HANDSHAKE_OBJS) $(HANDSHAKED_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS) lightningd/lightning_handshaked: $(LIGHTNINGD_OLD_LIB_OBJS) $(LIGHTNINGD_LIB_OBJS) $(LIGHTNINGD_HANDSHAKE_OBJS) $(HANDSHAKED_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS)
check-source: $(LIGHTNINGD_HANDSHAKE_SRC_NOGEN:%=check-src-include-order/%) check-source: $(LIGHTNINGD_HANDSHAKE_SRC_NOGEN:%=check-src-include-order/%)
check-source-bolt: $(LIGHTNINGD_HANDSHAKE_SRC:%=bolt-check/%) $(LIGHTNINGD_HANDSHAKE_HEADERS:%=bolt-check/%) check-source-bolt: $(LIGHTNINGD_HANDSHAKE_SRC:%=bolt-check/%) $(LIGHTNINGD_HANDSHAKE_HEADERS:%=bolt-check/%)
check-whitespace: $(LIGHTNINGD_HANDSHAKE_SRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_HANDSHAKE_HEADERS_NOGEN:%=check-whitespace/%) check-whitespace: $(LIGHTNINGD_HANDSHAKE_SRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_HANDSHAKE_HEADERS_NOGEN:%=check-whitespace/%)
clean: lightningd/handshake-clean clean: handshaked-clean
lightningd/handshake-clean: handshaked-clean:
$(RM) $(LIGHTNINGD_HANDSHAKE_OBJS) gen_* $(RM) $(LIGHTNINGD_HANDSHAKE_OBJS) gen_*
-include lightningd/handshake/test/Makefile -include handshaked/test/Makefile

View File

@@ -13,8 +13,8 @@
#include <common/type_to_string.h> #include <common/type_to_string.h>
#include <common/version.h> #include <common/version.h>
#include <errno.h> #include <errno.h>
#include <lightningd/handshake/gen_handshake_wire.h> #include <handshaked/gen_handshake_wire.h>
#include <lightningd/hsm/client.h> #include <hsmd/client.h>
#include <secp256k1.h> #include <secp256k1.h>
#include <secp256k1_ecdh.h> #include <secp256k1_ecdh.h>
#include <sodium/crypto_aead_chacha20poly1305.h> #include <sodium/crypto_aead_chacha20poly1305.h>

82
hsmd/Makefile Normal file
View File

@@ -0,0 +1,82 @@
#! /usr/bin/make
# Designed to be run one level up
hsmd-wrongdir:
$(MAKE) -C .. lightningd/hsm-all
default: hsmd-all
# Clients use this:
LIGHTNINGD_HSM_CLIENT_HEADERS := hsmd/client.h
LIGHTNINGD_HSM_CLIENT_SRC := hsmd/client.c hsmd/gen_hsm_client_wire.c
LIGHTNINGD_HSM_CLIENT_OBJS := $(LIGHTNINGD_HSM_CLIENT_SRC:.c=.o)
# Control daemon uses this:
LIGHTNINGD_HSM_CONTROL_HEADERS := hsmd/gen_hsm_wire.h
LIGHTNINGD_HSM_CONTROL_SRC := hsmd/gen_hsm_wire.c
LIGHTNINGD_HSM_CONTROL_OBJS := $(LIGHTNINGD_HSM_CONTROL_SRC:.c=.o)
# lightningd/hsm needs these:
LIGHTNINGD_HSM_HEADERS := hsmd/gen_hsm_client_wire.h \
hsmd/gen_hsm_wire.h
LIGHTNINGD_HSM_SRC := hsmd/hsm.c \
$(LIGHTNINGD_HSM_HEADERS:.h=.c)
LIGHTNINGD_HSM_OBJS := $(LIGHTNINGD_HSM_SRC:.c=.o)
# Common source we use.
HSMD_COMMON_OBJS := \
common/bip32.o \
common/daemon_conn.o \
common/funding_tx.o \
common/key_derive.o \
common/msg_queue.o \
common/permute_tx.o \
common/status.o \
common/utils.o \
common/utxo.o \
common/version.o \
common/withdraw_tx.o
# For checking
LIGHTNINGD_HSM_ALLSRC_NOGEN := $(filter-out hsmd/gen_%, $(LIGHTNINGD_HSM_CLIENT_SRC) $(LIGHTNINGD_HSM_SRC))
LIGHTNINGD_HSM_ALLHEADERS_NOGEN := $(filter-out hsmd/gen_%, $(LIGHTNINGD_HSM_CLIENT_HEADERS) $(LIGHTNINGD_HSM_HEADERS))
# Add to headers which any object might need.
LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_HSM_HEADERS) $(LIGHTNINGD_HSM_CLIENT_HEADERS)
$(LIGHTNINGD_HSM_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS): $(LIGHTNINGD_HEADERS)
$(LIGHTNINGD_HSM_CONTROL_OBJS) : $(LIGHTNINGD_HSM_CONTROL_HEADERS)
# Make sure these depend on everything.
ALL_OBJS += $(LIGHTNINGD_HSM_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS)
ALL_PROGRAMS += lightningd/lightning_hsmd
ALL_GEN_HEADERS += $(LIGHTNINGD_HSM_HEADERS)
hsmd-all: lightningd/lightning_hsmd $(LIGHTNINGD_HSM_CLIENT_OBJS)
lightningd/lightning_hsmd: $(LIGHTNINGD_HSM_OBJS) $(LIGHTNINGD_LIB_OBJS) $(HSMD_COMMON_OBJS) $(BITCOIN_OBJS) $(WIRE_OBJS)
hsmd/gen_hsm_client_wire.h: $(WIRE_GEN) hsmd/hsm_client_wire_csv
$(WIRE_GEN) --header $@ hsm_client_wire_type < hsmd/hsm_client_wire_csv > $@
hsmd/gen_hsm_client_wire.c: $(WIRE_GEN) hsmd/hsm_client_wire_csv
$(WIRE_GEN) ${@:.c=.h} hsm_client_wire_type< hsmd/hsm_client_wire_csv > $@
hsmd/gen_hsm_wire.h: $(WIRE_GEN) hsmd/hsm_wire.csv
$(WIRE_GEN) --header $@ hsm_wire_type < hsmd/hsm_wire.csv > $@
hsmd/gen_hsm_wire.c: $(WIRE_GEN) hsmd/hsm_wire.csv
$(WIRE_GEN) ${@:.c=.h} hsm_wire_type < hsmd/hsm_wire.csv > $@
check-source: $(LIGHTNINGD_HSM_ALLSRC_NOGEN:%=check-src-include-order/%) $(LIGHTNINGD_HSM_ALLHEADERS_NOGEN:%=check-hdr-include-order/%)
check-source-bolt: $(LIGHTNINGD_HSM_SRC:%=bolt-check/%) $(LIGHTNINGD_HSM_HEADERS:%=bolt-check/%)
check-whitespace: $(LIGHTNINGD_HSM_ALLSRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_HSM_ALLHEADERS_NOGEN:%=check-whitespace/%)
clean: lightningd/hsm-clean
lightningd/hsm-clean:
$(RM) $(LIGHTNINGD_HSM_OBJS) gen_*
-include hsmd/test/Makefile

View File

@@ -1,5 +1,5 @@
#include <lightningd/hsm/client.h> #include <hsmd/client.h>
#include <lightningd/hsm/gen_hsm_client_wire.h> #include <hsmd/gen_hsm_client_wire.h>
#include <wire/wire_sync.h> #include <wire/wire_sync.h>
static int hsm_fd = -1; static int hsm_fd = -1;

View File

@@ -22,10 +22,10 @@
#include <common/withdraw_tx.h> #include <common/withdraw_tx.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <hsmd/client.h>
#include <hsmd/gen_hsm_client_wire.h>
#include <hsmd/gen_hsm_wire.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/hsm/client.h>
#include <lightningd/hsm/gen_hsm_client_wire.h>
#include <lightningd/hsm/gen_hsm_wire.h>
#include <secp256k1_ecdh.h> #include <secp256k1_ecdh.h>
#include <sodium/randombytes.h> #include <sodium/randombytes.h>
#include <sys/socket.h> #include <sys/socket.h>

14
lightningd/.gitignore vendored
View File

@@ -1,7 +1,9 @@
lightningd lightningd
lightningd_channel lightning_channeld
lightningd_connect lightning_connectd
lightningd_gossip lightning_gossipd
lightningd_handshake lightning_handshaked
lightningd_hsm lightning_hsmd
lightningd_opening lightning_openingd
lightning_closingd
lightning_onchaind

View File

@@ -4,11 +4,11 @@
lightningd-wrongdir: lightningd-wrongdir:
$(MAKE) -C .. lightningd-all $(MAKE) -C .. lightningd-all
LIGHTNINGD_BINS := lightningd/lightningd lightningd/lightningd_hsm lightningd/lightningd_handshake lightningd/lightningd_gossip lightningd/lightningd_opening lightningd/lightningd_channel lightningd/lightningd_closing lightningd/lightningd_onchain LIGHTNINGD_PROGRAM := lightningd/lightningd
ALL_PROGRAMS += $(LIGHTNINGD_BINS) ALL_PROGRAMS += $(LIGHTNINGD_PROGRAM)
lightningd-all: $(LIGHTNINGD_BINS) lightningd-all: $(LIGHTNINGD_PROGRAM)
default: lightningd-all default: lightningd-all
@@ -76,19 +76,11 @@ LIGHTNINGD_HEADERS_NOGEN = \
LIGHTNINGD_HEADERS_GEN = \ LIGHTNINGD_HEADERS_GEN = \
lightningd/gen_peer_state_names.h lightningd/gen_peer_state_names.h
ALL_GEN_HEADERS += $(LIGHTNINGD_HEADERS_GEN)
# All together in one convenient var # All together in one convenient var
LIGHTNINGD_HEADERS = $(LIGHTNINGD_HEADERS_NOGEN) $(LIGHTNINGD_HEADERS_GEN) $(EXTERNAL_HEADERS) $(WIRE_HEADERS) $(BITCOIN_HEADERS) $(COMMON_HEADERS) $(WALLET_LIB_HEADERS) LIGHTNINGD_HEADERS = $(LIGHTNINGD_HEADERS_NOGEN) $(LIGHTNINGD_HEADERS_GEN) $(EXTERNAL_HEADERS) $(WIRE_HEADERS) $(BITCOIN_HEADERS) $(COMMON_HEADERS) $(WALLET_LIB_HEADERS)
# These included makefiles add their headers to the LIGHTNINGD_HEADERS
# variable so the include must preceed any actual use of the variable.
include lightningd/hsm/Makefile
include lightningd/handshake/Makefile
include lightningd/gossip/Makefile
include lightningd/opening/Makefile
include lightningd/channel/Makefile
include lightningd/closing/Makefile
include lightningd/onchain/Makefile
$(LIGHTNINGD_OBJS): $(LIGHTNINGD_HEADERS) $(LIGHTNINGD_OBJS): $(LIGHTNINGD_HEADERS)
lightningd/gen_peer_state_names.h: lightningd/peer_state.h ccan/ccan/cdump/tools/cdump-enumstr lightningd/gen_peer_state_names.h: lightningd/peer_state.h ccan/ccan/cdump/tools/cdump-enumstr
@@ -104,11 +96,11 @@ check-makefile: check-lightningd-makefile
check-lightningd-makefile: check-lightningd-makefile:
@for f in lightningd/*.h lightningd/*/*.h; do if ! echo $(LIGHTNINGD_HEADERS_NOGEN) $(LIGHTNINGD_HEADERS_GEN) "" | grep -q "$$f "; then echo $$f not mentioned in LIGHTNINGD_HEADERS_NOGEN or LIGHTNINGD_HEADERS_GEN >&2; exit 1; fi; done @for f in lightningd/*.h lightningd/*/*.h; do if ! echo $(LIGHTNINGD_HEADERS_NOGEN) $(LIGHTNINGD_HEADERS_GEN) "" | grep -q "$$f "; then echo $$f not mentioned in LIGHTNINGD_HEADERS_NOGEN or LIGHTNINGD_HEADERS_GEN >&2; exit 1; fi; done
lightningd/lightningd: $(LIGHTNINGD_OBJS) $(LIGHTNINGD_COMMON_OBJS) $(BITCOIN_OBJS) $(WIRE_OBJS) $(WIRE_ONION_OBJS) $(CCAN_OBJS) $(LIGHTNINGD_HSM_CONTROL_OBJS) $(LIGHTNINGD_HANDSHAKE_CONTROL_OBJS) $(LIGHTNINGD_GOSSIP_CONTROL_OBJS) $(LIGHTNINGD_OPENING_CONTROL_OBJS) $(LIGHTNINGD_CHANNEL_CONTROL_OBJS) $(LIGHTNINGD_CLOSING_CONTROL_OBJS) $(LIGHTNINGD_ONCHAIN_CONTROL_OBJS) $(WALLET_LIB_OBJS) lightningd/lightningd: $(LIGHTNINGD_OBJS) $(LIGHTNINGD_COMMON_OBJS) $(BITCOIN_OBJS) $(WIRE_OBJS) $(WIRE_ONION_OBJS) $(LIGHTNINGD_HSM_CONTROL_OBJS) $(LIGHTNINGD_HANDSHAKE_CONTROL_OBJS) $(LIGHTNINGD_GOSSIP_CONTROL_OBJS) $(LIGHTNINGD_OPENING_CONTROL_OBJS) $(LIGHTNINGD_CHANNEL_CONTROL_OBJS) $(LIGHTNINGD_CLOSING_CONTROL_OBJS) $(LIGHTNINGD_ONCHAIN_CONTROL_OBJS) $(WALLET_LIB_OBJS)
clean: lightningd-clean clean: lightningd-clean
lightningd-clean: lightningd-clean:
$(RM) $(LIGHTNINGD_OBJS) $(LIGHTNINGD_JSMN_OBJS) $(LIGHTNINGD_BINS) $(RM) $(LIGHTNINGD_OBJS) $(LIGHTNINGD_JSMN_OBJS) $(LIGHTNINGD_PROGRAM)
include lightningd/test/Makefile include lightningd/test/Makefile

View File

@@ -1,7 +1,7 @@
#include <channeld/gen_channel_wire.h>
#include <common/sphinx.h> #include <common/sphinx.h>
#include <common/utils.h> #include <common/utils.h>
#include <lightningd/channel/gen_channel_wire.h> #include <gossipd/gen_gossip_wire.h>
#include <lightningd/gossip/gen_gossip_wire.h>
#include <lightningd/htlc_end.h> #include <lightningd/htlc_end.h>
#include <lightningd/jsonrpc.h> #include <lightningd/jsonrpc.h>
#include <lightningd/lightningd.h> #include <lightningd/lightningd.h>
@@ -16,7 +16,7 @@ static bool ping_reply(struct subd *subd, const u8 *msg, const int *fds,
bool ok; bool ok;
log_debug(subd->ld->log, "Got ping reply!"); log_debug(subd->ld->log, "Got ping reply!");
if (streq(subd->name, "lightningd_channel")) if (streq(subd->name, "lightning_channeld"))
ok = fromwire_channel_ping_reply(msg, NULL, &totlen); ok = fromwire_channel_ping_reply(msg, NULL, &totlen);
else else
ok = fromwire_gossip_ping_reply(msg, NULL, &totlen); ok = fromwire_gossip_ping_reply(msg, NULL, &totlen);
@@ -59,8 +59,8 @@ static void json_dev_ping(struct command *cmd,
/* FIXME: These checks are horrible, use a peer flag to say it's /* FIXME: These checks are horrible, use a peer flag to say it's
* ready to forward! */ * ready to forward! */
if (peer->owner && !streq(peer->owner->name, "lightningd_channel") if (peer->owner && !streq(peer->owner->name, "lightning_channeld")
&& !streq(peer->owner->name, "lightningd_gossip")) { && !streq(peer->owner->name, "lightning_gossipd")) {
command_fail(cmd, "Peer in %s", command_fail(cmd, "Peer in %s",
peer->owner ? peer->owner->name : "unattached"); peer->owner ? peer->owner->name : "unattached");
return; return;
@@ -80,7 +80,7 @@ static void json_dev_ping(struct command *cmd,
return; return;
} }
if (streq(peer->owner->name, "lightningd_channel")) if (streq(peer->owner->name, "lightning_channeld"))
msg = towire_channel_ping(cmd, pongbytes, len); msg = towire_channel_ping(cmd, pongbytes, len);
else else
msg = towire_gossip_ping(cmd, peer->unique_id, pongbytes, len); msg = towire_gossip_ping(cmd, peer->unique_id, pongbytes, len);

View File

@@ -7,8 +7,8 @@
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>
#include <common/type_to_string.h> #include <common/type_to_string.h>
#include <common/utils.h> #include <common/utils.h>
#include <gossipd/gen_gossip_wire.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/gossip/gen_gossip_wire.h>
#include <lightningd/gossip_msg.h> #include <lightningd/gossip_msg.h>
#include <lightningd/jsonrpc.h> #include <lightningd/jsonrpc.h>
#include <lightningd/log.h> #include <lightningd/log.h>
@@ -144,7 +144,7 @@ void gossip_init(struct lightningd *ld)
{ {
tal_t *tmpctx = tal_tmpctx(ld); tal_t *tmpctx = tal_tmpctx(ld);
u8 *init; u8 *init;
ld->gossip = new_subd(ld, ld, "lightningd_gossip", NULL, ld->gossip = new_subd(ld, ld, "lightning_gossipd", NULL,
gossip_wire_type_name, gossip_wire_type_name,
gossip_msg, gossip_finished, NULL); gossip_msg, gossip_finished, NULL);
if (!ld->gossip) if (!ld->gossip)

View File

@@ -2,7 +2,7 @@
#define LIGHTNING_LIGHTNINGD_GOSSIP_MSG_H #define LIGHTNING_LIGHTNINGD_GOSSIP_MSG_H
#include "config.h" #include "config.h"
#include <bitcoin/pubkey.h> #include <bitcoin/pubkey.h>
#include <lightningd/gossip/routing.h> #include <gossipd/routing.h>
struct gossip_getnodes_entry { struct gossip_getnodes_entry {
struct pubkey nodeid; struct pubkey nodeid;

View File

@@ -1,80 +0,0 @@
#! /usr/bin/make
# Designed to be run one level up
lightningd/hsm-wrongdir:
$(MAKE) -C .. lightningd/hsm-all
default: lightningd/hsm-all
# Clients use this:
LIGHTNINGD_HSM_CLIENT_HEADERS := lightningd/hsm/client.h
LIGHTNINGD_HSM_CLIENT_SRC := lightningd/hsm/client.c lightningd/hsm/gen_hsm_client_wire.c
LIGHTNINGD_HSM_CLIENT_OBJS := $(LIGHTNINGD_HSM_CLIENT_SRC:.c=.o)
# Control daemon uses this:
LIGHTNINGD_HSM_CONTROL_HEADERS := lightningd/hsm/gen_hsm_wire.h
LIGHTNINGD_HSM_CONTROL_SRC := lightningd/hsm/gen_hsm_wire.c
LIGHTNINGD_HSM_CONTROL_OBJS := $(LIGHTNINGD_HSM_CONTROL_SRC:.c=.o)
# lightningd/hsm needs these:
LIGHTNINGD_HSM_HEADERS := lightningd/hsm/gen_hsm_client_wire.h \
lightningd/hsm/gen_hsm_wire.h
LIGHTNINGD_HSM_SRC := lightningd/hsm/hsm.c \
$(LIGHTNINGD_HSM_HEADERS:.h=.c)
LIGHTNINGD_HSM_OBJS := $(LIGHTNINGD_HSM_SRC:.c=.o)
# Common source we use.
HSMD_COMMON_OBJS := \
common/bip32.o \
common/daemon_conn.o \
common/funding_tx.o \
common/key_derive.o \
common/msg_queue.o \
common/permute_tx.o \
common/status.o \
common/utils.o \
common/utxo.o \
common/version.o \
common/withdraw_tx.o
# For checking
LIGHTNINGD_HSM_ALLSRC_NOGEN := $(filter-out lightningd/hsm/gen_%, $(LIGHTNINGD_HSM_CLIENT_SRC) $(LIGHTNINGD_HSM_SRC))
LIGHTNINGD_HSM_ALLHEADERS_NOGEN := $(filter-out lightningd/hsm/gen_%, $(LIGHTNINGD_HSM_CLIENT_HEADERS) $(LIGHTNINGD_HSM_HEADERS))
# Add to headers which any object might need.
LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_HSM_HEADERS) $(LIGHTNINGD_HSM_CLIENT_HEADERS)
$(LIGHTNINGD_HSM_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS): $(LIGHTNINGD_HEADERS)
$(LIGHTNINGD_HSM_CONTROL_OBJS) : $(LIGHTNINGD_HSM_CONTROL_HEADERS)
# Make sure these depend on everything.
ALL_OBJS += $(LIGHTNINGD_HSM_OBJS)
lightningd/hsm-all: lightningd/lightningd_hsm $(LIGHTNINGD_HSM_CLIENT_OBJS)
lightningd/lightningd_hsm: $(LIGHTNINGD_HSM_OBJS) $(LIGHTNINGD_OLD_LIB_OBJS) $(LIGHTNINGD_LIB_OBJS) $(HSMD_COMMON_OBJS) $(BITCOIN_OBJS) $(WIRE_OBJS)
lightningd/hsm/gen_hsm_client_wire.h: $(WIRE_GEN) lightningd/hsm/hsm_client_wire_csv
$(WIRE_GEN) --header $@ hsm_client_wire_type < lightningd/hsm/hsm_client_wire_csv > $@
lightningd/hsm/gen_hsm_client_wire.c: $(WIRE_GEN) lightningd/hsm/hsm_client_wire_csv
$(WIRE_GEN) ${@:.c=.h} hsm_client_wire_type< lightningd/hsm/hsm_client_wire_csv > $@
lightningd/hsm/gen_hsm_wire.h: $(WIRE_GEN) lightningd/hsm/hsm_wire.csv
$(WIRE_GEN) --header $@ hsm_wire_type < lightningd/hsm/hsm_wire.csv > $@
lightningd/hsm/gen_hsm_wire.c: $(WIRE_GEN) lightningd/hsm/hsm_wire.csv
$(WIRE_GEN) ${@:.c=.h} hsm_wire_type < lightningd/hsm/hsm_wire.csv > $@
check-source: $(LIGHTNINGD_HSM_ALLSRC_NOGEN:%=check-src-include-order/%) $(LIGHTNINGD_HSM_ALLHEADERS_NOGEN:%=check-hdr-include-order/%)
check-source-bolt: $(LIGHTNINGD_HSM_SRC:%=bolt-check/%) $(LIGHTNINGD_HSM_HEADERS:%=bolt-check/%)
check-whitespace: $(LIGHTNINGD_HSM_ALLSRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_HSM_ALLHEADERS_NOGEN:%=check-whitespace/%)
clean: lightningd/hsm-clean
lightningd/hsm-clean:
$(RM) $(LIGHTNINGD_HSM_OBJS) gen_*
-include lightningd/hsm/test/Makefile

View File

@@ -7,8 +7,8 @@
#include <common/status.h> #include <common/status.h>
#include <common/utils.h> #include <common/utils.h>
#include <errno.h> #include <errno.h>
#include <hsmd/gen_hsm_wire.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/hsm/gen_hsm_wire.h>
#include <lightningd/log.h> #include <lightningd/log.h>
#include <string.h> #include <string.h>
#include <wally_bip32.h> #include <wally_bip32.h>
@@ -36,7 +36,7 @@ void hsm_init(struct lightningd *ld, bool newdir)
u8 *msg; u8 *msg;
bool create; bool create;
ld->hsm_fd = subd_raw(ld, "lightningd_hsm"); ld->hsm_fd = subd_raw(ld, "lightning_hsmd");
if (ld->hsm_fd < 0) if (ld->hsm_fd < 0)
err(1, "Could not subd hsm"); err(1, "Could not subd hsm");

View File

@@ -22,8 +22,8 @@
#include <lightningd/invoice.h> #include <lightningd/invoice.h>
#include <lightningd/jsonrpc.h> #include <lightningd/jsonrpc.h>
#include <lightningd/log.h> #include <lightningd/log.h>
#include <lightningd/onchain/onchain_wire.h>
#include <lightningd/options.h> #include <lightningd/options.h>
#include <onchaind/onchain_wire.h>
#include <sys/types.h> #include <sys/types.h>
#include <unistd.h> #include <unistd.h>
@@ -100,12 +100,13 @@ static struct lightningd *new_lightningd(const tal_t *ctx)
static const char *daemons[] = { static const char *daemons[] = {
"lightningd", "lightningd",
"lightningd_channel", "lightning_channeld",
"lightningd_closing", "lightning_closingd",
"lightningd_gossip", "lightning_gossipd",
"lightningd_handshake", "lightning_handshaked",
"lightningd_hsm", "lightning_hsmd",
"lightningd_opening" "lightning_onchaind",
"lightning_openingd"
}; };
/* Check we can run them, and check their versions */ /* Check we can run them, and check their versions */

View File

@@ -4,8 +4,8 @@
#include <common/cryptomsg.h> #include <common/cryptomsg.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <lightningd/handshake/gen_handshake_wire.h> #include <handshaked/gen_handshake_wire.h>
#include <lightningd/hsm/gen_hsm_wire.h> #include <hsmd/gen_hsm_wire.h>
#include <lightningd/hsm_control.h> #include <lightningd/hsm_control.h>
#include <lightningd/jsonrpc.h> #include <lightningd/jsonrpc.h>
#include <lightningd/lightningd.h> #include <lightningd/lightningd.h>
@@ -221,7 +221,7 @@ static struct io_plan *hsm_then_handshake(struct io_conn *conn,
/* Give handshake daemon the hsm fd. */ /* Give handshake daemon the hsm fd. */
handshaked = new_subd(ld, ld, handshaked = new_subd(ld, ld,
"lightningd_handshake", NULL, "lightning_handshaked", NULL,
handshake_wire_type_name, handshake_wire_type_name,
NULL, NULL, NULL, NULL,
take(&hsmfd), take(&connfd), NULL); take(&hsmfd), take(&connfd), NULL);

View File

@@ -2,9 +2,9 @@
#include <bitcoin/preimage.h> #include <bitcoin/preimage.h>
#include <ccan/str/hex/hex.h> #include <ccan/str/hex/hex.h>
#include <ccan/structeq/structeq.h> #include <ccan/structeq/structeq.h>
#include <channeld/gen_channel_wire.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/chaintopology.h> #include <lightningd/chaintopology.h>
#include <lightningd/channel/gen_channel_wire.h>
#include <lightningd/jsonrpc.h> #include <lightningd/jsonrpc.h>
#include <lightningd/lightningd.h> #include <lightningd/lightningd.h>
#include <lightningd/log.h> #include <lightningd/log.h>

View File

@@ -8,6 +8,8 @@
#include <ccan/noerr/noerr.h> #include <ccan/noerr/noerr.h>
#include <ccan/take/take.h> #include <ccan/take/take.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>
#include <channeld/gen_channel_wire.h>
#include <closingd/gen_closing_wire.h>
#include <common/close_tx.h> #include <common/close_tx.h>
#include <common/dev_disconnect.h> #include <common/dev_disconnect.h>
#include <common/funding_tx.h> #include <common/funding_tx.h>
@@ -17,24 +19,22 @@
#include <common/timeout.h> #include <common/timeout.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <gossipd/gen_gossip_wire.h>
#include <hsmd/gen_hsm_wire.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/build_utxos.h> #include <lightningd/build_utxos.h>
#include <lightningd/chaintopology.h> #include <lightningd/chaintopology.h>
#include <lightningd/channel/gen_channel_wire.h>
#include <lightningd/closing/gen_closing_wire.h>
#include <lightningd/dns.h> #include <lightningd/dns.h>
#include <lightningd/gen_peer_state_names.h> #include <lightningd/gen_peer_state_names.h>
#include <lightningd/gossip/gen_gossip_wire.h>
#include <lightningd/hsm/gen_hsm_wire.h>
#include <lightningd/hsm_control.h> #include <lightningd/hsm_control.h>
#include <lightningd/jsonrpc.h> #include <lightningd/jsonrpc.h>
#include <lightningd/log.h> #include <lightningd/log.h>
#include <lightningd/new_connection.h> #include <lightningd/new_connection.h>
#include <lightningd/onchain/gen_onchain_wire.h>
#include <lightningd/onchain/onchain_wire.h>
#include <lightningd/opening/gen_opening_wire.h>
#include <lightningd/peer_htlcs.h> #include <lightningd/peer_htlcs.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <onchaind/gen_onchain_wire.h>
#include <onchaind/onchain_wire.h>
#include <openingd/gen_opening_wire.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/types.h> #include <sys/types.h>
#include <unistd.h> #include <unistd.h>
@@ -1224,7 +1224,7 @@ static enum watch_result funding_spent(struct peer *peer,
peer_fail_permanent_str(peer, "Funding transaction spent"); peer_fail_permanent_str(peer, "Funding transaction spent");
peer->owner = new_subd(peer->ld, peer->ld, peer->owner = new_subd(peer->ld, peer->ld,
"lightningd_onchain", peer, "lightning_onchaind", peer,
onchain_wire_type_name, onchain_wire_type_name,
onchain_msg, onchain_msg,
peer_onchain_finished, peer_onchain_finished,
@@ -1783,7 +1783,7 @@ static void peer_start_closingd(struct peer *peer,
} }
peer->owner = new_subd(peer->ld, peer->ld, peer->owner = new_subd(peer->ld, peer->ld,
"lightningd_closing", peer, "lightning_closingd", peer,
closing_wire_type_name, closing_wire_type_name,
closing_msg, closing_msg,
peer_owner_finished, peer_owner_finished,
@@ -1970,7 +1970,7 @@ static bool peer_start_channeld(struct peer *peer,
fatal("Could not read fd from HSM: %s", strerror(errno)); fatal("Could not read fd from HSM: %s", strerror(errno));
peer->owner = new_subd(peer->ld, peer->ld, peer->owner = new_subd(peer->ld, peer->ld,
"lightningd_channel", peer, "lightning_channeld", peer,
channel_wire_type_name, channel_wire_type_name,
channel_msg, channel_msg,
peer_owner_finished, peer_owner_finished,
@@ -2282,7 +2282,7 @@ static void channel_config(struct lightningd *ld,
*/ */
ours->max_accepted_htlcs = 483; ours->max_accepted_htlcs = 483;
/* This is filled in by lightningd_opening, for consistency. */ /* This is filled in by lightning_openingd, for consistency. */
ours->channel_reserve_satoshis = 0; ours->channel_reserve_satoshis = 0;
}; };
@@ -2309,7 +2309,7 @@ void peer_fundee_open(struct peer *peer, const u8 *from_peer,
} }
peer_set_condition(peer, GOSSIPD, OPENINGD); peer_set_condition(peer, GOSSIPD, OPENINGD);
peer->owner = new_subd(ld, ld, "lightningd_opening", peer, peer->owner = new_subd(ld, ld, "lightning_openingd", peer,
opening_wire_type_name, opening_wire_type_name,
NULL, peer_owner_finished, NULL, peer_owner_finished,
take(&peer_fd), take(&gossip_fd), take(&peer_fd), take(&gossip_fd),
@@ -2393,7 +2393,7 @@ static bool gossip_peer_released(struct subd *gossip,
peer_set_condition(fc->peer, GOSSIPD, OPENINGD); peer_set_condition(fc->peer, GOSSIPD, OPENINGD);
opening = new_subd(fc->peer->ld, ld, opening = new_subd(fc->peer->ld, ld,
"lightningd_opening", fc->peer, "lightning_openingd", fc->peer,
opening_wire_type_name, opening_wire_type_name,
NULL, peer_owner_finished, NULL, peer_owner_finished,
take(&fds[0]), take(&fds[1]), NULL); take(&fds[0]), take(&fds[1]), NULL);

View File

@@ -3,22 +3,22 @@
#include <ccan/crypto/ripemd160/ripemd160.h> #include <ccan/crypto/ripemd160/ripemd160.h>
#include <ccan/mem/mem.h> #include <ccan/mem/mem.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>
#include <channeld/gen_channel_wire.h>
#include <common/derive_basepoints.h> #include <common/derive_basepoints.h>
#include <common/htlc_wire.h> #include <common/htlc_wire.h>
#include <common/overflows.h> #include <common/overflows.h>
#include <common/sphinx.h> #include <common/sphinx.h>
#include <gossipd/gen_gossip_wire.h>
#include <lightningd/chaintopology.h> #include <lightningd/chaintopology.h>
#include <lightningd/channel/gen_channel_wire.h>
#include <lightningd/gossip/gen_gossip_wire.h>
#include <lightningd/htlc_end.h> #include <lightningd/htlc_end.h>
#include <lightningd/invoice.h> #include <lightningd/invoice.h>
#include <lightningd/lightningd.h> #include <lightningd/lightningd.h>
#include <lightningd/log.h> #include <lightningd/log.h>
#include <lightningd/onchain/onchain_wire.h>
#include <lightningd/pay.h> #include <lightningd/pay.h>
#include <lightningd/peer_control.h> #include <lightningd/peer_control.h>
#include <lightningd/peer_htlcs.h> #include <lightningd/peer_htlcs.h>
#include <lightningd/subd.h> #include <lightningd/subd.h>
#include <onchaind/onchain_wire.h>
#include <wire/gen_onion_wire.h> #include <wire/gen_onion_wire.h>
static bool state_update_ok(struct peer *peer, static bool state_update_ok(struct peer *peer,

View File

@@ -16,7 +16,7 @@ struct io_conn;
/* One of our subds. */ /* One of our subds. */
struct subd { struct subd {
/* Name, like John, or "lightningd_hsm" */ /* Name, like John, or "lightning_hsmd" */
const char *name; const char *name;
/* The Big Cheese. */ /* The Big Cheese. */
struct lightningd *ld; struct lightningd *ld;

View File

@@ -6,9 +6,9 @@
#include "../../common/key_derive.c" #include "../../common/key_derive.c"
#include "../../common/keyset.c" #include "../../common/keyset.c"
#include "../../common/initial_channel.c" #include "../../common/initial_channel.c"
#include "../channel/full_channel.c" #include "../../channeld/full_channel.c"
#include "../../common/initial_commit_tx.c" #include "../../common/initial_commit_tx.c"
#include "../channel/commit_tx.c" #include "../../channeld/commit_tx.c"
#include "../../common/htlc_tx.c" #include "../../common/htlc_tx.c"
#include <bitcoin/preimage.h> #include <bitcoin/preimage.h>
#include <bitcoin/privkey.h> #include <bitcoin/privkey.h>

View File

@@ -6,7 +6,7 @@ static bool print_superverbose;
#define SUPERVERBOSE(...) \ #define SUPERVERBOSE(...) \
do { if (print_superverbose) printf(__VA_ARGS__); } while(0) do { if (print_superverbose) printf(__VA_ARGS__); } while(0)
#define PRINT_ACTUAL_FEE #define PRINT_ACTUAL_FEE
#include "../channel/commit_tx.c" #include "../../channeld/commit_tx.c"
#include "../../common/initial_commit_tx.c" #include "../../common/initial_commit_tx.c"
#include "../../common/htlc_tx.c" #include "../../common/htlc_tx.c"
#include <bitcoin/preimage.h> #include <bitcoin/preimage.h>

View File

@@ -1,43 +1,43 @@
#! /usr/bin/make #! /usr/bin/make
# Designed to be run one level up # Designed to be run one level up
lightningd/onchain-wrongdir: onchaind-wrongdir:
$(MAKE) -C ../.. lightningd/onchain-all $(MAKE) -C ../.. onchaind-all
default: lightningd/onchain-all default: onchaind-all
lightningd/onchain-all: lightningd/lightningd_onchain onchaind-all: lightningd/lightning_onchaind
lightningd/onchain/gen_onchain_types_names.h: lightningd/onchain/onchain_types.h ccan/ccan/cdump/tools/cdump-enumstr onchaind/gen_onchain_types_names.h: onchaind/onchain_types.h ccan/ccan/cdump/tools/cdump-enumstr
ccan/ccan/cdump/tools/cdump-enumstr lightningd/onchain/onchain_types.h > $@ ccan/ccan/cdump/tools/cdump-enumstr onchaind/onchain_types.h > $@
# lightningd/onchain needs these: # onchaind needs these:
LIGHTNINGD_ONCHAIN_HEADERS_GEN := \ LIGHTNINGD_ONCHAIN_HEADERS_GEN := \
lightningd/onchain/gen_onchain_wire.h \ onchaind/gen_onchain_wire.h \
lightningd/onchain/gen_onchain_types_names.h onchaind/gen_onchain_types_names.h
LIGHTNINGD_ONCHAIN_HEADERS_NOGEN := \ LIGHTNINGD_ONCHAIN_HEADERS_NOGEN := \
lightningd/onchain/onchain_types.h \ onchaind/onchain_types.h \
lightningd/onchain/onchain_wire.h onchaind/onchain_wire.h
LIGHTNINGD_ONCHAIN_HEADERS := $(LIGHTNINGD_ONCHAIN_HEADERS_GEN) $(LIGHTNINGD_ONCHAIN_HEADERS_NOGEN) LIGHTNINGD_ONCHAIN_HEADERS := $(LIGHTNINGD_ONCHAIN_HEADERS_GEN) $(LIGHTNINGD_ONCHAIN_HEADERS_NOGEN)
LIGHTNINGD_ONCHAIN_SRC := lightningd/onchain/onchain.c \ LIGHTNINGD_ONCHAIN_SRC := onchaind/onchain.c \
lightningd/onchain/gen_onchain_wire.c \ onchaind/gen_onchain_wire.c \
lightningd/onchain/onchain_wire.c onchaind/onchain_wire.c
LIGHTNINGD_ONCHAIN_OBJS := $(LIGHTNINGD_ONCHAIN_SRC:.c=.o) LIGHTNINGD_ONCHAIN_OBJS := $(LIGHTNINGD_ONCHAIN_SRC:.c=.o)
# Control daemon uses this: # Control daemon uses this:
LIGHTNINGD_ONCHAIN_CONTROL_HEADERS := \ LIGHTNINGD_ONCHAIN_CONTROL_HEADERS := \
lightningd/onchain/gen_onchain_wire.h \ onchaind/gen_onchain_wire.h \
lightningd/onchain/onchain_wire.h onchaind/onchain_wire.h
LIGHTNINGD_ONCHAIN_CONTROL_SRC := $(LIGHTNINGD_ONCHAIN_CONTROL_HEADERS:.h=.c) LIGHTNINGD_ONCHAIN_CONTROL_SRC := $(LIGHTNINGD_ONCHAIN_CONTROL_HEADERS:.h=.c)
LIGHTNINGD_ONCHAIN_CONTROL_OBJS := $(LIGHTNINGD_ONCHAIN_CONTROL_SRC:.c=.o) LIGHTNINGD_ONCHAIN_CONTROL_OBJS := $(LIGHTNINGD_ONCHAIN_CONTROL_SRC:.c=.o)
LIGHTNINGD_ONCHAIN_GEN_SRC := $(filter lightningd/onchain/gen_%, $(LIGHTNINGD_ONCHAIN_SRC) $(LIGHTNINGD_ONCHAIN_CONTROL_SRC)) LIGHTNINGD_ONCHAIN_GEN_SRC := $(filter onchaind/gen_%, $(LIGHTNINGD_ONCHAIN_SRC) $(LIGHTNINGD_ONCHAIN_CONTROL_SRC))
LIGHTNINGD_ONCHAIN_SRC_NOGEN := $(filter-out lightningd/onchain/gen_%, $(LIGHTNINGD_ONCHAIN_SRC)) LIGHTNINGD_ONCHAIN_SRC_NOGEN := $(filter-out onchaind/gen_%, $(LIGHTNINGD_ONCHAIN_SRC))
# Add to headers which any object might need. # Add to headers which any object might need.
LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_ONCHAIN_HEADERS_GEN) LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_ONCHAIN_HEADERS_GEN)
@@ -63,27 +63,29 @@ ONCHAIND_COMMON_OBJS := \
common/utils.o \ common/utils.o \
common/version.o common/version.o
lightningd/onchain/gen_onchain_wire.h: $(WIRE_GEN) lightningd/onchain/onchain_wire.csv onchaind/gen_onchain_wire.h: $(WIRE_GEN) onchaind/onchain_wire.csv
$(WIRE_GEN) --header $@ onchain_wire_type < lightningd/onchain/onchain_wire.csv > $@ $(WIRE_GEN) --header $@ onchain_wire_type < onchaind/onchain_wire.csv > $@
lightningd/onchain/gen_onchain_wire.c: $(WIRE_GEN) lightningd/onchain/onchain_wire.csv onchaind/gen_onchain_wire.c: $(WIRE_GEN) onchaind/onchain_wire.csv
$(WIRE_GEN) ${@:.c=.h} onchain_wire_type < lightningd/onchain/onchain_wire.csv > $@ $(WIRE_GEN) ${@:.c=.h} onchain_wire_type < onchaind/onchain_wire.csv > $@
LIGHTNINGD_ONCHAIN_OBJS := $(LIGHTNINGD_ONCHAIN_SRC:.c=.o) $(LIGHTNINGD_ONCHAIN_GEN_SRC:.c=.o) LIGHTNINGD_ONCHAIN_OBJS := $(LIGHTNINGD_ONCHAIN_SRC:.c=.o) $(LIGHTNINGD_ONCHAIN_GEN_SRC:.c=.o)
# Make sure these depend on everything. # Make sure these depend on everything.
ALL_OBJS += $(LIGHTNINGD_ONCHAIN_OBJS) ALL_OBJS += $(LIGHTNINGD_ONCHAIN_OBJS)
ALL_PROGRAMS += lightningd/lightning_onchaind
ALL_GEN_HEADERS += $(LIGHTNINGD_ONCHAIN_HEADERS_GEN)
lightningd/lightningd_onchain: $(LIGHTNINGD_ONCHAIN_OBJS) $(WIRE_ONION_OBJS) $(ONCHAIND_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS) lightningd/lightning_onchaind: $(LIGHTNINGD_ONCHAIN_OBJS) $(WIRE_ONION_OBJS) $(ONCHAIND_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS)
check-source: $(LIGHTNINGD_ONCHAIN_SRC_NOGEN:%=check-src-include-order/%) check-source: $(LIGHTNINGD_ONCHAIN_SRC_NOGEN:%=check-src-include-order/%)
check-source-bolt: $(LIGHTNINGD_ONCHAIN_SRC:%=bolt-check/%) $(LIGHTNINGD_ONCHAIN_HEADERS:%=bolt-check/%) check-source-bolt: $(LIGHTNINGD_ONCHAIN_SRC:%=bolt-check/%) $(LIGHTNINGD_ONCHAIN_HEADERS:%=bolt-check/%)
check-whitespace: $(LIGHTNINGD_ONCHAIN_SRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_ONCHAIN_HEADERS_NOGEN:%=check-whitespace/%) check-whitespace: $(LIGHTNINGD_ONCHAIN_SRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_ONCHAIN_HEADERS_NOGEN:%=check-whitespace/%)
clean: lightningd/onchain-clean clean: onchaind-clean
lightningd/onchain-clean: onchaind-clean:
$(RM) $(LIGHTNINGD_ONCHAIN_OBJS) gen_* $(RM) $(LIGHTNINGD_ONCHAIN_OBJS) gen_*
-include lightningd/onchain/test/Makefile -include onchaind/test/Makefile

View File

@@ -15,9 +15,9 @@
#include <common/version.h> #include <common/version.h>
#include <errno.h> #include <errno.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/onchain/gen_onchain_wire.h>
#include <lightningd/onchain/onchain_types.h>
#include <lightningd/peer_state.h> #include <lightningd/peer_state.h>
#include <onchaind/gen_onchain_wire.h>
#include <onchaind/onchain_types.h>
#include <signal.h> #include <signal.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>

View File

@@ -1,6 +1,6 @@
#include <ccan/structeq/structeq.h> #include <ccan/structeq/structeq.h>
#include <common/htlc_wire.h> #include <common/htlc_wire.h>
#include <lightningd/onchain/onchain_wire.h> #include <onchaind/onchain_wire.h>
#include <wire/wire.h> #include <wire/wire.h>
void towire_htlc_stub(u8 **pptr, const struct htlc_stub *htlc_stub) void towire_htlc_stub(u8 **pptr, const struct htlc_stub *htlc_stub)

View File

@@ -35,7 +35,7 @@ onchain_init,,num_htlc_sigs,u16
onchain_init,,htlc_signature,num_htlc_sigs*secp256k1_ecdsa_signature onchain_init,,htlc_signature,num_htlc_sigs*secp256k1_ecdsa_signature
onchain_init,,num_htlcs,u64 onchain_init,,num_htlcs,u64
#include <lightningd/onchain/onchain_wire.h> #include <onchaind/onchain_wire.h>
# This is all the HTLCs: one per message # This is all the HTLCs: one per message
onchain_htlc,2 onchain_htlc,2
onchain_htlc,,htlc,struct htlc_stub onchain_htlc,,htlc,struct htlc_stub
1 # Shouldn't happen
35 onchain_init,,num_htlcs,u64
36 #include <lightningd/onchain/onchain_wire.h> #include <onchaind/onchain_wire.h>
37 # This is all the HTLCs: one per message
38 onchain_htlc,2
39 onchain_htlc,,htlc,struct htlc_stub
40 # This sets what the state is, depending on tx.
41 onchain_init_reply,101

View File

@@ -1,22 +1,22 @@
#! /usr/bin/make #! /usr/bin/make
# Designed to be run one level up # Designed to be run one level up
lightningd/opening-wrongdir: opening-wrongdir:
$(MAKE) -C ../.. lightningd/opening-all $(MAKE) -C ../.. opening-all
default: lightningd/opening-all default: opening-all
lightningd/opening-all: lightningd/lightningd_opening opening-all: lightningd/lightning_openingd
# lightningd/opening needs these: # opening needs these:
LIGHTNINGD_OPENING_HEADERS_GEN := \ LIGHTNINGD_OPENING_HEADERS_GEN := \
lightningd/opening/gen_opening_wire.h openingd/gen_opening_wire.h
LIGHTNINGD_OPENING_HEADERS_NOGEN := LIGHTNINGD_OPENING_HEADERS_NOGEN :=
LIGHTNINGD_OPENING_HEADERS := $(LIGHTNINGD_OPENING_HEADERS_GEN) $(LIGHTNINGD_OPENING_HEADERS_NOGEN) LIGHTNINGD_OPENING_HEADERS := $(LIGHTNINGD_OPENING_HEADERS_GEN) $(LIGHTNINGD_OPENING_HEADERS_NOGEN)
LIGHTNINGD_OPENING_SRC := lightningd/opening/opening.c \ LIGHTNINGD_OPENING_SRC := openingd/opening.c \
$(LIGHTNINGD_OPENING_HEADERS:.h=.c) $(LIGHTNINGD_OPENING_HEADERS:.h=.c)
LIGHTNINGD_OPENING_OBJS := $(LIGHTNINGD_OPENING_SRC:.c=.o) LIGHTNINGD_OPENING_OBJS := $(LIGHTNINGD_OPENING_SRC:.c=.o)
@@ -25,9 +25,9 @@ LIGHTNINGD_OPENING_CONTROL_HEADERS := $(LIGHTNINGD_OPENING_HEADERS)
LIGHTNINGD_OPENING_CONTROL_SRC := $(LIGHTNINGD_OPENING_HEADERS:.h=.c) LIGHTNINGD_OPENING_CONTROL_SRC := $(LIGHTNINGD_OPENING_HEADERS:.h=.c)
LIGHTNINGD_OPENING_CONTROL_OBJS := $(LIGHTNINGD_OPENING_CONTROL_SRC:.c=.o) LIGHTNINGD_OPENING_CONTROL_OBJS := $(LIGHTNINGD_OPENING_CONTROL_SRC:.c=.o)
LIGHTNINGD_OPENING_GEN_SRC := $(filter lightningd/opening/gen_%, $(LIGHTNINGD_OPENING_SRC) $(LIGHTNINGD_OPENING_CONTROL_SRC)) LIGHTNINGD_OPENING_GEN_SRC := $(filter openingd/gen_%, $(LIGHTNINGD_OPENING_SRC) $(LIGHTNINGD_OPENING_CONTROL_SRC))
LIGHTNINGD_OPENING_SRC_NOGEN := $(filter-out lightningd/opening/gen_%, $(LIGHTNINGD_OPENING_SRC)) LIGHTNINGD_OPENING_SRC_NOGEN := $(filter-out openingd/gen_%, $(LIGHTNINGD_OPENING_SRC))
# Add to headers which any object might need. # Add to headers which any object might need.
LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_OPENING_HEADERS_GEN) LIGHTNINGD_HEADERS_GEN += $(LIGHTNINGD_OPENING_HEADERS_GEN)
@@ -62,27 +62,29 @@ OPENINGD_COMMON_OBJS := \
$(LIGHTNINGD_OPENING_OBJS): $(LIGHTNINGD_HEADERS) $(LIGHTNINGD_OPENING_OBJS): $(LIGHTNINGD_HEADERS)
lightningd/opening/gen_opening_wire.h: $(WIRE_GEN) lightningd/opening/opening_wire.csv openingd/gen_opening_wire.h: $(WIRE_GEN) openingd/opening_wire.csv
$(WIRE_GEN) --header $@ opening_wire_type < lightningd/opening/opening_wire.csv > $@ $(WIRE_GEN) --header $@ opening_wire_type < openingd/opening_wire.csv > $@
lightningd/opening/gen_opening_wire.c: $(WIRE_GEN) lightningd/opening/opening_wire.csv openingd/gen_opening_wire.c: $(WIRE_GEN) openingd/opening_wire.csv
$(WIRE_GEN) ${@:.c=.h} opening_wire_type < lightningd/opening/opening_wire.csv > $@ $(WIRE_GEN) ${@:.c=.h} opening_wire_type < openingd/opening_wire.csv > $@
LIGHTNINGD_OPENING_OBJS := $(LIGHTNINGD_OPENING_SRC:.c=.o) $(LIGHTNINGD_OPENING_GEN_SRC:.c=.o) LIGHTNINGD_OPENING_OBJS := $(LIGHTNINGD_OPENING_SRC:.c=.o) $(LIGHTNINGD_OPENING_GEN_SRC:.c=.o)
# Make sure these depend on everything. # Make sure these depend on everything.
ALL_OBJS += $(LIGHTNINGD_OPENING_OBJS) ALL_OBJS += $(LIGHTNINGD_OPENING_OBJS)
ALL_PROGRAMS += lightningd/lightning_openingd
ALL_GEN_HEADERS += $(LIGHTNINGD_OPENING_HEADERS_GEN)
lightningd/lightningd_opening: $(LIGHTNINGD_OPENING_OBJS) $(OPENINGD_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS) lightningd/lightning_openingd: $(LIGHTNINGD_OPENING_OBJS) $(OPENINGD_COMMON_OBJS) $(WIRE_OBJS) $(BITCOIN_OBJS) $(LIGHTNINGD_HSM_CLIENT_OBJS)
check-source: $(LIGHTNINGD_OPENING_SRC_NOGEN:%=check-src-include-order/%) check-source: $(LIGHTNINGD_OPENING_SRC_NOGEN:%=check-src-include-order/%)
check-source-bolt: $(LIGHTNINGD_OPENING_SRC:%=bolt-check/%) $(LIGHTNINGD_OPENING_HEADERS:%=bolt-check/%) check-source-bolt: $(LIGHTNINGD_OPENING_SRC:%=bolt-check/%) $(LIGHTNINGD_OPENING_HEADERS:%=bolt-check/%)
check-whitespace: $(LIGHTNINGD_OPENING_SRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_OPENING_HEADERS_NOGEN:%=check-whitespace/%) check-whitespace: $(LIGHTNINGD_OPENING_SRC_NOGEN:%=check-whitespace/%) $(LIGHTNINGD_OPENING_HEADERS_NOGEN:%=check-whitespace/%)
clean: lightningd/opening-clean clean: opening-clean
lightningd/opening-clean: opening-clean:
$(RM) $(LIGHTNINGD_OPENING_OBJS) gen_* $(RM) $(LIGHTNINGD_OPENING_OBJS) gen_*
-include lightningd/opening/test/Makefile -include openingd/test/Makefile

View File

@@ -19,7 +19,7 @@
#include <common/version.h> #include <common/version.h>
#include <errno.h> #include <errno.h>
#include <inttypes.h> #include <inttypes.h>
#include <lightningd/opening/gen_opening_wire.h> #include <openingd/gen_opening_wire.h>
#include <secp256k1.h> #include <secp256k1.h>
#include <signal.h> #include <signal.h>
#include <stdio.h> #include <stdio.h>

View File

@@ -238,8 +238,8 @@ class LightningDTests(BaseLightningDTests):
assert 'state: UNINITIALIZED -> GOSSIPD' in p1['log'] assert 'state: UNINITIALIZED -> GOSSIPD' in p1['log']
# Both should still be owned by gossip # Both should still be owned by gossip
assert p1['owner'] == 'lightningd_gossip' assert p1['owner'] == 'lightning_gossipd'
assert p2['owner'] == 'lightningd_gossip' assert p2['owner'] == 'lightning_gossipd'
def test_balance(self): def test_balance(self):
l1,l2 = self.connect() l1,l2 = self.connect()

View File

@@ -7,9 +7,9 @@
#include <common/utxo.h> #include <common/utxo.h>
#include <common/withdraw_tx.h> #include <common/withdraw_tx.h>
#include <errno.h> #include <errno.h>
#include <hsmd/gen_hsm_wire.h>
#include <lightningd/bitcoind.h> #include <lightningd/bitcoind.h>
#include <lightningd/chaintopology.h> #include <lightningd/chaintopology.h>
#include <lightningd/hsm/gen_hsm_wire.h>
#include <lightningd/hsm_control.h> #include <lightningd/hsm_control.h>
#include <lightningd/jsonrpc.h> #include <lightningd/jsonrpc.h>
#include <lightningd/lightningd.h> #include <lightningd/lightningd.h>

View File

@@ -22,6 +22,7 @@ WIRE_OBJS := $(WIRE_SRC:.c=.o) $(WIRE_GEN_SRC:.c=.o)
WIRE_ONION_OBJS := $(WIRE_GEN_ONION_SRC:.c=.o) WIRE_ONION_OBJS := $(WIRE_GEN_ONION_SRC:.c=.o)
ALL_OBJS += $(WIRE_OBJS) $(WIRE_ONION_OBJS) ALL_OBJS += $(WIRE_OBJS) $(WIRE_ONION_OBJS)
ALL_GEN_HEADERS += $(WIRE_GEN_HEADERS)
# They may not have the bolts. # They may not have the bolts.
BOLT_EXTRACT=$(BOLTDIR)/tools/extract-formats.py BOLT_EXTRACT=$(BOLTDIR)/tools/extract-formats.py