Commit graph

51 commits

Author SHA1 Message Date
RJ Rybarczyk
88fef649b1 Use workspaces to separate crates 2019-11-15 02:44:30 +00:00
Matt Corallo
3d55d71fda Add balance and is_live fields to ChannelDetails 2019-07-18 18:02:31 -04:00
Tamas Blummer
02b541607b migration to rust-bitcoin 0.17
typedef Sha256dHash with bitcoin_hashes::sha256d::Hash
SecretKey -> PrivateKey.key
assume compressed public keys
2019-03-07 18:50:02 +01:00
Dimitris Apostolou
ab10b05075
Fix typos 2019-01-24 19:07:08 +02:00
Matt Corallo
7a77c9f1d2
Merge pull request #298 from TheBlueMatt/2019-01-271-cleanup
Implement serialize/deserialize for Router
2019-01-23 14:48:13 -05:00
Antoine Riard
c7b8c312ce Implement serialize/deserialize for Router.
Extend route_test to check if serialize/deserialize of
NetworkMap works.

Add PartialEq traits on some Router's structs.

Modify also UnsignedNodeAnnouncement serialization
2019-01-23 11:31:37 -05:00
Matt Corallo
8678bda576 Ensure Message always unwraps in fuzztarget
Hashes cant be all-0s, so we can normally unwrap, but fuzztarget
can generate all-0 hashes, so we have to handle it and swap for
something else.
2019-01-22 13:49:15 -05:00
Matt Corallo
12d25576c1 Upgrade to secp256k1 v12, bitcoin v16, and crates bitcoin_hashes 2019-01-22 13:49:15 -05:00
Matt Corallo
4f4a5c06d2 Fix Router min HTLC comparison 2019-01-22 12:22:40 -05:00
Antoine Riard
160d63dba0 Track HTLCSource in ChannelMonitor
Insert it in current_local_signed_tx, prev_local_signed_tx,
remote_claimable_outpoints. For so get it provided by
Channel calls to provide_latest_{local,remote}_tx
2018-12-13 11:12:07 -05:00
Schalk van Heerden
8d7b498974 Handle-initial_routing_sync-requests-from-peers-in-their-Init-messages 2018-11-09 13:53:13 +10:30
Matt Corallo
4eafd37d20 impl Readable/Writable for Route 2018-10-27 09:42:04 -04:00
Matt Corallo
c662dd3e94 Fix XXXs that slipped into router and handle HTLCFailCHannelUpdates 2018-10-24 00:44:15 -04:00
Yuntai Kyong
ba30061c87 Add is_permanent field to ChannelClosed message and add NodeFailure
message
2018-10-23 10:30:49 -04:00
Matt Corallo
6e1318b0e2 Make docs look nicer by adding explicit spacing 2018-09-20 12:58:10 -04:00
Matt Corallo
3aeec96470 Add module and all-pub-things docs and deny missing docs 2018-09-19 23:07:02 -04:00
Matt Corallo
c91f72c131 Drop MsgEncodable in favor of default fns on Writeable 2018-09-16 14:33:50 -04:00
Matt Corallo
227c1d21bc Handle partial-response UTXO impls or reorgs in chan_announcements
Mostly to add a big comment noting why we aren't "spec-compliant"
2018-09-04 22:56:25 -04:00
Matt Corallo
3b4c1a3662 Util-func channel removal (fixing a bug in HTLC failure updates) 2018-09-04 22:56:25 -04:00
Matt Corallo
91b23a0754 Reject rumors of channels that are from one node back to itself 2018-09-04 22:56:25 -04:00
Antoine Riard
4b4d8b6b9e Add test_invalid_channel_announcemnt + test utilities
Fix typo
2018-09-03 17:40:12 -04:00
Matt Corallo
187f28db03 Check script_pubkey against expected channel_announcement 2018-09-03 17:40:12 -04:00
Antoine Riard
07ac327f8b Implement get_chain_utxo and ChainError in
ChainWatchInterface to Router check on channel_announcement

