Commit Graph

3583 Commits

Author SHA1 Message Date
Olaoluwa Osuntokun
17f37cc254 lnwallet: shutdown rpc connection during stoppage 2015-12-29 00:00:28 -06:00
Olaoluwa Osuntokun
36e7c38812 lnwallet: introduce mutex around coin selection logic 2015-12-29 00:00:28 -06:00
Olaoluwa Osuntokun
7874357384 lnwallet: remove unused struct 2015-12-29 00:00:28 -06:00
Joseph Poon
161b1b5e4c Message interface and stuff.
* Added Message interface (similar to btcd's)
* Moved Funding Request to its own file
* Refacored Funding Request Code (*MUCH* better)
* Various fixes
2015-12-28 03:24:16 -08:00
Joseph Poon
f51a5a6458 Holy shit pointer crap was annoying! Serialize/deserialize works now.
Running "go test -v" will show the serialization and deserialization.

Doing the rest of the wire stuff should be *much* faster since I figured
everything out...
2015-12-26 23:52:20 -08:00
Joseph Poon
0c0900006d Upon further reflection Our/Their seperation makes no sense 2015-12-26 20:37:17 -08:00
Joseph Poon
b79d0cc65a (still need to fix deserialize... io wasn't working so I'm using bytes) 2015-12-26 18:23:58 -08:00
Joseph Poon
09f07770fd Funding request serialize/deserialize (io reader/writer and pointers
were very confusing -_-;)
2015-12-26 18:20:25 -08:00
Olaoluwa Osuntokun
7990d9501a Merge branch 'master' of li.lan:labs/plasma 2015-12-26 12:35:42 -06:00
Olaoluwa Osuntokun
4fdb2763e6 channeldb: create new channeldb package, update lnwallet to use new API
* Initial draft of brain dump of chandler. Nothing yet set in stone.
* Will most likely move the storage of all structs to a more “column”
oriented approach. Such that, small updates like incrementing the total
satoshi sent don’t result in the entire struct being serialized and
written.
* Some skeleton structs for other possible data we might want to store
are also included.
* Seem valuable to record as much data as possible for record keeping,
visualization, debugging, etc. Will need to set up a time+space+dirty
cache to ensure performance isn’t impacted too much.
2015-12-26 12:35:15 -06:00
Olaoluwa Osuntokun
d7a1c5d337 lnwallet: check for nil buckets during fetch in channeldb 2015-12-26 00:12:31 -06:00
Olaoluwa Osuntokun
3e2a753271 lnwallet: touch config smelly 2015-12-26 00:11:39 -06:00
Olaoluwa Osuntokun
a10a678505 add some daemon related skeleton files 2015-12-26 00:09:17 -06:00
Olaoluwa Osuntokun
0307f321ad lnwallet: switch LightningChannel struct to use channeldb instead of raw namespace 2015-12-26 00:08:04 -06:00
Olaoluwa Osuntokun
890ceecc1a lnwallet: csv delay is a uint32, fill forgotten fields in channel state 2015-12-26 00:07:30 -06:00
Olaoluwa Osuntokun
b4e33587b1 lnwallet: switch to using channeldb 2015-12-26 00:05:55 -06:00
Olaoluwa Osuntokun
ff92efe7df lnwallet: add node's ID to reservation workflow 2015-12-26 00:05:07 -06:00
Olaoluwa Osuntokun
4bb526854a lnwallet: fix bug don't set TheirCommitSig twice 2015-12-26 00:03:53 -06:00
Olaoluwa Osuntokun
e345f72d69 lnwallet: implement FetchOpenChannel and PutOpenChannel 2015-12-25 18:00:44 -06:00
Olaoluwa Osuntokun
1386d798f5 lnwallet: add tests for serialization of OpenChannelState 2015-12-25 17:00:53 -06:00
Olaoluwa Osuntokun
8e5f028eea lnwallet: create channeldb.go add serialization methods for OpenChannel 2015-12-25 17:00:20 -06:00
Olaoluwa Osuntokun
c2403d4b2d shachain: switch encode/decode methods to use io.Reader/Writer
* Help avoid a bug related to passing a copy of bytes.Buffer into
Encode/Decode instead of a pointer
2015-12-24 12:48:24 -06:00
Olaoluwa Osuntokun
5840786922 lnwallet: save redeemScript in channel state 2015-12-24 12:42:29 -06:00
Olaoluwa Osuntokun
15f15bb3af rename revocation package to shachain
* Constructors now also more in line with “Effective Go”
2015-12-24 12:42:03 -06:00
Olaoluwa Osuntokun
07646d05db move channel state struct to channeldb.go
* All fields are now publicly exported
2015-12-24 12:41:15 -06:00
Olaoluwa Osuntokun
868ac0aca0 revocation: switch to tadge's bit-shifting to figure out log2 instead of using math 2015-12-23 12:12:53 -06:00
Joseph Poon
fc9ebb52f3 Refactor funding request, will separate to multiple files later 2015-12-23 00:08:34 -08:00
Olaoluwa Osuntokun
a4762b818f Merge branch 'master' of li.lan:labs/plasma 2015-12-22 22:39:28 -06:00
Olaoluwa Osuntokun
882e7640d5 lnwallet: update tests to switch to new workflow 2015-12-22 22:32:18 -06:00
Olaoluwa Osuntokun
d24831dc29 lnwallet: update workflow around contributions 2015-12-22 22:31:17 -06:00
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
Joseph Poon
55c8710cb9 Minor optimization in script opcodes 2015-12-22 16:45:21 -08:00
Tadge Dryja
fbc5f37d0b remove dependencies on mathematics 2015-12-21 22:36:28 -05: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