Skip to content

FROSTR-ORG/igloo-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

igloo-shell

igloo-shell is the CLI-first operator host for FROSTR. It manages local profiles, encrypted vault material, per-profile daemons, relay profiles, onboarding, recovery, profile export, and trusted key rotation.

This repo is self-contained as a project manual. General FROSTR protocol and system background is documented at the workspace level.

Status

  • Beta.

What It Owns

  • managed local profiles and profile manifests
  • encrypted vault storage for secret artifacts
  • per-profile daemon lifecycle and runtime control
  • operator-facing package flows:
    • onboard
    • import
    • recover
    • rotate-key
    • rotate-keyset
    • keygen
  • relay profile and peer-policy management

Quick Start

Prerequisites:

  • Rust toolchain installed

Build and test the workspace:

cargo check --workspace --offline
cargo test --workspace --offline

Inspect local shell-managed state:

cargo run -p igloo-shell-cli -- relays list
cargo run -p igloo-shell-cli -- profile list

Generate local dev material:

scripts/devnet.sh gen

Start the local devnet:

scripts/devnet.sh start

Run the shell-owned smoke checks:

scripts/devnet.sh smoke
scripts/test-node-e2e.sh

Core CLI Flows

Unlock and inspect a local profile:

cargo run -p igloo-shell-cli -- profile load

profile load is the normal entrypoint for an existing local profile:

  • omit the profile id to use the numbered picker
  • default behavior unlocks the profile, prints status and next commands, then exits
  • --start starts or reuses the daemon and attaches to the daemon log
  • --daemon starts or reuses the daemon in the background and exits

Other operator entrypoints:

cargo run -p igloo-shell-cli -- onboard <package-or-path>
cargo run -p igloo-shell-cli -- import <bfprofile-or-path>
cargo run -p igloo-shell-cli -- recover <bfshare-or-path>
cargo run -p igloo-shell-cli -- rotate-key <bfonboard-or-path> --profile <profile-id>
cargo run -p igloo-shell-cli -- rotate-keyset init --profile <profile-id> --threshold <n> --count <n>
cargo run -p igloo-shell-cli -- rotate-keyset show --workspace <path>
cargo run -p igloo-shell-cli -- rotate-keyset generate --workspace <path>
cargo run -p igloo-shell-cli -- keygen

Mode rules:

  • recover is recovery-only for bfshare
  • rotate-key is the in-place rotated-share adoption path for a single bfonboard
  • rotate-keyset is the operator-side trusted rotation workflow that gathers threshold bfshare inputs, replaces the local profile, and emits remote bfonboard packages
  • onboard, import, recover, rotate-key, and rotate-keyset generate support --daemon
  • profile-producing flows also support --start for immediate foreground attach

Common Runtime Commands

Once a profile is running, the main operator surface is:

cargo run -p igloo-shell-cli -- daemon status --profile <profile-id>
cargo run -p igloo-shell-cli -- runtime status --profile <profile-id>
cargo run -p igloo-shell-cli -- peer list --profile <profile-id>
cargo run -p igloo-shell-cli -- policy show --profile <profile-id>
cargo run -p igloo-shell-cli -- daemon logs --profile <profile-id> --follow

Useful supporting commands:

cargo run -p igloo-shell-cli -- profile backup <profile-id>
cargo run -p igloo-shell-cli -- export <profile-id> --out <dir> --format raw
cargo run -p igloo-shell-cli -- relays list
cargo run -p igloo-shell-cli -- relays set <id> --label <label> <url>...
cargo run -p igloo-shell-cli -- relays default <id>

Local Development

Repo-local script entrypoints:

scripts/devnet.sh gen
scripts/devnet.sh start
scripts/devnet.sh status
scripts/devnet.sh smoke
scripts/devnet.sh start-responders
scripts/devnet-tmux.sh start
scripts/test-node-e2e.sh
scripts/ws_soak.sh --iterations 25 --out dev/audit/work/evidence/ws-soak-$(date +%F).txt

Developer material generated by scripts/devnet.sh gen includes:

  • managed profiles for alice, bob, and carol
  • relay and runtime state under .tmp/devnet/ by default
  • lower-level runtime artifacts under .tmp/devnet/material/

Those raw material files are developer utilities. Normal operator workflows should use managed profiles and package commands.

Additional Docs

About

Run a FROSTR V2 signing node on the command-line.

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors