Repository navigation
Releases: oxidekit/oxidepm
Releases · oxidekit/oxidepm
Release list
v0.3.2
Full Changelog: v0.3.1...v0.3.2
v0.3.0
v0.2.4: cosmos-status fix + Ctrl+C fix
- cosmos-status now uses in-memory spec (fixes empty cosmos config issue)
- Ctrl+C properly exits follow mode
- startup command auto-installs systemd/launchd
v0.2.3: Follow Mode + Auto-Install Startup
- Follow mode (logs -f) fully implemented
- startup command auto-installs systemd/launchd service
- Double-sign pre-flight + runtime sentinel
- All previous cosmos features
v0.2.2: Double-Sign Protection + cosmos-status Fix
Changes
- cosmos-status now queries CometBFT RPC for live block height, catching_up, seconds_since_block, lifecycle state
- kill command stops all managed processes before daemon shutdown (no more orphaned processes)
- Double-sign pre-flight: refuses to start non-validator nodes if priv_validator_key.json is present
- Double-sign sentinel: runtime detection if another node is signing with your key
- New notification: double_sign_risk (Critical severity)
- Usage examples in cosmos-status error messages
Binaries
| Platform | File |
|---|---|
| Linux x86_64 | oxidepm-x86_64-unknown-linux-gnu.tar.gz |
| macOS Apple Silicon | oxidepm-aarch64-apple-darwin.tar.gz |
v0.2.1: Cosmos Node Support + Sentry/Archive Modes
What's New
- Cosmos process type (
type = "cosmos") for managing Cosmos SDK blockchain nodes - Relay-until-synced: start as relay, auto-enable validator key once synced (prevents jailing)
- Upgrade halt detection: detects
UPGRADE NEEDEDmessages, suppresses auto-restart, sends alerts - 5 node modes: Validator, Seed, Relay, Sentry, Archive
- 6 new Telegram alerts: ValidatorActivated, CatchingUp, MissedBlocks, Jailed, StaleNode, UpgradeHalted
- Severity filtering for notifications (info/warning/critical)
- bot_token_env — read Telegram token from env var instead of config file
oxidepm cosmos-statusCLI command- TUI cosmos details tab
- Restart-on-crash logic (was TODO, now implemented)
- Graceful shutdown with configurable timeout for block commit
- File descriptor limits (nofile) via pre_exec
- Security: validator key only renamed, never read; no secrets in logs/notifications
Binaries
| Platform | File |
|---|---|
| Linux x86_64 | oxidepm-x86_64-unknown-linux-gnu.tar.gz |
| macOS Apple Silicon | oxidepm-aarch64-apple-darwin.tar.gz |
v0.2.0: Cosmos Node Process Type
What's New
Cosmos Node Support (type = "cosmos")
Full lifecycle management for Cosmos SDK blockchain nodes (monod, gaiad, etc.):
- CosmosRunner — Spawns nodes with
RLIMIT_NOFILEviapre_exec, validates binary/key paths, warns on world-readable config dirs - Relay-Until-Synced — State machine that starts as relay, auto-enables validator key when synced, preventing jailing
- Health Checks — Polls CometBFT
/statusfor sync state, block height, stale detection. Queries slashing module for missed blocks and jailed status - Upgrade Halt Detection — Detects
UPGRADE "name" NEEDED at heightmessages, setsupgrade_haltedstatus, suppresses auto-restart, sends notification with required action - Restart-on-Crash — Implements the restart logic with
RestartMode(on-crash/always/never), max restarts, delay - Notifications — 6 new event types (ValidatorActivated, CatchingUp, MissedBlocks, Jailed, StaleNode, UpgradeHalted) with severity filtering and
bot_token_envsupport - CLI — New
oxidepm cosmos-status <name>command - TUI — Cosmos details panel showing chain ID, node mode, lifecycle state, upgrade halt info
Config Example
Note: Always run node processes as a dedicated non-root user (e.g.
monouser) with only the permissions it needs. Avoid running asroot— usesudofor one-off privileged operations like binding low ports or adjusting system limits.
[[apps]]
name = "monod"
mode = "cosmos"
binary = "/usr/local/bin/monod"
args = ["start", "--home", "/home/monouser/.mono"]
cosmos_mode = "validator"
rpc_endpoint = "http://localhost:26657"
chain_id = "mono_6940-1"
relay_until_synced = true
validator_key_path = "/home/monouser/.mono/config/priv_validator_key.json"
nofile_limit = 65535
detect_upgrade_halt = true
restart = "on-crash"
max_restarts = 5Security
- Validator key operations only rename files, never read contents
- Logs never contain key material or sensitive config
- Telegram messages only include node name, status, heights — no paths/IPs
bot_token_envpreferred overbot_tokendirect value- Run as a dedicated non-root user for defense in depth
v0.1.2
Full Changelog: https://github.com/oxidekit/oxidepm/commits/v0.1.2
v0.1.1
Full Changelog: https://github.com/oxidekit/oxidepm/commits/v0.1.1