From 7561ac4f4ecda7f3a5633032cc0fe9dd3eff73e0 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Mon, 7 Aug 2017 12:43:46 -0700 Subject: [PATCH 1/2] BOLT0007: add section on ability of nodes to opt out of dynamic updates This commit adds a new section to the 7th BOLT document detailing a mechanism that nodes can use to opt-out of dynamic channel updates. Doing so is primarily a bandwidth optimization, as the node is able to only receive announcements for new channels and nodes joining the network, rather than announcements for each channel update within the network. --- 07-routing-gossip.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/07-routing-gossip.md b/07-routing-gossip.md index e2cb62f62..5071d3f68 100644 --- a/07-routing-gossip.md +++ b/07-routing-gossip.md @@ -423,6 +423,25 @@ Other more advanced considerations involve diversity of routes to avoid single points of failure and detection, and channel balance of local channels. +## Opting out of `channel_update` messages + +A peer may wish to update out of receiving any `channel_update` messages as a +bandwidth and processing optimization. Note that opting out of `channel_update` +messages doesn't entirely affect a node's ability to interact with the network. +In the case of a node that wishes to send semi-frequent payments, if a payment +fails due to using an outdated routing policy for a particular channel link, +then the error response will contain the latest `channel_update` message for +that link. For nodes which are primarily focused on payment forwarding, the +extra traffic of `channel_update` messages are unnecessary. + +In order to opt-out of `channel_update` messages the `no_channel_updates` flag +should be set within the `init` message that the node advertises to other peers +upon initial connection. + +If a node receives an `init` message with the `no_channel_updates` flag set, +then the receiving not MUST NOT relay any channel update messages to the +sending node. + ## References ![Creative Commons License](https://i.creativecommons.org/l/by/4.0/88x31.png "License CC-BY") From d36e7d88e7095557966809870258d23bc1979da9 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Mon, 7 Aug 2017 12:44:27 -0700 Subject: [PATCH 2/2] BOLT0009: add a `no_channel_updates` feature bit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds the ability of a node to signal that they don’t wish to receive any dynamic channel updates using an unused feature bit in the init message. --- 09-features.md | 1 + 1 file changed, 1 insertion(+) diff --git a/09-features.md b/09-features.md index 1d6d04e06..6ae46fedc 100644 --- a/09-features.md +++ b/09-features.md @@ -18,6 +18,7 @@ These flags may only be used in the `init` message: | Bits | Name |Description | Link | |------|------------------|------------------------------------------------|---------------------------------------------------------------------| | 3 | `initial_routing_sync` | The sending node needs a complete routing information dump | [BOLT #7](07-routing-gossip.md#initial-sync) | +| 0xc | `no_channel_updates` | The sending node doesn't wish to receive any `channel_update` messages | [BOLT #7](07-routing-gossip.md) | ## Assigned `globalfeatures` flags