archy/core/archipelago/Cargo.toml

109 lines
2.9 KiB
TOML
Raw Normal View History

2026-01-24 22:59:20 +00:00
[package]
name = "archipelago"
release(v1.7.3-alpha): sidebar version sync + FIPS reconnect + profile pic render Sidebar version detect_build_version() no longer reads /opt/archipelago/build-info.txt first. That file was written by the ISO installer at flash time and never rewritten by OTA or sideload, so after any binary swap the sidebar kept advertising whatever the ISO shipped with. Now just returns env!("CARGO_PKG_VERSION") unconditionally — always matches the running binary. FIPS card The two-column grid in FipsNetworkCard.vue placed version/npub boxes side-by-side on mobile but the anchor-status panel forced col-span-2, creating an unbalanced empty column at every desktop width. Anchor status moves to its own full-width row below the grid. When the anchor is not reached, a "Reconnect" button appears next to the status line; it calls fips.restart (45s timeout), waits 5s for the daemon to come back, then reloads fips.status. Surfaces whether the restart actually recovered the anchor in a status flash. Profile picture render Uploaded profile pictures are stored with an onion-rooted URL so external Nostr clients can fetch them. The local browser isn't Tor-routed though, so the <img src> silently 404'd and the UI fell back to showing initials. Added a displayableUrl() helper on Web5Identities.vue that rewrites http://<onion>/blob/<cid>[?...] to same-origin /blob/<cid> for rendering, while the stored URL keeps its onion prefix so publishing to Nostr still works for external viewers. Pass-through for data: URLs and already-relative paths. Identity row title The identity list header now renders profile.display_name (when set) and keeps identity.name as a muted parenthetical. Before, only the internal name was shown and a user who'd customised their Nostr display_name saw a mismatch between their own UI and what peers rendered. Artefacts: archipelago 99184b95…22dc1b 40350664 archipelago-frontend-1.7.3-alpha.tar.gz 7b933cf4…74a8bc 76987031 Changelog layman-style per the saved feedback. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 11:44:59 -04:00
version = "1.7.3-alpha"
2026-01-24 22:59:20 +00:00
edition = "2021"
description = "Archipelago Bitcoin Node OS - Native backend"
authors = ["Archipelago Team"]
[[bin]]
name = "archipelago"
path = "src/main.rs"
[dependencies]
# Core dependencies
tokio = { version = "1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
anyhow = "1.0"
thiserror = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# HTTP and WebSocket
hyper = { version = "0.14", features = ["full", "http1"] }
hyper-util = { version = "0.1", features = ["full", "http1"] }
http-body-util = "0.1"
2026-01-24 23:18:24 +00:00
http-body = "1.0"
2026-01-24 22:59:20 +00:00
tower = "0.5"
tower-http = { version = "0.6", features = ["cors", "trace"] }
hyper-ws-listener = "0.3.0"
tokio-tungstenite = "0.20"
2026-01-27 22:37:08 +00:00
futures-util = "0.3"
2026-01-24 22:59:20 +00:00
# Our modules
archipelago-container = { path = "../container" }
archipelago-security = { path = "../security" }
archipelago-performance = { path = "../performance" }
2026-01-24 22:59:20 +00:00
# Database (optional for now - can use SQLite or skip)
# sqlx = { version = "0.7", features = ["sqlite", "runtime-tokio-rustls"] }
# Authentication
bcrypt = "0.15"
sha2 = "0.10.9"
hmac = "0.12.1"
2026-01-24 22:59:20 +00:00
uuid = { version = "1.0", features = ["v4"] }
regex = "1.10"
2026-01-24 22:59:20 +00:00
# Node identity (Ed25519 + X25519 key agreement)
ed25519-dalek = { version = "2.2.0", features = ["rand_core"] }
curve25519-dalek = "4.1.3"
rand = "0.8.5"
hex = "0.4"
bs58 = "0.5"
chrono = "0.4"
# BIP-39 mnemonic seed generation + BIP-32 HD key derivation
bip39 = { version = "=2.1.0", features = ["rand"] }
bitcoin = { version = "=0.32.5", features = ["rand-std"] }
2026-01-24 22:59:20 +00:00
# Configuration
toml = "0.8"
serde_yaml = "0.9"
# HTTP client (for LND REST proxy, Tor SOCKS for peer messaging)
# Uses rustls-tls for cross-compilation (no OpenSSL dependency)
reqwest = { version = "0.11", default-features = false, features = ["json", "socks", "rustls-tls"] }
2026-03-12 12:56:59 +00:00
# Nostr (node discovery + NIP-44 encrypted peer handshake)
nostr-sdk = { version = "0.44", features = ["nip04", "nip44"] }
# Backup encryption (DID identity export) + TOTP 2FA encryption
argon2 = "0.5.3"
chacha20poly1305 = "0.10.1"
base64 = "0.21"
# Full system backup (tar archive + gzip compression)
tar = "0.4"
flate2 = "1.0"
# TOTP 2FA
totp-rs = { version = "5.7", features = ["otpauth", "gen_secret"] }
qrcode = "0.14"
data-encoding = "2.6"
zeroize = { version = "1.8.2", features = ["derive"] }
# Mainline DHT (did:dht — BitTorrent DHT for decentralized identity)
mainline = "2"
zbase32 = "0.1"
bytes = "1"
2026-03-17 00:03:08 +00:00
# Mesh networking (Meshcore serial protocol over USB LoRa radios)
serial2-tokio = "0.1"
# Double Ratchet key derivation (Phase 3: encrypted mesh messaging)
hkdf = "0.12.4"
2026-03-17 00:03:08 +00:00
# Transport abstraction (Phase 2: mesh as federation transport)
ciborium = "0.2.2"
reed-solomon-erasure = "6.0"
mdns-sd = "0.18"
2026-03-17 00:03:08 +00:00
# Systemd watchdog notification
sd-notify = "0.4"
2026-01-24 22:59:20 +00:00
[dev-dependencies]
tokio-test = "0.4"
tempfile = "3.10"