Commit Graph

101 Commits

Author SHA1 Message Date
Olaoluwa Osuntokun
e762d328fa lnwallet: add ChannelContribution, finalize ChannelReservation API/workflow
* Final workflow has been greatly simplified.
* Interaction is now:
   * init
   * add contribution
   * complete
2015-12-22 22:30:11 -06:00
Olaoluwa Osuntokun
b606804934 lnwallet: add comments to fields of OpenChannelState 2015-12-22 22:27:33 -06:00
Olaoluwa Osuntokun
36ec5b4927 lnwallet: update tests to AddContribution API change 2015-12-21 15:55:17 -06:00
Olaoluwa Osuntokun
829f67f33e lnwallet: CompleteReservation now includes sig for commit tx 2015-12-21 15:54:33 -06:00
Olaoluwa Osuntokun
584fc9b620 lnwallet: AddFunds is now AddContribution, accounts for commitment tx
* Contribution from remote host necessary to construct the initial
commitment transaction is now also expected
* All message structs and handlers updated accordingly
* AddContribution now also generates both commitment tnxs, and
generates a signature for their version of the commitment transaction
2015-12-21 15:53:34 -06:00
Olaoluwa Osuntokun
e7e546af9a lnwallet/reservation: fundingLockTime is int64 track their revoke hash 2015-12-21 15:49:57 -06:00
Olaoluwa Osuntokun
d7d569b267 lnwallet: track their current commitment sig in channel state 2015-12-21 15:49:34 -06:00
Olaoluwa Osuntokun
06bad8ba42 revocation: fix integer underflow infinite loop bug in sha chain
* `i := toDerive - 1` created an unsigned integer, the last loop
iteration subtracted from zero causing this to underflow creating an
infinite loop
* Instead, initialized `i` as an int, and cast to uint as needed
2015-12-21 15:47:36 -06:00
Olaoluwa Osuntokun
d7fba0e89d revocation: fix nil pointer panic in shachain constructor 2015-12-21 15:41:23 -06:00
Olaoluwa Osuntokun
b9a6155021 lnwallet: add field to track current out-of-chain revocation hash 2015-12-20 21:48:56 -06:00
Olaoluwa Osuntokun
8cbbba14a4 lnwallet: assume symmetric initial channel balance 2015-12-20 21:48:45 -06:00
Olaoluwa Osuntokun
6d006ac79c lnwallet: sort inputs/outputs in commit tx 2015-12-20 21:47:57 -06:00
Olaoluwa Osuntokun
d3fe04ab9b lnwallet: add function to locate script index to script_utils.go 2015-12-20 21:47:29 -06:00
Olaoluwa Osuntokun
baf3b70e31 plasma: correct commit with sketch of lnwire.Message interface 2015-12-20 21:47:00 -06:00
Olaoluwa Osuntokun
422f0a9791 revocation: split up methods to get current pre-image and hash 2015-12-20 21:46:41 -06:00
Olaoluwa Osuntokun
34e35fe2d5 lnwallet: set commit tnx related info in ChannelReservation
* Future commit will ditch all the thread-safe “getter” like methods.
We’re all adults just make sure to grab the lock.
* All wallet mutation funcs will also document which fields are set
after completion of the request
* Set shaChain, delivery address, commitment key
2015-12-20 17:13:14 -06:00
Olaoluwa Osuntokun
c7d604fd0b lnwallet: use funcs in script_utils.go 2015-12-20 17:11:21 -06:00
Olaoluwa Osuntokun
30523d7db3 lnwallet: import badge's script utils in new file 2015-12-20 17:10:24 -06:00
Olaoluwa Osuntokun
f52f2fd26c plamas/peer: just use net.Conn for generality 2015-12-20 17:10:09 -06:00
Olaoluwa Osuntokun
093bbf40ad lnwallet: track some more stats in channel state 2015-12-20 15:17:13 -06:00
Olaoluwa Osuntokun
d5f36d81c8 plasma: rough draft of peer struct 2015-12-20 15:16:38 -06:00
Olaoluwa Osuntokun
d2e3b376ea lnwallet: re-name package to lnwallet, though it was? 2015-12-20 00:00:50 -06:00
Olaoluwa Osuntokun
61f5772c40 lnwallet: re-use same wallet instance across tests
* btcwallet still rather slow to create/open, due to scrypt derivation
2x?
2015-12-18 21:48:55 -06:00
Olaoluwa Osuntokun
29d381ad21 lnwallet: adapt tests to field changes 2015-12-18 21:47:47 -06:00
Olaoluwa Osuntokun
420e34cc91 lnwallet: forgot some field name changes 2015-12-18 21:43:37 -06:00
Olaoluwa Osuntokun
a689595054 lnwallet: comment out lnwire-like serialization stuff for now 2015-12-18 21:42:49 -06:00
Olaoluwa Osuntokun
2f7a801dcb lnwallet: embed channel state within ChannelReservation 2015-12-18 21:39:51 -06:00
Olaoluwa Osuntokun
6bb37448f0 lnwallet: add num updates and delivery addresses to channel state
* move utility funds to bottom of file
2015-12-18 21:35:40 -06:00
Olaoluwa Osuntokun
6af4aaf71b lnwallet: separate channel state into new struct
* Will be integrated into ChannelReservation also
* This is the struct that will be persisted to disk
2015-12-18 15:37:13 -06:00
Joseph Poon
39b100b865 Serialize Funding Request and script for CLTV-only 2015-12-18 11:29:35 -08:00
Olaoluwa Osuntokun
feb00e04c4 lnwallet: add fun to create initial Commitment Tx
* Forgot we assume mal fix, need to go back and update the reservation
workflow
2015-12-16 22:58:49 -06:00
Olaoluwa Osuntokun
48c1c39dc9 lnwallet: add skeleton for LightningChannel
* pretty much same as strux/lchannel.go
* Too beefy atm, added note to bring back old CompleteReservation
struct
2015-12-16 22:58:01 -06:00
Olaoluwa Osuntokun
a83dac4e86 revocation: skeleton for possibly needed method? 2015-12-16 22:56:11 -06:00
Olaoluwa Osuntokun
ddb74258ff lnwallet: import tadge's p2shify func 2015-12-16 22:55:52 -06:00
Olaoluwa Osuntokun
e2c4ccbe28 chaintfns: skeleton of first notifier 2015-12-16 22:55:22 -06:00
Olaoluwa Osuntokun
d9f32db185 empty daemon entry point 2015-12-16 18:42:52 -06:00
Olaoluwa Osuntokun
139e63c9cf shachain: constructors for remote vs origin 2015-12-16 18:42:07 -06:00
Olaoluwa Osuntokun
ce42741daa First stab at shachain. Untested. Still doin't really get it... 2015-12-16 18:36:03 -06:00
Olaoluwa Osuntokun
147748d178 rename wallet to lnwallet 2015-12-16 14:51:59 -06:00
Olaoluwa Osuntokun
9de294c31f add link to explanation 2015-12-16 14:49:01 -06:00
Olaoluwa Osuntokun
f475f6a0f2 Merge branch 'master' of li.lan:labs/plasma 2015-12-16 14:46:42 -06:00
Olaoluwa Osuntokun
69936d694c revocation: HyperShaChan sounds cooler... 2015-12-16 14:43:59 -06:00
Olaoluwa Osuntokun
1621b8cc99 wallet/wallet_test: test for canceling reservations 2015-12-16 14:41:15 -06:00
Olaoluwa Osuntokun
24efbb46c3 wallet/reservation: Cancel needs to return an error 2015-12-16 14:40:44 -06:00
Olaoluwa Osuntokun
354bc74d3c Flesh out LightningChannel struct a bit more
* p2p logic will only know about this object
* Purposes include storing old commitment txns, receiving them,
triggering p2p actions base off of channelEvents, getting/verifying
revocation hashes, etc
2015-12-16 14:40:11 -06:00
Olaoluwa Osuntokun
07984836e4 Create skeleton for revocation methods
* Just rusty’s shachain for now
2015-12-16 14:39:05 -06:00
Olaoluwa Osuntokun
b2522ef75a Create skeleton for chain notifications
* Goal is to backend agnostic source to chain notifications
* Open channels will communicate with this source to register intent
for critical notifications
* Pending notifications will need to be committed to disk.
* Will also need a journal to ensure no notification is missed
* Later goals include extending this to communicate with 3rd party
outsource services
2015-12-16 14:38:21 -06:00
Olaoluwa Osuntokun
dd9552c980 wallet_test: add tests exercising output locking for concurrent safe funding 2015-12-16 13:22:36 -06:00
Olaoluwa Osuntokun
f70027fe76 add SegWit to support channel types 2015-12-16 13:04:51 -06:00
Joseph Poon
51dab18446 Committed the wrong _test file earlier... 2015-12-16 10:57:22 -08:00