Commit graph

26 commits

Author SHA1 Message Date
Matt Corallo
2f346414ad
Merge pull request #502 from rloomba/rloomba/add_unregister_listener
[chaininterface] Add ability for BlockNotifier to unregister listeners
2020-02-19 19:02:47 +00:00
Matt Corallo
662f13a858 Test that we don't forget to track any outputs at monitor-load
This tests, after each functional test, that if we serialize and
reload all of our ChannelMonitors we end up tracking the same set
of outputs as before.
2020-02-18 18:20:33 -05:00
Ryan Loomba
7d6234662c add functionality for BlockNotifier to unregister a previously registered listener, in order to no longer receive events 2020-02-17 21:33:56 -08:00
Matt Corallo
ca4c970467 Clarify rescan rules for block_connected somewhat 2020-02-13 12:56:13 -05:00
Devrandom
c20e930b31 Add ChannelKeys to ChannelMonitor 2020-02-04 16:24:11 -08:00
Matt Corallo
af4738b778
Merge pull request #460 from lightning-signer/channel-value
Channel value to ChannelKeys constructor
2020-01-25 21:17:12 +00:00
Matt Corallo
30a12759f1
Merge pull request #458 from TheBlueMatt/2020-01-spendable-docs
Clean up documentation around spendable outputs significantly.
2020-01-25 20:50:10 +00:00
Matt Corallo
6c9180f972 Clean up documentation around spendable outputs significantly.
* Fixed a number of grammar issues
 * Clarified the docs for users who are intimately farmiliar with
   arbitrary lines of text copied from the BOLTs
 * Added a bit more text so that things are easier to read and less
   disjoint.
 * Clarified exactly how the witness stack should look since I had
   to go dig for it.
2020-01-25 15:11:12 -05:00
Valentine Wallace
4833d1acf9 Update ChannelManager's ChannelMonitor Arc to be a Deref
Additional changes:
* Update fuzz crate to match ChannelManager's new API
* Update lightning-net-tokio library to match ChannelManager's new ChannelMonitor Deref API
* Update tests to match ChannelManager's new ChannelMonitor Deref API
2020-01-25 14:39:52 -05:00
Devrandom
db398438ab Remove unnecessary sign_closing_transaction arg 2020-01-23 19:06:57 -08:00
Devrandom
d14ece4ac0 channel value to ChannelKeys constructor 2020-01-23 19:06:57 -08:00
Devrandom
42d7738234 Provide remote channel public keys to signer 2020-01-19 20:40:49 -05:00
Devrandom
6200302dc7 construct funding redeem script in signer 2020-01-16 13:18:23 -08:00
Matt Corallo
eeac6c9695 Fix parameter name incorrectly changed in 4ebe64fafd 2019-12-24 12:13:29 -05:00
Matt Corallo
d6382f5ed4 Remove unused lifetimes.
f71518365f added a series of lifetimes
which were required for an earlier version of the patch but not the
final version. They can be freely removed.
2019-12-20 14:54:23 -05:00
Matt Corallo
4ebe64fafd Use external key signer to generate closing transaction signatures 2019-12-13 16:16:33 -05:00
Matt Corallo
b1ed0ee033 Sign channel_announcements via a new ChannelKeys API 2019-12-12 14:36:41 -05:00
Antoine Riard
35814b653f Document more current security assumption of KeysInterface
Improve some comments of interface methods.
2019-12-11 17:29:42 -05:00
Matt Corallo
262666ad7f Make commitment transaction signing a part of ChannelKeys.
This adds a new fn to ChannelKeys which is called when we generte
a new remote commitment transaction for signing. While it may be
theoretically possible to unwind state updates by disconnecting and
reconnecting as well as making appropriate state machine changes,
the effort required to get it correct likely outweighs the UX cost
of "preflighting" the requests to hardwre wallets.
2019-12-11 17:29:42 -05:00
Matt Corallo
f2a2fd0d48 Make ChannelKeys an API and template Channel with it.
Instead of having in-memory access to the list of private keys
associated with a channel, we should have a generic API which
allows us to request signing, allowing the user to store private
keys any way they like.

The first step is the (rather mechanical) process of templating
the entire tree of ChannelManager -> Channel impls by the
key-providing type. In a later commit we should expose only public
keys where possible.
2019-12-11 17:29:42 -05:00
Antoine Riard
201fb4b56a Add MIN_RELAY_FEE_SAT_PER_1000_WEIGHT
Hardcode min relay fee as its value is fixed on the bitcoin network
and updating it would be done really conservatively.
2019-12-09 22:19:43 -05:00
Matt Corallo
fd1d5fd62c Randomize initial onion packet data.
This avoids at least the trivial hop count discovery attack, though
other obvious ones remain and are slightly harder to avoid.

See https://github.com/lightningnetwork/lightning-rfc/pull/697
2019-12-01 19:22:44 -05:00
Valentine Wallace
f71518365f
chaininterface+multi: add filter_block and reentered to ChainWatchInterface
Because filter_block takes a  and returns a list of s , we must add a lifetime to the ChainWatchInterface, which bubbles up in a lot of places. These places include adding a lifetime  to the Node struct, which causes a lot of rearranging tests so that variables don't go out of scope before the Node that owns them does.
2019-11-21 20:35:53 -05:00
Valentine Wallace
969f863013
chaininterface: add BlockNotifier struct
Adding this struct will allow us to remove the circular reference
between ChainListeners and the ChainWatchInterface, because it
separates out the responsibility of notifying listeners about new
blocks from the responsibility of storing and retrieving watched
transactions.
2019-11-21 20:34:00 -05:00
Valentine Wallace
1ec0c14fce
multi: remove listeners field and method from ChainWatchInterface
This includes the purpose of this PR, which is to remove the circular reference created by ChainListeners self-adding themselves to their ChainWatchInterface's `listeners` field.
2019-11-21 18:06:35 -05:00
RJ Rybarczyk
88fef649b1 Use workspaces to separate crates 2019-11-15 02:44:30 +00:00