Rusty Russell
40895e4550
Update to match spec: "BOLT7: Reorder feature bitmaps in order to allow future changes"
...
aka. a257554456cda98afd1532c302c0e5e84de0455e
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-08-03 14:26:41 +02:00
Rusty Russell
2b7c091e70
closing: update to match proposal to restart negotiation on reconnect.
...
This simplifies significantly, as we don't need to remember what we offered.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-08-02 11:45:30 +09:30
Christian Decker
b1ded66d35
fix: Mispelled word in the README.md
...
Fixes #198
Reported-by: Toshiro Takahashi @toshirot
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-07-31 13:45:13 +02:00
Christian Decker
35847206b2
fix: Allow pings while waiting for the channel to lock
...
This was causing failures on testnet where confirmations are not
immediate.
Reported-by: Fabrice Drouin @sstone
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-07-22 09:52:14 +09:30
Christian Decker
2bf92c9063
peer: Check localfeatures and globalfeatures against what we support ( #195 )
...
We support a number of features already, so failing connections
whenever we see an even bit set is not a good idea. This turned out to
kill our connections to eclair.
Also, the spec says that the LSB / bit 0 is to be counted as index 0, and
therefore even. So we need to check the lower of each 2-bit-tuple not
the higher one.
2017-07-16 10:38:26 +09:30
Christian Decker
75de4476f3
cleanup: Addressing comments from #165
...
Thanks @rustyrussell for the feedback :-)
2017-07-15 13:51:48 +02:00
Christian Decker
7dc693963d
script: Consolidate scripts to use pubkey_to_hash160
2017-07-15 10:19:33 +09:30
sstone
f371b6df20
sphinx: fix payload amount encoding
...
it was changed to 64 bits
2017-07-14 19:27:33 +02:00
Christian Decker
2c0b52fb77
bitcoin: Make chainparams const
...
`cli` and `cli_args` were not `const` before since they are added to a
non-`const` array. Using `cast_const` we can keep them `const` without
unsafe cast.
Reported-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-07-13 15:36:50 +02:00
Christian Decker
5fdb8a58aa
fix: Addressing feedback from PR #192
2017-07-12 13:16:00 +02:00
Christian Decker
83c8c3fc52
opening: Use the correct chainparams to open a channel
...
We were using the bitcoin genesis blockhash for all networks, which is
not correct, and would result in the open being aborted when talking
to other implementations.
Reported-by: @sstone and @pm47
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-07-12 11:30:23 +09:30
Christian Decker
fbc2b65a3d
opening: Pass network_index through to openingd
...
This is needed in order to open channels with the correct
genesis_blockhash.
Reported-By: @sstone
2017-07-12 11:30:23 +09:30
Christian Decker
943b6526c7
pytest: Configure non-legacy tests correctly and filter legacy
2017-07-12 11:30:23 +09:30
Christian Decker
843e21826a
opts: Remove --regtest flag and pass chainparams to bitcoind
2017-07-12 11:30:23 +09:30
Christian Decker
cf16b5faea
options: Add option to set the network
2017-07-12 11:30:23 +09:30
Christian Decker
df056e5973
bitcoin: Added chainparams grouping blockchain specific parameters
2017-07-12 11:30:23 +09:30
Christian Decker
9370a3cdd2
opening: Fix switched parameters for towire_accept_channel
...
Turns out we were serializing two parameters in the wrong order.
2017-07-12 11:00:26 +09:30
Christian Decker
8e043fc448
pytest: Consolidating sync_blockheight and fixing flaky test
2017-07-12 11:00:26 +09:30
Christian Decker
1a1e29a4bc
gossip: Re-initiate the broadcast timer upon reconnect
...
We weren't registering reconnecting peers for broadcasts. Just
starting a timer is enough. Also added an integration test to check
that the gossip sync is being resumed.
2017-07-12 11:00:26 +09:30
Rusty Russell
03be40ea8b
lightningd: don't reset balance when we reconnect!
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
8b71ea924a
lightningd: don't crash when simply using closingd just for retransmission.
...
test_closing_negotiation_reconnect (__main__.LightningDTests) ... peer state CLOSINGD_COMPLETE should be CLOSINGD_SIGEXCHANGE
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
7dce850844
Makefile: wallet objects depend on sodium headers, too.
...
Noticed a build failure from a fresh git clone.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
f04222cb12
test_lightningd.py: make pay helper use random label if we don't care.
...
Suggested-by: Christian Decker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
a87d50acc9
Makefile: clean daemons on clean.
...
Reported-by: Christian Decker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
7d3e074863
Misc feedback minor fixes.
...
Reported-by: Christian Decker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
87232ec25c
lightningd: new peer state CLOSINGD_COMPLETE.
...
This is a transitional state, while we're waiting to see the
closing tx onchain (which is To Be Implemented).
The simplest way to do re-transmission is to re-use closingd, and just
disallow any updates.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
c1f21b9fce
lightningd/peer_control.c: rename peer->balance.
...
I made the mistake of thinking it was a [NUM_SIDES] array, but
it's actually our balance, and it's in millisatoshi. Rename
for clarity.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
4223a91842
lightningd: update daemon list.
...
This is used to check that versions are correct on startup.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
87f6a57d75
tests/test_lightningd.py: test closing and shutdown reconnection.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
0c5e238a48
lightningd: handle reconnect during shutdown and closing.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
0c07856ae4
lightningd/peer_control.c: remove unnecessary reconnected field.
...
It can be on the stack.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
a827d2b2bb
lightningd: add in support for closingd.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
e5a8a7502c
lightningd/closing: subdaemon for closing negotiation.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
d40334ce18
tests/test_lightningd.py: add pay helper for making payments.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
728593702f
close_tx: trim based on dust level.
...
Saves the caller doing it (though legacy doesn't trim at all!).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
6fa90c926a
channeld: exit after shutdown when no more HTLCs.
...
Ready for the introduction of closingd.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
80886cda8a
daemon_conn: fix daemon_conn_sync_flush.
...
We need to set fd to blocking before trying to sync write. Use
io_fd_block() elsewhere, too.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
35ec22b946
ccan: update to expose io_fd_block() from ccan/io.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
94a33a7d15
channeld: use an enum side not a bool for funder/
...
This predated our handling of enums.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Rusty Russell
7884343c15
tools/generate-wire.py: enums are assignable.
...
Simplfies their marshalling/unmarshalling.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-12 10:21:16 +09:30
Christian Decker
a53acb7877
make: Explicitly set cc compatibility
...
This is apparently necessary to build `lightningd` on debian jessie,
which uses an older gcc version.
2017-07-07 10:15:02 +02:00
Christian Decker
8ba457956a
travis: Run integration tests with and without valgrind on travis
...
Run one travis build with valgrind on legacy tests, off on new daemon
tests, and another build with the roles switched. Should also speed
this up a bit since we run in parallel.
2017-07-03 19:46:43 +09:30
Rusty Russell
9ec804341c
channeld: fix intermittant failure on reading init msg from master.
...
As tracked down by Christian; by setting up the master conn first,
we make the master fd async. This means that the synchronous read
(in init_channel) can fail with -EAGAIN, and indeed, Christian
saw this when not running under valgrind.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-03 19:43:34 +09:30
Rusty Russell
249085ac10
channeld: reorder functions more logically.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-03 19:43:34 +09:30
Rusty Russell
4a3c309e84
tests/test_lightningd.py: fix assumption about gossip order
...
Reported-by: Christian Decker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-03 19:43:34 +09:30
Rusty Russell
9fae82c175
tests: generalize wait_for_log into wait_for_logs.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-03 19:43:34 +09:30
Rusty Russell
c05f63a4db
peer_control: fix double-state transition on reconnect.
...
We actually don't need to transition if we're reconnecting, and logic
to go to CHANNELD_NORMAL was wrong: we checked that we'd seen funding tx
locked, but not that we'd received a msg from the remote peer.
We need to fix the tests now we no longer double-transition, too.
Fixes : #188
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-07-03 19:43:34 +09:30
Christian Decker
f9a2f73072
Addressing feedback from PR #187
2017-06-30 13:42:00 +02:00
Christian Decker
70f4484ba8
channeld: Pass through the agreed feerate_per_kw to channeld
...
We were erroneously using the fee_base which refers to the fees we
require for forwarding transactions instead of the on-chain fees.
2017-06-30 19:55:17 +09:30
Christian Decker
5c80963577
bug: channel_update parameters slipped by one
2017-06-30 19:55:17 +09:30