| name | backup-ledger |
| description | Backup consensus ledger and curiosity metrics databases with versioned snapshots. Use when the collective needs to preserve deliberation history, create recovery points, or archive autonomy metrics. |
Backup Ledger — Consensus History Preservation
Purpose: Create versioned backups of consensus ledger and curiosity metrics.
Status: ✅ Implemented (2026-03-24)
Implementation
Main Script: backup-ledger.sh
#!/bin/bash
set -e
WORKSPACE_ROOT="${WORKSPACE_ROOT:-/home/openclaw/.openclaw/workspace}"
AURA_DIR="$WORKSPACE_ROOT/.aura"
BACKUP_DIR="$WORKSPACE_ROOT/.secure/ledger-backups"
mkdir -p "$BACKUP_DIR"
function backup_consensus() {
local db="$AURA_DIR/consensus.db"
local backup="$BACKUP_DIR/consensus-$(date +%Y%m%d-%H%M%S).db"
if [[ -f "$db" ]]; then
cp "$db" "$backup"
echo "✅ Consensus backed up: $backup"
gzip "$backup" && echo "✅ Compressed: ${backup}.gz"
else
echo "⚠️ Consensus DB not found"
fi
}
function backup_metrics() {
local db="$WORKSPACE_ROOT/.curiosity/curiosity_metrics.db"
local backup="$BACKUP_DIR/curiosity-$(date +%Y%m%d-%H%M%S).db"
if [[ -f "$db" ]]; then
cp "$db" "$backup"
echo "✅ Metrics backed up: $backup"
gzip "$backup" && echo "✅ Compressed: ${backup}.gz"
else
echo "⚠️ Metrics DB not found"
fi
}
function daily_backup() {
echo "=== Daily Ledger Backup ==="
backup_consensus
backup_metrics
find "$BACKUP_DIR" -name "*.db.gz" -mtime +7 -delete
echo "✅ Old backups pruned (7+ days)"
}
function restore() {
local latest
latest=$(ls -t "$BACKUP_DIR"/consensus-*.db.gz 2>/dev/null | head -1)
if [[ -n "$latest" ]]; then
gunzip -c "$latest" > "$AURA_DIR/consensus.db"
echo "✅ Restored from: $latest"
else
echo "⚠️ No backup found"
fi
}
case "${1:-daily}" in
--daily) daily_backup ;;
--manual) backup_consensus && backup_metrics ;;
--restore) restore ;;
*) echo "Usage: $0 [--daily|--manual|--restore]"; exit 1 ;;
esac
Usage
./backup-ledger.sh --daily
./backup-ledger.sh --manual
./backup-ledger.sh --restore
Integration Points
- Triad Resilience: Recovery from corruption
- Cron Manager: Scheduled daily backups
- Curiosity Engine: Metrics preservation
Consensus preserved. History backed up. Recovery ready. 🦞