Skip to content

Conversation

@Euler-B
Copy link

@Euler-B Euler-B commented Dec 22, 2025

Change Description

This PR is the result of a step-by-step validation of the Send Payment Guide with Docker. After encountering several issues with the original workflow, I conducted a deep dive into the underlying failures, testing all available options described in the guide and researching related documentation.

The result is an updated, functional guide that works out-of-the-box. Key changes include:

  • Simnet Focus: This update specifically focuses on Simnet due to its simplicity in block generation. It provides a seamless environment for new developers to test LND payment commands instantly without external dependencies.

  • Removal of Obsolete Resources: I have removed the section regarding the faucet.lightning.community.web , as it is currently offline.

  • Signet Considerations: I've clarified that obtaining funds via Signet can be time-consuming, as it depends on available computing power for mining/proof-of-work requirements, which might frustrate newcomers.

This guide now serves as a reliable and modern reference for anyone’s first encounter with the LND payment flow..

Steps to Test

Follow the instructions provided in the updated docker/README.md.

Pull Request Checklist

Testing

  • Your PR passes all CI checks.
  • Tests covering the positive and negative (error paths) are included.
  • Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

📝 Please see our Contribution Guidelines for further guidance.

@gemini-code-assist
Copy link

Summary of Changes

Hello @Euler-B, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request delivers a thoroughly validated and updated step-by-step guide for setting up and sending payments using LND with Docker. It resolves previous workflow issues, ensuring a reliable and out-of-the-box experience for users interacting with the LND payment flow. The changes encompass dependency updates, command syntax modernization, and configuration adjustments across the Docker environment for LND and BTCD.

Highlights

  • docker/README.md Updates: The guide for sending payments with Docker has been significantly revised, including updated Docker prerequisites, modern docker compose command syntax, and the removal of an outdated "Connect to faucet lightning node" section.
  • btcd Dockerfile Enhancements: The btcd Dockerfile now uses a newer Go version (1.25.3), updates the BTCD_VERSION to v0.24.2, specifies alpine:3.20 as the base image, corrects segnet to signet in comments, and includes a HEALTHCHECK for the btcd service.
  • docker-compose.yml Modernization: The deprecated version: '2' declaration has been removed, and the btcd service build now explicitly references its Dockerfile.
  • lnd Startup Script Adjustments: The start-lnd.sh script has been updated to remove the --$CHAIN.active flag, correctly specify the btcd RPC host with its port (:18555), and set the rpclisten address to 127.0.0.1:10009 for improved clarity and security within the Docker environment.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request provides a welcome update to the Docker-based lnd payment guide. Key improvements include updating to the docker compose v2 syntax, removing an outdated section, and upgrading dependencies. The Dockerfiles are also enhanced with better version management and a health check.

However, I've identified a critical error in docker/lnd/start-lnd.sh. The script configures lnd to use the wrong port for the btcd RPC connection on simnet, which will prevent the setup from working as described. I've provided specific comments with suggestions to resolve this.

"--$CHAIN.node"="$BACKEND" \
"--$BACKEND.rpccert"="$RPCCRTPATH" \
"--$BACKEND.rpchost"="$RPCHOST" \
"--$BACKEND.rpchost"="$RPCHOST:18555" \

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The btcd RPC host is being configured with port 18555, which is the P2P port for simnet, not the RPC port. The correct RPC port for btcd on simnet is 18556. This configuration will prevent lnd from connecting to btcd and should be corrected.

Suggested change
"--$BACKEND.rpchost"="$RPCHOST:18555" \
"--$BACKEND.rpchost"="$RPCHOST:18556" \

# Also, setting --rpclisten to $HOSTNAME will cause it to listen on an IP
# address that is reachable on the internal network. If you do this outside of
# docker, this might be a security concern!
# [:18555] is the default btcd RPC port in SIMNET network.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This comment incorrectly states that 18555 is the default btcd RPC port for simnet. The correct default RPC port for btcd on simnet is 18556. Port 18555 is the P2P port. This is misleading and should be corrected to avoid confusion, especially as the incorrect port is used later in this script.

