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
62a002c860
script: make DER for signature encoding optional.
...
Alpha does the sane thing, places signatures raw.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:27:52 +09:30
Rusty Russell
faae91f3fc
Schnorr signature support.
...
This variation is used by alpha.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:27:52 +09:30
Rusty Russell
1d82bf51fc
signature: fix invalid S check.
...
The even-S check was based on https://github.com/sipa/bitcoin/commit/a81cd9680
which was replaced by a low-S check in commit e0e14e43d9586409e42919f6cb955540134cda2a
Abstract out and fix the check.
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
5a79ef9502
Import secp256k1 (schnorr version)
...
Imported from: git@github.com:sipa/secp256k1.git schnorr3 (0ab0b47)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:27:52 +09:30
Rusty Russell
fbe63124f6
Move DER encoding into bitcoin/signature.c
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:27:52 +09:30
Rusty Russell
20624c049f
tx: prepare for Elements Alpha.
...
They sign, hash, and serialize differently.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-07-01 16:27:45 +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
61737a79d2
Fix typo.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-25 13:48:05 +09:30
Rusty Russell
4e9b0f1951
Actually commit the README.md.
...
Oops.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-24 16:19:00 +09:30
Rusty Russell
602117e8bb
Add valgrind memcheck helpers.
...
Otherwise valgrind tells you when you test a hash; you want to
know if you hash uninitialized memory long before that.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-24 16:15:34 +09:30
Rusty Russell
143e7e032c
Optimize revocable output a little.
...
Both paths do CHECKSIG, do that outside.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-23 16:05:09 +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
Rusty Russell
fb036399eb
LICENSE: Make MIT licensing clear.
...
ccan/opt is GPLv2, so the test-cli utils are GPLv2, but they're temporary.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 13:30:39 +09:30
Rusty Russell
c91d2b5206
ccan: add local copy.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 13:29:06 +09:30
Rusty Russell
92ec2f874b
pkt: add pkt_totlen() helper.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 13:06:33 +09:30
Rusty Russell
77387bb370
test-cli/create-commit-spend-tx: don't endian convert script_len.
...
That's done in mashalling and hashing code.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 13:06:33 +09:30
Rusty Russell
6389dbd455
protocol: restore locktime in blocks option.
...
This could be used by an always-on node to agressively shorten their timeouts.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 13:06:33 +09:30
Rusty Russell
a0b621689e
TAGS: Improve support.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:44:45 +09:30
Rusty Russell
9f12b72476
Don't include mutual redemption in recovable commit tx output.
...
It's not clear it's needed, and without it there's a good reason to
delay dumping to the blockchain if a node becomes unreachable (since
you'll get your money faster if it comes back online).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:41:30 +09:30
Rusty Russell
ef9463f6b1
Sort include lines (ignoring hacky cli test utils).
...
Put ccan first, openssl next, then standard headers, then locals.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:41:28 +09:30
Rusty Russell
4e8eda47a1
Move hacky command line utils out to test-cli subdir.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:35:42 +09:30
Rusty Russell
5776c7a9d8
Update .gitignore
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:35:42 +09:30
Rusty Russell
442f321585
Move protobuf<->bitcoin converters out of bitcoin/
...
They're lightning-specific.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:35:42 +09:30
Rusty Russell
612d713470
Move bitcoin stuff into bitcoin subdir.
...
It's not very interesting if you're looking for LN code.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:35:42 +09:30
Rusty Russell
28ea518182
create-steal-tx: use o1 to double-check final key is correct.
...
It's actually an unused parameter, but they symmetry with others in nice.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:35:41 +09:30
Rusty Russell
2d714f5ad4
create-commit-tx: create a commit tx.
...
Required for unilateral close. Also lets us test stealing funds
from a revoked transaction.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-12 12:35:26 +09:30
Rusty Russell
96585e1b00
create-steal-tx: fix it.
...
Couldn't be tested until we could generate updates; fixed now.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-10 21:39:55 +09:30
Rusty Russell
975a5b2041
scriptsig_p2sh_2of2: fix sig order.
...
Must match key order, which we permute.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-10 21:39:55 +09:30
Rusty Russell
ed3f0115d6
protocol: fix horribly thinko, keep own secrets.
...
I had each side using the other side's hash secret. That's a very
dumb idea, since it means you can steal from a unilateral close!
A's secret applies to A's commit transaction: it needs the
secret and B's final signature to steal funds, and that should
never happen (since A doesn't have the B's final signature, and
once A has given B the secret, they never broadcast the commit tx).
This makes the update a 4 step dance, since you need the new
revocation hash to make the other side's TX to sign.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-10 21:39:45 +09:30
Rusty Russell
9caf2c71e8
close-channel / create-close-tx: take into account updates.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-09 14:29:04 +09:30
Rusty Russell
a4517f27c7
Fix
2015-06-09 14:13:27 +09:30
Rusty Russell
3fef1584e5
update-channel-complete: final step in channel update.
...
(note: I didn't bother writing the code to check the sig on this).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-09 14:13:27 +09:30
Rusty Russell
2bd967af35
update-channel-accept: check their signature is valid.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-09 14:13:27 +09:30
Rusty Russell
3957f1e1c1
update-channel-accept: accept the channel update.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-09 14:13:27 +09:30
Rusty Russell
d51f6372aa
update-channel: prepare a new tx with modified amounts.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-09 14:13:27 +09:30
Rusty Russell
ecb39efed1
find_p2sh_out: extract helper.
...
Really only for our silly little utils.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-09 14:13:21 +09:30
Rusty Russell
7175d73573
create-close-tx: create a mutual close tx from the close sigs.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-08 15:08:10 +09:30
Rusty Russell
c6ed5926cb
close-channel: add --complete option.
...
Code is identical, so don't create separate close-channel-complete binary.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2015-06-08 14:54:02 +09:30