Repository navigation
Conversation
|
🚀 Preview Deployment Your preview is ready: https://celestiaorg.github.io/docs-preview/pr-2438/ |
Co-authored-by: jcstein <46639943+jcstein@users.noreply.github.com>
Align with seeds-first P2P setup, gRPC core.port 9090, localhost-bound RPC/gRPC publishes, and cleaner peer list formatting. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Refreshed this PR against current
|
30419c5 to
afc3190
Compare
celestia-node reaches celestia-app over the Docker network on gRPC 9090, so publishing those ports to the host is unnecessary exposure. Co-authored-by: Cursor <cursoragent@cursor.com>
| docker pull "ghcr.io/celestiaorg/celestia-app:$APP_VERSION" | ||
| docker rm celestia-app |
There was a problem hiding this comment.
[suggestion] docker rm refuses a running container. The sentence above says to stop first, but this is the block people will copy.
| docker pull "ghcr.io/celestiaorg/celestia-app:$APP_VERSION" | |
| docker rm celestia-app | |
| docker stop celestia-app | |
| docker pull "ghcr.io/celestiaorg/celestia-app:$APP_VERSION" | |
| docker rm celestia-app |
There was a problem hiding this comment.
Addressed in c662def: the upgrade code block now includes docker stop celestia-app before pulling the image and removing the container.
gbarros
left a comment
There was a problem hiding this comment.
Two things to fix before merge: the BBR link points at the source-build section, and the quick-start docker run (with --sysctl) is not the command that was smoke-tested.
The image, home path, genesis download, seeds, localhost RPC/gRPC publishes, and the light-node --core.port 9090 match current celestia-app and the consensus-node guide.
| - Enough CPU, memory and disk for a | ||
| [consensus node](/operate/getting-started/hardware-requirements). | ||
| - For production, a Linux host with BBR enabled. See | ||
| [the BBR setup instructions](/operate/consensus-validators/install-celestia-app#building-binary-from-source). |
There was a problem hiding this comment.
The link target is the "Building binary from source" section, which does not mention BBR. The anchor resolves, so link checking will not catch it.
celestia-appd reads /proc/sys/net/ipv4/tcp_congestion_control inside the container and exits unless the value contains bbr or the process is started with --force-no-bbr. Enabling BBR on the host does not change the container's network namespace. The host only needs the tcp_bbr module loaded so the --sysctl in the start command can succeed. Put those host steps in this guide instead of linking to the compile tutorial.
There was a problem hiding this comment.
Addressed in c662def: replaced the compile-guide link with a Linux host BBR setup section, including modprobe tcp_bbr, checking availability, and loading the module after reboot. The guide also explains that --sysctl selects BBR inside the container network namespace.
| ```bash | ||
| docker run -d \ | ||
| --user "$(id -u):$(id -g)" \ | ||
| --sysctl net.ipv4.tcp_congestion_control=bbr \ |
There was a problem hiding this comment.
This is the command operators will run, and it was not the command from the smoke test. The PR notes say both image tests used the Docker Desktop bypass (--force-no-bbr, no --sysctl), and download-genesis was interrupted before it finished. The Mocha compose entrypoint in celestia-app also always passes --force-no-bbr and does not set this sysctl.
Docker rejects net.ipv4.tcp_congestion_control=bbr when the module is not loaded or the daemon does not allow that sysctl. Run this docker run once on a Linux host where BBR is available. For the bypass, give a second complete command instead of "omit --sysctl and append --force-no-bbr".
There was a problem hiding this comment.
Addressed in c662def: the guide now has separate, complete Linux BBR and Docker Desktop bypass commands. The Linux smoke tests passed for Mainnet Beta (v9.0.8) and Mocha (v10.4.0-mocha), running the commands extracted from the guide. Both completed the genesis download and confirmed BBR inside the container, the expected RPC chain ID, and gRPC TCP connectivity from the host and shared Docker network. Full chain sync and an end-to-end light-node connection remain untested. Requesting your review again with these fixes and validation in place.
|
@gbarros addressed your feedback in c662def:
Both Linux BBR tests passed for Mainnet Beta and Mocha: complete checksum-verified genesis downloads, BBR enabled inside the container, expected RPC chain IDs, and application gRPC TCP connectivity from the host and a second container on the shared network. Both Docker Desktop runs also passed locally. All CI checks are green. Full chain sync and an end-to-end light-node connection remain outside the smoke test. Ready for another look. |
| SEEDS=$(curl -fsSL "https://raw.githubusercontent.com/celestiaorg/networks/master/$CHAIN_ID/seeds.txt" | tr '\n' ',' | sed 's/,$//') | ||
| test -n "$SEEDS" && sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" "$APP_HOME/config/config.toml" |
Adds the missing Docker guide for running a celestia-app consensus node on Mainnet Beta or Mocha, with links from installation docs and the operator sidebar.
The guide uses recommended network versions, persistent storage owned by the host user, verified genesis downloads, seeds, and explicit application/consensus gRPC listeners. It includes Linux host BBR setup, separate complete Linux and Docker Desktop startup commands, syncing, a shared Docker network for a light node, upgrades, and troubleshooting.
A focused CI workflow runs the commands extracted from the guide when the guide, test, or network/version constants change.
Validation:
docker runwith--sysctl. Tests confirmbbrinside the container, RPC status with the expected chain ID, and application gRPC TCP connectivity from the host and a second container on the shared network.Closes #1100