Matt Corallo
374ea1f05e
Completely rewrite channel HTLC tracking and processing
...
It obviously was nonsensical prior, though its now way more
complicated...there's refactoring work to be done here, but it
should at least kinda sorta work now.
2018-04-16 20:35:21 -04:00
Matt Corallo
e2b1b1be78
Prep HTLCFailReason for Channel holding it until revoke_and_ack
2018-04-16 20:35:21 -04:00
Matt Corallo
00c6f42452
Use libbitcoinconsensus to check tx validity in some tests
2018-04-16 20:35:19 -04:00
Matt Corallo
8b1a7ede27
Test that channel monitors get updated appropriately
2018-04-16 20:35:03 -04:00
Matt Corallo
021b3643cc
Hand payment preimages into channel monitors when claimed
2018-04-16 20:35:03 -04:00
Matt Corallo
1ae603cc3d
Switch back to crates.io rust-bitcoin for 0.13 release
2018-04-16 20:35:03 -04:00
Matt Corallo
69eb59b24d
Merge pull request #19 from TheBlueMatt/2018-04-error-handling-framework
...
Clean up peer_handler error handling a bit, clean up channel error handling a ton
2018-04-02 19:43:46 -04:00
Matt Corallo
9ccfb358b4
Fix travis-fuzz upgrade-handling
2018-04-02 18:42:41 -04:00
Matt Corallo
644119201d
Remove useless htlc_redeemscript argument
2018-04-02 18:31:23 -04:00
Matt Corallo
e79e61f595
Clean up channel error handling a ton
2018-04-02 18:31:23 -04:00
Matt Corallo
91b964ae1f
Basic error handling framework in peer_handler
2018-04-02 18:31:23 -04:00
Matt Corallo
4fbc0b3768
Require Init as first message, send our own Init for outbound
2018-04-02 18:31:23 -04:00
Matt Corallo
df9367adaf
Rename ErrorMessage
2018-04-02 18:31:23 -04:00
Matt Corallo
24fd566567
Merge pull request #18 from TheBlueMatt/2018-04-fuzzing-expansion
...
Expand full_stack_target from uselessly-large to laughably-large
2018-04-02 18:27:23 -04:00
Matt Corallo
f7dd69240a
Merge pull request #17 from TheBlueMatt/2017-04-channel-close
...
Add support for channel closure (based on new upstream rust-bitcoin)
2018-04-02 18:14:24 -04:00
Matt Corallo
b21048a1ce
Check funding txout format when transaction is confirmed in channel
2018-04-02 18:07:03 -04:00
Matt Corallo
187ca8c0c8
Make Channel non-public except in fuzztarget mode, bump version
2018-04-02 18:07:03 -04:00
Matt Corallo
f452403a3f
Fix a small bug in peer_handler
2018-04-02 18:07:03 -04:00
Matt Corallo
cf6308a5ae
Expose event-processing loop from peer_handler.
2018-04-02 18:07:03 -04:00
Matt Corallo
7b0a25bdce
Fix message decoding for features, build some encoding
2018-04-02 18:07:03 -04:00
Matt Corallo
8e79c05a20
Add support for initiating channel closure to Channel{,Manager}
2018-04-02 18:07:03 -04:00
Matt Corallo
eb354a89db
Update TODOs in README
2018-04-02 18:07:03 -04:00
Matt Corallo
8938cd7d78
Expand full_stack_target from uselessly-large to laughably-large
2018-04-02 18:07:03 -04:00
Matt Corallo
c528ff3650
Handle incoming shutdown messages
2018-04-02 18:07:02 -04:00
Matt Corallo
890e3cb165
Update for new rust-bitcoin API, avoid some duplicate hashing
2018-04-02 18:06:59 -04:00
Matt Corallo
2018782d11
Merge pull request #16 from TheBlueMatt/2018-03-fixups
...
Assorted fixes/cleanups
2018-03-27 12:54:54 -04:00
Matt Corallo
93f47f5421
Fix double-locking in channelmanager
2018-03-25 17:02:28 -04:00
Matt Corallo
7bb290fe3a
Stop allowing new commitments without updates/revoke
2018-03-25 17:02:28 -04:00
Matt Corallo
9606f94caf
Stop freeing holding cell in updates, fix freeing in revoke
2018-03-25 17:02:28 -04:00
Matt Corallo
89d9f8fb0e
Fix update_fee handling, add TODOs
2018-03-25 17:02:28 -04:00
Matt Corallo
942d760b83
impl more message decoders
2018-03-25 17:02:28 -04:00
Matt Corallo
d923717216
Expand fake_network_test a bit with multiple in-flight rebalances
2018-03-25 17:02:28 -04:00
Matt Corallo
0795b34e10
Fail payments backwards in delayed processing as well
2018-03-25 13:21:32 -04:00
Matt Corallo
729f02d2dd
Hold channel_state lock into fail_htlc_backwards_internal
2018-03-23 16:57:22 -04:00
Matt Corallo
d8fc9ffde9
DRY up update_add_htlc a bit with macros
2018-03-23 16:56:45 -04:00
Matt Corallo
397b6f90e1
Fix new "uneccessary mut" warning
2018-03-23 15:30:18 -04:00
Matt Corallo
511c5319f1
Merge pull request #15 from TheBlueMatt/master
...
Add fuzz targets, bump bitcoin/secp256k1 deps
2018-03-23 13:35:35 -04:00
Matt Corallo
2188192efa
Set travis to run honggfuzz for a while
2018-03-23 13:16:24 -04:00
Matt Corallo
1d2774dd64
Add some fuzz targets.
...
Sadly none of them are really any good without some hand-holding to
generate good input data, and unless sha256 gets stubbed out I'm
not sure they're gonna get good without a symbolic execution fuzzer
2018-03-23 13:16:24 -04:00
Matt Corallo
02b92f5d5c
Add dummy creator for PendingForwardHTLCInfo
2018-03-23 13:16:24 -04:00
Matt Corallo
ab56b81acd
Stub out Sha256 calls when fuzzing
2018-03-23 13:16:24 -04:00
Matt Corallo
d0a3d0f728
Stub out ChaCha20Poly1305RFC when fuzzing
2018-03-23 13:16:24 -04:00
Matt Corallo
d18e54bd90
Stub out RNG when fuzzing
2018-03-23 13:16:24 -04:00
Matt Corallo
c65bffe568
Add fuzztarget feature, bump bitcoin/secp256k1
2018-03-23 13:16:24 -04:00
Matt Corallo
bceb952b12
Merge pull request #14 from TheBlueMatt/2018-03-fuzz-fixes-1
...
Impl some message deserialization, initial fuzzing-found bug fixes
2018-03-23 13:15:47 -04:00
Matt Corallo
e9b1af277f
Check validity of dust_limit_satoshis in remote messages
2018-03-22 17:43:31 -04:00
Matt Corallo
1bb4f44bd6
Fix reserve check on HTLC receive/send
2018-03-22 17:43:31 -04:00
Matt Corallo
298557c891
impl a bunch of additional messages, remove some useless mut
2018-03-22 17:43:20 -04:00
Matt Corallo
d14e31f512
Remove useless Sha256 copies
2018-03-22 17:42:12 -04:00
Matt Corallo
f47ba769f5
Merge pull request #13 from TheBlueMatt/2018-03-htlc-failures
...
Clarify roles in failing HTLCs, implement most of it
2018-03-22 17:40:07 -04:00