The #Bitcoin #Lightning Spec Part 1/8
After Scaling Bitcoin Milan we invited all the people implementing Lightning variants to a 2-day meeting to thrash out a common protocol; Joseph Poon has organized most of us into a series of two-weekly warmup calls to set the scene, and despite the unfortunate absence of Mats Jerratsch we made excellent progress.
The next step was a giant Google Doc for massive collaborative editing, which was then split into the github repository with separate “BOLT” RFC-style documents and continues to be refined. There is more to do, but I think it’s time to cover the (80+ page!) spec from a high level: that’s the purpose of these posts, which mirror the structure of the draft specification itself (skipping the interim BOLT #6 covering the IRC bootstrap protocol).
No specification can ever really be marked “complete” until we have two inter-operating implementations, and that work is ongoing as I write this (which includes clarifying the spec and creating test vectors).
- BOLT #0: Introduction and Index (you are here!)
- BOLT #1: Base Protocol (blog post)
- BOLT #2: Peer Protocol for Channel Management (blog post)
- BOLT #3: Bitcoin Transaction and Script Formats (blog post)
- BOLT #4: Onion Routing Protocol (blog post)
- BOLT #5: Recommendations for On-chain Transaction Handling (blog post)
- BOLT #7: P2P Node and Channel Discovery (blog post)
- BOLT #8: Encrypted and Authenticated Transport