Skip to content

All-rbitcoin Warnet via shims (Q-68) - #597

Open
rearden-grok[bot] wants to merge 12 commits into
masterfrom
harness/warnet-tanks
Open

rearden-grok[bot] wants to merge 12 commits into
masterfrom
harness/warnet-tanks

Conversation

@rearden-grok

@rearden-grok rearden-grok Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Product: resolve addnode / --connect hostnames at dial (localhost, missing port uses the network P2P default) and retry until a live session exists. Incomplete IBD at genesis with --connect still enters tip-follow. Closes Q-68 (Q-66 is already NodeError::Init on master).
  • Shim: Helm rpcbind=0.0.0.0 binds the proxy all-interfaces; P2P bind follows Core-like -bind/-port (bare -port is 0.0.0.0; TestNode bind=127.0.0.1 stays loopback). rpcpassword seeds rpc.token; proxy still accepts TestNode cookie Basic and also user:password when the password matches the token, then forwards Bearer (TCP is Bearer-only). Conf addnode= becomes --connect host:18444; bitcoin-cli defaults to ~/.bitcoin; listwalletdir stub for ensure_miner.
  • Lab image rbitcoin-warnet:local (Python shim as PID 1 named bitcoind, Core test_framework, stdout log tee). Runbook: docs/core-functional.md Warnet lab. Not core-functional labeled (no inventory run row change). Operator-host kind/miner_std is the remaining acceptance; this VM has no Docker/kind.

Rebased onto current origin/master (Bearer TCP, Core-like listen/bind, NodeError::Init, catalog journeys).

Test plan

  • cargo test -p rbitcoin-net parse_peer_addr_localhost_and_default_port / redial_remembered_*
  • cargo test -p rbitcoin-rpc addnode
  • cargo test -p rbitcoin-test --test integration_multinode addnode_add_retries_until_peer_listens
  • ./scripts/core-functional/bitcoind.test.sh
  • ./scripts/core-functional/rpc_proxy.test.sh
  • ./scripts/core-functional/bitcoin-cli.test.sh
  • ./scripts/core-functional/rpc_wallet.test.sh
  • ./scripts/core-functional/warnet/Dockerfile.test.sh
  • Operator host: kind load + 3-tank miner_std.py --interval=10 --mature; all three getblockcount match and are > 0

@rearden-grok
rearden-grok Bot force-pushed the harness/warnet-tanks branch from 4c3e052 to cdcb368 Compare September 18, 2026 03:55
@rearden-grok rearden-grok Bot changed the title All-rbitcoin Warnet via shims (Q-66) All-rbitcoin Warnet via shims (Q-68) Sep 18, 2026
rbitcoin-grok and others added 12 commits September 19, 2026 08:28
Store --connect as host strings and parse via ToSocketAddrs so kube-dns
and localhost work. Prefer IPv4. Open Q-66 for the follow-on retry slice.

Co-authored-by: Cursor <cursoragent@cursor.com>
Remembered addnode/connect hosts redial every 2s after resolve. Incomplete
IBD at genesis with --connect still enters tip-follow so a late peer attaches.
Closes Q-66.

Co-authored-by: Cursor <cursoragent@cursor.com>
Conf rpcbind=0.0.0.0 and listen=1 (no -bind) bind the proxy and P2P
all-interfaces. BITCOIN_DATA can supply -datadir. TestNode conf stays 127.0.0.1.

Co-authored-by: Cursor <cursoragent@cursor.com>
Warnet commander authenticates as user:rpcpassword. The proxy accepts that
when the password matches the token, and still accepts the cookie line.

Co-authored-by: Cursor <cursoragent@cursor.com>
Helm addnode=tank-N becomes --connect tank-N:18444. In-pod bitcoin-cli
uses ~/.bitcoin or BITCOIN_DATA and conf rpcuser/rpcpassword when no cookie.

Co-authored-by: Cursor <cursoragent@cursor.com>
Returns wallets already in the in-memory hub (empty list at start).
createwallet ignores unknown named keys such as descriptors=True.

Co-authored-by: Cursor <cursoragent@cursor.com>
Debian slim copies rbitcoin-node, the Python shims, and Core
test_framework. PID 1 is a python3 binary named bitcoind so pidof
succeeds. RBITCOIN_LOG_STDOUT tees debug lines for kubectl logs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Operator-host kind/Warnet steps for an all-rbitcoin network. Image is
rbitcoin-warnet:local; not a musl Release.

Co-authored-by: Cursor <cursoragent@cursor.com>
Hostname --connect is stored unresolved, so --connect bad no longer fails
parse and would run forever. Keep the CLI refuse pin on --connect=.

Co-authored-by: Cursor <cursoragent@cursor.com>
CI fmt failed wrapping the one-line --connect= array.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bare -port already listens 0.0.0.0; TestNode extra_conf bind=127.0.0.1
stays loopback. Helm rpcbind=0.0.0.0 only moves the test proxy.

Co-authored-by: Cursor <cursoragent@cursor.com>
Q-68 said addnode add stores host strings and resolves each dial, but
the remembered set was SocketAddr after one lookup. Keep the original
node string so a Warnet tank name that is not in DNS yet is still
retried. Unresolved add is not a dial error.
@rearden-grok
rearden-grok Bot force-pushed the harness/warnet-tanks branch from cdcb368 to e421f11 Compare September 19, 2026 15:28
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.

0 participants