Needed for BOLT 7
2018-09-03 17:40:12 -04:00
Antoine Riard
2079fe4ad2 Add ChainWatchInterface in Router 2018-09-03 17:40:05 -04:00
Matt Corallo
f78d7299d6 Also fwd channel_update and node_announcement immediately
Not really sure why the API was different for channel_announcement,
but this brings everything in sync.
2018-08-29 18:07:56 -04:00
Matt Corallo
faff5c2da3 Fail parsing node/channel announcements with unknown even features
This is required for BOLT 7 compliance
2018-08-29 18:06:06 -04:00
Matt Corallo
0881bf4b74 Correct excess-data handling in ChannelAnnouncement verif in Router 2018-08-29 17:59:25 -04:00
Matt Corallo
11e5975523 Update to rust-secp256k1 v0.11 and rust-bitcoin v0.14 2018-08-23 14:52:43 -04:00
Matt Corallo
5ee88ad9f2 Clean up excess \ns in route debug, use all debug encoders 2018-08-23 14:52:43 -04:00
Antoine Riard
0523403887 Add Display trait on network structs for routing bug track 2018-08-23 14:52:42 -04:00
Matt Corallo
9362450c61 [Router] Remove channels from nodes when the channel is failed
Found by fuzzer
2018-08-16 20:51:50 -04:00
Matt Corallo
7c24fea4fe Handle only-path-overflows-fee in get_route and avoid PubKey::new()
Found by fuzzer
2018-08-16 20:51:50 -04:00
Matt Corallo
dde0ac4c29 Fix fee_base_msat overflowing entire fee range in RouteHint 2018-08-16 20:51:50 -04:00
Matt Corallo
0e6f028c3b Err from get_route if the requested value is more than 21m BTC
This fixes a potential overflow panic.
2018-08-16 20:51:50 -04:00
Matt Corallo
2a0ae96fdf Correct lowest_inbound_proportional_fee deduction in route finding
Found cause fuzzer was able to crash us if we don't
2018-08-16 20:51:50 -04:00
Matt Corallo
feb3db5ac8 Fix multiply-with-overflow panic in router
Found by fuzzer
2018-08-16 20:51:50 -04:00
Antoine Riard
0029f04fce Logging interface
Implement error, warn, info, debug and trace macros, internally calling
an instance of Logger, and passing it to every main structures
Build-time or client-side filtering.
Issue #54
2018-08-17 00:01:15 +00:00
Savil Srivastava
ca6b44b8cc replace use of bitcoin::utils::misc::hex_bytes with hex::decode
as requested in #84 discussion
https://github.com/rust-bitcoin/rust-lightning/pull/84#discussion_r205508845
2018-07-27 18:19:00 -07:00
Matt Corallo
78023d6fa1 Remove excess mut warned on in 1.22 2018-07-26 15:11:36 -04:00
Matt Corallo
158d0c16dc Fix fee addition overflow in get_route 2018-07-25 18:10:46 -04:00
Matt Corallo
07f08409f8 Catch fee overflow panic in get_route 2018-07-25 16:25:12 -04:00
Matt Corallo
ad147a20e6 Half-ass some CLTV fixes for real channel creation 2018-07-23 23:31:37 -04:00
Matt Corallo
ccf18e1b47 Short-circuit router for an outbound specified direct channel 2018-07-23 22:00:19 -04:00
Matt Corallo
667cd66ede Add arg to get_route to specify our local channels explicitly
(and a new getter in ChannelManager to get the thing to pass in)
2018-07-23 13:33:00 -04:00
Matt Corallo
0ee7b21819 Skip always iterating over all nodes in get_route 2018-07-23 13:12:39 -04:00
Yuntai Kyong
9679f708dc add two methods for the issue #56
peer_handler::get_peer_node_ids() get connected peers' node_id
router::get_addresses() to get network addresses by node_id
2018-07-22 15:19:20 +09:00
Savil Srivastava
fd141bbed2 [Error] rename msg field to action
this was a TODO and also briefly discussed in https://github.com/rust-bitcoin/rust-lightning/pull/43#pullrequestreview-135649551

I'm not fully sure how to remove the `Option`, and make it completely required. Would love suggestions. So, have omitted that for now. Plus, better to make smaller, incremental changes.

Test Plan:
`cargo build`
`cargo test`
2018-07-19 20:01:55 -07:00
Matt Corallo
d7b33fcd84 Support ignoring some errors, deserialize empty flags types 2018-06-16 19:45:32 -04:00
Matt Corallo
8e2974fc2a HTLC Failure message handling 2018-04-24 11:55:08 -04:00
Matt Corallo
40ab09f627 Clarify roles in failing HTLCs, impl it, support rebalances 2018-03-22 17:35:30 -04:00