1
0
mirror of https://github.com/lightning/bolts.git synced 2024-11-19 10:00:04 +01:00
Commit Graph

764 Commits

Author SHA1 Message Date
Rusty Russell
a7e109a286 BOLT 2: dust limit is lower limit for non-dust.
So we need to be >= it.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-16 23:26:34 +02:00
Rusty Russell
a676ae6a0b YA typo fix
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-16 23:26:34 +02:00
Rusty Russell
07ec50602d typo fix
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-16 23:26:34 +02:00
Rusty Russell
f5b28a9a24 BOLT 2: set lower limit on funds available on channel open.
Even with push_msat, we need to make sure that funder can pay the fees,
so require that.

Also require that there be some funds above reserve on one side, otherwise
the channel is useless, and we risk that all outputs are dust.

Note: a side *may* reject the channel if funding_satoshis is too small
already, but this sets a clear minimum bar.

Fixes: #393
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-16 23:26:34 +02:00
Rusty Russell
fbaa6f5287 Complete requirements.
Add requirements on accept_channel, so each side doesn't consider the
*other* reserve dust either.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-16 23:26:34 +02:00
Rusty Russell
a0214d3722 Fix missing set typo. 2018-04-16 23:26:34 +02:00
Rusty Russell
c256c4626b BOLT 2: avoid obvious all-dust cases
After more consideration, I believe that this is sufficient to ensure
one reserve is always non-dust.

