Commit Graph

80 Commits

Author SHA1 Message Date
Olaoluwa Osuntokun
f52b8370bc lnwallet: populate the update totem during channel initialization 2016-01-14 23:56:11 -08:00
Olaoluwa Osuntokun
27744a3582 lnwallet: add logic for adding/removing HTLCs
* Updates to the channel are made atomic, and consistent via a proxy
object: “ChannelUpdate” which encapsulates an update transaction. Only
one update transaction may be outstanding at any time.
* Update transactions are initiated via AddHTLC or SettleHTLC.
* Once a transaction has been begun, in order to complete the update
the transaction must first be presented with a signature from the
counter-party for our new version of the commitment tx
(VerifyNewCommitmentSigs), and finally to atomically commit the
transaction, the counterparty’s pre-image to their previous revocation
hash must be validate (Commit).
2016-01-14 23:56:10 -08:00
Olaoluwa Osuntokun
895d70e79f lnwallet: add funding tx p2sh output to lnchannel
* Allows for quick access to the pkScript when signing new commitment
transactions.
2016-01-14 23:56:10 -08:00
Olaoluwa Osuntokun
3fe82f475f lnwallet: correctly adjust cleared funds during AddHTLC
* When adding an HTLC, the update to settled balances are to the side
sending the HTLC.
2016-01-14 23:56:10 -08:00
Olaoluwa Osuntokun
1772108544 lnwallet: start of HTLC update logic
* moved sorting of transaction outside of createCommitTx also us to add
HTLC’s before sorting
* On the fence about the proxy object design, will re-visit once we
start to implement the p2p code.
2016-01-14 23:56:09 -08:00
Olaoluwa Osuntokun
5a7b98a9e4 lnwallet: remove CLTV funding tx gen 2016-01-14 23:56:09 -08:00
Olaoluwa Osuntokun
41f4992218 lnwallet: add utils to generate HTLC scripts, split up commit output scripts 2016-01-14 23:56:08 -08:00
Olaoluwa Osuntokun
7648fee903 lnwallet: note to future roasbeef 2015-12-29 00:00:29 -06:00
Olaoluwa Osuntokun
ef7a2aa553 lnwallet: properly set sequence number in tx for CSV usage 2015-12-29 00:00:29 -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
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
07646d05db move channel state struct to channeldb.go
* All fields are now publicly exported
2015-12-24 12:41:15 -06:00
Olaoluwa Osuntokun
a4762b818f Merge branch 'master' of li.lan:labs/plasma 2015-12-22 22:39:28 -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
Olaoluwa Osuntokun
d7d569b267 lnwallet: track their current commitment sig in channel state 2015-12-21 15:49:34 -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
c7d604fd0b lnwallet: use funcs in script_utils.go 2015-12-20 17:11:21 -06:00
Olaoluwa Osuntokun
093bbf40ad lnwallet: track some more stats in channel state 2015-12-20 15:17:13 -06:00
Olaoluwa Osuntokun
d2e3b376ea lnwallet: re-name package to lnwallet, though it was? 2015-12-20 00:00:50 -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
ddb74258ff lnwallet: import tadge's p2shify func 2015-12-16 22:55:52 -06:00
Olaoluwa Osuntokun
147748d178 rename wallet to lnwallet 2015-12-16 14:51:59 -06:00