net: outbound-only --listen=0 / --max-inbound 0 - #644
Open
rearden-grok[bot] wants to merge 5 commits into
Open
rearden-grok[bot] wants to merge 5 commits into
rearden-grok[bot] wants to merge 5 commits into
Conversation
rearden-grok
Bot
force-pushed
the
net/socks-proxy
branch
from
September 19, 2026 17:39
36d3a91 to
0699a74
Compare
rearden-grok
Bot
force-pushed
the
net/listen-off
branch
from
September 19, 2026 17:39
752420e to
d8c6283
Compare
8 tasks
rearden-grok
Bot
force-pushed
the
net/socks-proxy
branch
from
September 20, 2026 01:58
0699a74 to
1852407
Compare
Home nodes with no inbound slots are a valid start posture. Outbound still requires max_outbound >= 1. Co-authored-by: Cursor <cursoragent@cursor.com>
Distinguish omitted listen (loopback default) from explicit off so a home node can start without a clearnet P2P socket. Co-authored-by: Cursor <cursoragent@cursor.com>
Home nodes skip TcpListener bind. Outbound follow still handshakes; addconnection inbound stays refused. local_addr is 127.0.0.1:0. Co-authored-by: Cursor <cursoragent@cursor.com>
Outbound-only home nodes must not leak a LAN or ISP address via addr messages or getnetworkinfo.localaddresses, even when --external-ip is set. Co-authored-by: Cursor <cursoragent@cursor.com>
Outbound-only NixOS units skip the P2P bind, inbound cap, self-announce, and firewall hole. Default ExecStart still passes --listen. Co-authored-by: Cursor <cursoragent@cursor.com>
rearden-grok
Bot
force-pushed
the
net/listen-off
branch
from
September 20, 2026 02:02
d8c6283 to
a11b32f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plan
docs/personal-node-plans/01-listen-off.md: a home node can start with no clearnet P2P bind, no inbound slots, and no self-announce.Stacked on #641 (
net/socks-proxy). Default NixOSExecStartstill passes--listen, so this PR does not change the runtime VM argv and is not labelednixos-module-runtime.Summary
--max-inbound 0is valid config (max_outboundstill>= 1).--listen=0/--no-listen(and conflisten=0) skip the P2P TCP bind; omitted--listenstill defaults to loopback.P2PNode::start_outbound_onlyhandshakes outbound without a listener; inboundaddconnectionstays refused.local_addris127.0.0.1:0.--no-discoversuppresses addr self-announce andgetnetworkinfo.localaddresseseven when--external-ipis set.p2p.listen(default true),p2p.maxInbound(default 125),p2p.discover(default true).listen = falseemits--no-listenand does not open the P2P firewall port.Test plan
cargo test -p rbitcoin-node --lib max_inbound_cargo test -p rbitcoin-node --lib listen_zero_cargo test -p rbitcoin-net --lib p2p_outbound_only_cargo test -p rbitcoin-net --lib externalip_/cargo test -p rbitcoin-rpc --lib getnetworkinfo_localaddressescargo clippy --workspace --all-targets -- -D warningscargo deny check/./scripts/ast-grep.sh/cargo fmt --all -- --checknix build .#checks.x86_64-linux.nixos-module-eval --no-linkfmt,deny,clippy,ast-grep,test,windows,macos,coverage,nixos-module-eval)Made with Cursor