The races which make us dig into the reserves can't currently take from
the fundee's reserve, so either the fundee has sufficient reserves, or
it can't add HTLCs which means no race.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-16 23:26:34 +02:00
ueno
f5f123c02c BOLT 0: fix ordering of chain_hash 2018-04-16 13:25:30 -07:00
Olaoluwa Osuntokun
71630b4766 BOLT 4: update sphinx packet test vector (#372)
* BOLT 4: update sphinx packet test vector

In this commit, we update the test vector for the final onion packet. In
commit 068b0bccf9, the per-hop payloads
were updated to use 8 byte amounts everywhere. However, the test vectors
were not updated. In 578573f92f the test
vectors were updated to use the proper version prefix. However, this
assumed that the state of the vectors as is was correct.

To remedy this, we've updated the test vectors to reflect the final
result using the current format for encoding the per-hop payloads. This
final test vector was generated using the original tool that we used to
confirm compatibility between the C and Go versions.
2018-04-16 16:41:04 +02:00
Janus
9d48f3e52f correct feature flagged message fields syntax, update structured.py to support feature flagged fields, print to right output in extract-formats.py 2018-04-11 07:08:18 +00:00
Sebastian Geisler
e95fabca69 Fix test vector routing part
The routing tagged field of one test vector was extracted from the
invoice incorrectly. The route included in the invoice has as base
fee of 1 resp. 2 msat (as described in the explanation), but the
extracted bech32 part had a 0 msat base fee.
2018-04-11 03:43:33 +00:00
Li Xuanji
a495b3a74f Define P2WSH earlier 2018-04-11 03:42:05 +00:00
kurihei
ae7589b45c typo 2018-04-11 03:22:01 +00:00
Pierre-Marie Padiou
8f36ee9880
BOLT 2: typo "it need" -> "it needs" (#391) 2018-03-20 13:37:34 +01:00
pm47
2cb41db4a2 consistency: option-data-loss-protect->option_data_loss_protect 2018-03-05 19:20:37 +00:00
pm47
7da77f0687 define initial value for data-loss fields
Clarify that field `channel_reestablish`.`your_last_per_commitment_secret`
should be set to an all-zero array when no `per_commitment_secret` has
been received yet.
2018-03-05 19:20:37 +00:00
Jim Posen
c4e42bcfd6 BOLT 4: Rearrange sections, moving dependent concepts lower. 2018-03-05 20:11:32 +01:00
Jim Posen
3927ae3fd1 BOLT 4: Update onion construction reference code.
The description now suggests the use of an ephemeral private key, so
the reference code is simplified by using that concept. The reference
code is also updated to make fewer calls to undefined functions.
2018-03-05 20:11:32 +01:00
Jim Posen
5a3b5ce0bd BOLT 4: Clarify the onion construction section.
The new description introduces the concept of an ephemeral private key,
which I find easier to reason about and suggests a linear instead of
quadratic construction algorithm.
2018-03-05 20:11:32 +01:00
Jim Posen
745629d0f2 BOLT 4: Correct blinding factor calculation.
The instructions reference nodepk_k instead of epk_k.
2018-03-05 20:11:32 +01:00
Jim Posen
f7eb7e4d96 BOLT 4: Correct shared secret calculation.
Reference code and all implementations hash the ECDH output point with SHA256.
2018-03-05 20:11:32 +01:00
Rusty Russell
b476e630b0 BOLT 7: don't send an announce_signatures message if we're shutting down.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-03-05 09:04:33 +00:00
ueno
4ef035f8c2 fix #385 2018-02-22 00:15:22 +00:00
practicalswift
939ce285bc BOLT 8: Fix debate over whether [] ranges are inclusive or exclusive
The english is pretty clear for these simple cases anyway.
2018-02-22 00:12:13 +00:00
Landon Mutch
857c71a3c8 fix requests by @shannona 2018-02-20 01:30:18 +00:00
Landon Mutch
4a2e6229f6 BOLT 07: finish first pass copy edit to bring inline with stylesheet guidelines; 2018-02-20 01:30:18 +00:00
Landon Mutch
abb4b3ac3e BOLT 07: first pass copy edit to line 574; 2018-02-20 01:30:18 +00:00
Landon Mutch
124b1f8d84 BOLT 07: first pass copy edit to line 456
Impose 'origin/final node' terminology (replacing 'creating/receiving node') for sake of clarity and consistency with other BOLTs;
2018-02-20 01:30:18 +00:00
practicalswift
316882fcc5 Use a vs an consistently 2018-02-20 01:12:29 +00:00
practicalswift
5fe7fc3d62 Change from "Encrypting Messages"/"Decrypting Messages" to "Encrypting and Sending Messages"/"Receiving and Decrypting Messages"
In order to reflect what is actually documented.
2018-02-20 01:11:44 +00:00
Rusty Russell
c132855d4b Spelling list: add new words.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-20 01:10:38 +00:00
Rusty Russell
4c8cb512d0 BOLT 2,3,5: always refer to shared/pubkey/private key.
Make it clear what kind of key we're talking about.  We use the abbreviation
pubkey for public key (as it's quite common to use in field names), but
generally spell out 'private'.

(I generally prefer 'secret' to 'private' but we use private far more often
already, and we use 'secret' for things which don't directly derive keys).

Fixes: #368
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-20 01:10:38 +00:00
Christian Decker
3e2d275471 BOLT02: Add rationale for 2^24 satoshi per channel limit
Fixes #353
2018-02-09 14:50:52 +01:00
Shannon Appelcline
852f1904f6 Updates for FIXMEs 2018-02-05 23:49:32 +00:00
Shannon Appelcline
9a04862469 BOLT-3 Edits
This is my final first-pass BOLT. Some grammar changes, some remote/local additions, a few questions.
2018-02-05 23:49:32 +00:00
Rusty Russell
120003e553 BOLT #2: bad update_fee after shutdown when all HTLCs cleared.
I got an unexpected update_fee message after `shutdown` exchange,
which is currently legal:

A: shutdown (no htlcs)
                          B: receive shutdown
                          B: reply with shutdown & closing_signed

A: send update_fee & commitment_signed
A: receive shutdown

Simplest to ban any updates (currently, just update_fee) from adding a
new commitment tx while we're at the end of shutdown.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-05 23:47:12 +00:00
Rusty Russell
90241d9cf6 BOLT 2: order closing-signed negotiation by making funder send first.
Fixes: #365
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-05 23:38:51 +00:00
Conner Fromknecht
e24d36eb4f aspell: adds injection attack keywords to dictionary
* javascript
 * Javascript
 * DOM
 * SQL
 * XSS
 * Implementers
 * sanitization
2018-02-05 23:38:01 +00:00
Conner Fromknecht
e86ac9a3b2 BOLT 11: notes payment desc injection vulnerabilities 2018-02-05 23:38:01 +00:00
Conner Fromknecht
1e06c00f49 BOLT 07: notes node alias injection vulnerabilities 2018-02-05 23:38:01 +00:00
practicalswift
bf87822538 Use consistent method for referencing RFC:s 2018-02-05 19:32:51 +00:00
practicalswift
87ff1bf7f1 Distinguish between static and ephemeral public keys 2018-02-05 19:32:51 +00:00
Rusty Russell
ee5f4352bb BOLT 3: closing tx must also round outputs down to whole satoshis.
We specify this for the commitment tx, but not for the closing tx.

Reported-by: Christian Decker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-05 19:19:10 +00:00
Cayle Sharrock
1ad7933241 Fix typo
public -> private
2018-02-05 11:32:34 +01:00
practicalswift
07976959d3 Use consistent capitalization for MITM 2018-02-05 09:09:51 +00:00
practicalswift
4e3074ea5f Fix markdownlint warnings
Fixed warnings:

.copy-edit-stylesheet-checklist.md: 49: MD030/list-marker-space Spaces after list markers [Expected: 1; Actual: 0]
.copy-edit-stylesheet-checklist.md: 1: MD041/first-line-h1 First line in file should be a top level header [Context: "Basic checklist/stylesheet use..."]
02-peer-protocol.md: 161: MD018/no-missing-space-atx No space after hash on atx style header [Context: "#7](07-routing-gossip.md#bolt-..."]
2018-02-05 09:01:00 +00:00
practicalswift
2c3466a2af Remove trailing whitespace 2018-01-30 04:54:31 +00:00
Rusty Russell
58f6a70889 BOLT 8: use incremented numbers for numbering.
Markdown doesn't care, but we have humans reading the text.

Reported-by: @roasbeef
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-30 03:47:32 +00:00
Rusty Russell
0f50cc220d BOLT 8: Steps in each Act are ordered.
So we should use an enumeration, not an unordered list.  Same applies to
encryption, decryption and key rotation algorithms.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-30 03:47:32 +00:00
Rusty Russell
f6a91fbb11 BOLT 4: the failure codes are not one long enumerated list.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-30 03:47:32 +00:00