Rusty Russell
7133a2f9b3
wallet: assume db errors will be fatal, don't check.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
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>
7 years ago
Rusty Russell
bccd2f8cf4
bitcoind: wrap callbacks in transaction.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
Rusty Russell
7586f3ed54
timers: wrap all calls in transactions.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
01361ab21b
jsonrpc: wrap all calls in transaction.
7 years ago
Rusty Russell
3a596d6dda
subd: wrap all message callbacks in a transaction.
Including destructors.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
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>
7 years ago
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.
7 years ago
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>
7 years ago
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>
7 years ago
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>
7 years ago
Konstantin Nick
62ca15d6aa
Fix python-api example
7 years ago
Jonas Nick
2543bc81b9
Fix docker tag in README
7 years ago
Rusty Russell
8cef36cbd7
lightningd: fail htlcs we fulfill if peer unresponsive after deadline.
Closes : #241
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
1142c44c29
lightningd: fail htlcs we offer if peer unresponsive after deadline.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
Rusty Russell
bdabb24734
lightningd: note our complience on not forwarding an HTLC post deadline.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
c14b159166
lightningd: remove --deadline-blocks option.
We will derive it from other factors.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
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>
7 years ago
Rusty Russell
1ae57fb72c
Update to latest BOLT.
Nothing changes.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
Rusty Russell
112ae0d0f5
common/test/run-json: test JSON escaping.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
ab634dfcdd
common/test_sphinx: change to standard run- format.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
b7774fcb0a
bolt11: comment on weird assignment-then-check test.
Suggested-by: Christian Decker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
Rusty Russell
1ec19093f7
Travis: check bolt quotes.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
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>
7 years ago
Rusty Russell
e1dc75e954
pay: new all-in-one RPC command.
Closes : #240
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
d577769350
invoice: provide bolt11 invoice.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
8d09734536
bolt11: add decodepay RPC helper.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
15e1e4b099
bolt11: support for encoding/decoding and checking.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
f9c6f6413f
hsmd: invoice signing support.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
Rusty Russell
a02ca46b03
secp256k1_ecdsa_recoverable_signature: add support.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
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>
7 years ago
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>
7 years ago
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>
7 years ago
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>
7 years ago
Rusty Russell
f9edbcb4ec
script: add p2sh scriptpubkey helper to create from hash.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
Rusty Russell
79df10f782
bech32: pull in bech32 sample code, almost untouched.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
7 years ago
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>
7 years ago
Christian Decker
c1d364c5fb
wallet: Migrate channel persistence to native sqlite3 binding
Signed-off-by: Christian Decker <decker.christian@gmail.com>
7 years ago
Christian Decker
9c12c807d1
wallet: Migrate shachain persistence to native sqlite3 binding
Signed-off-by: Christian Decker <decker.christian@gmail.com>
7 years ago
Christian Decker
8f198f3746
wallet: Migrate output tracking to native sqlite3 binding
Signed-off-by: Christian Decker <decker.christian@gmail.com>
7 years ago