Rusty Russell
3282768302
wallet: don't fail, assume db ops will call fatal.
...
And override fatal() in wallet_tests to be sure.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
1eb7e92a30
db_migrate: get version inside transaction.
...
we should never be doing two startups at once, but why take chances? Plus,
we can then assert that all db calls are in transactions.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
bccd2f8cf4
bitcoind: wrap callbacks in transaction.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
8229769438
lightningd: do initial database load within a transaction.
...
Safest, and we can then assert that all db calls are in transactions.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
7586f3ed54
timers: wrap all calls in transactions.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
01361ab21b
jsonrpc: wrap all calls in transaction.
2017-11-06 10:24:34 +01:00
Rusty Russell
3a596d6dda
subd: wrap all message callbacks in a transaction.
...
Including destructors.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
bbe7a03300
wallet: use db_exec_mayfail() for wallet_add_utxo.
...
This is the only case where we actually rely on the db to ensure we don't
do something twice: don't error out if it fails.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
b148b89baf
db_exec_mayfail: variant of db_exec where we actually expect an error.
...
There's one caller where db_exec can actually fail due to constraints,
and we rely on it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
1f7e370fda
db: rollback transaction if we had an error.
...
This is temporary; we'll eventually fail on error. However, since
db_exec() is a NOOP if we have an error, we need to do something.
2017-11-06 10:24:34 +01:00
Rusty Russell
360aa15e4d
db_query: don't remove transaction or set error if query fails.
...
We return NULL in this case.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Rusty Russell
5e46af64fc
db: keep in_transaction as a counter, so we can nest commits.
...
Otherwise we find ourselves outside a commitment. This is a bandaid
until we remove nested commitments again at the end of this series.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-06 10:24:34 +01:00
Christian Decker
77789bb705
db: Implemented poor mans nested transactions
...
Nesting is provided by only actually performing the outermost
transaction and simulating the nested ones. This still allows us to
ensure on lower levels that we are in the context of a transaction
without having to resort to keeping explicitly track of it in the
calling code.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-11-06 10:24:34 +01:00
Konstantin Nick
62ca15d6aa
Fix python-api example
2017-11-06 10:24:09 +01:00
Jonas Nick
2543bc81b9
Fix docker tag in README
2017-11-04 11:35:32 +01:00
Rusty Russell
8cef36cbd7
lightningd: fail htlcs we fulfill if peer unresponsive after deadline.
...
Closes : #241
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-03 05:18:49 +00:00
Rusty Russell
1142c44c29
lightningd: fail htlcs we offer if peer unresponsive after deadline.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-03 05:18:49 +00:00
Rusty Russell
9662589ed8
lightningd: move notify_new_block() callback to peer_htlcs.
...
And change prototype to take the lightningd structure.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-03 05:18:49 +00:00
Rusty Russell
bdabb24734
lightningd: note our complience on not forwarding an HTLC post deadline.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-03 05:18:49 +00:00
Rusty Russell
c14b159166
lightningd: remove --deadline-blocks option.
...
We will derive it from other factors.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-03 05:18:49 +00:00
Rusty Russell
a55ce607a1
bitcoind: contain ld pointer.
...
This is a subset of a "bitcoind: wrap callbacks in transaction." from
the everything-in-transaction branch, but we need the ld pointer now.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-03 05:18:49 +00:00
Rusty Russell
860a76b1c9
lightningd: update to add wire_expiry_too_far
.
...
From recently-merged BOLT update.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 09:46:05 +01:00
Rusty Russell
1ae57fb72c
Update to latest BOLT.
...
Nothing changes.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 09:46:05 +01:00
Rusty Russell
5502a19d1e
json: reject incoming JSON which has any unusual characters in tokens.
...
ie. non-printable, quotes or escapes. We allow these outside tokens
(we expect tabs and \n for example).
This is a big hammer, but if someone really wants we can add support
later.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 09:46:05 +01:00
Rusty Russell
112ae0d0f5
common/test/run-json: test JSON escaping.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 09:46:05 +01:00
Rusty Russell
ab634dfcdd
common/test_sphinx: change to standard run- format.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 09:46:05 +01:00
Rusty Russell
b7774fcb0a
bolt11: comment on weird assignment-then-check test.
...
Suggested-by: Christian Decker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
8f17effeeb
json: just blatt weird characters in string.
...
Don't try to escape them. It's whack-a-mole and they shouldn't do it anyway.
Suggested-by: Christian Decker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
1ec19093f7
Travis: check bolt quotes.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
a9002eac52
Update to latest BOLT.
...
And nail "make check-source" to that specific version (which is a commit id,
not a branch name, so needs a different syntax for git).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
6c21da69e6
bolt11: 'c' support for min_final_cltv_expiry.
...
Based on latest draft spec, using variable length encoding.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
e1dc75e954
pay: new all-in-one RPC command.
...
Closes : #240
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
d577769350
invoice: provide bolt11 invoice.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
8d09734536
bolt11: add decodepay RPC helper.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
15e1e4b099
bolt11: support for encoding/decoding and checking.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
f9c6f6413f
hsmd: invoice signing support.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
02c1d10c9f
json: escape strings we output in JSON.
...
We're going to output description strings, which are untrusted.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
a02ca46b03
secp256k1_ecdsa_recoverable_signature: add support.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
753f15f503
common/hash_u5: routines to hash 5 bit values.
...
Needed for creating/verifying signatures on bolt11 invoices.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
20ce829f81
script: add helper to use a raw witness program.
...
This is for future compatibility.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
9ec5cb7ba2
script: enhance is_p2sh/is_p2pkh/is_p2wsh/is_p2wpkh to extract addr.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
58604a0497
chainparams: add bip173 name.
...
Google lead me to a discussion about litecint, it suggested they would use
'ltc' and I don't really care.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
7ed81cdf7b
pay: factor out actual payment sending from json part of sendpay.
...
We're going to reuse this for the new 'pay' all-in-one command.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
f9edbcb4ec
script: add p2sh scriptpubkey helper to create from hash.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Rusty Russell
79df10f782
bech32: pull in bech32 sample code, almost untouched.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-11-01 01:09:23 +00:00
Christian Decker
da183c22a0
db: Cleanup all remaining traces of hex-encoded values
...
In addition we also set some of the test values to a pattern instead
of just `memset`ting it to 0, which may hide some crossed lines.
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-10-31 22:43:47 +00:00
Christian Decker
c1d364c5fb
wallet: Migrate channel persistence to native sqlite3 binding
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-10-31 22:43:47 +00:00
Christian Decker
9c12c807d1
wallet: Migrate shachain persistence to native sqlite3 binding
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-10-31 22:43:47 +00:00
Christian Decker
8f198f3746
wallet: Migrate output tracking to native sqlite3 binding
...
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-10-31 22:43:47 +00:00
Christian Decker
abad23b339
wallet: Removing hex fields from HTLCS
2017-10-31 22:43:47 +00:00