From 6147bee49cc8f10bc7d602b500bdbbec908afcbf Mon Sep 17 00:00:00 2001 From: Leo Date: Thu, 5 Feb 2026 12:34:51 -0800 Subject: [PATCH 1/4] remove redundant documents from /docs --- docs/etcd.md | 85 ------------------------------------------- docs/nat_traversal.md | 23 ------------ docs/ruby-thing.rb | 12 ------ 3 files changed, 120 deletions(-) delete mode 100644 docs/etcd.md delete mode 100644 docs/nat_traversal.md delete mode 100644 docs/ruby-thing.rb diff --git a/docs/etcd.md b/docs/etcd.md deleted file mode 100644 index bf1a82998f5..00000000000 --- a/docs/etcd.md +++ /dev/null @@ -1,85 +0,0 @@ -# Experimental etcd support in LND - -With the recent introduction of the `kvdb` interface LND can support multiple -database backends allowing experimentation with the storage model as well as -improving robustness through e.g. replicating essential data. - -Building on `kvdb` in v0.11.0 we're adding experimental [etcd](https://etcd.io) -support to LND. As this is an unstable feature heavily in development, it still -has *many* rough edges for the time being. It is therefore highly recommended to -not use LND on `etcd` in any kind of production environment especially not -on bitcoin mainnet. - -## Building LND with etcd support - -To create a dev build of LND with etcd support use the following command: - -```shell -$ make tags="kvdb_etcd" -``` - -The important tag is the `kvdb_etcd`, without which the binary is built without -the etcd driver. - -For development, it is advised to set the `GOFLAGS` environment variable to -`"-tags=test"` otherwise `gopls` won't work on code in `channeldb/kvdb/etcd` -directory. - -## Running a local etcd instance for testing - -To start your local etcd instance for testing run: - -```shell -$ ./etcd \ - --auto-tls \ - --advertise-client-urls=https://127.0.0.1:2379 \ - --listen-client-urls=https://0.0.0.0:2379 \ - --max-txn-ops=16384 \ - --max-request-bytes=104857600 -``` - -The large `max-txn-ops` and `max-request-bytes` values are currently required in -case of running LND with the full graph in etcd. These parameters have been -tested to work with testnet LND. - -## Configuring LND to run on etcd - -To run LND with etcd, additional configuration is needed, specified either -through command line flags or in `lnd.conf`. - -Sample command line: - -```shell -$ ./lnd-debug \ - --db.backend=etcd \ - --db.etcd.host=127.0.0.1:2379 \ - --db.etcd.certfile=/home/user/etcd/bin/default.etcd/fixtures/client/cert.pem \ - --db.etcd.keyfile=/home/user/etcd/bin/default.etcd/fixtures/client/key.pem \ - --db.etcd.insecure_skip_verify -``` - -Sample `lnd.conf` (with other setting omitted): - -```text -[db] -db.backend=etcd -db.etcd.host=127.0.0.1:2379 -db.etcd.cerfile=/home/user/etcd/bin/default.etcd/fixtures/client/cert.pem -db.etcd.keyfile=/home/user/etcd/bin/default.etcd/fixtures/client/key.pem -db.etcd.insecure_skip_verify=true -``` - -Optionally users can specify `db.etcd.user` and `db.etcd.pass` for db user -authentication. If the database is shared, it is possible to separate our data -from other users by setting `db.etcd.namespace` to an (already existing) etcd -namespace. In order to test without TLS, users are able to set `db.etcd.disabletls` -flag to `true`. - -## Migrating existing channel.db to etcd - -This is currently not supported. - -## Disclaimer - -As mentioned before this is an experimental feature, and with that your data -may be lost. Use at your own risk! diff --git a/docs/nat_traversal.md b/docs/nat_traversal.md deleted file mode 100644 index 8493a379b72..00000000000 --- a/docs/nat_traversal.md +++ /dev/null @@ -1,23 +0,0 @@ -# NAT Traversal - -`lnd` has support for NAT traversal using a number of different techniques. At -the time of writing this documentation, UPnP and NAT-PMP are supported. NAT -traversal can be enabled through `lnd`'s `--nat` flag. - -```shell -$ lnd ... --nat -``` - -On startup, `lnd` will try the different techniques until one is found that's -supported by your hardware. The underlying dependencies used for these -techniques rely on using system-specific binaries in order to detect your -gateway device's address. This is needed because we need to be able to reach the -gateway device to determine if it supports the specific NAT traversal technique -currently being tried. Because of this, due to uncommon setups, it is possible -that these binaries are not found in your system. If this is case, `lnd` will -exit stating such error. - -As a bonus, `lnd` spawns a background thread that automatically detects IP -address changes and propagates the new address update to the rest of the -network. This is especially beneficial for users who were provided dynamic IP -addresses from their internet service provider. diff --git a/docs/ruby-thing.rb b/docs/ruby-thing.rb deleted file mode 100644 index 922201fe33e..00000000000 --- a/docs/ruby-thing.rb +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env ruby - -File.open("INSTALL.md", 'r') do |f| - f.each_line do |line| - forbidden_words = ['Table of contents', 'define', 'pragma'] - next if !line.start_with?("#") || forbidden_words.any? { |w| line =~ /#{w}/ } - - title = line.gsub("#", "").strip - href = title.gsub(" ", "-").downcase - puts " " * (line.count("#")-1) + "* [#{title}](\##{href})" - end -end From 77a6768a077a16c0ab98639f767645ea7d942c3d Mon Sep 17 00:00:00 2001 From: Leo Date: Thu, 5 Feb 2026 13:54:27 -0800 Subject: [PATCH 2/4] remove link to etcd guide from install.md --- docs/INSTALL.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index a7714c41be4..89437a7b993 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -254,7 +254,6 @@ will have the following tags: - [peersrpc](/lnrpc/peersrpc/peers.proto) - [kvdb_postrgres](/docs/postgres.md) - [kvdb_sqlite](/docs/sqlite.md) -- [kvdb_etcd](/docs/etcd.md) The `dev` tag is used for development builds, and is not included in the release builds & installation. From 356a8ae0c5bcc2dc197d0d566fd7e2d1c81a061c Mon Sep 17 00:00:00 2001 From: Leo Date: Thu, 5 Feb 2026 13:55:38 -0800 Subject: [PATCH 3/4] Revert "remove link to etcd guide from install.md" This reverts commit 77a6768a077a16c0ab98639f767645ea7d942c3d. --- docs/INSTALL.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 89437a7b993..a7714c41be4 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -254,6 +254,7 @@ will have the following tags: - [peersrpc](/lnrpc/peersrpc/peers.proto) - [kvdb_postrgres](/docs/postgres.md) - [kvdb_sqlite](/docs/sqlite.md) +- [kvdb_etcd](/docs/etcd.md) The `dev` tag is used for development builds, and is not included in the release builds & installation. From 41eaf95897acce283177a868ff73ee3e3a0d5c9b Mon Sep 17 00:00:00 2001 From: Leo Date: Thu, 5 Feb 2026 13:56:03 -0800 Subject: [PATCH 4/4] remove link to etcd guide from install.md --- docs/INSTALL.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index a7714c41be4..89437a7b993 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -254,7 +254,6 @@ will have the following tags: - [peersrpc](/lnrpc/peersrpc/peers.proto) - [kvdb_postrgres](/docs/postgres.md) - [kvdb_sqlite](/docs/sqlite.md) -- [kvdb_etcd](/docs/etcd.md) The `dev` tag is used for development builds, and is not included in the release builds & installation.