feat(apps): package Cuprate, an alternative Monero node #141
Closed
ssmithx
wants to merge 0 commits from
cuprate-archyapp into main
pull from: cuprate-archyapp
merge into: :main
:main
:fix/paid-content-payment-not-lost
:fix/mint-error-detail-swallowed
:investigate/framework-lnd-startup
:fix/minibits-already-redeemed
:cuprate-fixes
:feature/dojobay-app
:fix/bitcoin-core-tor-service-name
:docs/openwrt-gateway-setup
:cuprate-cpu-fix
:fix/cuprate-explicit-logging-levels
:companion/session-2026-08-31
:companion/0.5.28-deploy-handoff
:companion/0.5.28-ship
:companion/0.5.28
:app-bumps-mirror-pending
:cuprate-archyapp
:docs/todo-list
:companion/0.5.27-version-meta
:companion/0.5.27-ship
:companion/0.5.27-clipboard-qr-restart
:ux-at-last
:fix/mesh-send-content-inline-federation-fallback
:cashu-error-messages
:gsd/phase-13-aiui-functional-conversational-node-control-and-content-surf
:feat/podsteadr-app-package
:rotate-release-root
:chore/aiui-monorepo-migration
:wip/phase-13-p13-02
:wip/phase-13-p13-01
:fix/bitcoin-conf-conflict-crash-loop
:demo-build
:archy-hwconfig
:openwrt-enhancements
:a3-10-endpoint-fallback
:public-prelaunch
:release/1.7.115-prep
:fix/web-listener-ipv6
:fips-companion-5g-hardening
:fix/connection-accept-deadlock
:fix/demo-images-path-filter
:fix/companion-autologin-replay-intro
:networking-profits-dashboard
:identities-mobile-polish
:companion-qr-scan-fix
:companion-qr-pairing
:intro-reliability-video-perf
:login-bg-continuity
:audio-bottom-bar
:demo-intro-every-visit
:intro-entrance-fixes
:cloud-feedback-demo-content
:cloud-tabs-search
:ark-wallet-ui-demo
:demo-nginx-app-assets
:demo-ui-fixes
:ark-wallet-barkd
No Reviewers
Labels
Clear labels
companion-agent
queued
roadmap
waiting-external
Companion-app agent's handover list (node-side parts tracked separately)
Triaged, next in this session's queue after current release work
Feature/effort item, deliberately unscheduled — needs scoping + a slot, not a fix today
Waiting on a person outside this session (tester, operator)
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: lfg2025/archy#141
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Packages Cuprate (an alternative Monero node implementation in Rust) as an Archipelago app.
What's in it
apps/cuprate/manifest.ymlpublishes Monero P2P on18183and restricted RPC on host18090(mapped to Cuprate's canonical in-container18089).18089remains assigned to the live Penpot service.neode-ui/public/assets/img/app-icons/cuprate.svgis normalized withscripts/normalize-app-icon.py.core/container/src/manifest.rsupdates the reviewed unauthenticated-port canary for Cuprate P2P and restricted RPC.Verification
bash scripts/validate-app-manifest.sh apps/cuprate/manifest.ymlpasses with no port conflicts.cargo test -p archipelago-containerpasses: 76 tests.source.archipelago-foundation.org/lfg2025/cuprate:0.1.0-preview-18-g618ff14successfully; it is available to fresh nodes, runs as1000:1000, and has/usr/local/bin/cupratedas its entrypoint.Merge status
The former registry-image blocker and the Penpot
18089conflict are resolved. The remaining release gate is a full lifecycle test on a node with at least 300 GiB available storage, pertests/lifecycle/TESTING.md.Live lifecycle result (2026-08-23)
Tested on
archi-dev-boxafter freeing 1.08 TiB.Passed:
Cuprated.tomland UID mapping18183and restricted RPC host port18090Blocking failure:
/var/lib/archipelago/cuprateand reported success, but left the restartable Cuprate Quadlet/legacy state behind. This recreated Cuprate against missing/default configuration.core/archipelago/src/api/rpc/package/runtime.rs: everyorchestrator.remove(...)error is discarded before generic container/data cleanup.archipelago-container76/76, but the full clean rerun exposed stale installed-state recovery from the pre-fix failure. The node was restored cleanly with Cuprate absent.PR remains blocked until the uninstall fix is committed and a fresh-state install/delete-data-uninstall/reinstall cycle passes.
Clean lifecycle rerun: PASS (2026-08-23)
Retested PR tip
c188d9defrom a genuinely clean state onarchi-dev-boxwith 1.08 TiB free.Passed:
18090and P2P181831000:1000, read-only root, no-new-privileges, dropped capabilities48697 -> 87993in 60 secondsThe uninstall safety fix in
c188d9decloses the blocker found in the first live run. Cuprate is intentionally left installed and syncing for continued soak observation.Merged to main as
698e915d(merge of the branch's four commitsd6b48ce0/f1b5d2d2/37a82fd2/ c188d9de; no conflicts — files disjoint from the current release line).Verification on merge:
-p archipelago -p archipelago-container: 1560 passed / 0 failed (includes the declarative-uninstall abort test fromc188d9de)Still pending before the app reaches catalog-covered nodes (tracked under #69):
c188d9de)Closing the PR — the remaining work is release-process, not code.
Pull request closed