feat(apps): package Cuprate, an alternative Monero node
Full-node daemon: P2P + Monero's own restricted RPC (the safe-for-public subset wallets use as a "remote node") are auth:none like bitcoin/electrumx's equivalents; unrestricted RPC (full node control) stays gated auth:local. readonly_root works cleanly since the upstream image is FROM scratch with ownership fixed at build time — no runtime chown/setuid needed, unlike bitcoin-knots/core. Verified locally end-to-end before committing: built the upstream Dockerfile, confirmed the generated Cuprated.toml against `cuprated --generate-config`/ `--dry-run`, and ran the real image with the manifest's exact ports/volumes — including discovering that cuprated's own 127.0.0.1-default RPC bind is unreachable through a published host port and needs to bind 0.0.0.0 internally with ports[].bind:127.0.0.1 doing the actual restriction, the same pattern bitcoin-knots' RPC port already uses in this repo. Bumps the unauthenticated_ports_are_all_accounted_for canary (26 -> 28) for cuprate's two auth:none ports, per that test's own review-before-updating contract. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1746,6 +1746,14 @@ app:
|
||||
}
|
||||
}
|
||||
exempt.sort();
|
||||
// 28 as of 2026-08-21: the 26 below plus cuprate's two exemptions —
|
||||
// 18183 (Monero p2p gossip, same reasoning as bitcoin's 8333) and
|
||||
// 18089 (Monero restricted RPC, upstream's own safe-for-public
|
||||
// subset that wallets connect to directly as a "remote node" over
|
||||
// plain HTTP JSON-RPC — same reasoning as electrumx's 50001).
|
||||
// cuprate's unrestricted RPC (full node control) stays loopback-only
|
||||
// (auth: local), not in this set.
|
||||
//
|
||||
// 26 as of 2026-08-16: the 25 below plus phoenixd 9740, a
|
||||
// loopback-only JSON API whose own generated http password
|
||||
// authenticates every request (added with the phoenixd onboarding,
|
||||
@@ -1762,7 +1770,7 @@ app:
|
||||
// stage timed out that cycle, so the count here lagged at 17.
|
||||
assert_eq!(
|
||||
exempt.len(),
|
||||
26,
|
||||
28,
|
||||
"unauthenticated port set changed — review before updating this count: {exempt:?}"
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user