Suggested change
# [:18555] is the default btcd RPC port in SIMNET network.
# [:18556] is the default btcd RPC port in SIMNET network.

@Euler-B Euler-B force-pushed the doc/updatePaytoPaywithDocker branch from 8ae435a to dca2938 Compare December 22, 2025 11:55
@Liongrass
Copy link
Contributor

Hi! Thank you for that PR!
My initial question is, is this guide for Signet or Simnet? Right now it makes references to both. Can you also double-check if the BTCD ports are correct?

@Euler-B
Copy link
Author

Euler-B commented Dec 25, 2025

Hi! Thank you for that PR! My initial question is, is this guide for Signet or Simnet? Right now it makes references to both. Can you also double-check if the BTCD ports are correct?

Hi! Thanks for the review. Sorry for the confusion; here are the details:

The guide is intended to use Simnet, as it's the fastest way to test the payment flows locally.

The Simnet ports are correct. Regarding Signet, I verified them while testing the faucet part, but I noticed a typo ("Segnet" instead of "Signet") which I've now fixed.

Regarding your question about the Dockerfile: I believe it's best to keep the Simnet focus to ensure the fastest onboarding for developers. I will refine the documentation to make this distinction clear and remove any ambiguous references to Signet where they aren't needed.

I've just updated the PR with these corrections. Let me know if you have any further suggestions!

@Euler-B Euler-B force-pushed the doc/updatePaytoPaywithDocker branch from dca2938 to f7af220 Compare December 25, 2025 00:07
@lightninglabs-deploy
Copy link

@Euler-B, remember to re-request review from reviewers when ready

@Euler-B
Copy link
Author

Euler-B commented Jan 1, 2026

@Liongrass I have completed the requested changes and the PR is ready for review. Thank you!"

@Euler-B
Copy link
Author

Euler-B commented Jan 1, 2026

/gemini review

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request provides a great update to the Docker-based step-by-step guide for sending payments. Focusing on simnet and removing the obsolete faucet information makes the guide much more approachable and reliable for newcomers. The updates to use the modern docker compose syntax and improve the Docker configurations with version pinning, health checks, and more secure defaults are excellent enhancements. I have one minor suggestion to improve the clarity of the documentation.

docker/README.md Outdated
Comment on lines 2 to 5
the Lightning Network Daemon (`lnd`). This folder uses `docker` to
package `lnd` and `btcd` together to make deploying the two daemons as easy as
typing a few commands. All configuration between `lnd` and `btcd` are handled
automatically by their `docker-compose` config file.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For better clarity and consistency, consider changing docker to docker compose. While docker compose is part of the docker CLI, the next sentence specifically mentions the docker-compose config file. Using docker compose explicitly would make it clearer to the user which tool is being referred to, especially since the rest of the document has been updated to use the docker compose syntax.

Suggested change
the Lightning Network Daemon (`lnd`). This folder uses `docker` to
package `lnd` and `btcd` together to make deploying the two daemons as easy as
typing a few commands. All configuration between `lnd` and `btcd` are handled
automatically by their `docker-compose` config file.
the Lightning Network Daemon (`lnd`). This folder uses `docker compose` to
package `lnd` and `btcd` together to make deploying the two daemons as easy as
typing a few commands. All configuration between `lnd` and `btcd` are handled
automatically by their `docker-compose` config file.

@Euler-B Euler-B force-pushed the doc/updatePaytoPaywithDocker branch from f7af220 to 31d206f Compare January 1, 2026 02:50
@Euler-B Euler-B force-pushed the doc/updatePaytoPaywithDocker branch from 31d206f to 380e41b Compare January 1, 2026 03:00
@Euler-B
Copy link
Author

Euler-B commented Jan 1, 2026

/gemini review

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request provides a great update to the Docker-based step-by-step guide for sending payments. The focus on simnet, removal of obsolete information about the faucet, and updates to use modern Docker commands and practices significantly improve the guide's usability and reliability for new developers. The Dockerfile enhancements, such as version pinning, adding a health check, and improving security defaults, are also valuable contributions. I've found one minor inconsistency in the documentation that I've commented on. Overall, this is a solid improvement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants