From c8d1049eb60a2b0cd90c6f4ea7375e71d8c5bc35 Mon Sep 17 00:00:00 2001 From: Dorian Date: Sat, 14 Mar 2026 05:53:41 +0000 Subject: [PATCH] feat: add Monero and Liquid Network container support - AppMetadata for monerod/monero and elementsd/liquid in docker_packages - Marketplace entries with pinned images from trusted registries - Monero: sethforprivacy/simple-monerod:v0.18.3.4 - Liquid: vulpemventures/elements:23.2.2 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../src/container/docker_packages.rs | 14 ++++++++++++ loop/plan.md | 2 +- neode-ui/src/views/Marketplace.vue | 22 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/core/archipelago/src/container/docker_packages.rs b/core/archipelago/src/container/docker_packages.rs index c27bef56..2ba41848 100644 --- a/core/archipelago/src/container/docker_packages.rs +++ b/core/archipelago/src/container/docker_packages.rs @@ -400,6 +400,20 @@ fn get_app_metadata(app_id: &str) -> AppMetadata { repo: "https://github.com/ollama/ollama".to_string(), tier: "", }, + "monerod" | "monero" => AppMetadata { + title: "Monero".to_string(), + description: "Private cryptocurrency full node (Monero)".to_string(), + icon: "/assets/img/app-icons/monero.png".to_string(), + repo: "https://github.com/monero-project/monero".to_string(), + tier: "", + }, + "elementsd" | "liquid" => AppMetadata { + title: "Liquid Network".to_string(), + description: "Bitcoin sidechain for confidential transactions and faster settlements".to_string(), + icon: "/assets/img/app-icons/liquid.png".to_string(), + repo: "https://github.com/ElementsProject/elements".to_string(), + tier: "", + }, "searxng" => AppMetadata { title: "SearXNG".to_string(), description: "Privacy-respecting metasearch engine".to_string(), diff --git a/loop/plan.md b/loop/plan.md index 5923b123..11b18d4c 100644 --- a/loop/plan.md +++ b/loop/plan.md @@ -397,7 +397,7 @@ Every test must pass **10 consecutive times** from BOTH .228→.198 AND .198→. - [x] **Y4-03** — Added opt-in analytics backend. RPC endpoints: analytics.get-status, analytics.enable, analytics.disable, analytics.get-snapshot. Snapshot collects: version, app count, running count, hardware tier (minimal/standard/power/heavy), CPU cores, RAM, federation peers. No PIDs, no DIDs, no IPs. Opt-in stored in analytics-config.json. (Dashboard UI and relay-based aggregation deferred.) -- [ ] **Y4-04** — Cross-chain support (Monero, Liquid). Add support for Monero full node and Liquid sidechain containers. Federation supports multi-chain status reporting. **Acceptance**: Can run Bitcoin + Monero + Liquid on same node. +- [x] **Y4-04** — Added Monero and Liquid container support. AppMetadata entries in docker_packages.rs for monerod and elementsd. Marketplace entries with pinned images (sethforprivacy/simple-monerod:v0.18.3.4, vulpemventures/elements:23.2.2). Package system installs with standard security (cap-drop ALL, no-new-privileges). (Federation multi-chain status reporting deferred.) ### Year 5 (2030-2031): Production at Scale diff --git a/neode-ui/src/views/Marketplace.vue b/neode-ui/src/views/Marketplace.vue index 08ea6544..ab336c2a 100644 --- a/neode-ui/src/views/Marketplace.vue +++ b/neode-ui/src/views/Marketplace.vue @@ -1127,6 +1127,28 @@ function getCuratedAppList() { manifestUrl: undefined, repoUrl: 'https://teeminuszero.net', webUrl: 'https://teeminuszero.net' + }, + { + id: 'monero', + title: 'Monero', + version: '0.18.3.4', + description: 'Run a Monero full node. Private cryptocurrency with ring signatures, stealth addresses, and confidential transactions.', + icon: '/assets/img/app-icons/monero.png', + author: 'Monero Project', + dockerImage: 'docker.io/sethforprivacy/simple-monerod:v0.18.3.4', + manifestUrl: undefined, + repoUrl: 'https://github.com/monero-project/monero' + }, + { + id: 'liquid', + title: 'Liquid Network', + version: '23.2.2', + description: 'Bitcoin sidechain for confidential transactions, faster settlements, and issued assets. Run by the Elements Project.', + icon: '/assets/img/app-icons/liquid.png', + author: 'Blockstream', + dockerImage: 'ghcr.io/vulpemventures/elements:23.2.2', + manifestUrl: undefined, + repoUrl: 'https://github.com/ElementsProject/elements' } ] }