Rusty Russell
3311580c62
scripts/test.sh: fix bitcoin case.
...
Now we use locktime, bitcoin needs delay too.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-08 15:02:50 +09:30
Rusty Russell
0b33da08c1
scripts: auto-detect alpha vs bitcoin
...
A bit hacky, but saves editing two places.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-08 15:02:43 +09:30
Rusty Russell
6cea21750d
HOWTO-USE.md: Just refer to test scripts.
...
This has fallen behind.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-08 15:01:34 +09:30
Rusty Russell
3b214479ae
test-cli/scripts/test.sh: basic HTLC spending test.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 16:20:52 +09:30
Rusty Russell
fcbba0280d
test-cli/create-htlc-spend-tx: new util.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 16:20:45 +09:30
Rusty Russell
bafc93886f
test-cli/scripts/test.sh: basic HTLC creation test.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 14:15:05 +09:30
Rusty Russell
b5ff69e236
test-cli/update-channel-htlc-remove: new util.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 14:15:01 +09:30
Rusty Russell
9b0ed51f2b
test-cli/update-channel-htlc-complete: new util.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 14:14:46 +09:30
Rusty Russell
5778b004dd
test-cli/update-channel-htlc: new util.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 14:13:35 +09:30
Rusty Russell
106c447d17
gather_updates: handle HTLC updates.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 14:13:35 +09:30
Rusty Russell
769f9f1cc5
gather_updates: extract some update logic into update_rhash.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 14:13:29 +09:30
Rusty Russell
a09c0a9fa7
funding: take into account HTLC add/remove.
...
Enhance funding_delta() to have an HTLC delta as well as an A->B delta.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 12:45:30 +09:30
Rusty Russell
9a0163ec85
proto_to_locktime: abs and relative locktime handlers.
...
Our current proto_to_locktime actually handles relative locktimes,
and HTLCs use absolute. Fix that.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 12:45:30 +09:30
Rusty Russell
7f21695a63
protocol: rename locktime fields to "delay" and "expiry"
...
For open transactions, locktime is a delay we require on the other
side's to-self commit transaction outputs to ensure we can cut them
off if necessary.
For HTLCs, it's an absolute expiry time.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 12:45:30 +09:30
Rusty Russell
a4dfe3ad72
channel_state: encapsulate funding of channel in one place.
...
This shows where funds are going at any time (fees vs to each side).
funding.c is mainly rewritten, and should be clearer now.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 12:45:30 +09:30
Rusty Russell
81bced330a
protocol: move locktime into its own message type.
...
We're going to want this for HTLC times, too.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-07 12:45:30 +09:30
Rusty Russell
142e822342
test-cli/update-channel-signature: remove debugging message.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-05 16:54:53 +09:30
Rusty Russell
a0fc4f8a79
Update .gitignore.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-03 16:29:35 +09:30
Rusty Russell
b72ab56312
test-cli/open-anchor.c: add missing file.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-08-03 16:24:23 +09:30
Rusty Russell
de051f0df9
protocol: add close fee logic.
...
The closer proposes the fee. This is simple, at least.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-29 16:17:08 +09:30
Rusty Russell
3260fb2ed1
protocol: add commitment fee logic.
...
Both sides elect a commitment fee, and the lowest is chosen. That means
you can't game the other side (but if you offer too low, then can error
out of course).
Fees are split 50-50 if possible: originally the whole fee has to be
paid by the (single) funder. Neither side can withdraw funds which
would make them unable to pay fees.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-29 16:16:24 +09:30
Rusty Russell
eac3af06f1
protocol: switch to single-funder anchor model.
...
Most complex change was gather_updates(), which handles all the "what
is the current state of the channel" logic for our dumb test utils.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-29 16:14:28 +09:30
Rusty Russell
2255cb749d
protocol: move commitment key to open_channel message.
...
And rename final to final_key to be clearer.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-29 12:00:50 +09:30
Rusty Russell
ee3af28980
test-cli/txid-of: simple helper to get txid.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-24 16:00:10 +09:30
Rusty Russell
114161a6a5
test-cli/scripts/test.sh: send_after_delay()
...
Extract and generalize: we're about to get more.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-24 16:00:10 +09:30
Rusty Russell
aa79887d79
script: use the normalized delay script form for commit output.
...
As documented in the paper; it's also two bytes shorter, and allows
us to use the exact same script for three cases.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-24 16:00:10 +09:30
Rusty Russell
d053181b0b
script: add standard routines for secret-or-timedelay outputs.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-24 16:00:10 +09:30
Rusty Russell
8a4246cb36
permute: use BIP69 order.
...
It's a canonical ordering, rather than a random shuffle. Far simpler.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-20 14:07:44 +09:30
Rusty Russell
a663dc322c
Remove signature leaking.
...
Alpha has segregated witnesses, so txid doesn't include the inputs.
That means we can create the first commit transaction before we sign
the anchor tx.
Bitcoin will need to do this differently: presumbly via new sipops
(a OP_CHECKSIG2VERIFY I imagine).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-03 14:00:54 +09:30
Rusty Russell
69b2690ecb
HOWTO-USE.md: use alpha instead of bitcoind for examples.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-03 13:39:27 +09:30
Rusty Russell
f510e29e22
alpha: switch over to Elements Alpha by default.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-03 13:36:25 +09:30
Rusty Russell
c660629760
test.sh: (alpha) make sure that spending tx fails too soon, succeeds after delay.
...
This only makes sense when we have CSV support.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-03 10:47:29 +09:30
Rusty Russell
4011f7ae7c
create-commit-spend-tx: set alpha fields, and input locktime.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-03 10:45:43 +09:30
Rusty Russell
20bb6c65aa
protocol fix: use locktime from *other* side.
...
Which emerged clearly when setting one side's locktime differently than
the other.
Each side specifies the (minimum) time they need to notice a fraud attempt:
this constrains the *other* side.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-03 10:44:49 +09:30
Rusty Russell
1075264c66
close_tx: initialize fee and input amount fields.
...
Required for alpha.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:55:11 +09:30
Rusty Russell
90e4160862
test.sh: handle appended amounts in transactions.
...
cut -d: -f1 gets just the transactions, or passed through if no ":".
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:55:11 +09:30
Rusty Russell
ae31431168
tx: centralize transaction writing, append amounts for alpha.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:55:11 +09:30
Rusty Russell
5dc9cd16f9
create-steal-tx: actually output the steal tx, not the commit tx!
...
... Which reveals it wasn't paying a fee. So update fix that, and
initialize the alpha tx fields while we're there.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:55:03 +09:30
Rusty Russell
9851436d4d
test.sh: restore --steal and --unilateral options
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:27:52 +09:30
Rusty Russell
d20ddb5a90
Use libsecp256k1 instead of openssl for crypto.
...
We still use openssl for bignums (base58) and for ripemd.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:27:52 +09:30
Rusty Russell
27e7c7b986
scripts/setup.sh: setup helper script.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-30 12:58:49 +09:30
Rusty Russell
783aa35aa6
Make test.sh inputs script arguments.
...
Hardcoding my defaults isn't useful. Even for me.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-30 12:54:48 +09:30
Rusty Russell
f38382fd3c
test.sh: handle variances in bitcoin-cli formatting.
...
In particular, there may or may not be a space between "pubkey" and :.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-30 12:34:35 +09:30
Rusty Russell
8f4426e09b
scripts: move to scripts/ subdir, prepare for alpha.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-30 12:08:18 +09:30
Rusty Russell
733e655d17
getinput.sh: abstract out bitcoin-cli command.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-23 16:03:14 +09:30
Rusty Russell
0666265b5e
HOWTO-USE.md: poor documentation for poor tools.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 14:54:27 +09:30
Rusty Russell
98b1d478b1
test-cli: remove obsolete examples from program headers.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 14:38:48 +09:30
Rusty Russell
d4a6fb8b2d
Add test script.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 14:37:19 +09:30
Rusty Russell
924be8456e
create-commit-spend-tx: fix locktime, take into account updates.
...
We were using o2's locktime instead of o1's, and we didn't take
into account updates.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 14:36:25 +09:30
Rusty Russell
a700a5cdca
create-commit-tx: allow creation of initial opening tx.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 14:32:48 +09:30