From 366512d213fa1cd40db42dcfbf3ed7e3e035e317 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Thu, 7 Dec 2017 14:35:34 -0600 Subject: [PATCH] BOLT 7,8,11: Add table-of-contents --- 07-routing-gossip.md | 15 +++++++++++++++ 08-transport.md | 25 +++++++++++++++++++++++++ 11-payment-encoding.md | 17 +++++++++++++++++ 3 files changed, 57 insertions(+) diff --git a/07-routing-gossip.md b/07-routing-gossip.md index c58790e40..d2f19f287 100644 --- a/07-routing-gossip.md +++ b/07-routing-gossip.md @@ -1,5 +1,7 @@ # BOLT #7: P2P Node and Channel Discovery +## Overview + This specification describes simple node discovery, channel discovery and channel update mechanisms which do not rely on a third-party to disseminate the information. Node and channel discovery serve two different purposes: @@ -13,6 +15,19 @@ There can only be one valid `channel_announcement` for any channel, but multiple `node_announcement` messages are possible (to update node information), and at least two `channel_update` messages are expected. +# Table of Contents + + * [The `announcement_signatures` message](#the-announcement_signatures-message) + * [The `channel_announcement` message](#the-channel_announcement-message) + * [The `node_announcement` message](#the-node_announcement-message) + * [The `channel_update` message](#the-channel_update-message) + * [Initial Sync](#initial-sync) + * [Rebroadcasting](#rebroadcasting) + * [HTLC Fees](#htlc-fees) + * [Pruning the Network View](#pruning-the-network-view) + * [Recommendations for Routing](#recommendations-for-routing) + * [References](#references) + ## The `announcement_signatures` message This is a direct message between two endpoints of a channel and serves as an opt-in mechanism to allow the announcement of the channel to the rest of the network. It contains the necessary signatures by the sender to construct the `channel_announcement` message. diff --git a/08-transport.md b/08-transport.md index 9d6182cd2..66306acb8 100644 --- a/08-transport.md +++ b/08-transport.md @@ -1,5 +1,7 @@ # BOLT #8: Encrypted and Authenticated Transport +## Overview + All communications between Lightning nodes is encrypted in order to provide confidentiality for all transcripts between nodes, and authenticated to avoid malicious interference. Each node has a known long-term identifier which @@ -8,6 +10,29 @@ used within the protocol to establish an encrypted+authenticated connection with peers, and also to authenticate any information advertised on behalf of a node. +# Table of Contents + + * [Cryptographic Messaging Overview](#cryptographic-messaging-overview) + * [Authenticated Key Agreement Handshake](#authenticated-key-agreement-handshake) + * [Handshake Versioning](#handshake-versioning) + * [Noise Protocol Instantiation](#noise-protocol-instantiation) + * [Authenticated Key Exchange Handshake Specification](#authenticated-key-exchange-handshake-specification) + * [Handshake State](#handshake-state) + * [Handshake State Initialization](#handshake-state-initialization) + * [Handshake Exchange](#handshake-exchange) + * [Lightning Message Specification](#lightning-message-specification) + * [Encrypting Messages](#encrypting-messages) + * [Decrypting Messages](#decrypting-messages) + * [Lightning Message Key Rotation](#lightning-message-key-rotation) + * [Security Considerations](#security-considerations) + * [Appendix A: Transport Test Vectors](#appendix-a-transport-test-vectors) + * [Initiator Tests](#initiator-tests) + * [Responder Tests](#responder-tests) + * [Message Encryption Tests](#message-encryption-tests) + * [Acknowledgments](#acknowledgments) + * [References](#references) + * [Authors](#authors) + ## Cryptographic Messaging Overview Prior to sending any lightning messages, nodes must first initiate the diff --git a/11-payment-encoding.md b/11-payment-encoding.md index cafe8d533..7af223915 100644 --- a/11-payment-encoding.md +++ b/11-payment-encoding.md @@ -4,6 +4,23 @@ A simple, extensible QR-code-ready protocol for requesting payments over Lightning. # Table of Contents + + * [Encoding Overview](#encoding-overview) + * [Requirements](#requirements) + * [Human Readable Part](#human-readable-part) + * [Requirements](#requirements-1) + * [Rationale](#rationale) + * [Data Part](#data-part) + * [Requirements](#requirements-2) + * [Rationale](#rationale-1) + * [Tagged Fields](#tagged-fields) + * [Requirements](#requirements-3) + * [Rationale](#rationale-2) + * [Payer / Payee Interactions](#payer--payee-interactions) + * [Payer / Payee Requirements](#payer--payee-requirements) + * [Implementation](#implementation) + * [Examples](#examples) + * [Authors](#authors) # Encoding Overview