Comments (1)
John Newbery [email protected] writes:
Hi Rusty,
I decided to finally lock myself away with your Reaching the Ground with Lightning paper and your earlier blog post series last night and spent some time digging into the details of Lightning. I love the work you're doing on this, and I'm happy that I'm finally beginning to get my head around lightning.
Thanks for the proofreading, I'm sure others have spotted my mistakes
and not been so charitable with their time :)
I have a few minor comments about the paper:
- in Figure 1: Figure 1 from the Lightning Network Draft 0.5
Commitment Close Tx 1A (CC1b) -- should be CC1a
Commitment Close Tx 1b (CC1a) -- should be CC1b
(both of these are carried over from the Lightning Paper 0.5 and fixed in 0.5.9)
Thanks! Yes, I have an eps of those figures only, so it'd be a PITA
to fix. But I've put in a note.
- in Figure 2: Figure 2 from the Lightning Network Draft 0.5
The settlement/timeout transactions are named S1a/SD1a/T1a/TR1a. I believe these should be called S2a/SD2a/T2a/TR2a (since they're descendants of Commitment transaction 2a)
(carried over from the Lightning Paper 0.5 and still in 0.5.9)
Hmm, good point, but I don't refer to them anywhere. I've CC'd Joseph.
- Section 3.2: "These can be later balanced by the lightning network itself, or an atomic-swap an on-chain bitcoin transaction" should be "These can be later balanced by the lightning network itself, or an on-chain atomic-swap transaction."
OK, "an atomic swap to an onchain bitcoin transaction".
- Section 3.2: "implementation splits fees where possible< and never allows either side" has an errant < character inserted (which doesn't appear in the .lyx file)
Weird, that's not in the source. Fixed.
- The references seem to have been broken between v0.1 and v0.2. References are mis-numbered and in the wrong order.
Hmm, regenerated. They look better now.
- References to the Appendixes are broken ('The scripts for this can be found in 4' rather than 'The scripts for this can be found in appendix A' and 'as the commitment transaction in 4' instead of 'as the commitment transaction in appendix B')
Yep, fixed. Plus.
- In v0.2, the conclusion can be updated: 'By using a dual anchor and escape transactions, channel establishment can also avoid new CHECKSIG flags, though it loses the important ability to outsoure the enforcement of channel contract terms.' to 'By using a rebalanced single anchor, channel establishment can also avoid new CHECKSIG flags, while retaining the important ability to outsource the enforcement of channel contract terms.'
The first half is correct, the second half is incorrect: we still need
new CHECKSIG flags to outsource contract terms.
- I'd recommend that the 'Escape transactions' and 'Fast escape transactions' in appendix A get moved to appendix B now that dual anchors are not part of the current design.
Excellent point. Done.
I'll open a pull request for 3 and 7. The others are either:
- changes to .eps files. I'm afraid I don't know how to modify those.
- errors in whatever tool you used to generate the .pdf from the source files.
Oops, I should have applied that first, but I edited as I read this bug
report.
I've also been following along on the Lightning-dev mailing list, and see that there's been a lot of movement on state machines and routing since v0.2 of the documentation. Are there plans to update the paper to include information on those aspects? I'm happy to lend a hand if you think that'd be useful.
I think that the paper stands alone; there are many more areas to
document outside its scope however:
- The protocol used for onion routing.
- The cryptography used for inter-node communications.
- The protocol and state machine used for inter-node communications.
- The routing and fee protocols.
These are all in different stage of development though. The first two
should be getting some serious crypto review in the next few weeks. The
inter-node comms protocol seems fairly stable, but no doubt will change
as we actually try to interoperate. And the routing and fee protocols
are still being actively discussed.
But if you wanted to flesh out the very bare wiki, at least with ML
references, that would be a definite start!
Thanks,
Rusty.
from lightning.
Related Issues (20)
- reckless won't install boltz backend plugins?
- Stuck transaction HOT 1
- renepay: immediate crash HOT 5
- [Feature Request] Add option to withdraw command for omitting broadcast of transaction HOT 1
- Modded Version in Clean Build HOT 7
- "Bad gossip order: could not find channel" issue is not resolved HOT 4
- cln-rpc: missing field `received_time`
- routing: cln picking channel that cannot route the htlc HOT 6
- blinded paths: max_cltv_expiry less than current block height HOT 7
- recover: The recovery plugin crashes if a channel has not fully been forgotten HOT 24
- GRPC: add broadcast command HOT 3
- clnrest: configurable content-type header HOT 1
- clnrest: Create a websocket proxy for wss bind-address config
- Make `cln-grpc` a first-class citizen HOT 6
- grpc: Add "created_at" to listInvoices rpc
- grpc: Add proper keysend message support
- fetchinvoice fails when specified `exposeid` as `invreq_payer_id` HOT 2
- bitcoind: bad-txns-inputs-missingorspent on sendrawtransaction
- grpc: Add missing grpc methods for cln-application and RTL UIs
- pay plugin fails to route around depleted low fee channels HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lightning.